開発メモの最近のブログ記事

2011/09/26(月)

どこに行ったのTwitterのRSS(2011/09)

    どこに行ったのTwitterのRSS(2011/09)

各種クライアントでお気軽に読めちゃうのがTwitterの魅力ですが
やはりネットストーキングするならRSSで読みたいわけですよ。

しかし気がついたらいつの間にかTwitterのRSSがどっかにいった...
ぐぐってみたらどうやらこういうことらしい。

しかし手動でやるにはちょっとめんどくさいなーという感じ。
せっかくなので、以前からの疑問coreserver.jpでcakePHP動くんかいな?
ってことも試してみたかったのでつくってみた。→TwitterユーザーのRSSページを探します


わかったこと
•特に何もしなくてもcoreserver.jpではcakePHP1.3が動く。
•しかし超遅い。

•ていうかそもそも
http://twitter.com/statuses/user_timeline/username.rss
でそのユーザーのRSSが取れる
(今気づいたorz)


| コメント(0) | トラックバック(0)

 Cakeを触り始めてもうすぐ半年
 色々とわかってきた気がするぞー

 んでCakeアプリを本番環境で動かす時の話なんですが。
 core.phpのdebugを0(運用モード)にしておけば、どんなエラーが発生しようとも絶対表には出さない安全仕様。
 memory_limitにひっかかって落ちてもログファイルには何ひとつ記録されないとかCake様超ステキ。

 FWの動作が気に食わねぇなら手前で書き直しやがれ何の為のLLだ!?
 と誰かに言われた気がしたので調べてみたよ。
 バージョンは1.2.4です。

 cake/libs/configure.php
 293行目あたり

if (isset($config['debug'])) {
    if (
$_this->debug) {
        
error_reporting(E_ALL);

        if (
function_exists('ini_set')) {
            
ini_set('display_errors'1);
        }

        if (!
class_exists('Debugger')) {
            require 
LIBS 'debugger.php';
        }
        if (!
class_exists('CakeLog')) {
            require 
LIBS 'cake_log.php';
        }
        
Configure::write('log'LOG_NOTICE);
    } else {
        
error_reporting(0);
        
Configure::write('log'LOG_NOTICE);
    }
}

 ここでerror_reporting(0)されてますねー
 こいつをどうにかした上でdisplay_errorsとかlog_errorsをどうにかしてやれば
 無事にログだけ記録されるようになりましたとさ。

<$mt:Include module="GoogleAdsence"$>


| コメント(0) | トラックバック(0)

 何の変哲もない、普通のExcelのシート。
 何の変哲もないExcelシートが

 「メールの宛先に送信」を使って、シートをOutlookで送信すると・・・
 受信先では背景色が真っ黒に!
 受信すると真っ黒に!


<$mt:Include module="GoogleAdsence"$>


 送信につかったExcelのシート全体を選択してプロパティ、塗りつぶしタブ。
 「パターンの種類」で赤丸を選択したら解決しました。
 ここが原因でした
 やれやれ。

 というかExcelからメール送る事ができるなんて知りませんでした・・・


| コメント(0) | トラックバック(0)


932 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/21(木) 18:52:23
csv調べたら、2005年にRFC4180でしっかり仕様付けされてるんだねw
なかなか為になったよ


うわお、本当だ
覚えておかねば。


<$mt:Include module="GoogleAdsence"$>


| コメント(0) | トラックバック(0)

SQLがちょっと複雑になってきたりすると、なんてことないケアレスミスで構文エラーが出る。
そんなの日常茶飯事ですが・・・

どうやらSI Object Browserはエラーのある行を指示してくれないようです。
(参考:公式FAQ)
まあ社外ツールなら仕方ないか。
次期バージョンアップに期待。

SQLEditorTEはかなり的確にエラー行を指定してくれるのですが
これはあくまでストアドでロジックを書いている場合のみの模様。

単純にSELECT文のエラー箇所を特定したいという場合にはどうすりゃいいんだろ?
純正ツールならきっとあるよなエラー行特定機能が。
で、調べってみた。
どうやらSQLPlusを使うといけるらしい。

早速動かないSQLを貼り付けてみると、無事にエラー行を指定してくれた。
よかったよかった。


・・・でもこれなんか面倒くさくね?


ゲ○ツ氏製品との比較ばかりで申し訳ないのだが
SQLServerなら付属ツールだけでエラー行の特定はもちろん
ストアドのデバッグだってできるんだけどな・・・

Oracleさん、色々大変なんだとは思いますが
僕のような低脳でもらくちん開発できるように周辺ツール充実させてください。
ほんとお願いします。


<$mt:Include module="GoogleAdsence"$>


