「PowerShell」を含む日記 RSS

はてなキーワード: PowerShellとは

2020-08-23

プログラミング初心者macをわざわざすすめるバカについて

タイトル通りなんだが、

mac プログラミング 初心者」とかググると、

初心者にはmacおすすめ!」「世の中のプログラマはみんなmac使っている!」

というバカなことを言っているアホが仰山いて笑える。

しかも、最近OS事情が大きく変わっているのに、未だにwindowsunixコマンドガーとか言っているやつが居る。もうね、言葉を失うよね。

まず、最近のOS事情の移り変わりなんだけども、windows最近かなりLinuxに近い触感になるような機能が多く追加され続けている。

例えば、wsl(コマンド関係)やwinget(CUIインストール)が挙げられる。

他にそれらを取り巻くプログラミング事情としては、vscodeがある。vscodeは、powershellsshだけでなく、wslのコマンドも使えるようになっている。

そのため、従来はpythonやらjsはめんどくさ。とおもっていた点もある程度は改善されている。

ちなみにmac特に最近プログラミングに関する話を聞かない。

自分が、プログラミング環境の次に、大事な要点だと思っているのが、一般人使用含めたシェア率。

正直、作っても誰にも使ってもらえないという状況では、全く意味がないので、シェア率は非常に大事だと思っている。

最近データでは、88%ぐらいがwindowsであるという統計がある。web系やiosアプリならまだしも、パソコン一般人に使わせたいソフト(特にゲームとか)を作りたいなら、windowsしか選択肢ないと思う。

そんなわけで、元からmac使いなら、まだしもわざわざwindowsから乗り換える必要は全くない。

ただ、mac使いでも全くwindowsでないと非常に困るということは、ある程度は…無くなってきてはいるですよねー。

ほれ、クロスプラットフォーム開発が盛んで、ライブラリなどの環境から障害は、少なくなってきているので…ただし、ios開発お前だけは許さない。

本題から外れるが、2点ほど、釘差したいだけども。

1点目は、webからプログラミング始めたいとかいう奴に釘差したい、

web系はある程度セキュリティやらデータベース、コマンド知識やらないと爆死する。そんなわけで、GUIオンリーパソコンを楽しんできた奴には、マジでお勧めしない。

まずは、webからではなく、統合開発環境上で実行ファイル(メモ帳とか)を作れる方面から始めろ。そして、linuxとかネットワークとかセキュリティとかの本を片っ端から読め。webを始めるのは、それからだ。

webでも実行ファイルを作ることは、星の数ほどあるし、別に必要ない知識はないぞ。

2点目は、勉強とはいえ、いつも使っているOS上で、コマンドが使えるからと鯖建てるな。(windowsmacどちらも)

かならず、仮想OSでやれよ。ミスって、apacheインストールできないとか言われても、周りは困る。とりあえず、わけわかめになったら、スナップショットリセットしとけ。

2020-05-21

初心者向け】プログラミング言語人気TOP20簡易解説

概要

プログラミング経験からプログラミング勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点簡単解説してみます

対象読者はプログラミング経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。


ランキング

1位 JavaScript

Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネット世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページグリグリ動きまくりである

元々HTMLちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。

ブラウザ上で動くプログラミング言語基本的JavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。

ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。


2位タイ Python

機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。

Webも作れるが、日本ではWeb系の求人は少ない気がする。

言語としては、誰が書いても簡潔で読みやすコードになる傾向にあり、小さいプログラムを書くにはいい感じである米国ではプログラミング教育Pythonがよく使われているという話も聞くし、初心者プログラミングを始めるのにはいいのかもしれない。

将来AIデータサイエンスをやってみたいと思うのであればPythonから始めましょう。


2位タイ Java

ランキングでは常に一位に近い順位をつける言語Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去資産プログラマの数が多いのが一番の理由だと思う。AndroidアプリJavaで書く(もしくはKotlin)。

実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所短所としては、歴史ある言語下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストJavaScriptPHP, Ruby, Pythonあたりに比べると高い。

正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAJavaをかなりヘビーに使っているので要は玉石混交ということである

Androidアプリ作ってみたいというならJavaからはじめるのはアリ。


4位 PHP

Webページを作るためだけに生み出された言語プログラマの数が非常に多い。日本求人が一番多いのはJavaPHPであろう。

初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルであるしか基本的には古くてダメ言語とみなされており、PHPで作られたWebサービス脆弱性が多いという都市伝説もある。真実は闇の中である

近年のバージョンアップ比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。


5位 C#

Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。

最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#プログラマ結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。

ただし.NETUnityも触らない人にとっては基本的に縁のない言語である

なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。


6位 C++

