トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

memo

レスポンスのheaderとbodyを確認する。

$ curl -i -s http://localhost:3000/api/json/json_test01
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 125
Server: Mojolicious (Perl)
Date: Fri, 01 Jul 2016 01:48:07 GMT

{"array":[1,2,3,4],"head":"Json Test Data","lang":["perl","ruby","php"],"日本語":["漢字","ひらがな","カタカナ"]}
$

UFT-16なんだ・・・

日本語で作ったMySQLのテーブルをDBIで読み込むとフィールド名がUTF-16で取得されてしまう。これはなかなか厄介だ!!

$VAR1 = [
         {
           'Extra' => '',
           'Type' => 'decimal(16,0)',
           'Field' => "\x{5546}\x{54c1}\x{30b3}\x{30fc}\x{30c9}",
           'Default' => '0',
           'Null' => 'NO',
           'Key' => 'PRI'
         },
         {
           'Extra' => '',
           'Type' => 'char(30)',
           'Field' => "\x{54c1}\x{540d}",
           'Default' => undef,
           'Null' => 'YES',
           'Key' => ''
         },
         {
           'Extra' => 'on update CURRENT_TIMESTAMP',
           'Type' => 'timestamp',
           'Field' => 'UPD_TIME',
           'Default' => 'CURRENT_TIMESTAMP',
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'decimal(9,0)',
           'Field' => "\x{4e0a}\x{4ee3}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'decimal(9,0)',
           'Field' => "\x{539f}\x{4fa1}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'char(2)',
           'Field' => "\x{5546}\x{54c1}\x{533a}\x{5206}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'char(4)',
           'Field' => "\x{5927}\x{5206}\x{985e}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'char(4)',
           'Field' => "\x{4e2d}\x{5206}\x{985e}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         },
         {
           'Extra' => '',
           'Type' => 'char(4)',
           'Field' => "\x{5c0f}\x{5206}\x{985e}",
           'Default' => undef,
           'Null' => 'NO',
           'Key' => ''
         }
       ];

ubuntu 16.04 アップグレードにてmysqlでエラー

my.cnfをbackup&removeしてクリーンインストールすれば良い。http://askubuntu.com/questions/760724/16-04-upgrade-broke-mysql-server より

The instructions @andrew-beerman posted are on the right track, though they aren't quite clear to me and seem to recommend more than is necessary. I pieced together the answer from the above and a helpful post in the bug thread.

These are the steps I took to correct this:

  • Back up your my.cnf file in /etc/mysql and remove it
  • Remove the folder /etc/mysql/mysql.conf.d/
  • Verify you don't have a my.cnf file stashed somewhere else (I did in my home dir!) or in /etc/alternatives/my.cnf.
  • Backup and remove /etc/mysql/debian.cnf files (not sure if needed, but just in case)
sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
sudo apt install mysql-server
  • In case your syslog shows an error like "mysqld: Can't read dir of '/etc/mysql/conf.d/'" create a symbolic link ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d Then the service should be able to start with service mysql start.

memo

http://d.hatena.ne.jp/sugyan/touch/20100901/1283267925

http://www.wysiwyg.jp/imr/GDvsIM.htm

http://imager.perl.org/docs/Imager/Install.html

http://cpanmag.koneta.org/012-imager/

全テーブルのレコード数を取得

SELECT
  table_name,
  TO_NUMBER(
    EXTRACTVALUE(
      xmltype(
        dbms_xmlgen.getxml('SELECT COUNT(*) AS C FROM '||table_name)
      ),
      '/ROWSET/ROW/C'
    )
  ) AS count
FROM user_tables;

画像をフリックして画像を切り替える

サンプルアルバムで作ってみた

       <script type="text/javascript">
           \$(function() {
               \$('#flick').bind("touchstart touchmove touchend",touchHandler);
               function touchHandler(e){
                   e.preventDefault();
                   var touch = e.originalEvent.touches[0];
                   if(e.type == "touchstart"){
                       startX = touch.pageX;
                   }else if(e.type == "touchmove"){
                       diffX = touch.pageX - startX;
                   }else if(e.type == "touchend"){
                       if(diffX > 50){
                           \$.ajax({
                               url: 'album.cgi',
                               type: 'GET',
                               data: {
                                   _action: 'flick',
                                   _name: document.img.src,
                                   _count: '-1',
                               },
                               success: function( data,textStatus,jqXHR){
                                   var res = JSON.parse(data); 
                                   document.img.src=res.name;
                               }
                           })
                       }
                       if(diffX < -50){
                           \$.ajax({
                               url: 'album.cgi',
                               type: 'GET',
                               data: {
                                   _action: 'flick',
                                   _name: document.img.src,
                                   _count: '1',
                               },
                               success: function( data,textStatus,jqXHR){
                                   var res = JSON.parse(data); 
                                   document.img.src=res.name;
                               }
                           })
                       }
                   }
               }
           });
       </script>

EXCELでF2,[ENTER]の連打がめんどくさい

EXCELでセルに計算式が入っているのに再計算してくれない時があります。そんな時はF2で編集モードにして[ENTER]を入力すれば再計算してくれます。が、それが何十行、何百行も連打しなけれならないと時もあり、気力が続きません。(黙々と連打できる同僚もいるが…)そんな時は、置き換えで=を=に全て置き換えれば再計算してくれます。

  • 手順
    • ctrl+Hで置き換えのウインドを開く
    • 置き換え前の文字に'='を入力
    • 置き換え後の文字に'='を入力
    • 全て置き換えボタンをクリック
    • 以上

※区切り位置でもできるらしい

keyCodeを取り込む

サンプルを作ってみた

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
  <style type="text/css">
  #item1 {color: red;
    }
  </style>
  <script>
  $(document).ready(function(){
    $(window).keydown(function(e){
      $("div").text(e.keyCode);
      if (e.keyCode == 40) {
       $('#item1').css({'margin-top': '+=10px'});
      }else if (e.keyCode == 38) {
       $('#item1').css({'margin-top': '-=10px'});
      }else if (e.keyCode == 39) {
       $('#item1').css({'margin-left': '+=10px'});
      }else if (e.keyCode == 37) {
       $('#item1').css({'margin-left': '-=10px'});
      }
//      return false;
    });
    
  });
  </script>
