No Programming, No Life

プログラミング関連の話題や雑記

2009-01-01から1年間の記事一覧

ブログ管理の難しさ

プログラム系の記事を書くブログ(ここ)と情報処理技術者試験対策系の記事を書くブログをサブアカウントを作って分けていたんですが、これが思いの外、分散した利点が得られなかったため、あちらに書いていた記事をこちらに引き戻してきました。ログインしな…

セキュリティ的、ライフサイクル

物事には始まりがあればかならず終わりがある。 通常それをライフサイクルと呼ぶわけですが、セキュリティにおけるライフサイクルで、忘れちゃならないものがあります。例えば、 パソコン資産のライフサイクル 購入 使用 設定の変更・修正 返却 or 廃棄 とい…

複数人でアカウントを共有していると何がまずいのか

アカウントって通常1人1個か、それ以上ですよね?これを複数人で共有していると何がまずいのか。 あとでログをみても、本当は誰がやったのかわからない たとえば、adminってアカウントでみんなが操作してたら、誰がやったのか全然わかりませんよね。これだと…

10分で理解する午後試験のワンポイントアドバイス

集中ゼミシリーズより。 午後試験の問題を解く上でのワンポイントアドバイスをまとめてみました。 出題者・採点官の立場から試験問題を捉えているところが面白い。 設問文の条件に反していたら、どんなに論理的で素晴らしい答案でも得点は得られない。 情報…

午後試験は寸劇です

肝心なときに役に立たんなというP部長の台詞からも分かるように、 午後試験は寸劇ですので、ストーリーを読み、出題者の脚本に沿うような 回答をすれば得点できるかな〜。 参考 ‚P‚O^‚P‚WuŠÌS‚ȂƂ«‚É–ð‚É—§‚½‚ñ‚ȁv エコノ研究所 | P 部長ですが、何か?

「白か黒か」という幻想について

ホワイトリストとブラックリストについてのお話です。 フィルタリング方式として絶対に抑えておかないといけない用語だと思われるのでメモ代わりに。 ホワイトリスト あらかじめ登録されているものしか許可しないやり方。 「こいつとこいつと…こいつは安全だ…

平成21年春のマスコットは掘北!

平成21年度春試験の広告ポスターには人気が出てきた堀北真希を採用してますね。 ITパスポート試験ってちょっと紹介用動画を見てみたけど、すべてのビジネスパーソ ンを対象とした試験なんですね。IPAの力の入れようが窺えます。人気にあやかって受験者数を増…

情報セキュリティスペシャリスト(SC) 午後の鉄則

鉄則 (重要度順) 重要度 鉄則内容 ◎ 証明書の有効性確認は、有効期限、CRL、署名値の照合、認証パス ◎ OSのアクセス制御方式は、任意アクセス制御(DAC)、強制アクセス制御(MAC)、ロールベースのアクセス制御(RBAC) ◎ 対象となる機器はすべて網羅せよ。"すべ…

Groovy 1.6 公開

あーついにGroovy 1.6が公開されましたねぇ。 Groovy - Home時間がなくてまだインストールも出来てない! 早くインストールしていじりたいですなぁ。 参考 Groovy 1.6 has been released! | Groovy Zone

Re:アルファベットの繰り上がり

