SuperTaoer::Thanksgiving

道空道,佛归道.天碧渊,倚依照.若问故人情,滴水杯中傲!

十月 24, 2005

mysql 增加最大连接数的方法

文章类别: 程序 技术 — SuperTaoer @ 2:02 am

上网上搜了搜

一种是在my.cnf里面加入
set-variable = max_connections=1000
不过似乎不是很起作用?

还有一种就是safe_mysqld/mysqld_safe 中启动的命令加入
-O max_connections=1000

然后输入mysqladmin -uroot -p variables
输入密码后你就可以看到你加载的变量了。

第一种方法我试过了,不过似乎不是很有用
试试看第二种
先搜索文件的 Start然后往下看
你会找到类似这样的两行
$NOHUP_NICENESS $ledir/$MYSQLD
像我这样加入就好了
$NOHUP_NICENESS $ledir/$MYSQLD $defaults –basedir=$MY_BASEDIR_VERSION –datadir=$DATADIR $USER_OPTION –pid-file=$pid_file –skip-locking -O max_connections=1000 >> $err_log 2>&1

eval “$NOHUP_NICENESS $ledir/$MYSQLD $defaults –basedir=$MY_BASEDIR_VERSION –datadir=$DATADIR $USER_OPTION –pid-file=$pid_file –skip-locking $args -O max_connections=1000 >> $err_log 2>&1″



十月 17, 2005

ADOdb Lite how to/install 文档中文翻译 和 ADOdb Lite 使用小记

文章类别: 程序 技术 — SuperTaoer @ 3:22 am

[原创]转载请注明出处。
使用adodb lite很简单,抛弃臃肿的adodb,牺牲一些功能来换来一些效率。
这个小记算是adodb lite 的中文 How To Install & Connect吧。
这篇文章的英文原文地址是: adodblite.sourceforge.net/howtoinstall.php
或者这里: www.taoer.com/doc/mydocs/php/adodb_lite1.03
在网上没有搜到adodb lite 的中文文档,只好自己用半吊子英文翻译出来了。。。
省略去解压缩,包含文件啥的等步骤。。。。。。
——-连接到你的数据库
1.包含文件

  1. require_once "adodb.inc.php";

2.设定数据库类型,完整的数据库类型列表参考 这里

  1. $db = ADONewConnection("mysql");

3.设定是否自动创建数据库(意思是如果你链接的数据库不存在,则自动建立,这个意义不大,我设为false)

  1. $db->createdatabase = false;

4.设定是否显示调试信息(如果你希望每次数据库查询都显示错误信息,你可以设为true,默认是false)
PS:个人建议,调试程序设置为true,服务上线修改为false,可以把错误信息记录在log里面

  1. $db->debug = true;

5.建立数据库连接

  1. $result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");

或者建立持久连接

  1. $result = $db->PConnect("$dbhost", "$dbuname", "$dbpass", "$dbname");

或者强制建立新连接

  1. $result = $db->NConnect("$dbhost", "$dbuname", "$dbpass", "$dbname");

参数说明:
$dbhost: 数据库的地址,可以为url或者ip地址,例如:http://127.0.0.1 或者 www.yourhost.com 或者 localhost
$dbuname: 一个可以访问数据库的用户名
$dbpass: 一个和 $dbuname 匹配的可以访问数据库的密码
$dbname: 你要访问的数据库名
举例:

  1. require_once "adodb.inc.php";
  2. $db = ADONewConnection("mysql");
  3. $db->createdatabase = false;
  4. $result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");