</head>
<body>
<input type=text>
<input type=text>
  <div id="item1" />
</body>
</html>

JQuery 1番下にスクロールする

[2014/4/14] JQueryでtextareaの1番下にスクロールする

// 1番下にスクロールする -- START
var go_bottom = function(targetId){
  var $obj = $("#" + targetId);
  if ($obj.length == 0) return;
  $obj.scrollTop($obj[0].scrollHeight);
};
// 1番下にスクロールする -- END

html5 mp4

mp4をwebに埋め込む<video>タグ

<video 
	src="$img/$1.mp4"
	preload="none" 
	poster="$imagedir/$file" 
	onclick="this.play();"
	width="640"
	controls>
<source src="$img/$1.mp4">
</video>

ePOS-Device API

HTML5 Canvas で描画した印刷イメージを印刷することもできます。

テキストを1文字づつ表示

http://zxcvbnmnbvcxz.com/demonstration/txtspan1.phpで教えてもらった。機動戦士ガンダムseedの起動画面みたいのを作ってみた。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />

<!-- links -->
<link href='http://fonts.googleapis.com/css?family=Monoton' rel='stylesheet' type='text/css' />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
<style type="text/css">
p:first-letter { 
  color: red; 
  font-size: 200%;
} 
p{
  margin: 0; 
  margin-top: 0;
  margin-bottom: -0.8em;
}
.tgt {font-size: 50px; line-height: 1.3; letter-spacing: 5px; word-break:break-all;font-family: 'Monoton', Arial, sans-serif;}
.tgt {opacity: 0;}
.tgt span{opacity: 0;}

</style>

<script type="text/javascript">
$(window).bind('load',function(){
  $('.tgt').children().andSelf().contents().each(function() {
    if (this.nodeType == 3) {
      $(this).replaceWith($(this).text().replace(/(\S)/g, '<span>$1</span>'));
    }
  });
// 一文字ずつフェードインさせる
  $('.tgt').css({'opacity':1});
  for (var i = 0; i <= $('.tgt').children().size(); i++) {
    $('.tgt').children('span:eq('+i+')').delay(50*i).animate({'opacity':1},50);
  };
});
</script>
<p class="tgt">
G eneral</p>
<p class="tgt">
U nilateral</p>
<p class="tgt">
N euro - link</p>
<p class="tgt">
D ispersive</p>
<p class="tgt">
A utonomic</p>
<p class="tgt">
M aneuver<br>
_______Synthesis System</p>
</body>
</html>