C言語に色々な機能を足しまくってできた巨大な迷宮のような言語言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンス重要な開発において使われる。アプリサービスというよりは、それらを作るためのライブラリプラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。

基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。


7位タイ Ruby

このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界有名人である。ちなみに島根県出身、在住。

プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本情報が多く、情報収集という点ではとてもやりやすい。

Ruby on RailsというWebサービスを作るためのフレームワーク世界的に大ヒットしたため、必然的Ruby知名度も上昇した。少し前まで日本Webスタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Webプログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。

Webに興味があるのならRubyから始めるのが一番無難選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールカリキュラムに従いRailsをやりましょう。


7位タイ CSS

これは他の言語とは毛色の違う言語である。というかCSSプログラミング言語と呼んでいいのだろうか?

CSSHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトサイズを変えたりするのは基本的CSS役割である

すごく大雑把にいうと、HTMLで表示する内容(文章画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である

なので、Webに興味があるのであればある程度はCSS知識必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。


9位タイ TypeScript

TypeScript比較的新しい言語で、JavaScriptさら拡張したものであるMicrosoftによって開発されている。

プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語サクサクかけるし短く書けるがバグを生みやすプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。

そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである基本的JavaScript理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。

ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。


9位タイ C

C言語基本的OSを作るための言語であるOSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアであるAndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータ基本的OSがあって初めて動かすことができ、OS提供する機能を使ってブラウザスマホアプリなどを動かせるのである

というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語文法C言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaPHPなどはなんとなく雰囲気で書けてしまったりする。

そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味理解できるまでに2年かかった。才能がないとこうなるので注意。


11Swift

SwiftAppleによって作られたAppleのための言語であるiOSアプリiPhoneアプリと言い換えても良い)を作るためだけに存在している。

言語自体は他と比べて新しいため文法機能イケてる雰囲気があるので基本的はいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。


12Objective-C

Swiftが生まれる前はiOSアプリを書くためにObjective-C必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-Cアプリメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチ需要はこれからも残るのかもしれない。


13位タイ Scala

Scala関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター


13位タイ R

R言語データ解析用のプログラミング言語である

正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワード流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習AIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者最初にやるようなものではないことだけは確かである


15位タイ Go

Go言語比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用目的に作られたものであるしかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。

他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。

学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。

二番目や三番目に学ぶ言語としてはオススメ


15位タイ Shell

シェルというのはテレビなんかでハッカー的な人間PCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェル知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。

Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。


17PowerShell

PowerShellは上のShellの親戚みたいなもので、ShellがMacLinuxで動くのに対しPowerShellWindowsで動く。そんだけである。あと正直あまり知らない。


18位 Perl

ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語C++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である

今でも広く使われてはいるが、RubyPythonPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定目的があるのであればいいと思う。


19位 Kotlin

Kotlin簡単に言えばBetter JavaであるJavaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである

ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。

とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。

言語自体はとてもいい感じなので、もう少しコミュニティ成熟してくれば最初に学ぶ言語選択肢として有力になるかもしれない。


20Haskell

HaskellScalaと同じく関数型言語であるScalaJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語マスターしてからやりましょう。


総評

なんとなくWebに興味がありそうならJavaScriptRubyもしくはPHPAndroidアプリに興味があればJavaiPhoneアプリに興味があればSwiftAIデータ分析に興味があればPython3Dゲーム開発に興味があればC#。この辺りをやりましょう。

特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。

なお筆者はただのヘボプログラマであり、大好きな記事http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。

2020-03-01

MtGプログラミング言語の色

このプログラミング言語MtGだと多分この色の組み合わせだろう。

みたいなのをまとめたら次のようになった(TIOBEのランキングトップ50)。

後半は知らない言語もあって怪しいが、おおよそこのようになると思われる。

※改めて見てみると何箇所か違和感があったので最初の版からちょっとだけ修正した。

