「アプリケーションサーバ」を含む日記 RSS

はてなキーワード: アプリケーションサーバとは

2020-08-01

フロントエンドの開発環境って何でこんな面倒くさいんやろ…

webpackとnpmの設定何でこんな面倒臭いんだろう。

慣れれば違うんだろうし必須ではないんだろうけど、あれ入れてこれ入れてが面倒臭い

おまけに、typescriptが良いだの、フレームワークを使うだの、テスト作るだの。

かに必要なのはわかるけど、一片に全部出来ないとスタート地点にも立てないんだものな。

最近ではSPAも多いか仮想アプリケーションサーバー、WebサーバーDBサーバー立てて、サーバーサイドでAPIも作らにゃならん。

最近は大変すぎるやろ…。

2020-07-23

anond:20200723075309

昔と違って、WindowsアプリiOSAndroidアプリケーションサーバもWeb画面もC#覚えれば済む

2019-07-12

anond:20190712134213

アプリケーションサーバ自体クラックされているんです。

それで、カーネルレベルルートキットが仕組まれていて、

ID&PASS相当の情報メモリ上の通過するたびに自動漏洩しています

まりセブンペイに会員登録して、ID&PASSが発行されると同時に

ウェブアプリケーション上には一切のセキュリティホールが無いにもかかわらず

クラッカーは知ることができてしまます

なんでアプリケーションサーバクラックされているかというと、

開発の下請け孫請け中国人がこっそり仕掛けたからです。

ぶっちゃけて言えば内部犯行であり、サービス開始前から仕掛けが出来上がっていたのです。

2019-06-08

メモリ128GB+16C32TのCPU vs メモリ32GB+4C8TのCPU x 4台

サーバとして運用するならどっちのほうがコスパがいい?

普通にアプリケーションサーバとして処理ガンガン回す想定で。

2017-05-28

rails5.1から標準になっているpumaって本番に使えそう?

cruby を使っているならunicornにしてください。

crubyには、GVLがあるのでスレッドで動くアプリケーションサーバは、worker数を増やしたところで一定より性能は向上しないと思うんだよね。だってWEBアプリケーションってCPUバインドだもん。

アプリケーションDB以外へのIOでリソースを食っているなら設計見直したほうがいいし、最悪pumaを使ってください。

ちなみに開発環境pumaが標準になっているのは、webrickと比べて静的ファイル配信がはやく終わるからなんだよ。間違っても本番環境pumaを推奨している訳じゃないからね。

ちなみにheroku場合は、フロントwebサーバを配置できないので、スロークライアントunicorn workerを取られるくらいならpumaします、という覚悟必要

2017-04-18

[]4月18日

○朝食:なし

○昼食:チャーハン

○夕食:食べたくない

調子

仕事は早速出たバグ調査をしてたが、アプリケーションサーバーを再起動したら治ってバグ再現しなくなったので、報告して経過観察とした。

バグが出ないとやることがないので、テストデータ作成の手伝いとかをしてた。

来週までにやればいいんだけど、多分明日の午前中には終わる。

まあ、どうせバグが出るから、その調査必要なんだけど。

家に帰ってから被害妄想が止まらなくなって、気持ち悪い。

久々に頓服を飲んだので、効くのを落ち着いて待とう。

DS

世界樹の迷宮II

昨日全滅したせいで、昨日のプレイが帳消しになったのが手痛くて、やる気が大幅ダウン。

積みゲーにしちゃおうかな。

3DS

すれちがいMii広場

勇者食堂二週目を進行中、先は長い、まだ半分もいってない。

ポケとる

メガヘルガーランキング戦はマックスレベルアップが二つもらえた。

よかったよかった。

