SlideShare une entreprise Scribd logo
1  sur  46
Code Anything
                  なんでもコードで書こう




                                kawasima



12年12月15日土曜日
本セッションの趣旨
                  みんなコードを書こう
               「何を書いたらいいか分からない」
                「仕事ではExcelばかりだしー」
               そんな人のために今日は私の着想点を
                     紹介します

                       一応、大きめのSIerにてというコンテキストでお話します。

                       が、そうでなくてもお楽しみいただけるように
                       コンテンツは作ったつもりです

12年12月15日土曜日
みなさんコード書いてますか?




12年12月15日土曜日
オープニング・アクトアプリ




               https://github.com/kawasima/github-activity-tunes/
12年12月15日土曜日
GitHub Activity Tunes
               あるユーザがどれだけGitHub上でコー
               ドを書いているかに応じ、ラデツキー行
               進曲にのせて手拍子が入ります



                          ✓Sinatra
                          ✓omniauth-github
                          ✓Faraday
                          ✓Timble.js
12年12月15日土曜日
これで定常的にコード書き続けるのが

               楽しくなりますね!



12年12月15日土曜日
あらためまして、   kawasima です

      これまでSIerで受託開発に
      どう取り組んでいくか発表
      し、多くの方々にみていた
      だきました!
       http://www.slideshare.net/kawasima/   26,000 views




        30,000 views                         23,000 views
12年12月15日土曜日
12年12月15日土曜日
プロセス系の話がメインで、

                それを支えるエンジニアリングの

                話ができてなかった。




               なので、今日はプロダクト中心で

                お話をしたいと思います



12年12月15日土曜日
みなさんコード書いてますか?




12年12月15日土曜日
リーダ的なポジションの人へ


      プロジェクトがいよいよヤバいとなっ
      たときに、はじめてコードを書く、
      なんてことやってませんか?




12年12月15日土曜日
アーキテクト的なポジションの人へ

        基盤的なものを用意して、マニュア
        ルとサンプルを用意して、他人にい
        かにコードを書かせるかに気をとら
        れ過ぎてはいませんか?




12年12月15日土曜日
12年12月15日土曜日
書ける人が一番多くのコードを書くべし




               あとで火を噴いて修正するくらいなら最初から書きまくろう


12年12月15日土曜日
FAQ
     Q. 育成を考えると、みんなに書かせるべきでは?

     A. 杞憂です。案ずることはありません。

     受託開発の仕事はそんな簡単なものでないので、
     他にも書くところはたくさん出てくるし、みんな
     苦戦もし、成長していけます。


12年12月15日土曜日
どういうコードを書くか

   SIerにどっぷり浸かっ
   た身としては、身近な
   誰かを喜ばせたいがた
   めに、仕事としてコー
   ドを書く。

                    http://www.slideshare.net/kawasima/ss-10548100



               職業プログラマですからね!
12年12月15日土曜日
それでは職業プログラマとして、わた
         しがどういう目的でコードを書いてい
         るか、作ったものをもとにご紹介いた
         します!




12年12月15日土曜日
使いにくい社内システムを
                   使いやすく



12年12月15日土曜日
紺屋の白袴
          “SIerの社内システムたるやまさに地獄である”

          “本来の業務に必要な勤務時間管理や決裁のシス
          テムが、リンクの海にうずもれている”

          “見たいものがあったときに、クリックしてみな
          いと閲覧可能かどうかがわからない”

          オンライン・ヘルプは “Wordで作成された文書
          へのリンクが紹介されているだけだ”
                 http://itpro.nikkeibp.co.jp/article/COLUMN/20080226/294742/

12年12月15日土曜日
社内システムHack
   ✓朝きてPCを立ち上げると、自動的にサイボウズを在籍
        にする

   ✓空き検索ができない会議室予約システムで、検索がで
        きるようにする

   ✓プロキシをたてて、そいつがID/パスワードを代理で
        送信することで、バラバラのIDをもつ社内システム群
        をシングルサインオンにする
         ちょっとしたスクレイピングの技術があれば、

         使いやすいラッパーを作るのはわりと簡単です!