フォントをMagicRingに変更するとガンダムを動かす魔法の呪文のように見える。

--- gundam.html	水 4 23 11:06:23 2014
+++ gundam_magic.html	火 4 22 23:22:00 2014
@@ -9,16 +9,23 @@
 </head>
 <body>
 <style type="text/css">
-p:first-letter {
-  color: red; 
+@font-face{
+  font-family: MagicRing;
+  src: url(http://www21051ue.sakura.ne.jp/font/MagicRing.ttf);
+}
+p:first-letter { 
+  color: white; 
   font-size: 200%;
 } 
 p{
   margin: 0; 
   margin-top: 0;
   margin-bottom: -0.8em;
+  color: white;
+  text-shadow: 1px 1px 20px red;
+  background-color: black;
 }
-.tgt {font-size: 50px; line-height: 1.3; letter-spacing: 5px; word-break:break-all;font-family: 'Monoton', Arial, sans-serif;}
+.tgt {font-size: 50px; line-height: 1.3; letter-spacing: 5px; word-break:break-all;font-family: 'MagicRing','Monoton', Arial, sans-serif;}
 .tgt {opacity: 0;}
 .tgt span{opacity: 0;}
 
@@ -50,6 +57,6 @@
 A utonomic</p>
 <p class="tgt">
 M aneuver<br>
-__________Synthesis System</p>
+_______Synthesis System</p>
 </body>
 </html>
  • ActivPerlからOpenSSL脆弱性に対する防御呪文が届いた。
  • フリーの魔法陣っぽい文様フォントMagicRingを使わせて頂きました。作成者:稲塚 春さんに感謝

ENTERでカーソル移動

行列固定TABLE

これが↓なかなか良い

サンプル作ってみた

CSSとjQueryでプルダウンメニュー(超簡単)

http://kachibito.net/snippets/simple-drop-down-menu-with-nestで教えてもらった。

サンプルを作ってみた。

wkhtmltopdfをUbuntuで使うためのメモ

http://kynjp.wordpress.com/2012/01/30/wkhtmltopdf%E3%82%92ubuntu%E3%81%A7%E4%BD%BF%E3%81%86%E3%81%9F%E3%82%81%E3%81%AE%E3%83%A1%E3%83%A2/

LinuxでSSDのTrimコマンドを有効にする方法

http://d.hatena.ne.jp/pcmaster/20121108/p1

sarの読み方とか

Perl 5.8.x Unicode関連

DBD::Oracle

サーバー SJIS クライアント eucの場合に ``$ENV{NLS_LANG} = 'JAPANESE_JAPAN.JA16EUC';''と設定するが半角カタカナをfetchすると DBD::Oracle::st fetchrow_hashref failed: ORA-01403: のエラーがでる。

  • oci8.cを修正後make 
# diff -c oci8.c.org oci8.c
*** oci8.c.org 2013-02-08 16:32:30.521068402 +0900
--- oci8.c 2013-02-08 16:55:10.110065190 +0900
***************
*** 3811,3817 ****
                  fbh->csid,fbh->csform,oci_csform_name(fbh->csform), fbh->disize);
  
                  if (fbh->ftype == 5)/* XXX need to handle wide chars somehow */
!                         fbh->disize += 1;/* allow for null terminator */
  
          /* dbsize can be zero for 'select NULL ...'*/
  
--- 3811,3817 ----
                  fbh->csid,fbh->csform,oci_csform_name(fbh->csform), fbh->disize);
  
                  if (fbh->ftype == 5)/* XXX need to handle wide chars somehow */
!                         fbh->disize = fbh->disize*4 + 1;    /* allow for null terminator */
  
          /* dbsize can be zero for 'select NULL ...'*/

2007年頃同じようなパッチを当てて覚えがあるが、今(2013)でも同じ事をしなければいけないのか?(当時はDBI-Japanのページを参照してた気がするが、DBI-Japanはなくなったのか?…)

参考:

Jcode.pm 機種依存文字 変換

perlが5.10.1に上がったのでJcode(2.07)がEncodeのラッパーになり機種依存文字の変換が出来なくなった。JcodeがEncodeを使わないようにする為にMakefile.PLを書き換えインストール後Jcode.pmも変更した。