ポケモンサファリ攻略中(ビビヨンシキジカの二匹を捕獲

iPhone

ポケモンコマスター

ログボのみ。

2017-01-29

決戦!クラウドに降る雪

突如として増田の前に現れるプロトタイプ増田11(旧11人の増田)。

アルファブロガーが残したとされる禁忌ネタを使い5000ブクマを動員してyahooニュースにも掲載される。

荒れ狂うYahoo砲とはてブ砲の前に次々とサービス停止に追い込まれはてなサーバ

akamaiバックエンドごと葬り去るその威力の前に、政府非常事態宣言を発令。

はてな運営東京DCを捨て、dockerを使い、北海道石狩にあるデータセンターサービス復旧を試みるも、

自分を偽って送り続ける退屈な日常と決別して、この非常事態に対する挑戦を開始した。

次回、「決戦!クラウドに降る雪」

君のpingアプリケーションサーバに届いているか

という感じの合体ロボものになりませんか。 >さくらインターネット

2016-11-20

からお前らはブラックなんだよ?

ローカル仮想環境たてて開発するとマシンスペック足りない人いるか

みんなで一緒の開発環境上で開発しようね。

その際上書き事故防止のためにロック機能必須だね」

→ アホですか?

Gitは使い方難しくて工数増えちゃうからSVNソース管理しようね。

ソース触るときは他に開発中の人いないかチャット確認してね。」

→ アホですか?

「開発環境を構築するときは全部ちゃんとメモしてね。

あとで検証環境と本番環境でも同じ手順で構築するからコマンドまで細かく書いてね?

chef?ansible? itamae? 自動化するとミスがあったときにハマっちゃうからね。

手動が確実だよ。」

→ アホですか?

「Java8?使ったことないか不安だね。今回はJava7で行こうか。実績あるから安心だね」

→ アホですか?

JavaEE?使ったことないか不安だね。今回は大規模案件から使いなれたJavaSEにしよう。

アプリケーションサーバTomcatいいね

→ アホですか?

設計書書くとき知識がない人がみてもわかるように書こうね。

かいロジックまで設計書まで落とし込めるといいね

もちろんExcelで書いてね。更新するとき更新履歴シートに更新内容書いてね。

ファイル名は日付をちゃんと書くこと。更新したらチャットで報告してね。」

→ アホですか?


こんな会社は僕のとこだけだよね?

2016-01-23

SIはやめておけ

20代の数年間SIで働いた。1年以上前退職して今は別業界にいる。

今日、Evernoteを整理していたら「退職理由、SIの嫌な点」というメモが発掘された。退職直前のかなりストレスがたまっていた時期に書き殴った文章だった。学生の頃の私は絵を書いたりしていて、ものづくり暮らしたいな〜などと思って始めたプログラミングが楽しかったので安易に受託開発業を選んでしまったが、その後悔が如実に表れていた。

一部自分でも覚えていない話もあったがコンテンツとしては面白かったし、今でもシステムインテグレーター業界で消耗する若者を減らしたいとは思うので公開してみる。

以下、同メモに加筆・修正したものなのでファンタジーだと思って読んでくれ。

工数至上主義

受注した時点で売上がおよそ確定するので、後はその予定工数に収めて納品できれば御の字という考え方。よくある話だが、見積おかしくても顧客と対等な関係が築けていないから追加請求もできない。時間(工数)をかければ良い成果物ができるかもしれないがそれを説明して顧客に嫌な顔をされたくないから、限られた工数の中での最善を尽くす。最善を尽くす、聞こえは良いが要は手を抜く。

まり、どう頑張っても売上は同じなのだから、良いもの価値を生むものを作ろうと考えない人が多い。社内で開発者と呼ばれる人間もそうだし、マネジメント層はそういうものづくり志向を持った人をリスク扱いすることもある。

これが諸問題の根源で、いかに述べるような組織プロジェクトが出来上がっていく。

作業効率化しない

マニュアル作業の正確さをかたくなに信じてる人だらけで、ITとは何なんだと考えさせられる。

私は定型作業効率化しようとjsやrubyスクリプトを書いたりしていた。テストデータを開発用DBに突っ込んだり、テキスト処理して整形したり、Excelからコード生成したりするよくあるやつ。

あるとき上司に肩越しに自分作業を覗かれて「何やってるの?」と聞かれ、そういうスクリプトを作ってると答えたら、工数とリスクの話をされた。曰く「そのスクリプト作るのに何日かかるの?工数に乗ってないよね?」「スクリプトテストもちゃんとしないと結果が正しいって保証できなくない?」と。この時はイラッとして「30分でできる数十行のスクリプトだし自分作業工数内で完結する。むしろ工程や別の人でも同じことを再現性できて楽になる」とか真面目に説明してプログラムも見せたが、読もうとはせず(読めないので)1時間無駄にした。

技術力いらない

前述したようなビジネスモデルから営業力と、予定工数で無難プロジェクトを終えるマネジメント力が大事。IT企業だが開発者は自社で持たない。不況の時に待機コストが発生するリスクがあるし、自社で抱えるより単価の安い開発者人材派遣系の企業や下請けにいっぱいいるから。

社長があるとき社内広報で「技術は買うものだ」と言っていた。文脈で明らかに技術=技術者のことだったので、使い捨ての人売り業と揶揄されていることへの自覚が無いと思う。

そういう人が集まっているor残っている組織なので開発者ほとんどいない。20〜30人ぐらいの課に1人ぐらいの割合でstaticおじさんがちらほらいるぐらい。大体20代からプロジェクトリーダーという立場をやり始め、だんだん大型の案件を扱えるようになっていき、後は出世ゲーム部長お気に入り課長になり、部門長のお気に入り部長になる。その繰り返し。

開発案件でのBP(ビジネスパートナー委託先、派遣下請け比率自分の周りだと1:5ぐらいが多い。プロパー社員一人が5人の開発を仕切る、みたいな形。案件規模によりだいぶ差があると思う。この比率が高い=マネジメント力のある組織と考える会社はこの数字を上げようと必死で、比率の低い組織は評価が下がる。

私は開発が好きだったのでエンジニアとして生きていきたい、というようなことを評価面談の度に伝えているが、その度に会社の目指す方向を説かれてモチベーションが下がる。

意識の低い開発者メンバー

上述の通り、案件で接する開発者基本的に社外の人間なのだが、彼らの技術力と意識の高さにはものすごいばらつきがある。言われたものはなんでもこなせる人、何でこの歳まで技術者やれてるんだと疑う人、このプロジェクトおかしいと良い意味で騒ぐ人、何も意見を言わない人、CっぽくJavaを書く人、人当たりは良いが技術力がいまいちな人、すぐ休む人、バグやミスを隠す人…etc。

まぁ色んな人がいるのはどの業界のどの職種も同じだが問題は質だ。私の主観になるが本当にエンジニアとして尊敬できるレベルの人は1%いるかいないか。というのも、ほとんどの技術者は長年SIやその周辺企業と付き合ってきているので同じ体質に染まっているのだ。顧客が良いといえば良いという態度(この場合顧客は私が所属する企業)、請負場合は工数を超えない範囲で手を抜く姿勢、その他諸々。技術力だけをひたすら磨き続けてきたという人はごく一部だけだったし、そんな人でもGitHubアカウント持ってない・ブログやってない・OSSに貢献したことない、といった具合でクローズド世界で生きている。

そうした技術者とやっていく中で最も厄介なのが教育コストだ。案件のあるなしで人が都度入れ替わり、新しい人が来るたびに同じシステム・技術要素の説明をして何とかやる気が出るようモチベートして、というのを繰り返すのに疲れた。私の会社固有の変なルール説明はてきとうにしておいて、私は技術が好きな仲間が欲しかったので今のシステム課題と技術面での改善や展望をよく話す。が、あまり食いつかれることはない。これは私の問題だが、そうした期待と落胆のループ疲弊の一因だ。

static BP

ある時、一つの課に6年近くいるというBPと一緒に仕事をする機会があった。その課にはプロパー技術者が長いことおらず、彼がその課の技術的中心を担っているという話だった。抜けられると途端に色んなものが崩壊するからという理由で、その人の派遣元にはかなり高額の単価を支払っていたと聞いた。課員が口をそろえて「あの人はすごい」「何でもできる」というので初めはかなり期待していた。

だが、拍子抜けした。あまりにも仕事が雑なのだコミットされたコードはTODOコメントだらけだし、バグがあまりにも多かった。一度も実行されずにコミットされ、他の人がチェックアウトした時点で判明したバグなんかもあった。それでも声が大きく、プロパーが技術を知らないのをいいことに自分ブランディングに完全に成功していた。客先にも顔を出し、信頼を得ているらしかった。「自分は設計が得意でテスト以降の工程には興味が無い」と言っていた。確かに彼が関わった各システムには独特の概念が埋め込まれた設計があったが、その複雑な設計は保守性が低く、他の開発者が触ると容易にバグを引き起こしていた。

また、彼はJavaの有名なフレームワークであるStruts拡張したいわゆるオレオレフレームワークを開発しており、それの出来は悪くなかったと思う。そのフレームワークに欠けているものをうまく補うような形になっていた。だがフレームワークバージョンを上げると壊れるというのが残念な点で負債になりかけていた。

私は異動したが、彼は今でもそこにいると聞いた。

技術の話

テストコード書けない

(最低限のものしか作らないから)安くて早い!という触れ込みで売っているので、テストの工数が異常に少ないことも多い。特にテストコードを書くなんてもってのほか。そういう世界でやってきた人ばかりなので、30や40超えたマネジメント側は「テストコードって何?」状態だ。大型の改修案件が来た時にはコア機能だけでもテストを書いていこうと見積段階から社内で提案したが「顧客に『そんなメリットあるなら何で今までのプロジェクトではやってないの?』って問われるから絶対言うなよ」と拒否された。

保守案件をやっていた頃、時間を捻出してコソコソとテストコードを書いたりしていた。その案件を離れてしばらく後、ある時リポジトリを覗いたら私が書いたテストコードがばっさり消えていて驚いた。コミットログから課内のstaticおじさん的な人が消したとわかったが、そのコミットコメントが「現在使用していないコードを削除」だった。これはもう問う気も失せて何も言えなかった。

リファクタできない

先述したようにテストがそもそもないプロジェクトが基本なのでリファクタできないのだが、たとえテストがあったとしても勝手なリファクタは許されない。ソースコード顧客の持ち物なので同意なしに改変することはいわば契約違反なのだ。たとえ内的品質が向上してコスト削減に繋がるとしても、そのためにお金を支払う顧客はまずいない。

レビューない

私がいたどの案件にもコードレビューがなかった。リーダー開発者数人という構成場合、まず開発者は全員下請けリーダーは技術の心得がない場合が多い。そうなると彼らの成果物の良し悪しを図るのは目に見えるシステム挙動実施されたテスト結果のExcel報告書だけになる。これが非常に非効率で、少しコードを読めばわかる明らかなバグや仕様理解齟齬が頻発していた。特に入試験と呼ばれるリリース直前の顧客側での最終確認や本番稼働中におけるhotfixは全機能をきちんとテストせずにデプロイされることが多く、そのhotfixがさらなるバグを引き起こしたりもしていた。

そもそもテストを書けという話だがテストが無いプロジェクトに足すのはかなり大変なので、レビューサイクルをきちんと回すだけでもかなり変わる。実際、私が入った案件ではすべてのコミットに目を通すようにし、明らかな問題は都度指摘することで品質の向上に繋がった。欲を言えば他の開発者にもレビューしてもらいたいが、下請けの彼らの工数を増やすことは嫌がられる。

新規技術試せない

無難プロジェクトをこなすことと新しい技術を試すことの両立こそ技術者の腕の見せどころだと思っているが、ほとんどの場合それは許されなかった。新規にせよ継続にせよ案件を受注する段階で営業マネジメント層と顧客間で「今回は過去に実績のあるこの技術でやります」という契約が結ばれているからだ。その技術(言語フレームワーク)がいかに古く、保守性も将来性もないものだとしても受注できればよいし、その技術のサポート切れか何かの拍子で再度リプレイス案件でも受注できればさらラッキーぐらいの考えでいる。

常に横に倣えのアーキテクチャは私にとって面白くはなかった。

横に倣え

また横に倣えが加速してさらに悪い事に、同じアーキテクチャネットワーク再利用するために既存のサーバに新システム相乗りすればよいという発想も珍しくない。「資産再利用によりコスト削減」という触れ込みだったが、ただでさえスケールしない低スペックオンプレミスサーバ上で複数アプリケーションサーバ運用した結果、予想通り耐障害性が下がった。

また、Oracleライセンスが高いという理由で一つのDBインスタンス上に10数個のシステムが同時稼働しているなんてこともあった。1つのシステムが高負荷なクエリを投げたせいで関連する全システム共倒れになったこともあったがOracleのバグとして報告していた。

static Perlおじさん

新人の頃にOJTでstaticおじさんの下に付いたことがあった。そのとき担当したのはPerlデータ連携用のバッチを書くという開発業務だったのだが、最悪の思い出だ。

まずプログラム構造仕様書というのを書かされた。メソッド単位でのモジュールを全てExcel上に記述し、処理の順番と内容を説明するという謎資料だった。あまりに意味がわからなかったので「UMLのクラス図を書けばよいのですか?」と聞いたら「Perlクラスなんて必要ない。構造プログラミング研修でならってないのか」と返ってきた。「俺が前に書いたPerlバッチがあるから参考にしろ」と言われ、あるリポジトリをチェックアウトして見てみると1ファイル4,000行の.plがいくつか並んでいた。その時の私は何もわかっていなかったのでそういうものかと思ってしまったが後で調べて明らかにおかしいと気づいた。

また、そのプロジェクトのメイン言語Javaで、Eclipseを使っていたのでPerlプラグインを入れてコーディングデバッグをしていたらやめろと言われた。理由は「Eclipse上で動くPerlが信用できない。サクラエディタで書いてプリントデバッグすれば充分だ」と言われた。その時の私は何もわかっていなかったので、プラグイン品質が悪いとかそういう話かと思い「じゃあvimで書きます」と言ったら「サクラエディタしろと言っただろ!」と一喝され、vim vs サクラエディタという史上類を見ないエディタ論争が起きた。

待遇・制度

給与

SI業界の中では高いのかもしれないが決してよくはない。4年目(たぶん25歳)ぐらいで残業込みで年収400万にやっと届いたがそこからほとんど変わっていない。30歳の先輩に聞いたところ「500万前後残業してない場合の月の手取りは未だに20万切ることがある。残業抜きでは新婚生活が厳しい」と言っていた。いわゆる年功序列がきっちりしていてこのまま続けてもしばらくは給与が伸びないということがわかった。

個人での貢献で差がつくのは±10万程度。その程度ならいっそ無くてもいいのでは、と思う。というかそもそも生産性をきちんと評価する制度存在しない。これはどの組織でも難しい問題だと思うが、形骸化した評価制度上司の気に入った人間にS評価を付けているだけならいっそ止めたほうが時間の無駄にならなくてよい。

マシン

会社から貸与されるノートPCは低スペックすぎて開発には使い物にならない。なので開発者基本的デスクトップ使用せざるを得ないのだがこれもメモリ4G、1.2GHz程度で大したマシンでもない。本当に開発する気がない。

組織問題

とにかくクローズド組織

つの間にかどこかで意思決定がされていて、関与する機会がほとんどない。だがほとんどの社員がそれで良いと思ってる。失敗しても自分が決めたことじゃないから上層の責任だ、そう言えるので楽だから

情報共有をしない、というか意図的にしないようにしているとまで感じる。連絡はメール添付ファイルベースで行っているし、共有のファイルサーバなんてのもあったが一部のフォルダ権限を持った人間しか見られない。何で他の部や課が行った過去の見積提案資料自由に見られないんだよ。

ソースコードリポジトリも同様。外部に公開しないのはまだわかるが、プロジェクト外にすら基本は公開していない。別に奪われて困る大した技術もない。

会社が用意した提案資料共有サイトみたいなのもあったが、それに至ってはもっとひどい。課長以上もしくは部長から承認を与えられた者のみ閲覧可能。共有とは。

意思決定の遅さ

どうでもいいことを決めるにも承認や根回しや説得が必要になる。それがプロジェクト利害関係者ならまだわかるものの、まったく関わっていない上長(課長部長、時には部門長)を通さないと進まないという異常さ。

コスト削減

利益率向上のためにコスト削減ということがしきりに言われており、過剰なコスト削減対応生産性の低下を招いている。たとえば顧客に見せる資料以外は白黒で印刷しろ、みたいなルール。色がないために情報が伝わりにくい。というかそもそも印刷せずに各自ノートPCで見ろという話だが、先述したようにノートPCは低スペックすぎるので多くの社員デスクトップを使っている。ITとは。

本当に無駄しか思えない承認・申請フローの煩雑さに加え、使っているシステムの使い勝手も悪く、ひどい日は一日がそうした事務作業で終わる。しかもそのシステムは自社で以前開発したものだというから泣けてくる。こんな作業が定常的に発生するのでいっそ事務員派遣で雇うべきという提案が何度もされたが、課の予算オーバーするから無理だという回答しか返ってこない。

残業削減

表向きは社員健康促進という触れ込みで残業時間削減を全社的に取り組んでいる。残業減らせと声をかけただけでは誰も帰らないので、勤怠システムと入退館管理システム監視し、削減できていない組織や人間評価を下げるようになった。

その結果、サービス残業が復活した。30時間を超えると部長説明しないといけない、50時間を超えるとその上へ…みたいなループ。表向きの残業時間削減・コスト削減としては成功したかもしれないが、社員残業時間を管理するとかい無駄な仕事を増やしたし、管理される社員ストレスサービス残業に繋がったので下策だと思う。

他人残業時間をExcelにまとめる仕事があって、そこに給与が発生してると思うと泣きたい。

そもそも無駄作業や工数至上主義作業効率が悪いから残業しているので、残業が少ない奴が偉いと一斉に舵取りしただけでは生産性をちゃんと評価できていないことに変わりはない。一昔前の残業多い奴は頑張ってて偉い、というのと本質レベルで何も変わっていない。

辞め方

2015-11-12

参考訳:拡散したJavaシリアル化の脆弱性についてApache Commons声明

原文:https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread

原題Apache Commons statement to widespread Java object de-serialisation vulnerability

翻訳日:2015年11月12日(午後にタイトル日本語しました)

----

2015年11月1日 火曜日

Apache CommonsJavaオブジェクトのデシリアライゼーション脆弱性に関するステートメント

著者:Bernd Eckenfels(コミッター), Gary Gregory(Apache Commons副責任者)

AppSecCali2015 でGabriel Lawrence (@gebl) と Chris Frohoff (@frohoff) によって発表された "Marshalling Pickles - how deserializing objects will ruin your day" は、信頼されないソースからシリアル化されたオブジェクトを受け取るときセキュリティ問題をいくつか明らかにしました。主な発見は、Java オブジェクトシリアライゼーション(訳注:seriarization/シリアル化/直列化=ネットワークで送受信できるようにメモリ上のオブジェクトデータバイト列で吐き出すこと。シリアル化されたJava オブジェクトRMIなどのリモート通信プロトコル使用される。)を使用する際に任意Java関数の実行や操作されたバイトコードの挿入さえもを行う方法説明です。

Frohoff氏のツールである ysoserial を使って、Foxglove Security社のStephen Breen (@breenmachine) 氏はWebSphereJBossJenkinsWebLogic、OpenNMSといった様々な製品調査し、(http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/) に各々の様々な攻撃シナリオ記述しています

両者の調査活動は、開発者Javaオブジェクトシリアライゼーションに信頼を置きすぎていることを示しています認証前のシリアル化されていないオブジェクトにも。

Javaにおけるオブジェクトのデシリアライゼーション(訳注:de-serialization/非直列化=ソフトウェアで扱うことができるように、送受信されたデータを元に戻すこと)が行われるとき、大抵は想定された型にキャストされ、それによって、Javaの厳しい型のシステムが、得られた有効オブジェクトツリーだけを保証しています

不幸にも、型のチェックが起こるまでの間に既にプラットホームコードが生成されて、重要ロジックは実行されてしまっています。そのため、最終的な型がチェックされる前に、開発者コントロールを離れた多くのコードが様々なオブジェクトの readObject() メソッドを通じて実行されてしまます脆弱性のあるアプリケーションクラスパスから得られるクラスの readObject() メソッドを組み合わせることで、攻撃者は(ローカルOSコマンドを実行するRuntime.exec()の呼び出しを含めて)機能を実行することができます

これに対する最も良い防御は、信頼されていないピア通信相手)とは複雑なシリアルプロトコルを使うことを避けることです。ホワイトリストアプローチ http://www.ibm.com/developerworks/library/se-lookahead/実装するように resolveClass をオーバーライドするカスタム版の ObjectInputStream を使うと、影響を制限することができますしかしながら、これは常にできることではなく、フレームワークアプリケーションサーバがエンドポイント提供しているような時にはできません。簡単な修正方法がなく、アプリケーションクライアントサーバプロトコルアーキテクチャを再検討する必要があるため、これはかなり悪いニュースです。

これらのかなり不幸な状況において、エクスプロイトのサンプルが見つかっています。Frohoff氏は、 Groovy ランタイムSpringフレームワークApache Commons コレクションからクラスを組み合わせるサンプルのペイロードに gadget chains (ガジェット・チェーン)を見つけています(訳注:provided)。これはこの脆弱性エクスプロイトのためにより多くのクラスを組み合わせられることは完全に確実なことで、しかし、これらは今日攻撃者が簡単に得られるチェーンです。

(Twitter画像)https://blogs.apache.org/foundation/mediaresource/ce15e57e-94a4-4d7b-914c-8eb8f026659c

この脆弱性のために利用される(訳注:blamed)ことができない確かな機能実装するクラスができ、安全性が信用できないコンテキストにおけるシリアル化を利用されないようにするような既知のケースの修正ができたとしても、少なくとも分かったケースだけでも継続的修正していくことが要求されますモグラ叩きゲームを始めるだけであるかも知れませんが。実際にはこれは、オリジナルチームが Apache Commons チームに警告が必要だと考えていない理由で、それゆえに比較的、活動開始が遅れました。

Apache Commons チームは InvokerTransformer クラスのでデシリアライゼーションを無効化することによって commons-collection の 3.2 と 4.0 のブランチにおける問題対処するために、チケット COLLECTION-580(http://svn.apache.org/viewvc/commons/proper/collections/branches/COLLECTIONS_3_2_X/src/java/org/apache/commons/collections/functors/InvokerTransformer.java?r1=1713136&r2=1713307&pathrev=1713307&diff_format=h) を使っています議論されているやるべきことのアイテムは、変化させる仕組み毎(per-transformer basis)に、プログラマティックに有効にするような機能提供するかどうかです。

これには前例がありますOracle と OpenJDK JRE の一部であったり、バイトコードを挿入して実行することを許したりする com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl クラスで、セキュリティマネージャー定義されているとデシリアライゼーションを拒否します。

これはシステムプロパティ jdk.xml.enableTemplatesImplDeserialization=true とすることで無効にできますApache Commons Collection は、本来よりもこの実行モデルは一般化していないため、セキュリティマネージャー存在独立したこの機能無効化することを計画しています

しかしながら、明確化のために述べておくと、この便利な"ガジェット"は、唯一知られている方法でもなければ、特に未知のものでもありません。そのため、インストールされたものを強化されたバージョンApache Commons Collection に置き換えることが、アプリケーションをこの脆弱性に対抗できるようにするわけではありません。

このブログポストレビューのために Gabriel Lawrence に感謝したいと思います

Apache Commons Collection は、Java コレクションフレームワークに加えて追加のコレクションクラス提供する Java ライブラリです。InvokerTransformerコレクションにあるオブジェクトを(特にリフレクション呼び出しを通じてメソッドを呼び出すことで)変換するために使うことができる Transformer ファンクションインターフェース実装の一つです。

一般のSallyによる2015年11月10日午前10字15分にポスト | コメント[1]

コメント

OracleWeblogicセキュリティアラートを発行しています

http://www.oracle.com/technetwork/topics/security/alert-cve-2015-4852-2763333.html?evite=WWSU12091612MPP001

提供されている回避策は、T3プロトコルへのアクセス(とリバースプロキシーにおけるT3メソッドフィルタリング)です。

2014-10-12

anond:20141012001248

億稼ぐソーシャルゲームが、1台のwebサーバサービスホストしてるのなんかあり得なくて、

純粋に「Webサーバ」ということであれば意外と1台でいけるんだな。これが。

アプリケーションサーバともなればそれなりに数が必要だが。

2014-09-03

http://anond.hatelabo.jp/20140902163444

理由くらい書けよ糞が

Windowsだけでしか動かなくてもいいからスタンドアロンプログラムが作りたい → (簡単なことだけでいいなら)C#、(メモリ効率が求められるなら)C++

他のWindowsプログラムがやっていて、多くの方が「できて当然」だと思っていることは、7割くらいであれば.NET(フレームワーク名)を叩けばできます

.NET対応言語C#VB.NET、J#、F#JScript.NETC++/CLIなどがあり、実際の開発においてはこれらの中から自分に合った言語を選ぶことになります

個人的感想ですが、この中で最もゆとり仕様なのはC#です。StackOverflowなどのノウハウが一番蓄積されているのもC#だと思います

「頻繁なアップデートを追跡しないといけない」「Visual Studio必要」という問題はありますが、がんばってください

なお、.NETメモリを食うので、数値計算みたいなことをしたいのであればC++が現状一番まともだと思います。がんばってください

Macプログラムが作りたい → Objective-C

昔のMacプログラムGUICarbonというライブラリで作っていました。今はCocoaというライブラリで作っています

残念なことに、どちらも言語Objective-Cです。がんばってください

ブラウザアプリが作りたい → クライアントJavaScriptサーバは後述

ブラウザアプリは、ユーザWebブラウザ(ChromeFirefoxOperaSafariなど)上で動作するシステムと、遠隔のサーバ上で動作するシステム連携して成立します。

従って、ブラウザアプリを作る言語は、サーバ用言語とクライアント用言語の2種類を考えなければなりません。めんどくさいですね。

ひとたびそのめんどくささを突破してしまえば、Webブラウザさえあればどこでも動くようになります。素晴らしいですね。

クライアント用の言語は、まぁ、JavaScriptしかないと思います。がんばってください

JavaScriptも(正直なところ)あまり褒められた言語ではないので、近頃ではもうちょっとまともな言語を作って、それをJavaScriptに変換する方法が取られたりします。CoffeeScriptTypeScriptHaxeとかですかね。がんばってください

JScriptかいう、名前が紛らわしい上にゴミブラウザ上でしか動かないゴミ未満言語もありますけど、そんなもんで作っても私の環境では動かせませんので悪く思わないでください。

iOSネイティブアプリが作りたい → Objective-CSwift

そもそも選択肢が全くありませんので仕方がないです。がんばってください

Xamarinがあるじゃないかって?まぁそういうのもあるかもしれませんね。がんばってください

Androidネイティブアプリが作りたい → Java

私の勉強不足で、Java以外の選択肢は知らないです。Java以外にあるんですかね?

*NIX用の補助スクリプトを作りたい → PerlPython2、Ruby

Perl使い捨てスクリプトを作るのに適していますCPANクライアントは昔から安定して動きません。だいぶオワコン化してます。がんばってください 私は鞍替えしました

PythonPerlより見た目がすっきりしたPerlです。easy_install・pipはすごく安定していてびっくりします(Windows除く)。3系とかいう邪念は捨てて2系教の悟りを開きましょう。がんばってください

RubyPerl(の処理系ソースコード)より(処理系ソースコードが)綺麗なPerlです。私の手元のUbuntuで「ruby」と入力すると「Command not found.」と返ってくることからも解るとおり、多くの*NIXではOS標準でインストールされておりません。昔のgemは何故あんなにすごい時間をかけてrdocを作っていたのでしょうか。日本人が作ったのでムラ意識の強い日本人の仲間が大勢ます。他の国は知りません。がんばってください

*NIX系のOSでミドルウエア的なものを作りたい → なんだそれ?何を作りたいの?

ゲームを作りたい → どんなゲームだよ…

言語処理系を作りたい → BNF、C

これ以上言語を増やすのはやめましょう。バベルの塔大勢人間が不幸になったのに、それを人間が自ら引き起こしてどうするんですか。

言語処理系を作るのであれば、BNFという言語で文法を定義して、yacc・bisonというツールに食わせればひな形ができます。ぶら下がりelseとの格闘が待ってますが、がんばってください

OSを作りたい → C

1からOSを作った方もいますが、デバイスドライバの流用などを考えると、だいたいはLinuxBSDソースコードを改変するお仕事だと思います

残念なことにLinuxBSDもCです。がんばってください

ブラウザアプリ用のサーバが作りたい → PHPJavaC#Go

昔はCGIと言っていました。所詮は80番ポートでlistenするだけのプログラムであり、BSDソケットをlistenできるライブラリを有する言語であれば何でもいいのですが、いくつかの宗教があります

PHPバンドネオンと同じくらい習得が困難な言語なのに、宣伝の仕方を間違えたために「自分はできる」と勘違いしたプログラマが暴徒と化し、イスラム教と同じくらい不当に低く評価されている言語です。きちんと勉強して使う分には、悪くない選択肢だと思います。がんばってください

Javaは、EclipseNetbeansといった超重量級IDEを起動して、Java EESpringといった超重量級ライブラリ依存したwarを、JbossWebSphereなどの超重量級アプリケーションサーバ上で動作させるため、メモリが貧弱な環境ではIDEサーバを同時に起動すらできません。サーバメモリが潤沢であれば悪くない選択肢だと思います。がんばってください

C#は、選択肢が全くないことを除けば、状況はJavaとあまり変わりません。Microsoftがお好きな方、何かの間違いでWindowsサーバを使わざるを得ない方であれば、悪くない選択肢だと思います。がんばってください

Goはよくわからないですがきっといい言語です。がんばってください

ちなみに増田はcpoll_cppspの勉強中です。がんばります

2013-12-10

ホントIT向き?

発達障害者に向いていると言われる職業として、ほぼ必ず、真っ先に挙げられるものの一つがプログラマだ。

しかしこれ、本当にそうなのか?と思う部分がある。


はいえ、アスペならまあ分かる。

興味があることについては過剰なくらい品質を追求するので、裏を返せば確実な仕事約束される。

また問題を確かに理解したと納得できるまで、見積もりを出す段階から大きな抵抗を示す人達なので、彼の受け持ちが炎上する確率も低い。

視野が狭いから発想が貧困システム元ネタになる企画が出にくいとか、計画は基本守られないとか、社会性の問題から客先に出せねーとか、色々欠点はあるけど、それでもハサミよりは使いようがあるだろう。


問題はADD/ADHD

彼らの特徴はとにかく忘れやすい、他の事に手を付けると、それまでやっていた事を綺麗さっぱり忘れてしまう。

からマルチタスクの塊である家事なんてやらせたら、最悪キッチンにかけた鍋のことを忘れて火事になる可能性も。

そこまで行かなくても、部屋の片付けを始めたらエンドレスになってジ・エンドとか、当事者なら確実に経験済みなはず。


そんな彼らにプログラマが務まるなんて、どうしても想像できない。


しろ今どきの開発は、プログラムの前提になる知識が多岐にわたる。

例えば流行りのWeb系の場合、最低でもLinuxApacheアプリケーションサーバDBなどのインフラ周りからHTMLJavaScriptCSSXMLSQLサーバサイド言語(JavaとかPHPとか色々)まで、体系立てて覚えなければならない。

その上で、最終的には自分が作るシステムが稼働する環境を自力で組み立てられて、実装と稼働後の運用が楽になる設計が出来て、セキュアでシンプルかつ力強いコードが書けないといけない。


でも彼らは何か新しい知識を覚える段階で、覚えるそばからそれまで覚えた事をどんどん忘れてしまう可能性が高い。

更にコードを書いた日には、凄まじく書き散らかった、バグだらけの代物が出来るだろう。

そんなこんなでいつまで経っても半人前から抜け出せないんじゃね?と思ってしまう。

まり高度な内容に踏み込む遥か手前で詰むのがオチではないかと思うわけで。


実際、ADHD傾向の人でプログラマ天職という人がいたら会ってみたいものだ。

2013-01-20

ゴミ回収ドライバーが作るエロWebサービス

まったくの素人Nginx+Bootstrap+WordPressWebサービス作成しました。

影響を受けたサイト

オシャレエロサイト「h300」をリリースして、10PV/日を捌くためにやったこと

http://d.hatena.ne.jp/inouetakuya/20120410/1334058296

週6フリーターWEBサービス作ってみました。

http://anond.hatelabo.jp/20120914214121

はてブもっと快適に!「みんなのはてブ」を公開しました

http://anond.hatelabo.jp/20120930171125

--------------------------------------------------------------------------------------------------------

35歳 今は事務系の仕事をしてます。たまに運転。限りなくパートに近い労働条件ですが、

仕事がないよりはマシですので、続けているわけです。

前(5年ぐらい前)からWebサービスみたいなもの自分自身で作ることができたら楽しいだろうなぁと。

TwitterとかFacebookとか数回利用したことはあるけど、詳しいことはさっぱり。


朝6:00から夜18:00まで車を走らせてゴミ回収をしていた者です。

パッカー車って知ってますか。街でよく見かけるゴミ収集車のことです。

産業廃棄物というのでしょうか。スーパーとか

ドラッグストアとか回るんですよ。休憩時間は15分ぐらいなんですよ。一日。馬車馬のように働いていました。

そのパッカー車で物損事故を起こしてしまい、会社に居続けることはできなくなり仕事をやめました。

エロはもともと好きだったのですが、車を運転する以外の技術は持っていません。

何か手に技術を身につけたいと考えるようになりました。ただ30歳も過ぎたおっさんにあまり時間はないので、

資源の集中を意識時代の流れはパソコンだということで、始めたわけです。

はじめはHTML,CSSの本で基本的なホームページ制作を学ぶ。

HTMLが骨組みで、CSSが装飾みたいなイメージを持つ。

作成したエロサイト

エロックス

http://panpanwatch.net/

サイト構成

-----------------------------------------------------------

MySQL

Nginx+PHP-FPM proxy_cache

Bootstrap

Smarty

WordPress

PHP SimpleHTMLDOMParser

FeedWordPressを使ったエロブログ更新情報

-----------------------------------------------------------

Webサービスを作るにはプログラミング必要なことは知っていたけど、初めてみて暗号のように思える。

プログラミングの中でもPHPは簡単なのでしょうか?最近の流れからすると、Rubyなのでしょうけど、

習得しやすいと,聞いていたPHPを始めることに。

PHP自分の実現したいサービスが組み立てやすい気がします。

参考にした本

西沢直木のPHP Webアプリケーション スーパーサンプル

http://www.amazon.co.jp/gp/product/toc/479733245X/

手を動かしてプログラミング入力することは重要だと知る。

PHPだけでは動かなくてMYSQLとかデータベース勉強

PHPMYSQLの知識で就職できるのでしょうか?

小さいプログラムからテストテストを繰り返すことで、

foreachやif,forなどの基本的な使い方を身につける。

プログラムは結局小さいプログラムの集まりだとどこかに書いてあった。ことを思い出す。

PHPベタプログラムだどセキュリティ的に弱いということでPEARを使うように。

データベース接続MDB2
ページャーはPager
PHPテンプレートエンジンSmarty

ほかのプログラミング言語は知りませんが、PHPerというらしい。

プログラムに慣れてくるとPEARライブラリなどのクラスに抵抗がなくなってきた。

それでも、オブジェクト指向という考え方を体で理解するまで時間がかかる。

PHPについて参考にしたサイト

----------------------------------------------------------

http://php.xenophy.com/index.html

  • 組長的PHP入門

http://kumicyou.sakura.ne.jp/php/index.html

オブジェクト指向PHP入門講座

http://www.objective-php.net/

http://www.amazon.co.jp/gp/product/toc/479733245X/

http://www.amazon.co.jp/gp/product/toc/4797367571/

----------------------------------------------------------

PHP以外にも参考になったサイト

ドットインストール

http://dotinstall.com/

----------------------------------------------------------

Simple HTML DOMParser メモリーオーバー?が発生するので頻繁には使えない。

正規表現って便利ですよね。(preg_match("/ab/", $string);など)

Webサイトのどんな情報でも切り取ったり、貼りつけることができるので。

Web上で特定の情報を好きなように集めてきて、加工することができるスクレイピング発見

PHPスクレイピングするにはどうしたらいいか考えるようになり、かなり時間を使いました。

スクレイピングするために考えた流れ

該当URLサイトマップからリンクページ(aタグ)をすべて取得する。

リンクページの中でエロ動画が含まれているページだけ抽出

ページの中にあるエロ動画URLサムネイル画像などをファイルへ出力。

ファイルへの書き込みは以下のようにしました。

$fp = fopen("/var/www/html/sample.txt", "a");
fwrite($fp, $title."\n");
fclose($fp);
}

出力したファイルの中で重複データなどないように一つにまとめて使えるように加工する。

あらかじめCronで時間を指定してファイル情報データベースへ投入。

これから欲しい情報は、著作権に気をつけながらスクレイピングして集めてくると楽しいなぁと思ってます

自分ホームページを公開するためにはサーバー必要なことは以前から知っていたのですが、具体的には手探り状態から

サーバーについて参考にしたサイト

CentOS自宅サーバー構築

http://centossrv.com/

サーバレンタルサーバとか専用サーバなどいろいろあるのですね。

全部自分管理しないといけないため、めんどくさい気がした。結局VPSサーバに。

エロサイトとは言え、web表示スピードにこだわりはじめる。

スピードアップのためにやったこと。データベースアプリケーションサーバを分ける。

データベース最適化、query_cache_sizeを設定したりなど。

参考にしたURL

自分WEBサービスを作りたいと思っている人へ

http://anond.hatelabo.jp/20101203150748

ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)