12年12月15日土曜日
Suicaで交通費精算



                Felicaリーダから移動区間/料金を取得して、

                Notes APIを使って交通費DBへ自動登録する。

                2007年くらいに作ったのでPlaggerで作りまし
                た。          http://enterprisezine.jp/iti/detail/749
12年12月15日土曜日
面倒な社内ルールも
                 コードの力で




12年12月15日土曜日
SIerによくあるセキュリティルール


               ✓アカウントの定期的な棚卸し
               ✓アクセスログの監査
               ✓パスワードの定期的な変更

               なんだか面倒な運用!




12年12月15日土曜日
Cert Publisher
      ✓クライアント証明書をWeb上で発行する
      ✓アクセス時に必ず事由を入力させられる
      ✓クライアント証明書が盗まれても、登録され
           た端末以外で使おうとすると、パスフレーズ
           を入力しないと使えない仕組み
          これで会社は余計なルールばかり

          増やしやがるなんて愚痴吐かなくて済みますね!
                    https://github.com/kawasima/cert-publisher/
12年12月15日土曜日
フレームワークの穴
                  を埋める


12年12月15日土曜日
SEO対策
        コンシューマ向けのWebサイトのapacheのconfは

                 Rewrite地獄
         URLを後からいろいろいじるので、パスとアク
         ションのマッピングのメンテが大変!

         それRailsでできるよ、と言われてもそのためだ
         けに言語/フレームワークを切り替えるわけにも
         いかない