[、 ↓蝓&#31932;、、、]

# vi Makefile.PL		
		
#!/usr/local/bin/perl		
#		
# $Id: Makefile.PL,v 2.1 2005/06/20 06:21:06 dankogai Exp $		
#		
use strict;		
use ExtUtils::MakeMaker;		
		
my @EXTRA;		
		
=pod		
		
if ($] >= 5.008001){		
    @EXTRA = (		
              NORECURS => 1,		
              PM => { 'Jcode.pm' =>  '$(INST_LIB)/Jcode.pm',		
                      'Jcode/Nihongo.pod'		
                          => '$(INST_LIB)/Jcode/Nihongo.pod'		
                    },		
              );		
}		
		
=cut		
		
WriteMakefile		
    (		
     NAME         => 'Jcode',		
     VERSION_FROM => 'Jcode.pm',		
     PREREQ_PM    => {		
         'MIME::Base64'     => "2.1",		
     },		
     ($] >= 5.005 ?    ## Add these new keywords supported since 5.005 	 	
      (ABSTRACT_FROM => 'Jcode.pm', # retrieve abstract from module	 	
       AUTHOR     => 'Dan Kogai <dankogai@dan.co.jp>') : ()		
     ),		
     @EXTRA,		
     );		
		
		
# make install		
make[1]: ディレクトリ `/home/download/tmp/Jcode-2.07/Unicode' に入ります		
make[1]: ディレクトリ `/home/download/tmp/Jcode-2.07/Unicode' から出ます		
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree		
Installing /usr/local/lib64/perl5/auto/Jcode/Unicode/Unicode.so	 	
Installing /usr/local/lib64/perl5/auto/Jcode/Unicode/Unicode.bs		
Installing /usr/local/lib64/perl5/Jcode.pm		
Installing /usr/local/lib64/perl5/Jcode/H2Z.pm		
Installing /usr/local/lib64/perl5/Jcode/Nihongo.pod		
Installing /usr/local/lib64/perl5/Jcode/Constants.pm		
Installing /usr/local/lib64/perl5/Jcode/Unicode.pm		
Installing /usr/local/lib64/perl5/Jcode/_Classic.pm		
Installing /usr/local/lib64/perl5/Jcode/Tr.pm		
Installing /usr/local/lib64/perl5/Jcode/Unicode/Constants.pm		
Installing /usr/local/lib64/perl5/Jcode/Unicode/NoXS.pm		
Installing /usr/local/share/man/man3/Jcode::Unicode.3pm		
Installing /usr/local/share/man/man3/Jcode::Unicode::NoXS.3pm		
Installing /usr/local/share/man/man3/Jcode::Unicode::Constants.3pm	 	
Appending installation info to /usr/lib64/perl5/perllocal.pod		
# 		
		
		
# vi /usr/local/lib64/perl5/Jcode.pm		
#		
# $Id: Jcode.pm,v 2.7 2008/05/10 18:15:19 dankogai Exp dankogai $		
#		
		
package Jcode;		
use 5.005; # fair ?		
use Carp;		
use strict;		
use vars qw($RCSID $VERSION $DEBUG);		
 		
$RCSID = q$Id: Jcode.pm,v 2.7 2008/05/10 18:15:19 dankogai Exp dankogai $; 		
$VERSION = do { my @r = (q$Revision: 2.7 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };		
$DEBUG = 0;		
		
# we no longer use Exporter		
use vars qw($USE_ENCODE);		
#$USE_ENCODE = ($] >= 5.008001);		
$USE_ENCODE = ($] >= 9.008001);		
		

オレオレ証明書

http://thinkit.co.jp/cert/article/0706/3/7/2.htm

ユニコード表現(@XXXX)変換

mysqlの漢字のテーブル名がユニコード表現になった為にテーブルの実体のファイル名をutf8に変換するScript

http://bitwalker.dtiblog.com/blog-entry-114.html

http://www.takeash.net/wiki/?Perl%2F%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89

