VMWARE Server のインストールで「システム管理者によって、ポリシーはこのインストールを実行できないように設定されています」
ドメインに参加しているWindowsXP ProfessionalにVMWARE Server2.0をインストールしようとしたところ下記メッセージを出力して止まってしまう。
どないしたらえんじゃろ!?!?
のたうちまわった結果
コントロールパネル->管理ツール->ローカルセキュリティポリシー でローカルセキュリティポリシーを起動する。
ソフトウェアー制限ポリシーで、信頼された発行者のプロパティーで
ローカルコンピュータの管理者 にする。
CentOS XServer を設定してCygwinでアクセス
CentOSの画面をリモートでアクセス
/etc/gdm/custom.conf を編集
[security]
AllowRemoteRoot=true
[xdmcp]
Enable=true
これだけ
再起動したあとは、WindowsにCygwin を入れてアクセスするだけ
Cygwinはここからインストール http://www.cygwin.com/
コンソールを出して X -query 192.168.1.1 をたたくだけ
おっと忘れてた
ファイアウォールの設定も忘れないようにしなくては・・・
クライアント ----Tcp 6000ーーーー>サーバ
クライアント <----Tcp 6000ーーーーサーバ
双方向でつながらないとだめなんです
CentOS5.3 PHPのバージョンアップ PHP Version 5.2.13
CentOSでは、PHP5.1.X
ちょっと機能不足だし、WindowsでPHP5.2.× で動いていたものが動かないので、バージョンアップ!
- RPM-GPG-KEYを取得
rpm –import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
- リポジトリ参照の設定を追加
# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
- PHPのversionUPをする
yum update php*
- (perl互換正規表現)pcreをアップデート
yum update pcre
- Apacheの再起動
service httpd restart
- 他のアップデートでこのリポジトリが使われては困るので、上記2で作成したファイルを編集する。(赤の部分)
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
VB.NETでの残念なこと
えーウソでしょう!!
IsDate と IsNumeric は全角がOKなの~~~
IsDate(“2009/4/5”) はtrue
IsDate(“2009/4/5”) がtrue
いまさら知ってしまった。
SQL Serverで、データベースに残ったユーザを消す
データベースをSQL Server 2000 から Sql Server 2008 に移行した時、
2000のデータベースをでタッチして、2008のデータベースにアッタッチしたのですが
データベース内にユーザが残ってしまいました。
その昔は、そのままいったんデータベースユーザを削除して、再度追加していたのですが、
SqlServer 2008のManagement Studio では消せないようです。
そういう場合、下記のコマンドで消せました。
ユーザをスキーマに割り当ててからユーザとスキーマを削除する
ALTER USER ユーザ名 WITH DEFAULT_SCHEMA = ユーザ名
DROP SCHEMA ユーザ名
DROP USER ユーザ名
GO
他にも方法があったような・・・・・・・・
データベースのvarchar に文字を入れてみる
条件:データベースの規定文字をUTF-8にする。
フィールドの型を、varchar(3) とする。
PostgreSQL
’aaa’ 当然OK
’あいう’ OK
MySQL
’aaa’ 当然OK
’あいう’ OK
Jquery を使ってtextareaが全文表示されるように自動的に高さを調整する
HTMLで定義したサイズよりは小さくしない
何かご意見がある人は、コメントを書いてください
<script type=”text/javascript”>
//<![CDATA[
$(document).ready(function(){
$(“textarea”).each( function (e)
{
var value = $(this).val();
var orow = $(this).attr(“rows”);
var cols = $(this).attr(“cols”);
$(this).attr(“orows”,orow)
var rows = value.split(“\n”);
var nrow = rows.length;
var r = 0;
for(var i in rows)
{
if(rows[i].length >= cols)
{
r = (rows[i].length) / cols;
nrow += r;
}
}
if(orow < nrow) $(this).attr(“rows”,nrow);
} );
$(“textarea”).keydown( function (e)
{
var value = $(this).val();
var cols = $(this).attr(“cols”);
var rows = value.split(“\n”);
var nrow = rows.length;
var r = 0;
for(var i in rows)
{
if(rows[i].length >= cols)
{
r = (rows[i].length) / cols;
nrow += r;
}
}
var orow = $(this).attr(“orows”)
if(orow < nrow) $(this).attr(“rows”,nrow);
} );
});
//]]>
</script>
JAVA J2EE JavaEE ソースコード生成プログラム
前回、PHPのソースコード自動生成ツールを作ったのですが、今度はそれをJAVAにした。
とにかく、驚くほど速くプログラムが作れる。
ちょこっとデータベースを作成すれば、ものの5分で一覧表示 スクロール ソート そのテーブルの登録 更新 削除プログラムが作れます。
ぜひ使ってみてください。
ソースコード生成プログラムが作成するのは、
- データアクセス用のDAO
- 一覧表示用のJSP
- 一覧表示用のコントローラ
- 詳細表示用のJSP
- 詳細表示用のコントローラです
作成されたソースはそのまま、サンプルコードにもなります。
興味を持った人は、ここにコメントしてください。いつでもご覧いただけます。
社内からは、http://172.20.1.70/scg で使えます。
JAVA MAILを使用して、IMAP POP3からメールを取得するクラスです
ここ2年ばかりPHPをやってきたのだけど、JAVAがやっぱりいいということで、JAVAをやるはめになりました。
ブログのタイトルは「PHP開発」ですが、昔に戻って、当分JAVAをやりそうです。
よろしく!
そんなことで、Java Mailを使ってメールボックスからメールを取得するクラスを作ってみました。
ご意見ご感想をお待ちしています。
package jp.compsys.common.util;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Address;
import javax.mail.Message.RecipientType;
import javax.mail.internet.MimeUtility;
import com.sun.mail.util.QPDecoderStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Collections;
import java.util.Comparator;
import java.util.Properties;
import java.util.ArrayList;
/**
* サーバからメールを取得するクラス.
*
* @author Computer System Corp tamura
* @since 1.6
* @version 1.0
* @since 1.0
*/
public class MailReader implements Serializable
{
private static final long serialVersionUID = -8161055025994457665L;
private String server;
private String protocol = "imap";
private int port = 143;
private String userId;
private String password;
private int pageNo = 0;
private int recordCount = 0;
private int maxPageNo = 0;
private Session session;
private Store store;
private Folder folder;
/**
* MailReaderのコンストラクタ.
* @param server 接続するサーバ名またはIPアドレス
* @param port 接続するポート番号
* @param userId 接続するユーザID
* @param password 接続するパスワード
* @since 1.6
*/
public MailReader(String server, int port, String userId, String password)
{
this.server = server;
this.protocol="imap";
this.port = port;
this.userId = userId;
this.password = password;
/*
this.protocol="pop3";
this.port = -1;
*/
}
/**
* メールの内容を取得する。.
* @param msgnum メッセージ番号
* @return MailItemのインスタンスを返す。取得できない場合はnullを返す。
*/
public MailItem getMail(int msgnum)
{
MailItem mailItem = new MailItem();
if(!open()) return null;
try
{
folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
if (!folder.exists())
{
close();
return null;
}
Message m = folder.getMessage(msgnum);
messageEdit(m, mailItem);
Part p = m;
partSet(p, mailItem);
} catch (MessagingException ex)
{
mailItem = null;
ex.printStackTrace();
} catch (IOException ex)
{
mailItem = null;
ex.printStackTrace();
}
close();
return mailItem;
}
/**
* メールの一覧を取得(mailList)した後の実際の取得ページ番号を取得する。
* mailListメソッドを実行した後でなければ正しい値を返さない。.
*/
public int getPageNo()
{
return pageNo;
}
/**
* メールの一覧を取得(mailList)した時の総メール数を取得する。
* mailListメソッドを実行した後でなければ正しい値を返さない.
*/
public int getRecordCount()
{
return recordCount;
}
/**
* メールの一覧を取得(mailList)した時の最大ページ数を取得する。
* mailListメソッドを実行した後でなければ正しい値を返さない.
*/
public int getMaxPageNo()
{
return maxPageNo;
}
/**
* メールサーバに接続する。.
* @return true:成功 false:失敗
*/
private boolean open()
{
Properties properties = System.getProperties();
session = Session.getInstance(properties, null);
try
{
store = session.getStore(protocol);
store.connect(server, port, userId, password);
return true;
} catch (MessagingException ex)
{
ex.printStackTrace();
return false;
}
}
/**
* メールサーバとの接続をクローズする
*/
private void close()
{
if (null != store)
{
try
{
store.close();
} catch (MessagingException ex)
{
}
}
}
/**
* メールに含まれるメッセージや添付ファイルを取得する。.
*/
@SuppressWarnings("unchecked")
public void partSet(Part p, MailItem m) throws MessagingException, IOException
{
MailContent mailContent = new MailContent();
String disp = p.getDisposition();
if (p.isMimeType("multipart/*"))
{ // マルチパートの場合
Multipart mp = (Multipart) p.getContent();
int count = mp.getCount();
for (int i = 0; i < count; i++)
{
partSet(mp.getBodyPart(i), m);
}
return;
}
else if (p.isMimeType("message/rfc822"))
{ // メッセージの場合
partSet((Part) p.getContent(), m);
return;
}
else if (p.isMimeType("text/*"))
{
if(disp != null && disp.equalsIgnoreCase(Part.ATTACHMENT))
{
mailContent.attachmentFlg = true;
}
mailContent.header = p.getAllHeaders();
mailContent.contentType = p.getContentType();
mailContent.content = content2string(p.getContent());
m.mailContents.add(mailContent);
return;
}
// 添付ファイルの場合
if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT))
{
mailContent.contentBinaryFlg = true;
mailContent.fileName = p.getFileName();
if (mailContent.fileName != null)
{
mailContent.fileName = MimeUtility.decodeText(mailContent.fileName);
}
else
{
mailContent.fileName = "";
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try
{
p.writeTo(os);
mailContent.content_binary = os.toByteArray();
} catch (IOException e)
{
e.printStackTrace();
}
mailContent.header = p.getAllHeaders();
mailContent.contentType = p.getContentType();
mailContent.attachmentFlg=true;
m.mailContents.add(mailContent);
}
}
/**
* text/* に含まれるコンテンツを文字列として受け取る.
* @param textコンテンツの内容
*/
private String content2string(Object obj) throws MessagingException
{
String ret = "";
if (obj instanceof String)
{
return (String) obj;
}
else if (obj instanceof QPDecoderStream)
{
ByteArrayOutputStream os = new ByteArrayOutputStream();
QPDecoderStream qps = (QPDecoderStream) obj;
while (true)
{
try
{
int c = qps.read();
if (c == -1) break;
os.write(c);
} catch (IOException ex)
{
return ret;
}
}
ret = os.toString();
}
else
{
throw new MessagingException("textのコンテンツファイルに未定義のものがあります");
}
return ret;
}
/**
* メールの一覧をぺジ単位に取得します。
* @param lineCount 1ページあたりの行数
* @param pageNo 取得したいページ
* @return 取得したメールの一覧を返します。メールがない場合はnullを返します。
*/
public ArrayList mailList(int lineCount, int pageNo)
{
this.pageNo = pageNo;
recordCount = 0;
maxPageNo = 0;
ArrayList list = null;
open();
int start = 0;
int end = 0;
int cnt = 0;
try
{
folder = store.getFolder("INBOX");
if (!folder.exists())
{
close();
return list;
}
folder.open(Folder.READ_ONLY);
cnt = folder.getMessageCount();
if (0 == cnt)
{
close();
return list;
}
recordCount = cnt;
maxPageNo = (int) Math.ceil((double) cnt / (double) lineCount);
if (this.pageNo maxPageNo) this.pageNo = maxPageNo;
list = new ArrayList(cnt);
Message mes[] = folder.getMessages();
for (Message m : mes)
{
MailItem mailItem = new MailItem();
messageEdit(m, mailItem);
// 一覧にメールの内容も取得したい場合はコメントをはずす かなり遅くなるのでやめたほうがいいです。
/* Part p = m;
partSet(p, mailItem);
*/ list.add(mailItem);
}
folder.close(false);
} catch (MessagingException ex)
{
ex.printStackTrace();
} catch (Exception e)
{
e.printStackTrace();
} finally
{
}
close();
Collections.sort(list, new Comparator()
{
public int compare(MailItem o1, MailItem o2)
{
return (o1.sentDate.compareTo(o2.sentDate) * (-1));
}
});
start = (this.pageNo - 1) * lineCount;
if (this.pageNo == maxPageNo)
{
end = start + ((cnt - 1) % lineCount);
}
else
{
end = start + lineCount - 1;
}
int i = -1;
ArrayList retList = new ArrayList(end - start + 1);
for (MailItem m : list)
{
i++;
if (i end) break;
retList.add(m);
}
return retList;
}
/**
* メッセージに含まれるヘダー情報を取得編集する。
* @param m javax.mail.Message
* @param mailItem 編集対象
*/
private void messageEdit(Message m, MailItem mailItem)
{
try
{
mailItem.messageNo = m.getMessageNumber();
mailItem.sentDate = m.getSentDate();
mailItem.receivedDate = m.getReceivedDate();
mailItem.subject = m.getSubject();
Flags flags = m.getFlags();
String[] userFlg = flags.getUserFlags();
{
if (m.isSet(Flags.Flag.ANSWERED))
{
mailItem.systemFlg.add("ANSWERED");
}
if (m.isSet(Flags.Flag.DELETED))
{
mailItem.systemFlg.add("DELETED");
}
if (m.isSet(Flags.Flag.DRAFT))
{
mailItem.systemFlg.add("DRAFT");
}
if (m.isSet(Flags.Flag.FLAGGED))
{
mailItem.systemFlg.add("FLAGGED");
}
if (m.isSet(Flags.Flag.RECENT))
{
mailItem.systemFlg.add("RECENT");
}
if (m.isSet(Flags.Flag.SEEN))
{
mailItem.systemFlg.add("SEEN");
}
if (m.isSet(Flags.Flag.USER))
{
mailItem.systemFlg.add("USER");
}
}
if (null != userFlg)
{
for (int i = 0; i < userFlg.length; i++)
{
mailItem.userFlg.add(userFlg[i]);
}
}
if (null != m.getFrom())
{
for (Address a : m.getFrom())
{
mailItem.from.add(MimeUtility.decodeText(a.toString()));
}
}
if (null != m.getReplyTo())
{
for (Address a : m.getReplyTo())
{
mailItem.replyTo.add(MimeUtility.decodeText(a.toString()));
}
}
if (null != m.getRecipients(RecipientType.TO))
{
for (Address a : m.getRecipients(RecipientType.TO))
{
mailItem.to.add(MimeUtility.decodeText(a.toString()));
}
}
if (null != m.getRecipients(RecipientType.CC))
{
for (Address a : m.getRecipients(RecipientType.CC))
{
mailItem.cc.add(MimeUtility.decodeText(a.toString()));
}
}
if (null != m.getRecipients(RecipientType.BCC))
{
for (Address a : m.getRecipients(RecipientType.BCC))
{
mailItem.bcc.add(MimeUtility.decodeText(a.toString()));
}
}
} catch (UnsupportedEncodingException ex)
{
ex.printStackTrace();
} catch (MessagingException ex)
{
ex.printStackTrace();
} finally
{
}
}
}
LINUXでUSBハードディスクの増設をするのにデバイスが足りない!!
えっーーつと
デバイスを追加するために/devの中を見てみると、sda~sdhまでしかない
そこで、デバイスの追加をするコマンドはなんだっけ・・・・・・
あっ!思い出した
mknod sdi b 8 128
mknod sdi1 b 8 129
これでよかったっけ!!
後はパーティションを切って、フォーマットして終わり