——-可选的连接标识
1.Mysql/Mysqli/Mysqlt:
$db->port = 通过端口号进行连接。
$db->clientflags = 这个客户端参数可以是以下的几个常量:MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE。(PHP 4.3.0或者更高版本)
Mysqli:
$db->socket = 指定socket或者指定pipe来使用
Postgres(all):
$db->port = 通过端口号进行连接。
——-DSN(Data Source Name)连接方法
如果你使用DSN连接字符串代替数据库类型,你可以选择你的数据库驱动并同时连接。DSN可以扩展使用锚标记来包含模块(可能翻译的不是很准确)。
You can perform your driver selection and connection all at the same time if you use a DSN connection string instead of the databasetype. The DSN entry has been expanded to use the anchor symbol for the inclusion of modules.
$driver://$username:$password@$hostname/$database?options[=value]#$modules
例如: $driver://$user_root:$pwd_root@$localhost/$test?options[=value]#$modules
至于options和modules还没有提到,先不作解释。
$driver = 在上面告诉你的数据库类型列表中选择你的数据库类型并用找到的字符串来定义这个变量
$username = 可以访问你的数据库的用户名
$password = 访问你数据库用户名相对应的密码
$hostname = 数据库的地址,可以为url或者ip地址,例如:http://127.0.0.1 或者 www.yourhost.com 或者 localhost
$database = 你要访问的数据库名
$options = 所用的驱动 - ‘持续’,'持续稳固的’, ‘调试’, ‘取得数据集模式:’
Mysql(all) - ‘端口’, ‘客户端标识’
Mysqli - ’socket’
Postgress(all) - ‘端口’
PS:翻译的不是很准确,把英文放在后面作为对照
$options = All Drivers - ‘persist’, ‘persistent’, ‘debug’, ‘fetchmode’
Mysql (all) - ‘port’, ‘clientflags’
Mysqli - ’socket’
Postgress (all) - ‘port’
$modules = 模块可以加载。例如,PEAR,cache,extend,etc…
PS:翻译的不是很准确,把英文放在后面作为对照
$modules = The modules that should be loaded. IE: pear, cache, extend, ect..
你可以仅使用单一的命令来选择你的驱动并且连接数据库代替两行的命令字符串

  1. require_once "adodb.inc.php";
  2. $flags = MYSQL_CLIENT_COMPRESS;
  3. $dsn_string = 'mysql://user:junk@localhost/mydb?persist&clientflags=$flags#pear:extend';
  4. $db = ADONewConnection($dsn_string);

上面的例子使用mysql的数据库驱动创建一个持久的mysql数据库连接。用户名识user,密码识junk,主机地址是localhost,并且启动mysql的压缩选项,加载pear和extend模块。
——-ADODB Lite 配置文件
ADODB Lite 使用一个配置文件(adodb.config.php)来提供比ADOdb更好的应用。当通过配置文件连接数据库你可以指定你需要加载的模块。
例如:

  1. < ?
  2. /**
  3. * ADOdb Lite Configuration File
  4. */
  5. /**
  6. * Set the $dbtype variable to the database designator.
  7. * If this variable is enabled it will override the database designator
  8. * entered in the ADONewConnection( $dbtype ) function. The database
  9. * designator in a DSN string will be overridden but the rest of the DSN
  10. * string will be used.
  11. *
  12. * You can place a DSN entry in the $dbtype variable if you would like to
  13. * auto connect to your database.
  14. *
  15. * Example:
  16. *
  17. * $dbtype = "driver://username:password@hostname/database?options[=value]#modules";
  18. *
  19. * driver = Databasetype Designator listed in the table at the start of this page.
  20. * username = The Username needed to access the database
  21. * password = Optional password for accessing the database
  22. * hostname = localhost or url/ip address IE: http://0.0.0.0 or http://www.dbserver.com 
  23. * database = The name of the database you will be accessing
  24. * options = All Drivers - 'persist', 'persistent', 'debug', 'fetchmode'
  25. * Mysql (all) - 'port', 'clientflags'
  26. * Mysqli - 'socket'
  27. * Postgress (all) - 'port'
  28. * modules = The modules that should be loaded. IE: pear, cache, extend, ect.
  29. *
  30. */
  31. // $dbtype = "mysql";
  32. /**
  33. * If you want to maintain compatability with the ADOdb ADONewConnection( $dbtype )
  34. * function you should designate the modules you need loaded below. If you designate
  35. * the modules below you do not need to designate them in
  36. * ADONewConnection( $dbtype, $modules ).
  37. *
  38. * If you would like more than one module loaded at the same time concatinate the
  39. * module names using a colon (:).
  40. *
  41. * Example:
  42. * $modules = "pear:transaction:extend";
  43. *
  44. * The above example would load the Pear, Transaction and Extend modules
  45. * automatically.
  46. */
  47. $modules = "pear:extend";
  48. ?>

上面的这个例子都能看懂吧,就不用翻译了,呵呵。
在上面这个例子自动的加载了Pear和Extend模块 当

  1. $db = ADONewConnection( $dbtype );