[decodeUni.pl]

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Encode;
binmode STDIN,":utf8";
while(my $line = <>){
 chomp($line);
 my $org = $line;
 $line =~ s/@([0-9a-f]{4})/chr(hex($1))/ige;
 $line =~ s/@([A-Za-z0-9])@/h2z($1)/ge;
 print encode('utf-8',$line) . "\n";
}
sub h2z{
 my $text = shift;
 $text =~ tr/A-Za-z0-9/A-Za-z0-9/;
 $text;
}
$ ls -l
-rw-rw---- 1 mysql mysql   1565012  1月 15 19:14 2013 @4ed5@639b@54c1@68da@5378@30c7@30fc@30bf.MYD
-rw-rw---- 1 mysql mysql    239616  1月 15 19:14 2013 @4ed5@639b@54c1@68da@5378@30c7@30fc@30bf.MYI
-rw-rw---- 1 mysql mysql      9212  1月 15 19:14 2013 @4ed5@639b@54c1@68da@5378@30c7@30fc@30bf.frm
-rw-rw---- 1 mysql mysql    128980  1月 15 19:14 2013 @4ed5@639b@54c1@8a55@4fa1@30d5@30a1@30a4@30eb.MYD
-rw-rw---- 1 mysql mysql      8192  1月 15 19:14 2013 @4ed5@639b@54c1@8a55@4fa1@30d5@30a1@30a4@30eb.MYI
-rw-rw---- 1 mysql mysql     10760  1月 15 19:14 2013 @4ed5@639b@54c1@8a55@4fa1@30d5@30a1@30a4@30eb.frm
-rw-rw---- 1 mysql mysql      1530  1月 15 19:14 2013 @4ed5@639b@54c1@8cc3@7387@30d5@30a1@30a4@30eb.MYD
-rw-rw---- 1 mysql mysql      2048  1月 15 19:14 2013 @4ed5@639b@54c1@8cc3@7387@30d5@30a1@30a4@30eb.MYI
-rw-rw---- 1 mysql mysql      8890  1月 15 19:14 2013 @4ed5@639b@54c1@8cc3@7387@30d5@30a1@30a4@30eb.frm
-rw-rw---- 1 mysql mysql 124919260  1月 15 19:15 2013 @4ed5@8a33@30c7@30fc@30bf.MYD
-rw-rw---- 1 mysql mysql  35011584  1月 15 19:15 2013 @4ed5@8a33@30c7@30fc@30bf.MYI
-rw-rw---- 1 mysql mysql     15350  1月 15 19:14 2013 @4ed5@8a33@30c7@30fc@30bf.frm


$ ls -l |decodeUni.pl
-rw-rw---- 1 mysql mysql   1565012  1月 15 19:14 2013 仕掛品棚卸データ.MYD
-rw-rw---- 1 mysql mysql    239616  1月 15 19:14 2013 仕掛品棚卸データ.MYI
-rw-rw---- 1 mysql mysql      9212  1月 15 19:14 2013 仕掛品棚卸データ.frm
-rw-rw---- 1 mysql mysql    128980  1月 15 19:14 2013 仕掛品評価ファイル.MYD
-rw-rw---- 1 mysql mysql      8192  1月 15 19:14 2013 仕掛品評価ファイル.MYI
-rw-rw---- 1 mysql mysql     10760  1月 15 19:14 2013 仕掛品評価ファイル.frm
-rw-rw---- 1 mysql mysql      1530  1月 15 19:14 2013 仕掛品賃率ファイル.MYD
-rw-rw---- 1 mysql mysql      2048  1月 15 19:14 2013 仕掛品賃率ファイル.MYI
-rw-rw---- 1 mysql mysql      8890  1月 15 19:14 2013 仕掛品賃率ファイル.frm
-rw-rw---- 1 mysql mysql 124919260  1月 15 19:15 2013 仕訳データ.MYD
-rw-rw---- 1 mysql mysql  35011584  1月 15 19:15 2013 仕訳データ.MYI
-rw-rw---- 1 mysql mysql     15350  1月 15 19:14 2013 仕訳データ.frm

CentOSで固定

IPアドレスの設定を手動で行うメモ。

IPの設定確認コマンド

# ifconfig -a
# netstat -nr