※追記
SQLPlusに長いSQL貼り付けると途中で切れちゃったりしますが
コマンドプロンプトで実行すれば一発OKな模様。(情報元はこちら
こりゃ便利。


| コメント(0) | トラックバック(0)

 今まではほとんどSQLServerだったのですが
 最近はひたすらOracle PL/SQLでストアド書いてます。

 この仕事はじめて8年になりますが
 実は僕のストアドのコーディング経験って、みっくりするほど少ない。

 なにしろこれまでは
 クライアントサイドに配置された実行モジュール内にゴリゴリ生SQL書いて
 直接DBにアクセスしてるような時代遅れの2階層C/Sばっかりだったからな。

 APサーバー?
 ORマッピング?
 3階層C/S?
 MVC?
 なにそれ食えんの?

 そんな感じなので、普通のDMLなSQLならそこそこ書いているのですが・・・
 ストアドを書くケースが増えてきたのはここ1年くらいなんですよ。
 三流プログラマバンザイ。

 なので以下まったく空気読めてない発言ですよ。
 先に誤っておきますサーセン。


<$mt:Include module="GoogleAdsence"$>


| コメント(0) | トラックバック(0)
2007/08/07(火)

帳票地獄(EUR)

   帳票地獄(EUR)

 新PJのお話。
 今回のシステムでは帳票出力にHITACHIのEURというツールを使ってるんですが。
 コレがまた、操作に癖があって使いにくい。


 取り急ぎやりたい事は「ページ計を出力したい」なのですが・・・
 ヘルプを覗いてもキー毎集計の例が出てくるばかりでページ計のサンプルが見つからない。


 ええぃ面倒だ
 助けてーGoogle先生ー(こればっかり)


 で、出てきたのがHITACHIのQ&A

>ページ計を出力する機能はありません。
 ( ゚д゚)・・・ハイ?

 (つд⊂)ゴシゴシ

 (;゚д゚)・・・


 ・・・そんな帳票ツール聞いたことないよ・・・
 ページ単位で合計出すなんて至極一般的な要件なのに・・・
 いや、言い切ってくれてるだけまだマシなのか?


 一応ページ計の実現方法も記載されているんですが



>1ページに出力する行数を決める。
>使用するデータへ,1ページに出力する行のまとまり別に目印となる値を入れておく。
>帳票設計で,決めておいた行数を繰り返し個数に指定し,データに入れた目印でキー集計を行うように設定する。


 じゃあデータソースになってるテーブル変えなきゃ・・・
 そのテーブルにデータ入れてるストアドも変えなきゃ・・・
 えぇぇぇじゃあもし仕様変更かかったらまた全部手を入れなきゃイカンじゃないかっ
 ダメじゃん・・・


<$mt:Include module="GoogleAdsence"$>


| コメント(2) | トラックバック(0)

 会社の新サーバーセットアップメモ。


 目的:
 Windows2000Serverドメインコントローラー(兼ファイルサーバー・プリントサーバー)をWindowsServer2003にリプレースする。
 ドメインコントローラーのコンピュータ名、その他ネットワーク共有資源名は全て旧と同一にする。


 ドメインコントローラー移行についてのドキュメントはMSのKBに色々あるんだけど、どれもが難解すぎてなかなか理解できない・・・
 そんな中
 ■EZ-NET:ドメインコントローラを Windows Server 2003 に置き換える
 を発見。
 これはわかりやすい。
 文書を読み進めながら順を追って作業。


 引っかかった点が1点。
 新サーバー(Windows2003Server)を既存ドメインのドメインコントローラーとして追加する際に以下のエラーが。


>次のエラーにより、操作に失敗しました:
>
>Windows Server 2003 Server のインストール用にフォレストが準備されていないために Active Directory インストール ウィザードを続行できません。
>adprep コマンドライン ツールを使ってフォレストおよびドメインの両方を準備してください。
>Adprep の使用法についての詳細は、Active Directory ヘルプを参照してください。
>
>"ソース フォレストの Active Directory スキーマのバージョンはこのコンピュータの Active Directory のバージョンと互換性がありません。"


 おかしいな、adprepは実行済みなんだけど・・・
 と、MSのKB917385をよく読んでみると


>この問題を解決するには、スキーマ マスタで Windows Server 2003 R2 のインストール ディスク 2 から adprep.exe /forestprep コマンドを実行します。
>コマンドを実行するには、Windows Server 2003 R2 のインストール ディスク 2 を挿入して、次のコマンドを入力します。
>Drive:\CMPNENTS\R2\ADPREP\adprep.exe /forestprep


 コレだあああ
 さっきはDisk1のi386以下にあるadprep使ってた・・・
 ちゃんとDisk2を使わないとダメなんですね。
 2000ServerでDisk2のadprepを実行、2003Serverをドメインコントローラーに追加・・・成功!
 dcpromoコマンドで2000Serverをメンバサーバーに降格して、ドメインコントローラーの移行完了。


<$mt:Include module="GoogleAdsence"$>


 2000Server(旧)をネットワークから切り離し、2003Server(新)のコンピュータ名とIPアドレスを旧サーバーの物に変更・・・
 またエラーが。


>コンピュータ名を "HOGE" に変更中に次のエラーが発生しました:
>アカウントは既に存在します。


 あれ?
 ActiveDirectoryユーザーとコンピュータ-ComputersからはHOGE(旧)サーバーは削除済みなんだけど・・・


 よくよく調べてみたら
 Active Directory サイトとサービス
 -Sites-Default
  -First-Site-Name
   -Servers
 にHOGEサーバーの名前が残っていました。
 ポチっと削除。
 無事コンピュータ名の変更に成功。


 仕上げに旧サーバから共有フォルダのデータをコピーし、プリンタをセットアップ。
 共有資源のアクセス権限を設定して、クライアントパソコンから共有資源が使える事を確認。
 無事にサーバー移行完了!!


 はー疲れたぜ。


<$mt:Include module="GoogleAdsence"$>


| コメント(0) | トラックバック(0)

 全てのテーブルのデータ件数を取得するT-SQLスクリプト書いたのでメモ。
 DB移行なんかの時の検証用にでも。
 SQLServer7.0で動きました。
 単にテーブル名取ってきてCountした結果を一時テーブルに突っ込んでるだけです。


--すべてのユーザーテーブルのデータ行数を一覧表示する

--テーブル名(サイズは適当です。必要に応じて増やしてね。)
DECLARE @TABLE_NAME NVARCHAR(100)

--集計用SQL(SQL文字列用です。必要に応じてry)
DECLARE @SQL NVARCHAR(100)

--件数取得用
DECLARE @ROW_COUNT int

--集計結果保存用一時テーブル
CREATE TABLE #T_RESULT(
TABLE_NAME NVARCHAR(100),
ROW_COUNT int
)