http://tanaka.sakura.ad.jp/2011/05/centos-linux-apache-php-perl-mysql-lamp.html

定番PHP MYSQL Apacheから調べていくとNginxというWebサーバが高速だという

記事が多いので、使ってみることに。

Nginx エンジンエックスというらしい。

NginxだけではPHPは動かない。php-fpmインストール

しかし、proxyサーバ設定がよくわからず。

Nginxについて参考にした記事

------------------------------------------------------------------------------------

http://d.hatena.ne.jp/yoshi-ken/20120205

http://kray.jp/blog/wordpress-tuning/

http://server-setting.info/centos/apache-nginx-2-php-fpm-install.html

http://hara19.jp/archives/5817

http://tech.aainc.co.jp/archives/3022

------------------------------------------------------------------------------------

以上の記事でNginxproxyを設定することができ、とても参考になりました。

PHPで作られたCMSを知る。WordPress

どうにか既存サイトWordPressで作れないかと考えていたら、

WordPressは固定ページとブログ用のページを分けるテンプレート構造だと知る。

WordPressindex.phpファイル一枚あれば動くらしく、ページを表示する優先順位があるらしい。

        優先順位 高い          優先順位 低い

メインページ front-page.php → home.php  →  index.php

そのため、fromt-page.php自分で作ったSmartyをそのままコピペして,なんとか既存サイトWordPressをミックスさせることに。