12年12月15日土曜日
SAStruts Advanced Routes

       ✓RailsのルーティングをまるっとSAStrutsに移植
       ✓JSPでリンク書くときも、Railsのurl_forよろしく
           ${ar:urlFor(“admin.User#index?pageNo=2”)}   → /user/list/2

           とルーティングからパス生成してくれる
       ✓Railsと同じく専用のAssertメソッドで、簡単に
           ルーティングのテストができる



                      https://github.com/kawasima/sastruts-advanced-routes/
12年12月15日土曜日
その他
      ✓既存資産を活用するため、Solr検索をSQLでおこ
          なう『Solr-JDBC』 (4.x対応中)
          http://code.google.com/p/solr-jdbc/

      ✓Web API で2つのシステムを簡単に接続するため
          の『SAStruts easy api』
          https://github.com/kawasima/sastruts-easy-api/

      ✓サーバとクライアントで同じコードでバリデー
          ションを書ける『DRY Validator』
          https://github.com/kawasima/dry-validator/

                                                           などなど
12年12月15日土曜日
プロジェクト管理にこそ
                プログラミングを!



12年12月15日土曜日
Excelとのつきあい
   プログラマならだれしも
   一度はExcelをパースす
   るコードを書いたことが
   あると思います!




12年12月15日土曜日
Axebomber
       ✓POIのラッパー
       ✓xlsとxlsxを透過的に扱うことができる
       ✓JRubyから使うことを念頭において設計してます
           (gemあります)
            http://rubygems.org/gems/axebomber
       ✓グレーアウトセルは読みとばすなど日本人がやり
           がちなルールセットを実装してます

                    https://github.com/kawasima/axebomber/
12年12月15日土曜日
ライブExcelパース
                 これやってみます




12年12月15日土曜日
12年12月15日土曜日
require 'rubygems'
  require 'axebomber'

  include Axebomber

  manager = ReadOnlyFileSystemBookManager.new
  book = manager.open("issues.xls")
  sheet = book.get_sheet("issues")
  sheet.table_label = "ISSUES"
  sheet.get_rows('exceptGrayout' => true).each do |row
    issue = row.cell("Description").to_s
    puts "#{issue}" if !issue.empty? and row.cell("Dea
  end
  puts "Doya!!!"



12年12月15日土曜日
But...

          “Excelのパースを始める頃には、すでに想定外
          の記述が施されたBookがたくさんできている”

                  〜 Excel parse pattern より〜




12年12月15日土曜日
Longadeseo
      ファイルサーバを作りました。

      ファイルを置いた瞬間に任意の処理を実行する
      ことができます。
                              ✓Apache Wicket
                              ✓Guice
                              ✓Jackrabbit
                                     まだ非常にBuggyです
                https://github.com/kawasima/longadeseo/
12年12月15日土曜日
コミュニケーション手段もスマートに




     メール煩雑だからRedmineにしたのに、通知がメール?

     自分に関係ないものも来ちゃうし…


12年12月15日土曜日
Redmine notification
                    chrome extension
             担当が自分のものだけ、最新のコメント内容
             を本文につけてフィードします




https://chrome.google.com/webstore/detail/redmine-notification-exte/ooafbpajopdcoobgcaomjkgkcimddolmooafbpajopdcoobgcaomjkgkcimddolm

12年12月15日土曜日
テストフェーズはSEの
                Excel芸の見せ場
     ✓所定のフォルダに置いたExcelファイルを集計して
          別のところに置いたBookにグラフを書くVBA
     ✓BTSからエクスポートしたデータを集計してグラ
          フを書くVBA
     ✓テスト実行のエビデンスとして画面キャプチャを
          貼付けた数十MBのExcelファイル




12年12月15日土曜日
Redmine Impasse
        Issuesを見る限り世界中で使ってもらえているようです!


     ✓Testlinkライクなテストマネジメントツールです
     ✓Testlinkは性能面で致命的な欠陥がありますが、
          Impasseは数万ケース扱ってもサクサクです
     ✓Redmineと統合されているので、テストケースの
          作成、テスター割当、実行、不具合票起票がシー
          ムレスにできます

                     エビデンス自動取得も次期Ver.で実装予定です
               https://github.com/kawasima/redmine_impasse/
12年12月15日土曜日
プロセスを補助する



12年12月15日土曜日
プログラマにとっての鬼門
                 『Webデザイン』
      machidaさんのこのスライドをみて「これだ!」と思いました




        https://speakerdeck.com/machida/railsenziniafalsetamefalsetwitter-bootstrapkasutamaizuli
12年12月15日土曜日
Bootstrap customize

        ✓dribbble.comのイケてる画像からカラースキーム
               を抜き出し、そこからD&Dで基本三色を選ぶだけ
        ✓これで非常にそれっぽい配色のbootstrap.cssがで
               きあがります




                https://github.com/kawasima/bootstrap-customize-maven-plugin/
12年12月15日土曜日
まとめ



12年12月15日土曜日
と、駆け足で私がここ2〜3年で書いたコードたち

         を紹介してみました。



        みなさんのプログラミングライフの

        ヒントになれば、これ幸いです!




12年12月15日土曜日
課題の多い職場ほど、コード書けば幸せになるネタも多い


     みんなどんどんコード書こうじゃありませんかっ!

               費用対効果なんて糞喰らえですよっ!




                                   おわり
12年12月15日土曜日

Contenu connexe

Tendances

ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
Naoki Matsuda
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual
SATOSHI TAGOMORI
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
タカシ キタジマ
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
tokumotonahoko
 

Tendances (20)

WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門
 
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
 UnderScoreとbootstrapとsassでword pressのテーマをつくろう UnderScoreとbootstrapとsassでword pressのテーマをつくろう
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
 
え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?
 
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
 
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 
WordCamp2015 WordPressで自分の名前でドメイン取って ブログ作るとこまで 面倒みるワークショップ
WordCamp2015 WordPressで自分の名前でドメイン取って ブログ作るとこまで 面倒みるワークショップWordCamp2015 WordPressで自分の名前でドメイン取って ブログ作るとこまで 面倒みるワークショップ
WordCamp2015 WordPressで自分の名前でドメイン取って ブログ作るとこまで 面倒みるワークショップ
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
 
WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)
 
メニューは管理画面で設定できるようにしよう
メニューは管理画面で設定できるようにしようメニューは管理画面で設定できるようにしよう
メニューは管理画面で設定できるようにしよう
 
TwentyTwelveの子テーマつくったらハマった話
TwentyTwelveの子テーマつくったらハマった話TwentyTwelveの子テーマつくったらハマった話
TwentyTwelveの子テーマつくったらハマった話
 
「LESS」ことはじめ
「LESS」ことはじめ「LESS」ことはじめ
「LESS」ことはじめ
 
_s + bootstrapで始めるWordPressテーマ開発入門
_s + bootstrapで始めるWordPressテーマ開発入門_s + bootstrapで始めるWordPressテーマ開発入門
_s + bootstrapで始めるWordPressテーマ開発入門
 
WordPressってこんなCMS
WordPressってこんなCMSWordPressってこんなCMS
WordPressってこんなCMS
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
 
WooCommerce & AWS
WooCommerce & AWSWooCommerce & AWS
WooCommerce & AWS
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
 

En vedette (7)

θοδωρής παπαλουκάς
θοδωρής παπαλουκάςθοδωρής παπαλουκάς
θοδωρής παπαλουκάς
 
Dasarupa: a Treatise of Hindu Dramaturgy
Dasarupa: a Treatise of Hindu DramaturgyDasarupa: a Treatise of Hindu Dramaturgy
Dasarupa: a Treatise of Hindu Dramaturgy
 
Spark and Hadoop at Production Scale-(Anil Gadre, MapR)
Spark and Hadoop at Production Scale-(Anil Gadre, MapR)Spark and Hadoop at Production Scale-(Anil Gadre, MapR)
Spark and Hadoop at Production Scale-(Anil Gadre, MapR)
 
Museos
MuseosMuseos
Museos
 
Reading Resources and Apps for Adolescents, Teens, & Adults
Reading Resources and Apps for Adolescents, Teens, & AdultsReading Resources and Apps for Adolescents, Teens, & Adults
Reading Resources and Apps for Adolescents, Teens, & Adults
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
 
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 

Similaire à Code Anything

レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
 
Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルド
Hiroshi Sakate
 
20121026 AWSで行こうupdate版
20121026 AWSで行こうupdate版20121026 AWSで行こうupdate版
20121026 AWSで行こうupdate版
Koichiro Nishijima
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
智之 大野
 
Titanium もくもく会 #4
Titanium もくもく会 #4Titanium もくもく会 #4
Titanium もくもく会 #4
Kosuke Isobe
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
Koichiro Nishijima
 
第7回ゆるふわ勉強会
第7回ゆるふわ勉強会第7回ゆるふわ勉強会
第7回ゆるふわ勉強会
horike37
 

Similaire à Code Anything (20)

Aiming study#6pdf
Aiming study#6pdfAiming study#6pdf
Aiming study#6pdf
 
すごいぞ!Google Chrome
すごいぞ!Google Chromeすごいぞ!Google Chrome
すごいぞ!Google Chrome
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルド
 
WP Boosterの裏側
WP Boosterの裏側WP Boosterの裏側
WP Boosterの裏側
 
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
 
20121026 AWSで行こうupdate版
20121026 AWSで行こうupdate版20121026 AWSで行こうupdate版
20121026 AWSで行こうupdate版
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
 
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたらFlashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
 
Titanium もくもく会 #4
Titanium もくもく会 #4Titanium もくもく会 #4
Titanium もくもく会 #4
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
HTML5を用いたセマンティックな文書作成【TechBuzz】第8回HTML5開発技術勉強会 〜先行事例紹介/交流会〜
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
 
第7回ゆるふわ勉強会
第7回ゆるふわ勉強会第7回ゆるふわ勉強会
第7回ゆるふわ勉強会
 
WordPressで電子書籍
WordPressで電子書籍WordPressで電子書籍
WordPressで電子書籍
 
DMMの闇に触れた話
DMMの闇に触れた話DMMの闇に触れた話
DMMの闇に触れた話
 
Wco2012 不動産プラグイン.活用例
Wco2012 不動産プラグイン.活用例Wco2012 不動産プラグイン.活用例
Wco2012 不動産プラグイン.活用例
 

Plus de Yoshitaka Kawashima

Plus de Yoshitaka Kawashima (20)

ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
 
Are Design Patterns Dead?
Are Design Patterns Dead?Are Design Patterns Dead?
Are Design Patterns Dead?
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
 
本番障害に至る病
本番障害に至る病本番障害に至る病
本番障害に至る病
 
システムダウンのひみつ
システムダウンのひみつシステムダウンのひみつ
システムダウンのひみつ
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界
 
Atomic Architecture
Atomic ArchitectureAtomic Architecture
Atomic Architecture
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
 
How to find tech books
How to find tech booksHow to find tech books
How to find tech books
 
Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1Antifragile Java - Java Day Tokyo 2017 D1-E1
Antifragile Java - Java Day Tokyo 2017 D1-E1
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
 
SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199SIerにとっての越境 @ DevLOVE 199
SIerにとっての越境 @ DevLOVE 199
 

Dernier

Dernier (12)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Code Anything

  • 1. Code Anything なんでもコードで書こう kawasima 12年12月15日土曜日
  • 2. 本セッションの趣旨 みんなコードを書こう 「何を書いたらいいか分からない」 「仕事ではExcelばかりだしー」 そんな人のために今日は私の着想点を 紹介します 一応、大きめのSIerにてというコンテキストでお話します。 が、そうでなくてもお楽しみいただけるように コンテンツは作ったつもりです 12年12月15日土曜日
  • 4. オープニング・アクトアプリ https://github.com/kawasima/github-activity-tunes/ 12年12月15日土曜日
  • 5. GitHub Activity Tunes あるユーザがどれだけGitHub上でコー ドを書いているかに応じ、ラデツキー行 進曲にのせて手拍子が入ります ✓Sinatra ✓omniauth-github ✓Faraday ✓Timble.js 12年12月15日土曜日
  • 6. これで定常的にコード書き続けるのが 楽しくなりますね! 12年12月15日土曜日
  • 7. あらためまして、   kawasima です これまでSIerで受託開発に どう取り組んでいくか発表 し、多くの方々にみていた だきました! http://www.slideshare.net/kawasima/ 26,000 views 30,000 views 23,000 views 12年12月15日土曜日
  • 9. プロセス系の話がメインで、 それを支えるエンジニアリングの 話ができてなかった。 なので、今日はプロダクト中心で お話をしたいと思います 12年12月15日土曜日
  • 11. リーダ的なポジションの人へ プロジェクトがいよいよヤバいとなっ たときに、はじめてコードを書く、 なんてことやってませんか? 12年12月15日土曜日
  • 12. アーキテクト的なポジションの人へ 基盤的なものを用意して、マニュア ルとサンプルを用意して、他人にい かにコードを書かせるかに気をとら れ過ぎてはいませんか? 12年12月15日土曜日
  • 14. 書ける人が一番多くのコードを書くべし あとで火を噴いて修正するくらいなら最初から書きまくろう 12年12月15日土曜日
  • 15. FAQ Q. 育成を考えると、みんなに書かせるべきでは? A. 杞憂です。案ずることはありません。 受託開発の仕事はそんな簡単なものでないので、 他にも書くところはたくさん出てくるし、みんな 苦戦もし、成長していけます。 12年12月15日土曜日
  • 16. どういうコードを書くか SIerにどっぷり浸かっ た身としては、身近な 誰かを喜ばせたいがた めに、仕事としてコー ドを書く。 http://www.slideshare.net/kawasima/ss-10548100 職業プログラマですからね! 12年12月15日土曜日
  • 17. それでは職業プログラマとして、わた しがどういう目的でコードを書いてい るか、作ったものをもとにご紹介いた します! 12年12月15日土曜日
  • 18. 使いにくい社内システムを 使いやすく 12年12月15日土曜日
  • 19. 紺屋の白袴 “SIerの社内システムたるやまさに地獄である” “本来の業務に必要な勤務時間管理や決裁のシス テムが、リンクの海にうずもれている” “見たいものがあったときに、クリックしてみな いと閲覧可能かどうかがわからない” オンライン・ヘルプは “Wordで作成された文書 へのリンクが紹介されているだけだ” http://itpro.nikkeibp.co.jp/article/COLUMN/20080226/294742/ 12年12月15日土曜日
  • 20. 社内システムHack ✓朝きてPCを立ち上げると、自動的にサイボウズを在籍 にする ✓空き検索ができない会議室予約システムで、検索がで きるようにする ✓プロキシをたてて、そいつがID/パスワードを代理で 送信することで、バラバラのIDをもつ社内システム群 をシングルサインオンにする ちょっとしたスクレイピングの技術があれば、 使いやすいラッパーを作るのはわりと簡単です! 12年12月15日土曜日
  • 21. Suicaで交通費精算 Felicaリーダから移動区間/料金を取得して、 Notes APIを使って交通費DBへ自動登録する。 2007年くらいに作ったのでPlaggerで作りまし た。 http://enterprisezine.jp/iti/detail/749 12年12月15日土曜日
  • 22. 面倒な社内ルールも コードの力で 12年12月15日土曜日
  • 23. SIerによくあるセキュリティルール ✓アカウントの定期的な棚卸し ✓アクセスログの監査 ✓パスワードの定期的な変更 なんだか面倒な運用! 12年12月15日土曜日
  • 24. Cert Publisher ✓クライアント証明書をWeb上で発行する ✓アクセス時に必ず事由を入力させられる ✓クライアント証明書が盗まれても、登録され た端末以外で使おうとすると、パスフレーズ を入力しないと使えない仕組み これで会社は余計なルールばかり 増やしやがるなんて愚痴吐かなくて済みますね! https://github.com/kawasima/cert-publisher/ 12年12月15日土曜日
  • 25. フレームワークの穴 を埋める 12年12月15日土曜日
  • 26. SEO対策 コンシューマ向けのWebサイトのapacheのconfは Rewrite地獄 URLを後からいろいろいじるので、パスとアク ションのマッピングのメンテが大変! それRailsでできるよ、と言われてもそのためだ けに言語/フレームワークを切り替えるわけにも いかない 12年12月15日土曜日
  • 27. SAStruts Advanced Routes ✓RailsのルーティングをまるっとSAStrutsに移植 ✓JSPでリンク書くときも、Railsのurl_forよろしく ${ar:urlFor(“admin.User#index?pageNo=2”)} → /user/list/2 とルーティングからパス生成してくれる ✓Railsと同じく専用のAssertメソッドで、簡単に ルーティングのテストができる https://github.com/kawasima/sastruts-advanced-routes/ 12年12月15日土曜日
  • 28. その他 ✓既存資産を活用するため、Solr検索をSQLでおこ なう『Solr-JDBC』 (4.x対応中) http://code.google.com/p/solr-jdbc/ ✓Web API で2つのシステムを簡単に接続するため の『SAStruts easy api』 https://github.com/kawasima/sastruts-easy-api/ ✓サーバとクライアントで同じコードでバリデー ションを書ける『DRY Validator』 https://github.com/kawasima/dry-validator/ などなど 12年12月15日土曜日
  • 29. プロジェクト管理にこそ プログラミングを! 12年12月15日土曜日
  • 30. Excelとのつきあい プログラマならだれしも 一度はExcelをパースす るコードを書いたことが あると思います! 12年12月15日土曜日
  • 31. Axebomber ✓POIのラッパー ✓xlsとxlsxを透過的に扱うことができる ✓JRubyから使うことを念頭において設計してます (gemあります)  http://rubygems.org/gems/axebomber ✓グレーアウトセルは読みとばすなど日本人がやり がちなルールセットを実装してます https://github.com/kawasima/axebomber/ 12年12月15日土曜日
  • 32. ライブExcelパース これやってみます 12年12月15日土曜日
  • 34. require 'rubygems' require 'axebomber' include Axebomber manager = ReadOnlyFileSystemBookManager.new book = manager.open("issues.xls") sheet = book.get_sheet("issues") sheet.table_label = "ISSUES" sheet.get_rows('exceptGrayout' => true).each do |row issue = row.cell("Description").to_s puts "#{issue}" if !issue.empty? and row.cell("Dea end puts "Doya!!!" 12年12月15日土曜日
  • 35. But... “Excelのパースを始める頃には、すでに想定外 の記述が施されたBookがたくさんできている” 〜 Excel parse pattern より〜 12年12月15日土曜日
  • 36. Longadeseo ファイルサーバを作りました。 ファイルを置いた瞬間に任意の処理を実行する ことができます。 ✓Apache Wicket ✓Guice ✓Jackrabbit まだ非常にBuggyです https://github.com/kawasima/longadeseo/ 12年12月15日土曜日
  • 37. コミュニケーション手段もスマートに メール煩雑だからRedmineにしたのに、通知がメール? 自分に関係ないものも来ちゃうし… 12年12月15日土曜日
  • 38. Redmine notification chrome extension 担当が自分のものだけ、最新のコメント内容 を本文につけてフィードします https://chrome.google.com/webstore/detail/redmine-notification-exte/ooafbpajopdcoobgcaomjkgkcimddolmooafbpajopdcoobgcaomjkgkcimddolm 12年12月15日土曜日
  • 39. テストフェーズはSEの Excel芸の見せ場 ✓所定のフォルダに置いたExcelファイルを集計して 別のところに置いたBookにグラフを書くVBA ✓BTSからエクスポートしたデータを集計してグラ フを書くVBA ✓テスト実行のエビデンスとして画面キャプチャを 貼付けた数十MBのExcelファイル 12年12月15日土曜日
  • 40. Redmine Impasse Issuesを見る限り世界中で使ってもらえているようです! ✓Testlinkライクなテストマネジメントツールです ✓Testlinkは性能面で致命的な欠陥がありますが、 Impasseは数万ケース扱ってもサクサクです ✓Redmineと統合されているので、テストケースの 作成、テスター割当、実行、不具合票起票がシー ムレスにできます エビデンス自動取得も次期Ver.で実装予定です https://github.com/kawasima/redmine_impasse/ 12年12月15日土曜日
  • 42. プログラマにとっての鬼門 『Webデザイン』 machidaさんのこのスライドをみて「これだ!」と思いました https://speakerdeck.com/machida/railsenziniafalsetamefalsetwitter-bootstrapkasutamaizuli 12年12月15日土曜日
  • 43. Bootstrap customize ✓dribbble.comのイケてる画像からカラースキーム を抜き出し、そこからD&Dで基本三色を選ぶだけ ✓これで非常にそれっぽい配色のbootstrap.cssがで きあがります https://github.com/kawasima/bootstrap-customize-maven-plugin/ 12年12月15日土曜日
  • 45. と、駆け足で私がここ2〜3年で書いたコードたち を紹介してみました。 みなさんのプログラミングライフの ヒントになれば、これ幸いです! 12年12月15日土曜日
  • 46. 課題の多い職場ほど、コード書けば幸せになるネタも多い みんなどんどんコード書こうじゃありませんかっ! 費用対効果なんて糞喰らえですよっ! おわり 12年12月15日土曜日