順位プログラミング言語色の組み合わせ 内訳
1 Java アブザン 白黒緑
2 C ゴルガリ 黒緑
3 Pythonティムール緑青
4 C++ ジャンド 黒赤緑
5 C#バント 緑白青
6 Visual Basic .NETレズニア 緑白
7 JavaScript ボロス 赤白
8 PHPグルール 赤緑
9 SQL 無色
10Swift 4C(緑欠色) 白青黒赤
11Go ゴルガリ 黒緑
12Assembly language 黒単
13 R ゼット 青赤
14 D グリクシス 青黒赤
15 Ruby 赤単
16 MATLABゼット 青赤
17PL/SQL 無色
18 Delphi/Object Pascal アゾリウス 白青
19 Perlラクドス 黒赤
20Objective-C エスパー 白青黒
21 SAS アゾリウス 白青
22 Visual Basic 緑単
23Dart ジェスカイ 青赤白
24Scratch 白単
25 Scala 5C 白青黒赤緑
26 Groovy ナヤ 赤緑白
27 Transact-SQL 無色
28F# アゾリウス 白青
29 Rust マルドゥ 赤白黒
30 COBOL オルゾフ 白黒
31ABAP アゾリウス 白青
32 Lispシミック緑青
33Kotlin 4C(緑欠色) 白青黒赤
34 Logo 白単
35 RPG ディミーア 青黒
36 Lua 緑単
37 Fortran スゥルタイ緑青
38 PowerShell ジェスカイ 青赤白
39 Ada ディミーア 青黒
40 LabVIEW ディミーア 青黒
41 Erlang 緑単
42 Julia ゼット 青赤
43 ML 青単
44 Schemeシミック緑青
45 Haskellエスパー 白青黒
46 TypeScript ジェスカイ 青赤白
47 OpenEdge ABL アゾリウス 白青
48 LiveCode アゾリウス 白青
49 PostScript 無色
50 ActionScript ジェスカイ 青赤白

見返してみるとおおよそ次のルールに従って決めているような気がした。

緑の判定があやふやな気が若干しないでもない…

イメージ
レイヤ初心者向け
浮世離れベンダー
レイヤ、黒魔術
速い、先進
基盤、グル
無色 道具

2020-02-27

anond:20200227004129

VisualBasic:

BASICをそれなりに進化させた言語だよ!

20年以上前骨董品だけど、バイナリWindows10でも動くし、

Excelマクロはこれの方言なので意外と現役だよ。

 

VB.NET:

C#VisualBasicっぽい構文に変えた言語だよ!

C#VB.NET双子のようなもので片方にできてもう片方に

できないことは基本的に無いよ。

 

PowerShell:

コマンドラインプログラム言語の奇妙な融合体だよ!

独特なコマンド名で人を寄せ付けない雰囲気を出してるけど、

仲良くなってみると意外といいやつだよ!

2019-12-06

PowerShellでSocks v5プロキシを使いたいとき

何にとは言わないが、PowerShellでSocksを使いたいときに多分これで出来るというやつ。

https://qiita.com/kkdd/items/ac6e65f6e2e8fc32e7ca

これを参考に、認証は抜きでよいとやったら以下のようになる。

$proxyhost = "socks5://(host):(port)"

$proxyaddress = $proxyhost

$proxy = New-Object System.Net.WebProxy $proxyaddress

[System.Net.WebRequest]::DefaultWebProxy = $proxy

これを打った後Invoke-WebRequestを失敗するようになる(SOCKS未対応のためページ取得ができなくなる)ので、これで各種ネットワーク接続をするCLIソフトをSocksプロキシ経由で使えてる…と思う。

2019-12-05

エンジニア職に就いたあと辞めたポエム

補足→ https://anond.hatelabo.jp/20191205212350


