1 | 2 | 3 | 4 | 5 |最初 次ページ >>
2016-06-29 08:47:16

40代のエンジニアの働き方を考える

テーマ:エンジニア魂

まぁ、まだ40にはなっていないわけですけど目の前に差し迫ってきているわけで、20代、30代と色々働き方というのは環境やポジションによって変化してくるもので、当然40代ともなると面倒なことも増えだしてなかなかやりたいこともできないといったことも増えてきます。


その中でどういった仕事の仕方をしないといけないのかまたは強いられてしまうのか、誰しも平等に年を取っていく中でそうなったときにどうしておけばいいのか考えておくことは結構大切なことだなと思ったりします。



自分の領域を見つけておく


1つはなんかしら自分がそこで自信をもって仕事をできる領域を作っておくことが大事なのではないかと思うわけです。

エンジニアとしてなら当然技術的な分野になりますけど、Webやネットワークといった大きな領域だけでなく、プログラミングやOSやミドルウェアなど特定領域において深い知識を持っているとよりその武器が強力になっていきます。


ただ、こういった技術的な要素は時代の流れと共に廃れてしまったりして10年後には使い物にならないといったものが多かったりするんですけど、それが何なのか見極めることがとても難しいということです。

無難にメジャーなプログラミング言語やシェアの大きいソフトウェアを選択しておくのはいいと思いますけど、当然母数も多いので凡庸の中に埋もれていくリスクもあったり、次にこれが来る!と賑やかされているバズワードに踊らされていると数年後にあの技術はいったい何だったんだろうということにもなったり。


若いころなら色んな技術を身に着けておきながら時代の変化とともに綱渡りしていくのが頭もまだ柔軟だったり体力面でもカバーできたりもしますのでそれほど難しいことではないのですが、歳を重ねてくると新しい知識を身に着けてくることがしんどくなってきたり、自分が歩んできた領域をなかなか捨てきれずに固執してしまったりで簡単ではないケースもあります。

一番厄介なのは、会社の業務指示によって担当する案件が決まり、その中で身につける知識というものも取捨選択できない場合があるというもので、自分が入社当時のウェブ全盛期であってもまだホストサーバーいじったりしている部署に配属された同僚もいたりして、どうやっても現状ではその知識を応用するのが無理という状況に陥る人も多いんじゃないかと思います。


自分の能力が十分に発揮できる領域を見つけておくとそこで仕事をするということに集中すればよくなりますし、取捨選択もしやすくなります。

取捨選択するというのは要は仕事を選べるようになるということではあるんですけど、それは傲慢に仕事をするということではなく、何でもかんでも仕事をするというのは時間的な制約や能力面で当然できないのできちんと自分の力をフルに発揮できる場所というのを理解しておくということです。


まぁ、個人的にはあまりそういう風にはなりたくないと思ってはいますけど、特定分野の領域を見つけておけばその分野において例えば技術的な現場から離れたとしてもそれまでの知識の惰性で仕事をすることはできたりします。

要するにしゃべりだけで食ってけるみたいなところはあるんですけど、それは会社から与えられるポジションとかによってそうせざるを得ない場合もあったりして現場に固執したいなら結構いばらの道を行かなくてはならかったりもします。



やりたいことに注力するための術を身につける


歳を重ねることに社内のポジションというものも変化してきて、それに伴って色々面倒な仕事も増えてきます。

やりたくない打ち合わせや資料作成や調整事項が増えてきたりして、それによって本来やりたいことへ割く時間も削がれてきますので、少ない時間の中で自分がやりたいことや能力が発揮できる分野へ注力するための術を身につけないと押し流されてしまいます


結局のところ、35歳あたりのエンジニアの定年説とかっていうのは、その人の能力や体力によるものというよりは、会社の組織の中で与えたポジションによってその人が本来力を発揮できる場所からどんどん遠ざけ、つぶしてしまっている結果によるんじゃないかと思ったりするわけですけど、それにあがらうためにはかなり要領よく仕事をしないといけなくなります。

まぁ、あがらわず流されるというのも一つの選択ではありますが。

自分の周りを見ても自分より年上でまだ現場の一線に立っているという人はほとんど見かけません。

大抵は、管理職となりプロジェクトのマネジメントや日々報告資料の作成に忙殺されていたりして、その分与えられる役割や所得なども当然多くはなっているのかもしれませんけど、その仕事を自分がやりたいかと言われればNoだったりもするのであがらう術を見つけるのに四苦八苦したりもしているわけです。

こういったことは、先ほど書いたような仕事を取捨選択することもそうですし、今まで自分がやりたかったことというものを改めて見直して、その中でも特に注力したい部分を切り分けていく必要があります。

単にプログラミングがしたいというところから、どのレイヤを担当するのか、それ以外は誰に任せるのかといった外せない領域と捨ててもいい領域というものを割り切らないといけなかったりもします。
そうした割り切りの中でも、メンバーのリソースを見ながら担当を決めたり、その人の教育過程も考慮してアサインしようといったマネジメントの視点でのコントロールも必要になってきて、単に自分の領域を守るというだけでなく全体を俯瞰して考えておかないとなかなか上も自分がそのポジションにいることに納得してくれなかったりするので難しいところです。