这行语句被执行的时候。
由于改变了上面的配置文件,你就不需要这么来连接数据库了

  1. $db = ADONewConnection( $dbtype, 'pear:extend');

这样维护100%的兼容当前使用的ADOdb应用并且更容易的更换到ADOdb Lite。
This maintains 100% compatability for applications currently using ADOdb and makes it easier for them to change to ADOdb Lite.
我推荐使用这个配置文件来让ADOdb Lite知道都有什么模块需要被代替到DSN的tag或者添加模块到ADONewConnection的函数中。这样允许你现有的应用来使用ADOdb Lite。
I recommend using this configuration file for telling ADOdb Lite what modules should be used instead of using the DSN anchor tag or adding the modules to the ADONewCOnnection function. This will allow you to use ADOdb Lite with existing applications.
PS:上面的两句翻译的不是很准确,但是大致意思应该对了,把英文的原文放在下面供大家参考。
——-ADOdb 模块
从这里我将要用modules100%的兼容ADOdb。我可以添加一个模块系统到包里面,允许你选择模块如果你愿意加载的话。我们将提供两个模块 release的Transaction 和 Pear。
The one departure I am going to make from 100% compatibility with ADOdb is with modules. I have added a module system to the package that will allow you to select the modules you would like to have loaded. We will be offering two modules with this release for Transaction and Pear.
你可以使用第二个命令(参数)当你设立你的ADOdb Lite的时候。
There is a second command you can use when setting up your ADOdb Lite.

  1. $db = ADONewConnection($databasetype, $module);

$module变量是可选的
PS:上面的两句翻译的不是很准确,但是大致意思应该对了,把英文的原文放在下面供大家参考。
例子:

  1. $db = ADONewConnection('postgres7', 'transaction');

上面使用 Postgres 7 数据库加载了 Transaction 模块。
下一个模块将是Pear。
例子:

  1. $db = ADONewConnection('postgres7', 'pear');

如果你需要同时两个模块都加载

  1. $db = ADONewConnection('postgres7', 'transaction : pear');

如果你需要加载多个模块你可以想这样输入多个你想要的。他们中间用冒号(:)来分隔每个模块在你的列表。
If you need to load multiple modules you can enter as many as you want. You will need to place a colon (:) between each module in your list.
例子:

  1. require_once "adodb.inc.php";
  2. $db = ADONewConnection('databasetype', 'pear : transaction : cache' );
  3. $db->createdatabase = true ;
  4. $result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");

上面的这个例子加载了 Pear,Transaction 和 Cache 这3个模块。 他们允许你是用命令/函数来访问这些模块。他们不限制有多少模块被加载。
The above example would load the Pear, Transaction and Cache modules. This would allow you to use the commands/functions associated with those modules. There isn’t a limit to how many modules that may be loaded.
我没有一个固定的日期 为 当 数据库缓存 将要出现 因为我没有一个固定的路标 我将继续扩展数据库缓存部分的代码。我有一个想法,不过我需要先试验一下。
I do not have a firm date for when database caching will be coming out because I do not have a firm roadmap on how I will impliment the code for database caching. I have a number of ideas that I need to try out first.
PS:这段翻译的最烂了,希望明白的朋友留言给我,thanks :)
——-结尾
如果你使用ADODB你会注意到ADOdb Lite 是标准的使用ADODB的参数和命令。这样做可以让你的多个站点非常容易的转换到ADOdb Lite。
If you are familier with ADODB you will notice ADOdb Lite is started using the same parameters and commands. This makes it very easy for many sites to transfer over to ADOdb Lite.
感谢你把这篇文章读完,如果对你有所帮助我非常荣幸,翻译的不是很准确,有什么错误欢迎提出来,我会及时修正的。

十月 16, 2005

plog 用户系统研究使用小记

文章类别: 程序 技术 — SuperTaoer @ 1:49 am

前两天给x3zone架了一个plog,一个多用户的blog系统,
然后打算利用plog的会员系统来开发x3zone的其他项目,
于是开始研究plog的代码。
Begin 感叹
请允许我先感叹一句,佩服plog的开发者,面向对象用的真好,
不知道是不是借鉴了java,感觉有些,正如 bluetent 说的那样:架构设计师才是真正的设计师
End 感叹
主要是使用plog的会员部分,所以也就先研究plog的会员的代码了,
入口点是admin.php 因为用户要从此登陆
——- admin.php
核心代码:

  1. // initialize the session
  2.  SessionManager::init();
  3. $controller = new AdminController();