ネットワークeth0の設定を記入する

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0                #←デバイス名
ONBOOT=yes                 #←システム起動時に有効にするか
BOOTPROTO=none             #←固定IP:none,static DHCPはdhcp
HWADDR=XX:XX:XX:XX:XX:XX   #←MACアドレス
TYPE=Ethernet              #←インタフェースのデバイスタイプ。他にxDSLなど
#DHCP_HOSTNAME=example.com #←DHCPサーバに通知するホスト名
IPADDR=192.168.1.16        #←IPアドレスの指定
NETMASK=255.255.255.0      #←IPアドレスに対するネットマスクの指定
#NETADDR=192.168.1.0       #←ネットワークアドレス。通常IPアドレスとネットマスクより自動判断
#BROADCAST=192.168.1.255   #←ブロードキャストアドレス。通常IPアドレスとネットマスクより自動判断
USERCTL=no                 #←デバイスの制御をroot以外にも許すか。
PEERDNS=no                 #←DHCPによって取得したDNSサーバのアドレスを/etc/resolv.confに反映するか。DHCPを使う場合は通常yes。
GATEWAY=192.168.1.1        #←デフォルトのゲートウエイアドレス(普通はルータのIPアドレスを書く)
IPV6INIT=no                #←このデバイスでIPv6を有効にするかDNSの設定を記入する

# vi /etc/resolv.conf
nameserver XXX.XXX.XXX.XXX
nameserver XXX.XXX.XXX.XXX
 
ゲートウェイの設定を記入する

# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1

で、ネットワーク再起動
# service network restart

参照させて頂いたページ。(ありがとうございます)

GDライブラリ

  • インストール

Ubuntuの場合、libgd-gd2-perlパッケージをインストールすればOK。ここ参照

$ sudo apt-get install libgd-gd2-perl

グラフサンプル

Tableのヘッダ(thead)を固定して、<tbody>内をスクロールさせる方法

http://giraffy.jp/blog/2009/09/11/css/107/

  • ヘッダ固定の分かりやすいテーブルを簡単実装できるjQueryプラグイン「jQuery.FixedTable」

http://phpspot.org/blog/archives/2011/02/jqueryjqueryfix.html

チェックボックスをマウスでなめるようにドラッグするだけで切り替えるJavaScriptのサンプル

http://blog.fkoji.com/2007/03282238.html

/* require prototype.js */
if (typeof SAMPLE == "undefined") {
    var SAMPLE = {};
}
SAMPLE.isMousedown = false;
SAMPLE.mousedown = function(e) {
    SAMPLE.isMousedown = true;
}
SAMPLE.mouseup = function(e) {
    SAMPLE.isMousedown = false;
}
SAMPLE.mouseover = function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (SAMPLE.isMousedown) {
        if (target.type == "checkbox") {
            target.click();
        }
    }
}
Event.observe(document, "mousedown", SAMPLE.mousedown);
Event.observe(document, "mouseup", SAMPLE.mouseup);
Event.observe(document, "mouseover", SAMPLE.mouseover);

IE7 page-break-before

IE7になって改頁が利かなくなった。(IE7のbug?)

<p style="page-break-before:always;">が安定しない(改頁したりしなかったり)
を
<div style="page-break-before:always;">
  <br style="height:0; line-height:0"></div>に変えたら安定した?

Ajaxで入力補完(suggest)

http://cmf.ohtanz.com/suggest.html

http://www.drk7.jp/MT/archives/001324.html

load data

LOAD DATA INFILE '/tmp/ken_all.csv' INTO TABLE 郵便番号
          FIELDS TERMINATED BY ',' ENCLOSED BY '"'
( `全国地方公共団体コード`, `旧郵便番号` , `郵便番号`, `都道府県名カナ`, `市町村名カナ`, `町域名カナ`, `都道府県名`, `市町村名`, `町域名`)

sshにてパスワードを使用しないでログインする方法

http://www.turbolinux.co.jp/support/document/knowledge/152.html

【手順】

以下の解説の中で、local$ はローカルホスト上での操作を、remort$ はリモートホスト上での操作を表すプロンプトです。

[SSH protocol version 1 の場合]

(1) RSA キーを生成します。

local$ ssh-keygen

* 出力するファイル名、パスフレーズの入力を求められますが何も入力せずに全てEnteyキーを押下して下さい。

(2) 公開キーをリモートホストにコピーします。

local$ scp ~/.ssh/identity.pub name@remort.host:

(3) リモートホストにログインし、authorized_keys ファイルを生成します。

local$ ssh name@remort.host
remort$ cd .ssh/
remort$ touch authorized_keys
remort$ chmod 600 authorized_keys
remort$ cat ~/identity.pub >> authorized_keys
remort$ rm ~/identity.pub

(4) 設定完了です。動作を確認します。