結局のところ経験と共に会社から与えられるポジションによって面倒な仕事というのは増える一方であったりもするわけで、集中してやりたいことをやる時間というのはかなり細切れになってきます。

合間合間に打ち合わせが入ったり、部下の管理に時間を割かれたり、資料の作成をせかされたり。

おのずとやれることも少なくなってきますし、やることを固めていかないとストレスになるだけなので、自分がやらなくてもいいことを任せられる人が近くにいる、そういうポジションについておくことも重要になってくると思ったりもします。

まとめ


これが自分の領域だという場所を見つけておかないと、なかなか40代にもなって仕事が楽しいで働けないんじゃないかと思います。

まぁ、結婚して子供がいたりすると収入面で仕事を辞めれない状況にもなってくるので、仕事に楽しさなんて求めてる場合じゃないってなりますし、そもそも仕事することが単に収入を得るためだけというような考え方にも偏ってきたりもしてきます。


そういう状況に陥らないためにも、不得意なところで勝負したり、やりたくないことを我慢しながら仕事をするのではなく、ここでなら力が発揮できる領域というものを若いうちから探しておくというのが40代になっても後悔しない仕事の仕方になってくるかもしれません。

なので、20代、30代のうちから自信をもって勝負できる場所、楽しめる場所というものを模索していくのって大事なことではないかと思います。





いいね!した人  |  コメント(0)  |  リブログ(0)
2016-06-15 08:20:06

PDFを他のファイル形式に簡単に変換できるpoppler-utils

テーマ:Linux

元ネタとしては、以前に書いた「Apache Tikaを使ってドキュメントの中身を取り出すPHPプログラム 」にてPDFファイル内のテキストを抽出しようとしたところ、PDFのセキュリティ関連の設定によって中身がうまく抽出できないケースがあったりして、Linux環境上で他にPDFの中身を取り出す方法は無いものかと調べていたらpoppler-utils内に含まれるpdftotextコマンドでうまく取り出せたよ、って話になります。



PDF内のテキストを取り出す


先に結論を書きましたが、pdftotextコマンドを使えばPDFファイル内のテキスト文を取り出すことが可能です。

pdftotextコマンドはpoppler-utilsというパッケージに含まれるため、存在しない場合はyum経由などでインストールしておきます。


# yum install poppler-utils

poppler-utilsにはpdftotext以外にもpdfinfoやpdftohtmlやpdftoppmコマンドなどが含まれています。

余談ですけど、pdf2psコマンドとかもあったりするのですが、こちらはpoppler-utilsパッケージ付属のものではなくghostscriptパッケージ付属のものです。


で、本題ですがPDFファイルからテキストデータを抽出したい場合は下記のように実行します。


$ pdftotext -raw hoge.pdf hoge.txt

上記によりhoge.pdfファイル内のテキストデータをhoge.txtに書き出してくれます。

PDFを開く際にパスワードをつけている場合は


$ pdftotext -upw yourpasswd hoge.pdf hoge

のようにパスワードを指定すれば開けたりします。

また、下記のようにセキュリティの設定をきつくしても抽出はできました(文章のメタデータにアクセスできないと書かれているのに何故)。


PDFセキュリティ設定



その外に便利なpoppler-utilsのコマンドたち


pdftotext以外にも幾つか使えそうなコマンドがあります。

PDFファイルの概要を知りたければpdfinfoコマンドが便利です。


$ pdfinfo test.pdf
Title:          ほげほげ計画書
Author:         itboy
Creator:        PowerPoint 用 Acrobat PDFMaker 11
Producer:       Adobe PDF Library 11.0
CreationDate:   Thu Apr 21 10:01:28 2016
ModDate:        Thu Apr 21 10:09:55 2016
Tagged:         yes
Pages:          5
Encrypted:      yes (print:no copy:yes change:no addNotes:no)
Page size:      822.12 x 538.68 pts
File size:      308122 bytes
Optimized:      yes
PDF version:    1.6

オプションをつければPDF内のメタデータを取り出すことも出来ます。


$ pdfinfo -meta test.pdf 
-snip-
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.4-c005 78.147326, 2015/04/27-13:03:03">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
            xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
         <xmp:ModifyDate>2016-04-21T10:09:55+09:00</xmp:ModifyDate>
         <xmp:CreateDate>2016-04-21T10:01:28+09:00</xmp:CreateDate>
         <xmp:MetadataDate>2016-04-21T10:09:55+09:00</xmp:MetadataDate>
         <xmp:CreatorTool>PowerPoint 用 Acrobat PDFMaker 11</xmp:CreatorTool>
         <xmpMM:DocumentID>uuid:63c700ab-7219-4640-ac8d-8b4937b6a0dd</xmpMM:DocumentID>
         <xmpMM:InstanceID>uuid:5f189849-df3a-44ab-a78e-6c342c23d7fa</xmpMM:InstanceID>
         <dc:format>application/pdf</dc:format>
         <dc:title>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">ほげほげ計画書</rdf:li>
            </rdf:Alt>
         </dc:title>
