作者存档

充电器认证、电压及翻译

美国 UL(自愿性)认证和FCC(强制性)认证,除此之外还有ETL和CETL等认证。—UL很贵很黑too

欧盟CE认证。

澳大利亚SAA认证

印度BIS认证–阿三很贵很黑

EK-MARK(1,有CB:需要提交CB报告和证书 2,无CB:需要送样到韩国测试)–费用高,还要验厂

直接快递可以部分避开

10KG以下的小包裹:东南亚走DPEX或UPS,西欧、美国、加拿大走UPS,南美和非洲、东欧走DHL,中东、日本、越南走专线!

FOB时候最好别找回指定货运办理出口报关等事宜

淘宝上有很多打折的快递代理

******************************************

简表:

编号 国家 国家(中文) 电压 频率 插头代号
1 Argentina 阿根廷 220 50 Ar
2 Australia 澳大利亚 240 50 Au
3 Austria 奥地利 230 50 E
4 Bahamas 巴哈马 120 60 A
5 Belgium 比利时 230 50 E
6 Bolivia 玻利维亚 110/220 50 AE
7 Brazil 巴西 110/220 60 AE
8 Canada 加拿大 120 60 A
9 Chile 智利 220 50 E3
10 China 中国 220 50 C
11 Colombia 哥伦比亚 110/220 60 A
12 Costa Rica 哥斯达黎加 120 60 A
13 Cyprus 塞浦路斯 240 50 B
14 Denmark 丹麦 230 50 E
15 Dominica 多米尼加 230 50 B
16 Ecuador 厄瓜多尔 110 60 A
17 Egypt 埃及 220 50 E3
18 Finland 芬兰 230 50 E
19 France 法国 230 50 E
20 Germany 德国 230 50 E
21 Greece 希腊 230 50 E
22 Guatemala 危地马拉 120 60 A
23 Haiti 海地 110 60 A
24 Honduras 洪都拉斯 110 60 A
25 Hong Kong 香港 220 50 B
26 Hungary 匈牙利 220 50 C1
27 Iceland 冰岛 230 50 E
28 India 印度 230 50 C1
29 Indonesia 印度尼西亚 220 50 C1
30 Iran 伊朗 220 50 E3
31 Iraq 伊拉克 220 50 B
32 Ireland 爱尔兰 230 50 B
33 Israel 以色列 230 50 E
34 Italy 意大利 230 50 E
35 Jamaica 牙买加 110 50 A
36 Japan 日本 100 50/60 A
37 Korea 韩国 220 60 E3
38 Kuwait 科威特 240 50 B
39 Lebanon 黎巴嫩 110 50 B/E3
40 Libya 利比亚 127/230 50 A/C1
41 Luxembourg 卢森堡 230 50 E
42 Malaysia 马来西亚 240 50 B
43 Mauritius 毛里求斯 230 50 B
44 Mexico 墨西哥 127 60 A
45 Monaco 摩纳哥 220 50 E3
46 Morocco 摩洛哥 220 50 E3
47 Netherlands 荷兰 230 50 E
48 New Zealand 新西兰 230 50 Au
49 Nicaragua 尼加拉瓜 120 60 A
50 Norway 挪威 230 50 E
51 Panama 巴拿马 110/120 60 A
52 Peru 秘鲁 220 60 AE
53 Philippines 菲律宾 110/115 60 A
54 Poland 波兰 220 50 C1/E
55 Romania 罗马尼亚 220 50 C1/E
56 Russia 俄罗斯 220 50 E2
57 Saudi Arabia 阿拉伯 127 60 A/C1
58 Singapore 新加坡 230 50 B
59 Spain 西班牙 230 50 E
60 South Africa 南非 220-250 50 C1
61 Surinam 苏里南 110/115 60 E3
62 Sweden 瑞典 230 50 E
63 Switzerland 瑞士 230 50 E
64 Taiwan 台湾(地区) 110/220 60 A
65 Thailand 泰国 220 50 A
66 Turkey 土耳其 220 50 E3
67 United Kingdom 英国 240 50 B
68 USA 美国 110 60 A
69 Venezuela 委内瑞拉 120 60 A
70 Vietnam 越南 120/220 50 A/E

———————————————————-

尼日利亚电压240V,频率50HZ,英式插头.