詳しくは以下の本が参考になりました。

http://www.amazon.co.jp/gp/product/toc/479736758X/

WordPressプラグイン

FeedWordPress 登録したサイト更新情報表示

WordPress奥が深いです。

Twitter Bootstrapを知る。

スタイルシートなどを含めたデザインセンスがまったくなく、

途方にくれていたところ、CSSフレームワークTwitter Bootstrapを知る。

HTMLに少し手を加えるだけで今っぽいデザインにできる。その分、余った時間web構築に集中することができる。

エロサイト各ページについて

http://panpanwatch.net/douga.php

データベースに登録してある動画すべて。

http://panpanwatch.net/newdmm.php

DMM動画の当日配信が開始されたコンテンツDMMapiから収集。

http://panpanwatch.net/?page_id=5382

ネット上のエロ更新情報を収集して表示。メインはWordPressで構築。

--------------------------------------------------------------------

常日頃からネットエロにはお世話になっていたので、なんか恩返しではないですけど、

形にすることができて、自分自身では満足してます

Webサービス作るまで、ずっとパソコンの前ばかりにいたので、

少しパソコンから離れたい気持ちです。

01/22 追記。

こんにちは。みなさまからブクマコメントを多数いただき、ありがとうございます

いろいろご意見あると思いますが、大げさな嘘などは書いていないです。