看到这行:

  1. include_once( PLOG_CLASS_PATH."class/dao/userinfo.class.php" );

于是打开userinfo.class.php
没有找到很有用的东西
——- admin.php
这个时候想到用户登陆的时候肯定要去数据库进行验证的,于是先进入数据库查看 `users`表,发现了password字段
于是搜索password在plog中出现的位置,在 class/dao/users.class.php找到

  1. function authenticateUser( $user, $pass )
  2.         {
  3.             $query = "SELECT * FROM ".$this->getPrefix()."users
  4.                       WHERE user = '".Db::qstr($user)."' AND password = '".md5($pass)."'
  5.                             AND status = '".USER_STATUS_ACTIVE."'";
  6.             $result = $this->Execute( $query );
  7.             if( $result == false )
  8.                 return false;
  9.             if( $result->RecordCount() == 1 )
  10.                 return true;
  11.             else
  12.                 return false;
  13.         }

PS:妈妈的不小心碰到了电源,computer重启了,还好我有经常保存的恶习,go on…
然后还发现这个类里面的方法都很有用的,嘿嘿,作为重点保护对象
然后就是看看plog如何维持用户会话了,第一个想到的方法是看看哪里调用了 authenticateUser()这个方法,
于是乎再搜
在 class/action/admin/adminloginaction.class.php 找到了

  1. /**
  2.          * Carries out the specified action
  3.          */
  4.       /* 注释以 ST_开头的是我加入的便于理解的注释*/
  5.         function perform()
  6.         {
  7.             // get the parameters, which have already been validated
  8.             $this->_userName     = $this->_request->getValue( "userName" );        //ST_取得登陆框的用户名
  9.             $this->_userPassword = $this->_request->getValue( "userPassword" );    //ST_取得登陆框的密码
  10.             $this->_op           = $this->_request->getValue( "op" );                //ST_取得名字为op的http值,可能是get,也可能是post
  11.         // create a plugin manager
  12.             $pm =& PluginManager::getPluginManager();   
  13.             // try to authenticate the user
  14.             $users = new Users();        //ST_这里进行用户登陆的验证
  15.             if( !$users->authenticateUser( $this->_userName, $this->_userPassword )) {
  16.                 $this->_view = new AdminDefaultView();
  17.                 $this->_view->setErrorMessage( $this->_locale->tr("error_incorrect_username_or_password"));
  18.                 $this->setCommonData();
  19.                 $pm->notifyEvent( EVENT_LOGIN_FAILURE, Array( "user" => $this->_userName ));
  20.                 return false;
  21.             }
  22.             //ST_验证成功才会从这里向下面进行,这里的getUserInfo会再次的进行验证,从数据库的`users`表中搜索用户名 AND 密码的数据集,如果搜索不到,意为非法用户
  23.             // if the user is correct, get and put his or her information in the session
  24.             $userInfo = $users->getUserInfo( $this->_userName, $this->_userPassword );
  25.             if( !$userInfo ) {
  26.                 $this->_view = new AdminDefaultView();
  27.                 $this->_view->setErrorMessage( $this->_locale->tr("error_incorrect_username_or_password"));
  28.                 $this->setCommonData();
  29.                 $pm->notifyEvent( EVENT_LOGIN_FAILURE, Array( "user" => $this->_userName ));
  30.                 return false;
  31.             }
  32.         $pm->notifyEvent( EVENT_USER_LOADED, Array( "user" => &$userInfo, "from" => "Login" ));
  33.             //ST_重要的是这里,开始记录会话了
  34.             //$sessionInfo = $_SESSION["SessionInfo"];
  35.             $session = HttpVars::getSession();        //ST_这里调用的类在class/net/http/httpvars.class.php
  36.             $sessionInfo = $session["SessionInfo"];
  37.             $sessionInfo->setValue( "userInfo", $userInfo );
  38.             $session["SessionInfo"] = $sessionInfo;
  39.             HttpVars::setSession( $session );
  40.          //ST_上面几行的意思是说,先取出所有的session值放在$session数组里面,然后再从$session中取出索引为"SessionInfo"的放在$sessionInfo
  41.          //ST_下面的就没啥用了,对这段的研究写在后面
  42.             // get the list of blogs to which the user belongs
  43.             $userBlogs = $users->getUsersBlogs( $userInfo->getId());
  44.             // but if he or she does not belong to any yet, we quit
  45.             if( empty($userBlogs)) {
  46.                 $this->_view = new AdminDefaultView();
  47.                 $this->_view->setErrorMessage( $this->_locale->tr("error_dont_belong_to_any_blog"));
  48.                 $this->setCommonData();
  49.                 return false;
  50.             }
  51.             $pm->notifyEvent( EVENT_BLOGS_LOADED, Array( "blogs" => &$userBlogs, "from" => "Login" ));           
  52.             $this->_view = new AdminDashboardView( $userInfo, $userBlogs );
  53.             // better to return true if everything's fine
  54.             return true;
  55.         }