remort$ logout
local$ ssh name@remort.host 

[SSH protocol version 2 の場合]

(1) DSA キーを生成します。

local$ ssh-keygen -t dsa

* 出力するファイル名、パスフレーズの入力を求められますが何も入力せずに全てEnteyキーを押下して下さい。

(2) 公開キーをリモートホストにコピーします。

local$ scp ~/.ssh/id_dsa.pub name@remort.host:

(3) リモートホストにログインし、authorized_keys2 ファイルを生成します。

local$ ssh name@remort.host
remort$ mkdir .ssh
remort$ chmod 700 .ssh/
remort$ cd .ssh/
remort$ touch authorized_keys2
remort$ chmod 600 authorized_keys2
remort$ cat ~/id_dsa.pub >>authorized_keys2
remort$ rm ~/id_dsa.pub

(4) 設定完了です。動作を確認します。

remort$ logout
local$ ssh name@remort.host

【注意】

.ssh/authorized_keys(2) のパーミッションは、所有者に対しては read/write を許可し、他のユーザーには、アクセスを許可しないで下さい。同ファイルに至るディレクトリのパーミッションにも注意して下さい。ユーザー以外に write を許可してはいけません。パーミッションが正しく設定されていないと、パスワードを要求されてしまいます。

sshdへのアクセスは/etc/hosts.allowファイルの設定で許可しておく必要があります。

【参考】

protocol version の優先順位を変更するには、設定ファイルの Protocol 項目を修正してください。

[/etc/ssh/sshd_config]
-------------------------
Protocol 2,1
-------------------------

[/etc/ssh/ssh_config]
-------------------------
Protocol 2,1
-------------------------

キーワードssh authorized_keys ssh-keygen

関連文書

(none)

ubuntuのEvinceで日本語PDFが表示できない

http://ubulog.blogspot.com/2007/10/ubuntuevincepdf.html

sudo apt-get install evince ghostscript cmap-adobe-japan1 xpdf-japanese
sudo mkdir -p /usr/share/poppler/cidToUnicode
sudo ln --symbolic /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode /usr/share/poppler/cidToUnicode/Adobe-Japan1
sudo mkdir -p /usr/share/poppler/cMap
sudo ln --symbolic /usr/share/fonts/cmap/adobe-japan1 /usr/share/poppler/cMap/Adobe-Japan1

mysql

レプリケーション

http://d.hatena.ne.jp/i_youhei/20061211/1165803548

MySQLのレプリケーションでスレーブ側でエラー発生時、そのエラーが発生しているSQL文だけスキップする方法

SHOW SLAVE STATUS 等でスレーブのステータスを見ると、なんらかの原因であるSQL文でエラーが発生していることが稀にあります。

データの整合性的にそのSQL文をスキップしても問題ないことがわかっている場合は下記のSQL文を発行することでスキップさせることが可能です。

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> SLAVE START;

memo

http://coderepos.org/share/browser/platform/firefox/pagesetup/trunk/README.txt

http://www.geocities.jp/mickindex/index.html

table sort (2)

JavaScriptでテーブルをソートする

http://blog.webcreativepark.net/2007/09/26-024416.html より

sortable_ja.jsを使いテーブルをソートするtable_sort.jsと違いsortable_ja.jsだけで実装出来るのでこちらを使ってみる

使用法:headにsortable_ja.jsを記述し対象テーブルにclass="sortable"を追加するだけである

mmt.pmの検索画面に入れてみる

Index: mmt.pm
===================================================================
RCS file: /usr/local/cvs/system/mmt.pm,v
retrieving revision 1.76
diff -c -r1.76 mmt.pm
*** mmt.pm	30 May 2008 08:35:27 -0000	1.76
--- mmt.pm	1 Jun 2008 23:34:23 -0000
***************
*** 202,207 ****
--- 202,210 ----
  			-style=>{'src'=>$s->{cons}->{css}.'sne.css'},
  			-script=>[{-language=>'JavaScript',
  					-src=>$s->{cons}->{js}.'prototype.js'
+ 				},
+ 				{-language=>'JavaScript',
+ 					-src=>$s->{cons}->{js}.'sortable_ja.js'
  				}],
  #			-head=>meta({-http_equiv=>'Pragma',
  #					-content=>'no-cache'}),