澳大利亚的插座是8字形

*******************************************

手机充电器HS8504409990 退税17%

车载充电器

Car-carry Chargers

car

on board charger

car-mounted charger

**********************************

一些可以用的行业网站

ECPLAZA
Tradekey
Fuzing
asiannet
asianproducts
ACB2B
cnties
Commerce
ttnet
tpage
indiamart
evvv
EC21
Ebigchina(diytrade)
Importers

来,看狗咬狗。

世间最有趣的事无非是看两只狗在这里乱咬。

就像360和QQ。

360在我的机子上的唯一作用是下系统漏洞补丁,周**做了这么久的流氓软件,狗改不了吃屎。

Tencent除了他身后的那个外国资本的身影,在其它各个方面,比如他们ued团队的blog,QQ空间团队的博客都让我学到了不少东西,受益菲浅。

不就一商业竞争行为吗?你们大家都有肉吃不就行了。非要搞的你死我活的,最后大家都只能吃屎去。

刚看完 [社交网络].The.Social.Network , 发现facebook的创始人,那个犹太老也不是什么心术很正的人。看来在互联网上存活的都是要厚黑才行。

php curl function class 及多线程的简单测试

在用php编写一个蜘蛛爬虫的过程。对php的对各种运行效能进行了简单的测试。

主要是当程序用function或者与class进行构造的效能对比及以利用curl muti进行多线程读取网页内容时的效率简单地测试。

简单地称之为A:串发function B:串发class  C:并发class

一、

在对google进行二十次curl读取时,执行时间由小到大 C<A<B    function的效率比class高很多,差距在两倍左右。   并发的运行速度比串发的会快一点,但是差距只在1倍少点。(具体的数据被我不小心删了)

二、

对一个速度相对较慢(我从美国的服务器访问国内的网页)进行60次读取时(每次并发数值为20)。各数值如下:

C            A              B
19712    68811    77384
15536    68186    65815
19266    76524   67087

并发读取的速度是后两者三倍多,而对于function和class而言,网速的影响已经大于构造的执行效率问题。

so:

function的执行效率会比class高,但是考虑到class相对较好的可读性以及在实际生产环境中受限于其它因素的影响,有时用class反倒更好一些。

curl_multi实际了php多线程的访问,这可以极大地提高程序的运行效率,尤其是在数据量变大的时候。但是因为我将读取的网页内容先存储到变量中,所以当每次读取的数量过大时,变量的数值会变得足以让程序崩溃。当然除了减少并发数外,也许存为文件或者存入数据库再做处理是另外一种解决之道。

just log

一直在忙着,

9月18到10月3号,杭州.连续无休工作14天。客户是公司初创做助焊剂产品的,在近半个月的时间终于粗略地将网络营销的各个方面都提到了。纯粹当前自己创业前的一次练手,尤其是在回上海后给客户打电话时他说已经签了几个单时感觉不错。或许这就是我所追求的成就感。

接下来的10天,继续做手机配件的网站,过个把月进行营销方面的操作。

然后一直忙到现在的是将tiger采集插件独立出来,单独作为一个网站而动作–即使如此我为什么不用C写呢,而依旧用php?

重装了一下系统。安装win7是一件很快的事情,三个小时就已经把所有的驱动和工作软件安装完毕,而以前做完这些至少要一整天。

mysql插入正则表达式出错

在mysql中尝试插入

//div[@class='content_title blue_c_22']

这样的字段,因为其中含有”等符号而被警告:

Error: You have an error in your SQL syntax; check the manual that corresponds to your server version for the right syntax to use near ‘content_title blue_c_22′]’,'//div[@id='text_content']/p’,”,”)’ at line 3

处理方法A:

在数据插入之前用addslashes()函数进行操作:

$_POST['pregtitle']=addslashes($_POST['pregtitle']);

处理方法B:

是由于magic_quotes_gpc设成了off,PHP就不会在敏感字符前加上反斜杠(\)。有主机控制权或者php.ini控制权的只需要将其值改变即可。

the next

1:总结一下这次是杭州的得失。

2:开始投入cnxll.com

acer 4745 的温度疑问

入手acer4745已经一个多月了,这是一款不错的本本,除了显示器、温度和漏电现象。

关于温度的疑问。