我先开始直接编写了一个php文件来测试session

  1. print_r($_SESSION);
  2. print_r($_COOKIE);

只在$_COOKIE得到了plogsession值,$_SESSION没有任何值,感觉有些费解。
后来依照admin.php文件的写法加入了如下的内容

  1. if (!defined( "PLOG_CLASS_PATH" )) {
  2.     define( "PLOG_CLASS_PATH", dirname(__FILE__)."/");
  3. }
  4. include_once( PLOG_CLASS_PATH."class/controller/blogcontroller.class.php" );
  5. include_once( PLOG_CLASS_PATH."class/net/http/session/sessionmanager.class.php" );
  6. include_once( PLOG_CLASS_PATH."class/dao/userinfo.class.php" );
  7. include_once( PLOG_CLASS_PATH."class/dao/bloginfo.class.php" );
  8. include_once( PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );
  9. ini_set("arg_seperator.output", "&");
  10. ini_set("magic_quotes_runtime", 0 );
  11. SessionManager::init();

然后在刷新页面,OK
想要的都出来了,在$_SESSION数组中打印出来了如下的值,$_COOIKE值不变

  1. Array ( [SessionInfo] => sessioninfo Object (
  2. [_objId] =>
  3. [log] =>
  4. [_props] => Array ( [summaryLang] => zh_CN
  5.                     [userInfo] => userinfo Object ( [_username] => SuperTaoer
  6.                                                 [_password] => 8c2b2eebfeb1868afc7f98ab99cad427
  7.                                                 [_id] => 1
  8.                                                 [_aboutmyself] =>
  9.                                                 [_email] => supertaoer@gmail.com
  10.                                                 [_blogs] =>
  11.                                                 [_siteAdmin] => 1
  12.                                                 [_fullName] => TaoJing
  13.                                                 [_resourcePictureId] => 0
  14.                                                 [_resourcePicture] =>
  15.                                                 [_status] => 1
  16.                                                 [_objId] =>
  17.                                                 [log] =>
  18.                                                 [_properties] => Array ( ) )
  19.                     [blogId] => 1
  20.                     [Year] => 2005
  21.                     [Month] => 10
  22.                     [Day] => 16 ) ) )

呵呵,看到这里一目了然了,想要的都在这里面了
如果再加上下面的4行就可以实现如果用户没有登陆就会显示出登陆页面了(废话,都和admin.php的一样了~~~)

  1. $controller = new AdminController
  2. $pluginManager =& PluginManager::getPluginManager();
  3. $pluginManager->loadPlugins();
  4. $controller->process( HttpVars::getRequest(), "op");

另外,在plog的根目录发现了xmlrpc.php文件中有个函数 function getUserInfo()
可能这个也会有用吧?
好了,研究完了,http://passport.x3zone.com 要开工了,呵呵。

十月 13, 2005

我是懒人么? 是么?不是么?

文章类别: 生活 情感 — SuperTaoer @ 8:56 pm

转自:我是懒人么? 是么?不是么?