--sysobjectsに保存されているユーザーテーブルをすべて取り出すカーソル
DECLARE C_TABLES CURSOR FOR
  SELECT name
  FROM sysobjects
  WHERE (type = 'U')

OPEN C_TABLES

FETCH NEXT FROM C_TABLES INTO @TABLE_NAME

WHILE @@FETCH_STATUS = 0
BEGIN
  --データ件数集計用SQL文字列の生成
  SET @SQL = N'SELECT @ROW_COUNT = COUNT(*) FROM ' + @TABLE_NAME

  --行数をOUTPUTするSQL実行
  EXEC SP_EXECUTESQL @SQL, N'@ROW_COUNT int OUTPUT', @ROW_COUNT OUTPUT

  --結果を一時テーブルにINSERT
  INSERT INTO #T_RESULT VALUES (@TABLE_NAME, @ROW_COUNT)

  FETCH NEXT FROM C_TABLES INTO @TABLE_NAME
END

CLOSE C_TABLES
DEALLOCATE C_TABLES

SELECT * FROM #T_RESULT ORDER BY TABLE_NAME



<$mt:Include module="GoogleAdsence"$>


 ※後日追記
 人力検索にサンプルソースが。

 ※追記
 SQLServer2005以降はこちらにサンプルが!




| コメント(0) | トラックバック(0)

今月末にお客さんのサーバーリプレースの予定があり、本日からその作業開始。
OSはNT4.0から2003Serverに、SQLServerも7.0から2005へと大幅バージョンアップ。
業務の中心となるサーバーの入れ替えなので慎重にいかねばね。


というわけで色々作業している訳ですが。
SQLServer7.0でバックアップを取り2005で復旧しようとしたらうまくいかない。


バックアップセットは、既存のデータベース'hoge'以外のデータベースのバックアップを保持しています。
RESTORE DATABASEが異常終了しています。(MicrosoftSQLServer、エラー:3154)


うーむ。
SQLServer7.0→2000はすんなり復旧できたのですが2005はそうはいかない模様。


ためしに7.0DBのデタッチ→ファイルコピー→2005でアタッチするとうまくいった。
ヤレヤレ。

<$mt:Include module="GoogleAdsence"$>


| コメント(0) | トラックバック(0)

MTBlog50c2BetaInner

日本一周みんな集まれ


中の人プロフィール

最近のコメント

MovableType(MT)テンプレート 無料(フリー)
Powered by Movable Type 5.12
?