PHPを理解するのも、こちらの本を一冊やれば、それなりに理解できるようになりました。

http://www.amazon.co.jp/gp/product/toc/479733245X/

次のサービス作成するときは本格的なアプリケーションソーシャルゲームなどやりたいなぁと

野望だけは持っています。ですけど、ずっとこのサイトだけに集中してきたので、今はパソコンから少しだけ距離を置くつもりです。

恐らくですけど、本物のプロの方から見れば、このサイトは大したことないでしょう。

素人趣味でやっているんだと温かく見守ってください。

2011-02-20

http://anond.hatelabo.jp/20110220101806

IBM日立富士通Oracleなど大手SIベンダーが自社でプラットフォームサポートしているからだと思うよ。

アプリケーションサーバという形でJavaプラットフォームサポートし、製品と安心を売る。

SI案件が多く、需要が多い。決して人が少ないからではない。

SI案件が多いが、イントラシステムの開発なので、WEB業界案件という意味では少ないので星4つは言い過ぎ。

2008-11-19

http://anond.hatelabo.jp/20081119000921

ORマッパーに関してだが、目に見えて遅くて別にいいじゃないか。書く量がへってるんだからさ。

遅くたってアプリケーションサーバを倍にすればいい。超大規模なプロジェクトじゃない限り人件費の方が高くなる。