世界上很多非常聪明并且受过高等教育的人,无法成功。就是因为他们从小就受到了错误的教育,他们养成了勤劳的恶习。很多人都记得爱迪生说的那句话吧:天才就是99%的汗水加上1%的灵感。并且被这句话误导了一生。勤勤恳恳的奋斗,最终却碌碌无为。其实爱迪生是因为懒的想他成功的真正原因,所以就编了这句话来误导我们。 很多人可能认为我是在胡说八道,好,让我用100个例子来证实你们的错误吧!事实胜于雄辩。
世界上最富有的人,比尔盖茨,他是个程序员,懒的读书,他就退学了。他又懒的记那些复杂的dos命令,于是,他就编了个图形的界面程序,叫什么来着?我忘了,懒的记这些东西。于是,全世界的电脑都长着相同的脸,而他也成了世界首富。
世界上最值钱的品牌,可口可乐。他的老板更懒,尽管中国的茶文化历史悠久,巴西的咖啡香味浓郁,但他实在太懒了。弄点糖精加上凉水,装瓶就卖。于是全世界有人的地方,大家都在喝那种像血一样的液体。
世界上最好的足球运动员,罗纳耳朵,他在场上连动都懒的动,就在对方的门前站着。等球砸到他的时候,踢一脚。这就是全世界身价最高的运动员了。有的人说,他带球的速度惊人,那是废话,别人一场跑90分钟,他就跑15秒,当然要快些了。 世界上最厉害的餐饮企业,麦当劳。他的老板也是懒的出奇,懒的学习法国大餐的精美,懒的掌握中餐的复杂技巧。弄两片破面包夹块牛肉就卖,结果全世界都能看到那个M的标志。必胜客的老板,懒的把馅饼的馅装进去,直接撒在发面饼上边就卖,结果大家管那叫PIZZA,比10张馅饼还贵。
还有更聪明的懒人:
懒得爬楼,于是他们发明了电梯;
懒得走路,于是他们制造出汽车,火车,和飞机;
懒得一个一个的杀人,于是他们发明了原子弹;
懒得每次去计算,于是他们发明了数学公式;
懒得出去听音乐会,于是他们发明了唱片,磁带和CD;
这样的例子太多了,我都懒得再说了。
还有那句废话也要提一下,生命在于运动,你见过哪个运动员长寿了?世界上最长寿的人还不是那些连肉都懒得吃的和尚?
如果没有这些懒人,我们现在生活在什么样的环境里,我都懒得想!
人是这样,动物也如此。世界上最长寿的动物叫乌龟,他们一辈子几乎不怎么动,就趴在那里,结果能活一千年。他们懒得走,但和勤劳好动的兔子赛跑,谁赢了?牛最勤劳,结果人们给它吃草,却还要挤它的奶。熊猫傻了吧唧的,什么也不干,抱着根竹子能啃一天,人们亲昵的称它为“国宝“。
回到我们的工作中,看看你公司里每天最早来最晚走,一天像发条一样忙个不停的人,他是不是工资最低的?那个每天游手好闲,没事就发呆的家伙,是不是工资最高,据说还有不少公司的股票呢!
我以上所举的例子,只是想说明一个问题,这个世界实际上是靠懒人来支撑的。世界如此的精彩都是拜懒人所赐。现在你应该知道你不成功的主要原因了吧!
懒不是傻懒,如果你想少干,就要想出懒的方法。要懒出风格,懒出境界。像我从小就懒,连长肉都懒的长,这就是境界。

风雨中的华彩乐章—浅析日本视觉系摇滚[转]

文章类别: 运动 游戏 音乐 — SuperTaoer @ 8:41 pm

  2002年中日建交30周年之际,日方派出了有“日本国民乐队”之称的Glay乐队来北京献演,并且Glay还得到当时的国家主席江泽民的接见。Glay属于视觉系摇滚,因此这场演唱会又一次激起国内视觉系摇滚的热潮。 一方面不单单在日本国内,视觉系摇滚在亚洲范围内都拥有数以万记的歌迷,另一方面夸张的装扮和过激的现场使普通人视其为异类;音乐界人士也有认为视觉系摇滚只重外表不重音乐。在中国,视觉系摇滚仍是一个小众的文化,绝大多数人不知其为何物。

  1.视觉系摇滚释义

  视觉系摇滚,Visual Rock,是受欧美华丽摇滚(Glam Rock)(注1)和新浪漫的影响80年代末在日本创立的,以华丽夸张的化妆造型著称。其中Visual是表示用服饰和化妆等视觉系效果来表现音乐,视觉系摇滚乐队经常染不同的发色,穿不同寻常的服饰( 从文艺复兴的优雅到后现代的前卫 )。在乐队中往往还有一两位成员穿女性化的服饰。一般来说地下indies(注2)时期,乐队的装扮比较大胆,音乐更注重理念;而进入主流后,他们的服装和音乐一般会趋向大众化。

  2.视觉系摇滚分类

