SlideShare a Scribd company logo
1 of 18
Download to read offline
2010.4.24(Sat)@Monzen Plaza (Nagano C.)




山椒は小粒で
ぴりりと辛い
~小さなプログラム万歳!~

                     すの (春原 宏保)
●
    春原 宏保 (すのはら ひろやす)
    ●   http://d.hatena.ne.jp/suno88/
    ●   http://twitter.com/suno88
●   スーパープログラマー
    マーケットによく出没する

              ●
                アップルランド安茂里店
              ● 西友伊勢宮店

              ● JC(生鮮市場)長野中央店


              での目撃情報多数
●
    最近のアプリ
    ケーションは
    肥大化の一途
●   自分専用に、小粒でもぴりりと効
    くアプリを書こう
事例 1:
週報自動配信システム
●
    週報を毎週金曜日にメールで
    提出する義務がある
●
    面倒くさい、忘れがち
●   祝日や有給休暇を挟む週は
    曜日の感覚が狂う
●
    日付と本文を登録しておけば
    勝手に配信してくれるシステム
    を作ろう!
$pdo = new PDO(PDO_PGSQL);
$sql = 'SELECT content FROM Weekly_Reports' .
       ' WHERE rep_date = :rep_date';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(":rep_date", date('Y-m-d'), PDO::PARAM_STR);
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $content = $row['content'];
  $subject = mb_substr($content, 0, mb_strpos($content, "n"));
  echo mb_strpos($content, "rn");
  mb_language('ja');
  mb_send_mail('xxx@example.co.jp',
               mb_convert_encoding($subject, 'JIS', 'UTF-8'),
               mb_convert_encoding($content, 'JIS', 'UTF-8'),
               'From: ' .
               mb_encode_mimeheader(mb_convert_encoding(
                  '春原 宏保', 'JIS', 'UTF-8')) .
               ' <suno88@example.co.jp>');
}
$pdo = null;
事例 2:
ソリティア起動 EXE
※プライバシー保護のため、
 画像を一部加工しています
Windows XP 以前
C:WINDOWSSystem32sol.exe を
起動すればよかった
Windows Vista 以降
C:Program FilesMicrosoft Games
SolitaireSolitaire.exe に変わっている
※プライバシー保護のため、
 画像を一部加工しています
program Sol;


uses
  ShellAPI, Windows, SysUtils;

var
  s: string;
begin
  s := GetEnvironmentVariable('ProgramFiles');
  ShellExecute(0, PCHAR('open'),
    PCHAR(s + 'Microsoft GamesSolitaireSolitaire.exe'),
    nil, nil, SW_SHOW);
end.
※プライバシー保護を
              考慮していません




「ショートカットをパスの通ったディレクトリ
に置けば?」とかいうツッコミは却下。
プログラミングは面白いよ!
終
            すの (春原 宏保)
    http://d.hatena.ne.jp/suno88
       http://twitter.com/suno88

More Related Content

More from suno88

8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
 
ITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せにITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せに
suno88
 

More from suno88 (10)

AWS で社内オンライン勉強会
AWS で社内オンライン勉強会AWS で社内オンライン勉強会
AWS で社内オンライン勉強会
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
 
HTML と CSS の社内勉強会を主催した話
HTML と CSS の社内勉強会を主催した話HTML と CSS の社内勉強会を主催した話
HTML と CSS の社内勉強会を主催した話
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方
 
ねえ、お父さんのお仕事ってなぁに?
ねえ、お父さんのお仕事ってなぁに?ねえ、お父さんのお仕事ってなぁに?
ねえ、お父さんのお仕事ってなぁに?
 
「交通勉強会 ~Trafficonf ~」発足に寄せて
「交通勉強会 ~Trafficonf ~」発足に寄せて「交通勉強会 ~Trafficonf ~」発足に寄せて
「交通勉強会 ~Trafficonf ~」発足に寄せて
 
ソフトウェアエンジニアに必要な法律・契約のお話
ソフトウェアエンジニアに必要な法律・契約のお話ソフトウェアエンジニアに必要な法律・契約のお話
ソフトウェアエンジニアに必要な法律・契約のお話
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
 
ITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せにITでみんなを幸せに、ITで自分も幸せに
ITでみんなを幸せに、ITで自分も幸せに
 

Recently uploaded

Recently uploaded (11)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: 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
 
論文紹介: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...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

山椒は小粒でぴりりと辛い

  • 1. 2010.4.24(Sat)@Monzen Plaza (Nagano C.) 山椒は小粒で ぴりりと辛い ~小さなプログラム万歳!~ すの (春原 宏保)
  • 2. 春原 宏保 (すのはら ひろやす) ● http://d.hatena.ne.jp/suno88/ ● http://twitter.com/suno88 ● スーパープログラマー マーケットによく出没する ● アップルランド安茂里店 ● 西友伊勢宮店 ● JC(生鮮市場)長野中央店 での目撃情報多数
  • 3. 最近のアプリ ケーションは 肥大化の一途 ● 自分専用に、小粒でもぴりりと効 くアプリを書こう
  • 5. 週報を毎週金曜日にメールで 提出する義務がある ● 面倒くさい、忘れがち ● 祝日や有給休暇を挟む週は 曜日の感覚が狂う
  • 6. 日付と本文を登録しておけば 勝手に配信してくれるシステム を作ろう!
  • 7.
  • 8. $pdo = new PDO(PDO_PGSQL); $sql = 'SELECT content FROM Weekly_Reports' . ' WHERE rep_date = :rep_date'; $stmt = $pdo->prepare($sql); $stmt->bindValue(":rep_date", date('Y-m-d'), PDO::PARAM_STR); $stmt->execute(); if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $content = $row['content']; $subject = mb_substr($content, 0, mb_strpos($content, "n")); echo mb_strpos($content, "rn"); mb_language('ja'); mb_send_mail('xxx@example.co.jp', mb_convert_encoding($subject, 'JIS', 'UTF-8'), mb_convert_encoding($content, 'JIS', 'UTF-8'), 'From: ' . mb_encode_mimeheader(mb_convert_encoding( '春原 宏保', 'JIS', 'UTF-8')) . ' <suno88@example.co.jp>'); } $pdo = null;
  • 11. Windows XP 以前 C:WINDOWSSystem32sol.exe を 起動すればよかった
  • 12. Windows Vista 以降 C:Program FilesMicrosoft Games SolitaireSolitaire.exe に変わっている
  • 13.
  • 15. program Sol; uses ShellAPI, Windows, SysUtils; var s: string; begin s := GetEnvironmentVariable('ProgramFiles'); ShellExecute(0, PCHAR('open'), PCHAR(s + 'Microsoft GamesSolitaireSolitaire.exe'), nil, nil, SW_SHOW); end.
  • 16. ※プライバシー保護を  考慮していません 「ショートカットをパスの通ったディレクトリ に置けば?」とかいうツッコミは却下。
  • 18. すの (春原 宏保) http://d.hatena.ne.jp/suno88 http://twitter.com/suno88