どうしてもボトルネックになる部分だけSQLを直書きすればいい。

なにがもんだいなんだ?

2007-09-25

[]PHP VS Rails (Ruby on Rails)

PHP

404 Blog Not Found:そろそろPHPに関して一言いっとくか

PHPを使っても、知識は増えても知恵が増える気がちっともしないのである。


スラッシュドット ジャパン | Ruby on Railsは万能薬ではない

はてなブックマーク - スラッシュドット ジャパン | Ruby on Railsは万能薬ではない

COBOL技術者の憂鬱 - RailsからPHPへ

PHPプログラムを始めてみたい、難しいと思っている人の為に*ホームページを作る人のネタ帳

アフィリエイトは儲かんないってば:PHP初心者によるPHP入門 - livedoor Blog(ブログ)

1日平均13億3800万ページビューを誇るYahoo!JAPAN

この爆裂なアクセスを誇るYahoo!JAPANを支えているテクノロジーのひとつがPHPということでした。

PHPの車輪はバカに出来ない。使うに留めず使いこなしてからが面白い。*ホームページを作る人のネタ帳

service_YouTubeというPEARモジュールを使うと、YouTubeAPIを活用して驚くほど簡単に動画サイトが作れます。

指定したタグがついているすべての画像の一覧表示をいうのをservice_YouTubeを使うと以下の様な文で構築できます。