(more…)

十月 11, 2005

开心一刻

文章类别: 生活 情感 — SuperTaoer @ 10:45 pm

呵呵,蛮有意思的
从妹妹的spaces转过来的

how are you?how old are you?
怎么是你?怎么老是你?

we two who and who?
咱俩谁跟谁阿?

you don’t bird me,I don’t bird you.
你不鸟我,我也不鸟你。

hello everybody!if you have something to say,then say!if you have nothing to say,go home!!!
有事启奏,无事退朝!

know is know,no know is no know.
知之为知之,不知为不知。

watch sister
表妹

American Chinese not enough
美中不足

one car come one car go,two car pengpeng,people die
车祸现场的描述

heart flower angry open
心花怒放

if you want money,I have no;if you want life,I have one!
要钱没有,要命一条

you have two down son
你有两下子

as far as you go to die
有多远,死多远!

怎么学习日语[转]

文章类别: 外语学习 — SuperTaoer @ 12:45 am

看了看感觉不错
放在这里供大家参考

很多人都是自学日语,如果您打算开始学习日语,但几乎还没什么基础的朋友,那您如果有兴趣可以看看这篇文章。
首先是明确自己学习日语的目的,哪怕只是为了兴趣也没关系,并制定自己的阶段计划,比如大约学半年去考4级,学1年考3级,学两年后考2级,有目标方向才能有动力,以后学习中请经常提醒自己的目标尚未实现,仍需努力。

第二是选择教材,一般可以选择“标准日本语”,该教材的特点是难度适中,适合自学,并有配套自学辅导教材,还有配套vcd教材。或者也可以选择“新编日语”,这套教材难度稍大,知识比较系统,动词均注明自他性,日后不会混淆。不过我还是比较倾向于选择前者,毕竟我本人就是学的就是这套教材。去买齐标准日本语初级上下册,最好也顺带买上大连出版社的标准日本语自学指南,这本指南系统的补充了课文中不曾提到但是很重要的知识点。

第三就是选择一本好的字典。我没有对世面上的各种字典做过比较,但是我觉得我手头用的这本外研社的《现代日汉汉日字典》不错,价格也不贵,定价44元,而且现在好多地方买书(比如南京的长三角)可以打八折的。

好了,可以开始了。首先就是日语学习的第一关,五十音图,如果连这个您都没毅力搞定的话,那我还是劝您早点放弃学日语的念头,一门语言的学习将可能是很枯燥的,您可能不太适应的,也或许您还有其他重要的事情,还是别在日语上浪费时间吧。可以先听一下本站提供的五十音图发音,可以参考。在学五十音图一定要平假名片假名对应着记,不少人学了很久都不认识片假名,就是刚开始学习假名的方法不对造成了。刚开始可以每天学习两行,第一天学习あ行5个和か行5个,自己找张纸多练练,熟能生巧的道理再简单不过了吧。注意要能把平假名和片假名对应起来。边写嘴里边念,加深印象。等到学到了一定的行数,自己可以找后面课文里的单词,自己组成词写,比如わたし,あなた,这样边练习假名的书写记忆,边熟悉一些日后要学习的单词。
当然复习很重要,不复习恐怕学得都没忘的快,我就不多说这个了。
在学习完五十音图之后,就要开始学习课文了,可以开始说出一些象样子的日文整句了,令人振奋是不是啊,每课的学习步骤大致是先学习生词,再学习课文,学习课文中,对应语法可以参考语法讲解,学习完课文后做课后练习。如果有条件的话,可以听一听课文的mp3(在本站标准日本语初级类中可以下载到),因为日语能力考试包含了听力考试,其实听力并不是很难,也不是生词很多,但是如果你听的少,就是答不出来,听听课文,对于课文的掌握和语感的训练也很重要,因为学习一门语言有的时候是不需要知道为什么,只需要知道怎么说就可以的,就象学习英语,讲到I那么自然就脱口而出am或者was,不需要知道为什么一样。
那么一旦入门以后,就跟盖房子一样,一层一层的向上积累,只要时间花上去了,总归能学得会的。
此外,适当的背诵课文中的常用句子也是有必要的,这些记住的句子将来都会成为你口语内容的重要来源。