これは退職アドベントカレンダー2019 (https://adventar.org/calendars/4051) 5日目の記事です。最初自分ブログに書くつもりでしたが、書いてるうちにどこまで筆が滑っているのかわからなくなったので増田に投げることしました。そしたら余計にタガが外れたのはご愛嬌

What's this

よく見かける「未経験からエンジニアへ!」ストーリーの、あまりなさそうなルートです。よくあるルートのほうはなぜかTwitterで報告して「○○系エンジニア」的な命名をしてから入社その後の動向が闇に葬られているのをかなりの確度で見かけますが、まあ、なんか、いろいろあるんでしょう。逆にそういう成功(?)体験生存バイアスを強化する情報ばかりあふれていると情報として健全でないように感じます

ということで、今年あった自分体験談を残すことにします。

といいつつ後日しれっと消えてたらInternetArchivesか魚拓で会いましょう。

この話はここから先はフィクションです。剣も魔法労基法も出てこないファンタジーです。

who are you

地方に潜むフリーターです。好きなvirtual beingsはロボ子さんと東雲めぐさんれいきらさんです。

これまでは自分のためのプログラムを書き散らすだけで、ITとは無関係バイトをしてきました。玉掛フォークリフトなら任せろーバリバリ

入社の経緯

会社にもぐりこんだいきさつはやや特殊なのでぼやかします。とあるきっかけで知り合った人から誘われました。リファラルです。なお、とあるきっかけはなにかと炎上しがちないわゆるプログラミングスクールなどではないことを防火剤がわりに書いておきます。そんなもんに使う金など無い。

その人のことはあんまりよく知らなかったのですが、CTOとして手伝っている会社システム部門で人手を探しているとのことでした。会社ホームページにはリクルートページなど無く、何をやっているかいまいち要領が掴めなかったのですが、ざっくりと自社製のWebアプリ開発をやる感じらしく、内容も聞いた限りでは(自分スキルと照らし合わせて)そんなにどえらいわけでもない印象でした。ちょうど金もないし無職だし、少し経験でも積んでみるかという気になったので、この際ホームページDreamWeaverサンプルを流用したまんまといった細かいところは観なかったことにしました。

面接にいくと社長から「いつからこれるの?」と言われたので「あっこれは」となりましたが、金がなかったので是非もなくそのまま入社の運びとなりました。この頃はプログラム書いて金もらえるなんてサイコーとか思ってました。ちなみにgithubatcoderアカウントを書いた職務経歴書は一顧だにされませんでした。

やったこ

地方製造業システム部門を切り出して別会社にした形態の、創立数年ほどの会社です。自分のほかにもうひとり、社内情シスのようなことをしている方がいましたが、基本的にはサポートが専門な感じでした(ただし肩書自分と同じでしたが)。紹介してくれたCTOは週に一度のMTGに顔を出すだけということで、実質的に常駐している人間プログラムが分かるのは業界経験自分だけというチャレンジングな環境からスタートしました。なお入社して社内の平均年齢を大幅に下げることになりました。

レスポンシブ化

ちょうど入ったタイミング情シスの方が抱えている仕事があり、とくにやることもなかったので手伝いました。グループ会社サイトスマホ対応させるもので、事情はわかりませんがそれまで他社に制作委託していたものを自社で運用することにしたとのことです。みてみるとWordPress4でPHP5が動き、Bootstrap3を使ったオリジナルカスタムテーマ運用してきた様でした。もちろん仕様書ローカル環境もあるはずがないのですが、どうせ自分Webデザインなど知らんのでとりあえず直にheader.phpにviewportを書いてmain.cssメディアクエリを設定して、ザ・web制作初歩みたいなレスポンシブ対応しましたが、デザインについて当事者との意見のすり合わせの機会なんかの開発手順はなかったので良しとしました。

新規Webサービス

入社して2周間ほどのち、社長についてこいと言われた打ち合わせの後日、MTGで「昨日のアレの進捗はどんな感じなの?」と聞かれたこから、いつのまにか新規案件自分に一任されていることに気づきました。仕様は前日の打ち合わせがすべてだった模様です。要件定義技術選定・検証のような工程など決まってないので好みで揃えました。趣味と関心からExpress+Mongo+Reactのセットか、触ったことのあるDjango/Railsでざっくりやるか、どうせならDockerも使い時か、こんなとき相談できる同僚やメンターが欲しいなぁなどと考えていたら、CTOがそれまで作っていたやつをみるとPHP+ES5+MySQLだったのでなんだかんだでそうすることになりました。PHPを初めて触り、「これがペラ1のphpjscssもなにもかも書いていくといういにしえのスタイルか…!」と新鮮な感じでやってました。

既存システムの移行

Windows Server 2012で動いていたサービスLinuxに移行しました。これは自分が入る前から情シスの方が任されていたのですが、マニュアルに沿ってコマンドを打ちこんではどこかで転け、エラーは読まずにあきらめてCentOSインストールからやり直すということを繰り返していたのを見るに見かねて手伝いました。SSHPowerShellからマニュアルコマンドコピペして実行する方法を教えてあげると目を丸くされました。shellファイルを書いてあげると魔法をみるのような顔で驚かれました。自分が入ってなければどうなっていたんだろうか...

自分ツール作成

毎日出退時間規定EXCELフォーマットに記帳する必要があり、これが非常にめんどくさく無駄に思えたので、自動記述するpython/Goスクリプトを書きました。これは入社して2日目とかだった気がします。しかしここを自動化しても「印刷して人事に提出し、それをもとに人事の方がまたEXCELに書き込む」と知り虚無になったりしました。

FE取得

これはやったことというか思うところあってプライベートで取り組んだことです。自分想像していた開発現場との乖離を感じたので、こういうのはFE勉強すればわかるのかもしれないと思って1ヶ月くらいやって取りましたが、得られた知識会社に活かせそうなものは何一つありませんでした。

チーム開発などという概念存在せず、「1案件を1人で上流から実装運用保守サポートまですべてやる」という進め方でびっくりしました。手持ちの技術スタックでできる範囲ギリギリなんとかやった感じです。よく転職サイト上で見かける文言で「お任せします」がありますが、これとかも要するに「丸投げ」の換言なんでしょうか。わたし気になります

とりくめなかったこ

自分のように途中からジョインした人に対しての業務移行のシステムがないことから感じていましたが、案の定「誰かが抜けたあとの引き継ぎの機能」も整備されてないことに気づきました。もともとオンボーディングや研修概念などありません。えらいひとは「そのへんは現場で協力してうまくやって」と丸投げし、すべての作業を自宅でやっているCTOは社内のこうした事情については放任で、いちおう情シスの方がいつのまにかメンター代わりになっていたものの、不明点を尋ねても頓珍漢な返答が多くもどかしかったです。どのサーバでどんなサービスが動いているのかやSSH情報を聞き出すのに苦労しました。こうした不幸と無駄時間をなくすためにドキュメントを整備しようとしたのですが、頓挫しました。これから物理フォルダーと社内サーバ散逸した各種の情報混沌を深めていくのでしょう。gitも無いし。

サーバオンプレでした。自分クレカをもっていないためパブリッククラウドを試す機会がなく、ぜひとも触ってみたかったのですが、承認を得るための説明がうまくいかず、結局VBoxでやることになりました。唯一、それまで使われていたVBoxではなくVagrantを導入したのは少しだけ救いでした。どうせ自分しかいじらないのですが。

余談ですがオンプレ面白かったのはHDD増設のために初めてデータセンターなるものに入ったことです。インフラ/ネットワークはまったく分からんしなかなか個人で試せない領域だし縁がないかなと思っていたのですがやはりそこに見える物理層が存在するというのはテンションがあがりますね(断層みたいに言うな)

イキってカイゼンジャーニー情熱プログラマーを買って読んだりもしました。目につくように共同図書のつもりで「ご自由にどうぞ」を添えて自分ロッカーに置いておいたら「私物は持ち帰れ」と言われてしまったので持ち帰りました。

退職経緯

さてお待ちかねメインディッシュですね。

もともと技術コンテンツ会社ではなく、技術畑の人間がまったくいないことのインプレッションが次第に違和感として強く響いてきました。ITエンジニアとしてやっていくつもりの観点でみると、学習や成長の土壌は無いように思えました。協調関係や信頼がうまく築けず、自分のすべき道筋不明瞭のままやっていけるほどタフなYATTEIKI精神ではなかったのです。

これは地方の、それもIT気質のあるわけではない、ワンマン経営中小製造業ならばどこにでもあることかと思われますが、随所に感じるレガシーさに疲れてしまいました。一例を挙げると、毎朝30分に亘り行われる全社清掃(もちろん業務時間外)、社是の復唱、『感謝言葉をみんなで味わうポエム』の輪読、その感想大会、頻繁に行われる中身のない会議日報エクセルで書いてメールで送ったり、出退勤表を毎日エクセルに書いて印刷して事務方に持っていくなどのルーティンがけっこう苦痛でした。

社内のコミュニケーションツールLINEだったので使い勝手も悪く、会議chatworkslackを使いましょうと提案しても誰一人としてそれらの存在を知らず、「勝手にやってくれ」と言われてしまったり。LINE WARKすら知らんやんけ。説明しても「skypeじゃ駄目なの?」と言われたので諦めました。

えらい人の思いつきのたびに方向性が変わり、当人発言したらそれで全て完了した気になってしまったのか、会議終了後の10分後に「さっき言ったやつまだ出来てないの?」などと言われた時はギャグかと思いました。会議議事録も誰も見返さないので果たして意味があったのか疑問です。誰かひとりでもmarkdownが書けたり、少なくとも書く気があれば勉強会を開催してHackMDなどを推せたのですが。議事録機能していないエピソードとしてひとつ思い出しました。開発中に機能追加を下された際に、その挙動は完全にプラットフォームネイティブであり今の技術選定だと作り直しになり、結果納期に間に合わない(し、自分技術スタックからも遠く外れていたので学習コストも加算)と発言したらその場は収まったのですが、会議終了後に個人メールで「やはり機能マストだ」と伝えられました。当然それは議事録に反映されることなく、なんかしらんけどそういうことになっているという感じになりました。

初めてのエンジニア職でしたが、社内に開発をる人やマネージャー職は不在で、いわゆる開発現場での流れを学ぶことはできませんでした。少なくとも技術を知らないえらいひとが「俺がスケジュールを立てたからこれに沿ってやれ」と、”開発”と”広告作成しか書かれていない2週間の計画表をもってくるような現場システム開発として正しいのか、 と本能が警告を発していました。

もともと会社製造業から始まったため、えらい人たちとの見解齟齬があったのは体感としてあります。同じものづくりといえど設備マンパワー時間線形的に結果に結びつく工場業務と異なり、システムエンジニアリングはかける時間見積もりも容易でなく、かかった時間が必ずしも結果に結びつかないものである、と言う事実は受け入れられ難く、知識ドメインマインドセットが異なれば説明も困難です。しかしながらえらいひとは一様に「経営視点を」の号令で、経営誌を配り、その感想文の提出を義務付けるなど、現場視点を欠いた行動で現場(というか私)を疲弊してました。気づいたらSEO対策や別部署MTGのためのプロジェクター設定、全PCwindows updateに伴うドライバ更新の役も同一の職掌として役付けられそうになっていたり(一部は実際に情シスの人がやってた)、It’s not my workなシーンがみられるようになっていました。

そして、よくあることですが、理念実態乖離していたことです。世界をよりよくと言いつつ、目先の掛け算を考えてばかりのように思えました。グロースする中で発生しそうなあれこれをすっ飛ばし利益だけを皮算用するのはいいとして、データ量やトラフィックを指摘すると「そこは現場努力でしょう」となるので、世界を良くする前に精神を悪くしてしま人生で初めて心療内科にいったりもしました。一応グローバル展開を目指しているとしながらサーバからMailerDaemonが飛んできたら「ギャっ英語っ!」と言って読まず捨ててたり、急にサービスが止まった時には激怒して責任所在の追求を求められたため、草創期にえらい人の個人アドレスで取得してほったらかしにしていたドメインが失効したことが原因と伝えたら「あれはもう読んでいないアドレスだし仕方ない。こういうピンチときこそチャンスにしようぜ」という謎理論を出されたこともありました。

違和感が確かなものになったのは、外部に提出する資料で社内の数字が異なっているとを指摘すると「こういうのは見栄が大事なんだ」と暗に公文書偽造をほのめかされたことですが、これ以上は闇っぽいので書きません(たぶんどこもやってて罷り通ってる範囲だと思うけど)

総じて、心理的安全性の低さ、そこからくる身動きのとれなさ、ロールモデルの不在、前時代的な風潮、社内文化へのミスマッチと不理解、成長の実感が沸かない不安と不満、それらに伴う摂取アルコール量の異常な増大と過食、といった要因の積み重ねが、ネガティヴな形での退職へと駆り立てることになったのだと思います。まあ、よく知らんうちにリファラルしてるところからして「採用教育コストを考えてないのでは?」の念はあったのですが。中身がまったく不透明状態で飛び込んだらそうなるよなぁ、の好例かもしれません。誘われた時はわりと藁にも縋る思いだったのでしかたないね

これから

現在スキー場住み込みバイトしてます。無考えに退職すると年を越せないことに気づきました。

可処分所得可処分時間いずれも今の方が上なのはちょっとウケます賃金ふつうに生きていければいいので前職程度でも気にしなかった程度なんですが。いまは映画をみたり積ん読を消費したり、在職時は深いところまで触れなかったPHPをいじったり、生PHPしかやってないことに気づいたのでcakeやったり、あとはweb周辺も久しぶりにキャッチアップしたりしてます。nodeネイティブおじさんなのでFWはangularしか知らないんですよね。vue/nest面白そうな感じです。あと寮のwifi談話室限定で窒息しそうだったので、持ち込んでいたラズパイルータにして部屋まで飛ばしたら隣室の同僚から感謝されたりと活動は多岐に渡ります

先のことはなにも決まってませんが、ちゃんエンジニアリングしている組織で開発してみたいなという気持ちがありますレビュースクラムアジャイルなんてのはひとりだと不可能ですし。ですが、やはりそういった会社日本では都市部にばかり集中しているのでしょう。自分空気の悪いところには住めないし、案外また辺鄙なところでtechとは無関係のことをしているのかもしれません。ワーホリでも使って海外大麻栽培でも始めようかなぁ。

いかがでしたか

巷説に流布する「未経験からエンジニアへ」の言説のたぐいは、どちらかというと技術力よりもコミュ力が偏って高いタイプ生存しがちな雰囲気を感じます。たまにTLに流れてきたのを見かけますが、ああいった立ち回りは自分にはできないしやりたくないなぁと思ってきました。社会要請ならばそれまでですが。

自分は体系的な情報教育を受けていないどこにでもいる地方高卒で、下手の横好きで趣味プログラムを書いてきたし、続けてるってことはそれなりに好きなんだと思います。得意じゃないけど。んで、こんなのがITエンジニアをしたサンプルというのは見かけないかもなぁと思って投稿しました。光あるところに闇あり。

といいつつ、やっぱり好きなことの結果がおかねになるのはいいよなぁと思った次第です。プログラムを書くのは楽しいけどエンジニアリングは超絶むずい、が雑な総括ですが、今回のことを顛末次第にはする気はないので、どこかに拾ってもらえるよう精進するきもちになりました。

ぼくのポエムはこれでおしまい。じゃあね。

2019-11-27

Powershellフォルダのみのフルパスを取得したい。

Windowsコマンドが使えないかpowershellを利用しようとしているんだけど

やりたい出力結果にならない。

\\test\テストサービス\テスト1\

\\test\テストサービス\テスト2\

\\test\テストサービス\テスト3\

\\test\テストロゴ\テスト4

\\test\テストロゴ\テスト5

\\test\テストロゴ\テスト6

\\test\テスト4

\\test\テストディレクトリ\テスト9

\\test\テストディレクトリ\テスト10

こんな感じに出力したい。

Get-ChildItem -Recurse | Out-File -FilePath Sample.txt

ってやっても違うし…。

フォルダ階層深くて、ファイル名まで出てくると邪魔だし途切れるし…。

良い方法ない?マスダー。

2019-10-19

マイクロソフトWindows上の全てのアプリ連携自動化して世の中の生産性を上げて欲しい

OS自体自動化ができればRPAのようなソフト不要になるはずだ。

PowerShellWSHかけば良いだろという話もあるだろうが、中途半端な社内アプリGUIしか対応しておらず、GUIで動かしたいときはある。

作業を録画しておいて再生するというマクロがあるが、画面の座標が埋め込まれて、結局なにやるのかわからない。

ウィンドウハンドラを操作して位置を調整なんて本来いらないはずだ。

GUI間の連携となると、csv吐き出して、別ので読み込ませてなんてのもやらずにメモリ内でやり取りしたい。

デスクトップ画像認識も辞めたい。遅いし、ウィンドウが全面になければならない。

timerでマウスクリックして処理が終わるまでの時間を待つなんてのも辞めたい。


できるなら物を動かすところまで行って欲しい。

2019-08-31

もうちょっと自動化って楽に出来るようにならないものだろうか

RPAもやってるとプログラミングいいんじゃないかと思えてくる面倒くささがある。

PowerShell管理はいいけど、アプリ間の連携はめんどくさい。

Pythonは1000万行くらいのデータになるとノートパソコンだと死んでくる。

2019-06-26

仕事効率上げる方法ってもうあまりないのだろうか

会社によって制限が違うのだろうけど、PowerShellPythonVBA、Jupyter lab、OpenCVMS Office辺りで仕事をしている。

RPA流行ってるが導入されないので、inspect.exeUI調べるしかない。

COM操作で出来る限りレポートの負荷を下げられないかと思うが、どう判断たかコメント追加しなければならず、減らせない。


実験効率化もしたいところだが、M2MIoTが叫ばれてからかなり経つが、RS232C以降になると余計にめんどくさかったりする。

Bluetoothが途切れたりとか。信頼性考えてEtherCATなんて設備組み換えを頻繁するから出来ないし、そもそも計測器についていなかったりする。


ロボットアームも検討したがまだ月100万かかり価格的にもまだ高い。

1年ほど同じ作業するならティーチングするコストもペイできそうだが、数日で実験内容も変わるので、そのコスト馬鹿にならないので諦めた。


メモリ4GBのノートパソコンを出来る限りフル回転させてるが、きつい。

ディープラーニング自動化出来るかとTensorflowで試したが当たりまでだが死んだ。


論文探すのも読むのも時間が取れてない。

MendeleyとGoogleアラートで出て来るのをタイトルと図をざっと見るくらいだ。

論文探したり読んだりするのを効率化するソフトサービスも足りてないと思う。



少しでも効率上げられればと思うのだが、グーグルさんに検索かけても出てこない。

2019-03-27

PowerShellもいつの間にかLinuxで使えるようになってたんだねぇ。

うーん、bashで十分かな。

2019-03-02

powershellファイルパスを \ で split すると「パターンの末尾に無効な \ があります」って出てくるんだけどなんで

2019-01-19

生産性アップさせたいんだったらChangeKeyとAutoHotkey使わせろ

そんでPowerShellの実行権限よこせ

2019-01-18

事務屋はpowershell必修

プログラミングとかやったことなくても30分ありゃ使えるようになるでしょ

2018-12-27

Windows自動化が辛い

OpenCVボタン一致するのを探すのが遅い。

かといって、UI要素検索するのも結構たいへん。PowerShellPythonいったりきたり。

Outlook自動化情報なんてネット殆どない。

2018-11-30

悲報俺氏エラー コード: 0x803F8001が解決せずに咽び泣く

Windows10Home(64bit)でソリティアとかマインスイーパーやらMicrosoftゲームを起動したら

「お使いのアカウントMicrosoft xxxx現在利用できません。エラー コード: 0x803F8001」

とのメッセージが出るからググったら以下のような解決策が見つかるがどれを実行しても解決しない

WindowsUpdateで最新の状態にする

・ 「Windowsストアアプリ」のトラブルシューティングツール実行

・「アプリ機能」の「詳細オプション」で「リセット

サインアウトしてサインイン

アンインストールして再インストール

・wsresetを実行

・cmdで「PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage Microsoft.WindowsStore).InstallLocation + '\AppxManifest.xml' ; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"」を実行