***************
*** 1140,1146 ****
  	$order = "order by $order" if($order);
  	$order = $s->{in}->param('OrderBy') if($s->{in}->param('OrderBy'));
  	$s->key_display();
! 	print "<table border=1>\n";
  	print "<thead>";
  	$s->head_line_disp;
  	print "</thead><tbody>";
--- 1143,1149 ----
  	$order = "order by $order" if($order);
  	$order = $s->{in}->param('OrderBy') if($s->{in}->param('OrderBy'));
  	$s->key_display();
! 	print qq{<table border=1 class="sortable" id="foo">\n};
  	print "<thead>";
  	$s->head_line_disp;
  	print "</thead><tbody>";

table sort

JavaScriptでテーブルをソートする

table-sort.jsを使いテーブルをソートできるmootools.jsを必要とする為prototype.jsとmootools.jsがバッティングするもよう?

使用法:mootools.jsとtable-sort.jsを使いSortableTableにてテーブルを指定する。

http://www.skuare.net/2007/10/javascripttablesort.html より

既存のテーブルを簡単にソートさせるjavascript「Table-Sort」
テーブルで作成した表をソートさせるjavascriptは多くありますが、内部を少し
いじらなければならないケースが多いです。
Table-Sortは、既存の仕組みでそのまま簡単にソートさせることができるjavascriptです。

使用方法
Table-Sortのtable-sort.jsを、mootoolsからmootools.jsをダウンロードします。

<script src="http://yourdomain/mootools.js" type="text/javascript"></script>
<script src="http://www.skuare.net/test/js/table-sort.js"  type="text/javascript"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
     new SortableTable($('tableのid名'));
});
</script>

mmt.pmの検索画面に入れてみる

204,205c204,219
< 					-src=>$s->{cons}->{js}.'prototype.js'
< 				}],
---
> 					-src=>$s->{cons}->{js}.'xprototype.js'
> 				},
> 				{-language=>'JavaScript',
> 					-src=>$s->{cons}->{js}.'mootools.js'
> 				},
> 				{-language=>'JavaScript',
> 					-src=>$s->{cons}->{js}.'table-sort.js'
> 				},
> 				{-language=>'JavaScript',
> 					-code=>q{
> window.addEvent('domready',function(){
> 	new SortableTable($('data'));
> });
> }
> 				},
> 				],
221,222c235,236
< 	print $s->formScript({'a5'=>$s->{m}->{editA5},
< 				'f1'=>$s->{m}->{editF1}});
---
> #	print $s->formScript({'a5'=>$s->{m}->{editA5},
> #				'f1'=>$s->{m}->{editF1}});
1143c1157
< 	print "<table border=1>\n";
---
> 	print qq{<table border=1 id="data">\n};

$ grep MAKING_C *|perl -nle '@a = split q{:} ; print "$a[0]"'|uniq|perl -lne '$a = `grep -m 1 $_ $_` ||$_ ;chomp $a;print $a'>/tmp/grep.list

my $ret;
for $name (`grep MAKING_C *|perl -nle '\@a = split q{:} ; print "\$a[0]"'|uniq`){
    chomp $name;
    $a = `grep -m 1 $name $name`||$name;
    chomp $a;
    $ret .= "$a\n";
}

return $ret;

http://80286.blog62.fc2.com/blog-entry-23.html

firefox2でセグメンテーション違反が発生
[対策]
ファイル「firefox」の2行目に以下を追加
export GTK_IM_MODULE=xim

http://www.advancedsearch.co.jp/

http://www.geraid.com/archives/web/

http://park15.wakwak.com/~k-lovely/cgi-bin/stereo.cgi

http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A1%E3%83%A2%2FXML%E3%81%AE%E8%A7%A3%E6%9E%90

sub xml_to_array {
	my $xml = shift;
	my $tag_regex_ = q{<[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))};
	my $comment_regex = '<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)';
	my $cdata_regex   = q{<!\[CDATA\[.*?(:?\]\]>|$(?!\n))};
	my $tag_regex     = qq{$cdata_regex|$comment_regex|$tag_regex_};
	my $text_regex    = q{[^<]*};
	my @result;
	while ($xml =~ /($text_regex)($tag_regex)?/gso) {
		my ($text, $tag) = ($1, $2);
		last if ($text eq '' and $tag eq '');
		push (@result, grep {$_ ne ''} ($text, $tag));
	}
	return @result;
}