如果有问题不懂有条件一定要及时请教,否则越学越糊涂。多看原版日剧、听日文歌曲看歌词,喜欢玩游戏的,弄台ps\ss\dc玩玩,有对话的情节仔细看看,是不是跟课本中学习的能对得上号。毕竟语言学习任重而道远,不是几个月就能精通的,贵在坚持。

说得好的日语和说得不好的日语,感觉相差很多。日语对于语态、语法、用词等的讲究远远超过英语。因此,日语是一门与文化很息息相关的语言,虽然适合东方人学习,但是,要用心学,才可以学好。否则学出来的日语,有点不伦不类。要么太正式,很死板;要么就像卡拉OK里面打工的小姐说的日语啦。大家一定打好基本功!不要盲目模仿。想学好,当然是先去找一个学校先读日语啊,等差不多学会了,那时候再去日本生活一年就可以了,如果是直接去日本那么日子就难过了,因为你一点都没学过就去日本读书,这样只会给你带来负担而不会学好的 一来是多看一些原版的片子,然后到外面的学校去学习去,日文和英文是差不多的,主要是读说,多看,和多写,多记,多读,首先,买一本配有磁带的日语书 如 《标准日本语》或上外的《新编日语》
然后,跟着磁带 学习 日语 平假名和片假名的发音和书写,同时 还要 按行和段分别背诵假名. 还要学会日语中的 促音 长音 拗音 拗长音等.
要如何学好日语的五十音图呢?
这里归纳了几点,日于的字母称为假名(かな),有平假名(ひらがな)和片假名(かたかな)两种.平假名和片假名是对应的,有多少平假名就有多少片假名.记假名的时候,只需把平假名记住就可以了.片假名以后学单词的时候再记.也就是学一个单词,有几个片假名就记几个.如ァメリカ (美国)是4个片假名,那么就记住这4个就可以了.随着单词量的增加,片假名就全认识了.
我们都知道的五十音图表,这个表的横向是称为”行”,纵向称为”段”.一定要按行或段记,因为以后动词活用要用到.在图表假名旁边的是罗马字母,我们尽可能的把他们也记住,因为以后在电脑上写文章要用到它们.
我们学五十音图时,不要想一下子全记下来,而要慢慢的来,下面我来谈谈物品是如何记五十音图的.
首先,要把ぁ行和か行的假名都会读,然后不要忙于往下学,因为打下学日语的基础是很重要的.
然后是单词,我们在读单词的时候,要在练习本上一遍遍的写它们.写的同时,嘴里要大声地念.这样手,嘴,耳就都练习了.
学会了发音和假名,就可以按照课本 学习日语语法和其他的知识了.
如果 你学习日语 是出于爱好 学日语是 为了 作为 特长 不想在日语上有太大发展的话 你就买 《标准日本语》 如果 你学习 是为了 工作需要 或学习需要 就买 《新编日语》
这样就可以在短时间内学好日文,如果想学的更快的话,那只有你到日本去生活这样学起来就会更快了

十月 10, 2005

日语的50音图

文章类别: 外语学习 — SuperTaoer @ 9:37 pm

今天由于需要,开始学习日语
从日语的发音开始

这里可以看到日语的50音图发音表

完整的发音表看这里

开始学习外语了

文章类别: 外语学习 — SuperTaoer @ 9:37 pm

以前总是注重英语的书面能力
但是忽略了最重要的口头表达能力
亡羊补牢,不晚不晚

がんばれ !!!

在这里你可以看到我收藏的一些学习外语的资源

十月 8, 2005

短暂的扬州之行

文章类别: 生活 情感 — SuperTaoer @ 1:26 am

烟火三月下扬州
但是我是在十月去的
以至于火车票没有买到,买了10月2日的长途车票
在车上做了3个多小时
于中午到了扬州

在高速路上,就看到了有些像江南水乡样的房子
于是想看看真正的江南水乡的样子,去感受一下

怎奈时间短暂,还来不及好好游玩,就回来了

下次初定为明年3月份好好的去江南水乡人家住上几天,然后还要去好好的游览苏州园林,还要吃我喜欢的扬州炒饭,还有还有。。。很多。。。

« 前一页下一页 » 


本站使用 WordPress架设