相同的环境(室温以及运行的软件),在正常浏览网页状态和wow两种不同状态下。用集显的都比用独显的低10度。

不知何解。

now is powered by nginx8.50 php5.3.3 php-fpm

良好的网站响应速度对浏览者用户体验和SEO都有积极作用。如果能够通过选择不同的服务器环境来达到占用更少的资源达到更快的网站速度,那么,另一方面也可以节省钱包的花费。在linode上面购买了512M的VPS,原先安装了webmin面板,apache虽然功能很全面,但是性能却较之新兴的nginx逊色;同时,面板本身占用了相当多的资源。512M的内存运行起来相当吃力,服务器经常出现500错误。调试-测试了近一个月时间,没有得到一个满意的结果,只能放弃了好用的webmin和apache.

经过几天的努力,尝试了yum,源码编绎各种方法进行安装nginx,reload VPS二十次+。终于在安装的方便快速方面(能用repo进行yum的选择yum方式),安全性(所有的都来自官方或者安全的ius源两个地方),版本的新进(这也是为什么我非要自己动手进行安装的原因)得到一个比较满意的结果。

主要的特点:

A:用nginx取代了apache,

B:php采用了5.3.3版本,这个版本已经将php-fpm内置,并且采用了ini格式文本。

主要分为三个部分:

一:服务器环境的搭建

二:多站点配置

三:各种优化及安装配置文件

四:一些tips

一、安装篇:服务器环境的搭建

从asp到jsp再到php,这就是我接触的语言的顺序,相应的从iis到tomcat再到apache.对自己要求不高,只要能看懂简单的语言并且修改一下即可,最终被php众多的开源程序所吸引,在这里我只要修改再修改,不会的google代码然后再修改。好像跑题了,在最终决定用nginx取代apache之前,曾经尝试过用张宴的方法安装了个站点进行测试,也有相关的人士进行的专业级别的测试(在我看来,链接在此)。最终让我决定投奔nginx.

1、安装EPEL 和 IUS-Community repo:

rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm
rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm

修改repo文件,原因在此(https://bugs.launchpad.net/ius/+bug/591609):

vi /etc/.repos.d/ius.repo

#注释掉下面这一行
mirrorlist=http://dmirr.iuscommunity.org/mirrorlist?repo=ius-el5&arch=$basearch
#增加这一行
baseurl=http://dl.iuscommunity.org/pub/ius/stable/Redhat/5.5/$basearch

现在可以直接通过yum 安装php5.3.3 php-fpm和mysql51(ius的最近稳定版的mysql是5.14的,可以自己用官方的rpm包安装最近版的mysql.)及nginx7.

可以通过:
yum list | grep -w \.ius\.

查看ius可用的yum源。

2、安装php

然后yum install相应的包,如安装php5.3.3 php-fpm则直接用

yum install php53-fpm

如果yum源里面没有出现php-fpm,但是http://dl.iuscommunity.org/pub/ius/里面有的

则可以直接用:

rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5.5/x86_64/php53-fpm-5.3.3-4.ius.el5.x86_64.rpm

来安装php-fpm;

3、安装mysql

yum install 51-server -y

nginx的yum源只有nginx7稳定版本的,另外编绎nginx实在轻松的一件事,所以采用了手动安装:

先升级环境(其实这个是第一步做的,但是好像这时候做也没用问题)

安装php的其它组件:

yum install php53-cli php53-common php53 php53-devel php53-mysql php53-xmlrpc php53-xml php53-gd php53-pdo php53-tidy php53-mcrypt php53-mbstring

以上基本上可以正常运行wordpress,drupal等大部分php+mysql程序了,如果有什么特殊的需求,建议先从ius的包里查看有没有相应的yum源,如果没有再使用系统自带的或者自己编绎。

另有需要安装 memcache的

php53-pear php53-pecl-memcache

4、安装nginx

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

ius的源里面的nginx是7版本的,另一方面nginx的安装很便当,所以这里面选择手动编绎:

wget http://.org/download/-0.8.50.tar.gz

http://nginx.org/download/nginx-0.8.50.tar.gz

tar zxvf nginx-0.8.50.tar.gz
cd nginx-0.8.50

./configure –with-http_stub_status_module –with-http_ssl_module –with-http_sub_module

OK,到现在应该会出现类似于:

nginx path prefix: “/usr/local/nginx”
nginx binary file: “/usr/local/nginx/sbin/nginx”
nginx configuration prefix: “/usr/local/nginx/conf”
nginx configuration file: “/usr/local/nginx/conf/nginx.conf”
nginx pid file: “/usr/local/nginx/logs/nginx.pid”
nginx error log file: “/usr/local/nginx/logs/error.log”
nginx http access log file: “/usr/local/nginx/logs/access.log”
nginx http client request body temporary files: “client_body_temp”
nginx http proxy temporary files: “proxy_temp”
nginx http fastcgi temporary files: “fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “scgi_temp”

如果出错则安装相应的需要的包,如gcc。然后就

make

make install

即可。

至此服务器基本组件安装完毕.

为了方便管理,给Nginx配置启动脚本:

vim /etc/init.d/nginx

输入:

#!/bin/sh
#
# nginx – this script starts and stops the nginx daemin
#
# chkconfig: – 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx=”/usr/local/nginx/sbin/nginx”
prog=$(basename $nginx)
NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $”Starting $prog: ”
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $”Stopping $prog: ”
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $”Reloading $prog: ”
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case “$1″ in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}”
exit 2
esac