-snip-

PDFファイルをHTMLファイルに変換したい場合はpdftohtmlコマンド。

pdftotextの出力結果をHTML形式にしてくれるのかと思ってましたがそうではなく、PDFをHTML表示に変換してくれるコマンドとなってます。


$ pdftohtml hoge.pdf hoge
Page-1
Page-2
Page-3
Page-4

作成が完了するとHTMLファイルやPDF内で使われている画像ファイルなどが出力されます。


$ ls
hoge-1_1.png  hoge-2_2.jpg  hoge-3_2.jpg  hoge-3_5.png  hoge-4_2.jpg  hoge-4_5.png  hoge-4_8.png  hoge_ind.html
hoge-1_2.jpg  hoge-2_3.png  hoge-3_3.png  hoge-3_6.png  hoge-4_3.png  hoge-4_6.png  hoge-4_9.jpg  hoges.html
hoge-2_1.png  hoge-3_1.png  hoge-3_4.png  hoge-4_1.png  hoge-4_4.png  hoge-4_7.png  hoge.html

ただし、結果のHTMLはオリジナルのレイアウトとかけ離れたファイルになったりしますので、あくまでHTMLファイルに変換するといった場合にしか使えそうにありません。

場合によっては、PDF内の画像を取り出したいといった場合に便利なのかもしれませんが。


PDFを画像ファイルに変換したい場合はpdftoppmコマンド。

こちらはPDFファイルをPPM(Portable PixMap file format)形式の画像に変換してくれるものなんですが、オプションでPNG形式にも変換 できます。


$ pdftoppm -r 100 -png hoge.pdf hoge

-rオプションはDPIを指定できるので解像度を適当なものに指定しましょう(デフォルトは150みたいです)。

変換すると各ページごとに画像ファイルが出来上がります。


$ ls
hoge-1.png  hoge-2.png  hoge-3.png  hoge-4.png

オプションで開始・終了ページや切り取り位置の指定などもできたりします。

PDFファイルをPDF以外の形式で見せたい場合やファイルのサムネイルを作りたいといった場合に便利かもしれません。





いいね!した人  |  コメント(0)  |  リブログ(0)
2016-05-10 08:55:02

Apacheで不要なHTTPメソッドでのアクセスを制限する

テーマ:Apache

最近はRESTなAPIなどを提供するWebサービスが増えてきたりしていますが、それでも不要なHTTPメソッドを利用させることはサービス上のリスクになるケースもあるため、制限をかけたほうが良かったりもします。

ということで、Apacheで特定のHTTPメソッドしか利用させない方法のまとめです。



Apacheで特定のHTTPメソッドを利用できなくする


制限方法は、Apacheの設定ファイル(/etc/httpd/conf/httpd.confなど)に下記のようにLimitExceptディレクティブ を追加します。


<Directory "/path/to/apache/docroot">
  AllowOverride All
  <LimitExcept GET POST>
     Order deny,allow
     Deny from all
  </LimitExcept>
</Directory>

上記の制限をかけることでApacheのドキュメントルート以下に対してGETとPOSTのHTTPメソッドしか受け付けなくなります。

Locationディレクティブ内に記述することも可能ですので、その他の制限事項とあわせて書き方を選ぶと良いかもしれません。


また、Limitディレクティブ でも制限を掛けることはできるようですが、こちらはマニュアルに記載のとおり対象のメソッドにのみ制限を書けるため、書いていないメソッドの制限がスルーされてしまいます。

LimitExceptは書いているメソッドに対して制限をかけるのでそれ以外のメソッドを受け付けないという書き方ができます。


制限がうまくかけられたかは他のサーバーなどからcurlコマンドなどを使って実際にそのHTTPメソッドでアクセスして反応を確認するのがよいでしょう。


・ 利用可能なGETメソッドを使ってアクセスしてみる


$ curl http://foo.example.com -X GET

<html>
<head>
<title>Your Site</title>
</head>
<body>
hello wolrd!
</body>
</html>

・ 利用できないPUTメソッドを使ってアクセスしてみる


$ curl http://foo.example.com -X PUT

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>

アクセスできない場合、403(Forbidden)が返って来て制限できていることがわかります。


ただ、この方法ではTRACEメソッドは制限できません。

GETメソッドを許可するとTRACEも許可されてしまうようです。

TRACEメソッドを制限かけたい場合は以前に書いた「ApacheでTRACEメソッドを受付けなくする 」を参考にしてみてください。




いいね!した人  |  コメント(1)  |  リブログ(0)
1 | 2 | 3 | 4 | 5 |最初 次ページ >>

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

      • 総合
      • 新登場
      • 急上昇
      • トレンド

      ブログをはじめる

      たくさんの芸能人・有名人が
      書いているAmebaブログを
      無料で簡単にはじめることができます。

      公式トップブロガーへ応募

      多くの方にご紹介したいブログを
      執筆する方を「公式トップブロガー」
      として認定しております。

      芸能人・有名人ブログを開設

      Amebaブログでは、芸能人・有名人ブログを
      ご希望される著名人の方/事務所様を
      随時募集しております。