OS再起動

2018-11-17

PowerShellでUIAutomationってあまりやらないのか

RPAはどれも高い・・・。そして遅い。

CUIGUIを行き来して自動化したいだけなんだが。

PowerShellGUI触るの、情報が古かったり、あまり出てこなかったり。

2018-11-13

CもC++C#F#GoPythonPHP,Perl,Java,JavaSCRIPT,80アセンブラ,68アセンブラ,Bash,Csh,Powershellも書けるというのに

英語がぜんぜん使えないのはなぜだ。

2018-11-08

事務仕事でやるときpowershellごりごり使ってるやついるの?

2018-10-06

IT系の人には想像つかんかもしれんが、我々のようなPCを単なる道具としてしか使わない人間にとってはPowershellだろうがbashだろうがどうでもいいわけ

いちいち新しい環境に乗り換える習得コストとか考えるとペイしないかbashを使い続けてるしそれでいいじゃん

COBOLFORTRANコードがいまだに広く使われてるのもそうだよ、世の中なんでもIT系の思う通りに行くと思ったら大間違いだ。

2018-09-02

プログラマにとってはゴミだろうけど事務屋にとってはvbsは神。

何かをインストールしなくていいので許可もいらないしテキスト処理ならかなりいける。

powershellもいいのはいいんだけどちょっと違う。