设置

chmod 755 /etc/init.d/nginx

即可通过service nginx  {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest} 的命令来控制nginx

启动关键的三个服务,php,mysql,nginx

service start

service mysqld start

service nginx start

如果都显示OK,那么说明以上安装都是没有问题(比较懒,只用这种方式判断了)。

那么就把这些服务加入系统的自启动列表

chkconfig php-fpm on
chkconfig mysqld on
chkconfig nginx on

到现在为此,打开网页会显示welcome to nginx.但是php并不能运行。因此我们要设置nginx将php文件转发给php-fpm。

5、 php-fpm在nginx下的设置:

vi /usr/local/nginx/nginx.conf

注意以下文字应在server区块内:

location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
include        fastcgi_params;
fastcgi_param  SCRIPT_FILENAME   /usr/local/nginx/html$fastcgi_script_name;
}

创建一个php info文件来测试php是否能够正常运行

echo “<?php phpinfo();” > /usr/local/nginx/html/phpinfo.php

service nginx restart或者reload。phpinfo.php能够正常显示说明php与nginx之间的关系已经建立。

druapl Cron run failed

一个新闻资讯类的新站采用drupal驱动,使用了其上的openpublish集成安装包,在增加了xmlsitemap后提示Cron run failed. 在drupal内置的recent log entries中显示

Attempting to re-run cron while it is already running.

以及在每隔一个小时显示:

Cron has been running for more than an hour and is most likely stuck.

无解,求助google,终于找到:

cron函数的定义在includes/common.incfunction drupal_cron_run(){} 简单的解决方式是在运行corn前删除semaphore值,使cron解锁。如下:

function drupal_cron_run() {
  // If not in 'safe mode', increase the maximum execution time:
     variable_del('cron_semaphore');

并且一些log记录:完整修改drupal_cron_run()代码如下(修改处用粗体表示):

function drupal_cron_run() {

// If not in ‘safe mode’, increase the maximum execution time:

variable_del(‘cron_semaphore’);

if (function_exists(‘set_time_limit’)) {
@set_time_limit(240);
}

// Fetch the cron semaphore

$semaphore = variable_get(‘cron_semaphore’, FALSE);

if ($semaphore) {

if (time() – $semaphore > 3600) {

// Either cron has been running for more than an hour or the semaphore

// was not reset due to a database error.

watchdog(‘cron’, t(‘Cron has been running for more than an hour and is most likely stuck.’), WATCHDOG_ERROR);

// Release cron semaphore

variable_del(‘cron_semaphore’);

}

else {

// Cron is still running normally.

watchdog(‘cron’, t(‘Attempting to re-run cron while it is already running.’), WATCHDOG_WARNING);

}

}

else {

// Register shutdown callback

register_shutdown_function(‘drupal_cron_cleanup’);

// Lock cron semaphore

variable_set(‘cron_semaphore’, time());

// Iterate through the modules calling their cron handlers (if any):

// module_invoke_all(‘cron’);

$log_timing = variable_get(‘cron_log_times’, ’1′);

foreach (module_implements(‘cron’) as $module) {

watchdog(‘cron’, t(‘Cron processing initiated for module: @module.’, array(‘@module’ => $module)));

if ($module == “search”) continue;

$function = $module .’_cron’;

if ($log_timing) {

timer_start($function);

if ($log_timing == ‘debug’) {

watchdog(‘cron’, t(‘Cron processing initiated for module: @module.’, array(‘@module’ => $module)));

}

}

$function();

if ($log_timing) {

$timer = timer_stop($function);

watchdog(‘cron’, t(‘Cron time elapsed for @module is @millisecs ms.’, array(‘@module’ => $module, ‘@millisecs’ => $timer['time'])));

}

}

// Record cron time

variable_set(‘cron_last’, time());

watchdog(‘cron’, t(‘Cron run completed.’), WATCHDOG_NOTICE);

// Release cron semaphore

variable_del(‘cron_semaphore’);

// Return TRUE so other functions can check if it did run successfully

return TRUE;

}

}

/**
 * Executes a cron run when called
 * @return
 * Returns TRUE if ran successfully
 */
function drupal_cron_run() {
  // If not in 'safe mode', increase the maximum execution time:
     variable_del('cron_semaphore');
  if (!ini_get('safe_mode')) {
    set_time_limit(240);
  }                                                             

  // Fetch the cron semaphore
  $semaphore = variable_get('cron_semaphore', FALSE);
  if ($semaphore) {
    if (time() - $semaphore > 3600) {
      // Either cron has been running for more than an hour or the semaphore
      // was not reset due to a database error.
      watchdog('cron', t('Cron has been running for more than an hour and is most likely stuck.'), WATCHDOG_ERROR);
      // Release cron semaphore
      variable_del('cron_semaphore');
    }
    else {
      // Cron is still running normally.
      watchdog('cron', t('Attempting to re-run cron while it is already running.'), WATCHDOG_WARNING);
    }
  }
  else {
    // Register shutdown callback
    register_shutdown_function('drupal_cron_cleanup');
    // Lock cron semaphore
    variable_set('cron_semaphore', time());
    // Iterate through the modules calling their cron handlers (if any):
    // module_invoke_all('cron');
    $log_timing = variable_get('cron_log_times', '1');
    foreach (module_implements('cron') as $module) {
          watchdog('cron', t('Cron processing initiated for module: @module.', array('@module' => $module)));
 if ($module == "search") continue;
    $function = $module .'_cron';
      if ($log_timing) {
        timer_start($function);
        if ($log_timing == 'debug') {
          watchdog('cron', t('Cron processing initiated for module: @module.', array('@module' => $module)));
        }
      }
      $function();
      if ($log_timing) {
        $timer = timer_stop($function);
        watchdog('cron', t('Cron time elapsed for @module is @millisecs ms.', array('@module' => $module, '@millisecs' => $timer['time'])));
      }
    }
    // Record cron time
    variable_set('cron_last', time());
    watchdog('cron', t('Cron run completed.'), WATCHDOG_NOTICE);
    // Release cron semaphore
    variable_del('cron_semaphore');

    // Return TRUE so other functions can check if it did run successfully
    return TRUE;
  }
}

原文来自:http://www.ebizontek.com/drupal-cron-stuck-log-progress

mysql repair

备份mysql时出错:

mysqldump: Error 1194: Table ‘wp_options’ is marked as crashed and should be repaired when dumping table `wp_options` at row: 91

所需要的是进行数据库修复操作

解决方法:

进入mysql控制台:

-u usename -p password

use databasename;

repair tablename;

问题解决:

mysql> repair table wp_options;
+——————–+——–+———-+—————————————————–+
| Table              | Op     | Msg_type | Msg_text                                            |
+——————–+——–+———-+—————————————————–+
| dengruo.wp_options | repair | info     | Found block with too small length at 12084; Skipped |
| dengruo.wp_options | repair | warning  | Number of rows changed from 398 to 397              |
| dengruo.wp_options | repair | status   | OK                                                  |
+——————–+——–+———-+—————————————————–+
3 rows in set (1.26 sec)

如果有phpmyadmin的话直接有个修复数据选项可以操作。

ps:Mysql控制台的命令需要后面加上’;’

第5 在 总共26页« First...34567...1020...Last »