お題: Server error 投稿: Server error こんな感じになりました println alphaList('A'..'Z', 100)*.join()*.trim().join(', ') /** アルファベットのリストを返却 */ def alphaList(values, num) { // 必要な桁を求める int digit = { int d = 1; int size…

Re:RFC 4180対応版 CSVレコードの分解

お題: Server error 投稿: Server error RFC 4180対応版*1でCSVを分解するお題でした。 こんな感じになりました def csv = '''\ "aaa","b bb","ccc",zzz,"y""Y""y",xxx\ ''' resolveCSV(csv).eachWithIndex{ it, idx -> println "${idx+1} => ${it}" } /** C…

Re:分数を小数に展開, 水の移し替えパズル

分数を小数に展開 お題 整数a, bを受け取り,分数a/bを小数に展開した文字列を返す関数/メソッドを作成してください。結果が循環小数になる場合は,循環部を{}でくくってください。例:a=3, b=8 → 0.375 a=3, b=14 → 0.2{142857}与えられる整数a, bは次の条…

Re:データの圧縮と展開

お題: Server error 投稿: Server error 圧縮、展開ってことなので 圧縮、展開ってことなので、java.util.zip.*パッケージを使って実装するのが一番いいのかなということで。動作確認はGroovy Version: 1.5.7 JVM: 1.6.0_10にて。 /** 圧縮 */ byte[] compre…

最小値や最大値をmax, minで表現する

ある変数の値がマイナスを許容しないような場合があるとして、他の変数から値を受け取って設定するような場合を考えてみる。(Javaにて) 普通に書くと int num1; if (a < 0) { num1 = 0; } else { num1 = a } こんな感じだろうか。もしくは三項演算子を利用し…

Re:固定長データ

お題: Server error 投稿: Server error このお題、固定長データの読み込みということで、ここぞとばかりに今更Java1.4で追加されたNew I/O を使ってやってみようと思い、勢いで投稿してみました。 一応動いてはいるんですが、エレガントさはないですね。Gro…

Re:ブログを書く若いプログラマへ

ブログを書く若いプログラマへ - ”><xmp>TokuLog 改メ tokuhirom’s blog のエントリを読んでいて共感できる部分があったので、引用させていただこう。 それでいいじゃない。自分のために書く、ぐらいでちょうどいいとおもう。 うん、確かにね。私の場合も自分用メ</xmp>…

Inspire Me!

最近はServer error が楽しくて、タイトルのとおり触発されてる私です。いろんな人のコードを見て、「あっ、これなら自分も書けるかも」とか「もっといい書き方があるなぁ〜」とか「こんなお題があったらみんなどう書くんだろう?」とか、どんどん触発されて…

Re:自然数の分割(別表現)

お題: Server error 投稿: Server error 下書き中で詰まってます。下記コードだと、出力される組み合わせが足りない。 下書き中で詰まってます def num = args[0].toInteger() println "young ${num}" def startTime = System.currentTimeMillis() young(num…

Re:全ての組み合わせ

お題: Server error 投稿: Server error 誰も使ってなかったようなので、List#combinations()を使ってみました。 (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) def crossProduct(Object... params){ params*.toList().combinations() } println crossPr…

Re:ピラミッドを作る, 横向きのピラミッドを作る

お題: Server error Server error 投稿: Server error Server error 縦向きと横向きのピラミッドを作るお題を解いてみました。 両方とも、今さら感がありますが、気にせず投稿。 投稿したコード (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) // 縦向き…

Re:文字列の反転(括弧の対応を保存)

お題: Server error 投稿: Server error 括弧の対応を保ったまま、文字列を反転させるというお題。(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) こんな感じになりました def reverseString2(String text) { def pairs = text.replaceAll(/[^\[\]\(\)\{\…

テキストを行番号付きに加工して出力するスクリプト

いや、ほんの小物です。ちょっと必要だったので自分で書きました。(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) RowNumbering.groovy def file = new File(args[0]) def lines = file.readLines() def digit = lines.size().toString().size() println …

なんとなくScalaをはじめてみる

Augmented Reality World -拡張現実- 開発言語の話題 Ruby / Groovy / Scala を見ていて、Groovyの次はScalaだ的なことが書いてあったので、多言語への挑戦だ*1!ということで、Groovyの次はScalaあたりに手をつけてみる。 ここやここによると、GroovyやJRub…

Re:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法

404 Blog Not Found:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 で面白いアルゴリズムがあった。「ある文字列のn回繰り返しを作る関数」を高速化したいらしい。 Groovyとかだと 「"..." * n」 みたいな感じで実現できるやつですね。 ちょっ…

Groovyで処理とイテレーションの分離

Groovyだと、eachなどのイテレーションメソッドが豊富なので処理とイテレーションの分離が楽にできる。 お題 例えば、 1〜10までの数値が入ったリストから繰り返し数値を取得し 出力するプログラムを完成させよ。ただし、数値が5の時は表示しないこと。 なん…

Re:タブ区切りデータの処理

お題: Server error 投稿: Server error いまさら投稿してみた。分かりやすく書いたつもりです。 ポイント ヘッダとデータは #head(), #tail()を使って取得。 ヘッダごと入れ替え時は、列を1本ずつ取得してから、#transpose()で行・列を入れ替え。 用意する…

Groovyのコレクションフレームワークで集合演算

ほんの断片ですが、メモとして。 (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) // #groupBy (指定条件でグルーピング) assert [ // ↓ ↓ 3と4でグルーピング [1, 2, 3, 4], [2, 2, 3, 4], [3, 5, 3, 4], [6, 3, 3, 4], ].groupBy{ it[2, 3] } == [[3, 4]…

指定した個数ごとに要素をまとめる

指定した個数(ここでは3つ)ごとに要素をまとめる処理が必要になったので、ひとまず書いてみた。 Groovy 色々書き方がありそうだけど、Groovyだと以下のように#injectを使って出来そう。 (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) def list = [1, 2, …

MarkupBuilderでHTML生成を試してみた

仕事でちょっとしたアンケートを集計しなきゃいけなくなった。 結果のレポートをHTMLで出力しといたら気が利くかな〜と考えてて、そんな時こそGroovyのMarkupBuilderだろ!って思ったので早速テスト。 (動作確認: Groovy Version: 1.7.2 JVM: 1.6.0_20) impo…

Re:Googleのありとあらゆる検索結果が「このサイトはコンピュータに損害を与える可能性があります」と判定される不具合発生中

2009-01-31〜2009-02-01の日付が変わるくらいの時間にかけて、Googleの検索結果に誤動作が発生しておりました。 >>詳しくはこことかここの辺で google.comでも同じ現象が起こっていたようなので、日本だけではなく世界規模。 復旧自体早かったんですが、今回…