2018-06-24

中2娘のWindowsデビュー

娘がWindowsデビューしてそこそこの日数が経った

構成HDDHOME以下をバックアップした後にUbuntuを削除、Windowsクリーンインストールさせた

当然UbuntuWindows共存も考えたが、共存状態だと使い慣れたUbuntuへ逃げる可能性があったので、少々可哀想だったがUbuntuは削除した

良い機会だったので隣で図解をまじえて教えながら娘自身インストール作業をさせた

「えっじゃあ他のプライマリパーティションUbuntuも一緒にインストールできるってこと?」

「その認識で間違いないけど今回はWindows練習のためにしない」

Windowsを起動してデスクトップを表示し、娘がまずやったことはWindowsキー(Superキー)を押下だった

「その辺は学校でやってるから判るだろ?」

「判るけど学校パソコンには無いパネルがかなりある

学生は遊ぶだろうしね余計なの消してんだろw」

「あー確かにw」

学校パソコンにはないであろうパネルを「ふーん」とクリックしながら、何かに納得したのか「じゃあそろそろクリスタ」と言われ、最大の目的であるクリスタインストールした

クリスタインストールが終わると、もう良いよと言わんばかりに「わからなくなったら呼ぶね」とアッチ行けされ初日を終えた

日経つと「ターミナルがない」と言われたので「SuperキーからのC,M,DしてEnterで起動するはずだけどcmdはLinuxと使い方が全く違うから調べたほうが良いよ」とアドバイスした