CakePHPで高速Webアプリ開発:第1回 CakePHPを使いたくなる5つの特徴|gihyo.jp … 技術評論社

Ruby

Shane's Brain Extension: A Ruby Interface to the YouTube API

YouTubeのAPIを使ってみる。 - t-imaizumiのMacとかのはなし

Flickrの画像をはてなに貼り付けるためのHTMLを取得するスクリプト。 - t-imaizumiのMacとかのはなし

InstantRails で 簡単 Ruby on Rails 体験

10分で作るRailsアプリ for Windows - masuidrive

ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)

Matzにっき(2007-09-15)

Scaling Twitter: Making Twitter 10000 Percent Faster | High Scalability

平均毎秒600アクセスというのも興味深い情報

これは楽天の個別サービスアクセスよりも多い。


【特選フリーソフト】生産性の高いWeb開発環境 Ruby on Rails:ITpro

37signalsのBasecampはXeon 2.4GHz dual,メモリー2Gのサーバー2台で40万リクエスト/日を処理している。

他にも43Things.comでも20万リクエスト/日の処理


2005-12-31 - きんきん日記

Basecampはデュアル2.4GHz Xeon、2MBメモリマシン上で15個のFastCGIプロセス

50から100個のApache 1.3.xプロセスが動作している2つのWeb/アプリケーションサーバによって、

1日約40万リクエストを処理している。しかし、マシンのロードは通常0.5から1.5程度。

MySQLサーバは他の2つのアプリケーション(Ta-da ListとBackpack)で共有されていて、最大50万行のテーブルを持っている。

このMySQLは3つのアプリケーションから利用されているが、ロードは0.1から0.3の間で、ボトルネックにはなっていない。


Part2 Rubyに学ぶ「Ruby on Railsの正体」:ITpro

Railsを使うことで可能になる自然な英文に近い記述

1.day.ago # 現在時刻から1日前を表すTimeオブジェクト

10.years.from_now # 現在時刻から10年後を表すTimeオブジェクト

1.kilobyte # 1024

●productsテーブルからnameが'book',priceが2079であるようなProductオブジェクトを読み取り,存在しなかった場合はデータベースレコードを新規作成する処理

book = Product.find_or_create_by_name_and_price('book', 2079)


Ruby/Ruby on Rails/model/5分でわかるActiveRecord - PukiWiki

モデル.findで、名前がMr.C、年齢が30歳のレコードを検索

friend = Friend.find_by_name_and_age("Mr.C", 30)


2005-11-13 - きんきん日記


Ruby に挑戦

Ruby配列は賢い

$ irb

irb(main):001:0> a = [ 'dog', 'cat', 'sheep', 'horse' ]

["dog", "cat", "sheep", "horse"]

アルファベット順に並べ変えたいときは

irb(main):004:0> a.sort

["cat", "dog", "horse", "sheep"]

順序を逆にしたいときは

irb(main):005:0> a.reverse

["horse", "sheep", "cat", "dog"]

アルファベット順に並べて、順序を逆にしたいときは

irb(main):006:0> a.sort.reverse

["sheep", "horse", "dog", "cat"]


[Ruby]Ruby Python の比較

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