娘が自室に行くと直ぐ戻ってきて「cdできたけどlsできないんだけど?」と言われ「使い方違うと言ったろ?cmdの場合ディレクトリ内容一覧はD,I,R」と言いつつ娘の自室へ向かう

「昨日から少し試してたんだけどWindowsターミナルって全然違うよね?」

「うん違うし、今使ってもらってるのcmdって呼ばれたりコマンドプロンプトって呼ばれてるんだけど、もう一個パワーシェル(PowerShell)というのもある」

「こっちの方がLinuxに近いかもなぁ。lsはできる。だけどtouchはできないぞ。その辺はググれ」

「えっ?touchできないって意味わかんないんだけど」

PowerShell場合はN,E,W,-,I,T,E,Mでできる。cmdは作成できないわけでないけど、ファイル作成のためコマンドというものそもそも存在しない」

Vimも無かった。というかアプリ設定ファイルがどれなのかすら判らない」

「この辺りはLinuxじゃないと諦めて新規ツールを追加するしかない。Windows作法に慣れろ」

「うーん・・・慣れかぁ」

予想通りLinuxWindowsの違いに戸惑っている様だけど、本当に慣れてもらうしかない

娘が「そういえばアプリってどうやってアンインストールするの?」と聞いてきた

スタートメニューアプリアイコン右クリックしてアンインストール。別窓でプログラム機能が起動したらそこからアンインストール

そう教えると再びアッチ行けされてしまった。父ちゃん寂しい・・・

そして昨日いろいろと娘にWindowsの使い勝手を聞いてみた結果が下記の通り

良いところも悪いところもまだまだ色々と言っていたけれど忘れてしまった。女の子は喋り出すとアッチコッチに行って止まらない・・・

また何かしら変化があったら報告しようと思う

-----------

追伸

ディストーション本当にすみませんでしたギャギャギャーン

ログイン ユーザー登録
ようこそ ゲスト さん