易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
迁移VPS

迁移VPS

从有这个博客开始,我的博客迁移了最少有7次之久,从自有服务器在上海机房,迁到江苏机房(只换IP,还好)

然后迁移到linode,然后迁移到budgetVPS,然后迁移budgetVM,然后迁移到linode,再迁移到99vps。
每次迁移都是一件头疼的事情。99vps因为更换机房,我又重迁了一次。细算一下。居然有8次了。。
累啊
所幸这次迁移是最轻松的。可能是因为迁移多了,经验丰富了吧。哈哈
--测试上传:
Add tags when creating product in Magento?

Add tags when creating product in Magento?

A) to add tags directly when entering/editing a product, you will need an extension, such as this one. This method is most useful to let people with less magento experience create tags (such as data entry people).

B) To add tags without leaving the administrator (not going to the frontend). This is useful for applying the same tag to multiple products:

Create tags through Catalog->All Tags-> Add New Tag button.

After creating the tags, click on each tag. You’ll see a detailed set of options to “Edit Tag”.

Go to the “Products tagged as administrator” tab, click on ‘Reset Filter” . You see all your products getting listed.

Select the products to which you want to assign the tag & click on “Save Tag”.

C) To add tags via the frontend & the backend, which is useful when you want to add a lot of tags to each single product:

Just create your products as normal. When you are ready to add tags to your products just create yourself a customer account for your store and go to each product and add them as a customer would. I wrote out all of my tags in a text editor. Now since I am using phrases, and not just words, my tags will be entered as:

‘Stylus C64’ ‘Stylus C66’ ‘Stylus C84’ ‘Stylus C84N’ ‘Stylus C84WN’ ‘Stylus C86’ ‘Stylus CX3600’ ‘Stylus CX3650’ ‘Stylus CX4600’ ‘Stylus CX6400’ ‘Stylus CX6600’

Take note that you need the single quote (’) to bracket your phrases… or just spaces between each word if your tags are single words. Very easy to write out and then copy/paste into the Add Your Tags section of each product.

Once you copy/paste your tags in the front-end you will be prompted with a message that they must be approved from the admin/moderator. Now log into the back-end and go to the tags section (Catalog > Tags > Pending Tags). There you will see the list of tags you just submitted from the front-end of the site. Now just click “Select All”, then from the Actions drop-down menu choose “Change Status”, and then from the status drop-down choose “Approved” and then “Submit”.

Now you can pick a method most appropriate for each type of use!

http://stackoverflow.com/questions/9261935/add-tags-when-creating-product-in-magento

magento 中处理 catalog_product_prepare_save 行为

magento 中处理 catalog_product_prepare_save 行为

最近在做magento二次开发,遇到个问题,即,我要针对商品的数据中的某些数据做二次处理。看了一下代码,发现在initProduct前有一个event事件:catalog_product_prepare_save,所以我想我只要覆盖这个方法就OK了。网上找了些资料,发现如果再绑定一个event则多个Event都会执行。于是,我就按照这个思路在config.xml里加入了events事件。

然后在Model下面加了Observer.php来监听事件。为了测试系统自有的event能够工作,我在系统默认的event里做了一下输出,发现确实有变化 了。所以证明我的思路还是正确的。当然,这也借鉴了网上的一些资料

config.xml里加入:

<adminhtml>
<events>
<catalog_product_prepare_save>
<observers>
<xxx_web_observer>
<type>singleton</type>
<class>Xxx_Web_Model_Observer</class>
<method>prepareProductAuthor</method>
</xxx_web_observer>
</observers>
</catalog_product_prepare_save>
</events>
</adminhtml>

本来我class想写成xxxx/observer的,但死活通不过,我不知道是我写错了。还是。。最后写成详细的类名才OK。(也可能是因为不在系统目录下,而在local目录下的原因吧?)

Observer就不写了。参考core/mage/bundle/model/observer.php即可(本来有大小写的,我忽略了)

转:30秒钟做一个ipa

转:30秒钟做一个ipa

起因来自,有人说我打包的phonegap的APP没有ituneArtwork,于是网上找了下,发现了一篇文章,来自:http://bbs.weiphone.com/read-htm-tid-144479.html

作者说的很简单,3步走即可

1、下载附件里的rar,解压

找到你想要做ipa的*.app,把*.app放入Payload里

用xp自带的记事本编辑Info.plist,找到<string> </string> 把中间的空格填入程序的名字 有4处要改

CFBundleDisplayName下面可以随便填,中文也行,这个是在iphone里显示的名字

CFBundleExecutable下面不能随便填,这是执行名字,也就是*.app下的执行文件名是123,那么这里必须填123

CFBundleIconFile这是iphone里显示的图标,一般*.app文件夹里是icon.png,如果是12b.png,请把CFBundleIconFile下面的icon.png改为12b.png

否则图标显示不正确,但是可以程序运行

CFBundleIdentifier和CFBundleName这个随便填,最好用程序名,比如12b.app 你就在那两个下面改为12b

保存并退出后,把Info.plist放入*.app里

2、把Payload和iTunesArtwork用标准zip格式压缩 在winrar里选择标准zip

iTunesArtwork是一个标准的jpg文件,你给他加个jpg扩展名后就可以打开看了。随便用什么jpg图片都可以,这个是显示在itunes里的图片,与iphone程序的图标无关。iphone程序图标只与*。app里的icon,png有关

iTunesArtwork像素一般要求是512X512.,你要是有兴趣也可以设别的试试

在这里我用的是itunes默认的黑色图标

3、把zip扩展名改为ipa扩展名

ok,ipa程序做好

-----

附件就是那个info.plist和payload的打包

为什么我的vps在重启后mysql都不能启动?

为什么我的vps在重启后mysql都不能启动?

为什么我的vps在重启后mysql都不能启动?带着这个问题,我看了很多信息,比如rc0.d/~rc6.d这些目录。一个个里面都有mysql的启动脚本。那为什么还是不能启动呢?

在vampire的提示下。看了:dmesg | grep mysql,结果返回空。

然后又运行了:cat /var/log/daemon.log,仔细翻了一下,居然发现了一条这个:

Nov 7 21:53:36 vpsname /etc/init.d/mysql[988]: ERROR: The partition with /var/lib/mysql is too full!

咦。这是什么??怎么会满了?然后我ls -la /var/lib/mysql

我靠:

lrwxrwxrwx 1 mysql mysql 29 Dec 10 2012 mysql -> /server/???/mysql/mysql/

得,原来我mysql的存储是放在/server/盘下面,/server盘是什么?df -h看了一下:

/dev/xvdb 30G 3.7G 25G 14% /server

原来是我挂载的硬盘啊。

于是我一下子心里就明白了。我在rc.local里写了一句:mount xxx xxxx,但是启动mysql在mount前面,所以。。。。

到这里我就明白了,要么。我在mount后面主动启动一下,要么我将/server的信息写到/etc/fastab里面。二选一。

我最终还是偷懒了。怎么做,我不告诉你们

粗心安装go

粗心安装go

由于buyvm的内存其实很少,所以我如果跑apache+php,担心会卡。所以我想是不是可以跑个go呢?

这不,我眼睛一闭,就参考http://golang.org/doc/install进行安装了。
然后到:https://code.google.com/p/go/downloads/list 兴冲冲的下载了go1.1.2.linux-amd64.tar.gz,就安装官方的教程开始了,因为我没有装过go,所以就直接tar -C 了
然而,运行的时候告诉我:-bash: /usr/local/go/bin/go: No such file or directory
当时我就纳闷了。这是怎么回事?难道他用的类库我没有更新?因为我是11.04的版本。所以我就apt-get update了一下,结果突然看到一条信息:Failed to fetch http://archive.ubuntu.com/ubuntu/dists/natty/main/binary-i386/Packages
等等,i386??不是amd64?心里仿佛突然明白了很多,于是施施然下载了一个:go1.1.2.linux-386.tar.gz,安装完毕后,运行go,直接就出来了。
细心才能解决问题。
深入浅出:HTTPS 要比 HTTP 多用多少服务器资源?

深入浅出:HTTPS 要比 HTTP 多用多少服务器资源?

话外页,这是一篇好文章,深入浅出的写出了很多东西,所以,值得一看,有时候,写文章就是这样,你写的越学术,别人越不鸟你,毕竟不是每个人的知识点都象你那么丰富。所以一篇好的文章,能够很直白的表达出来才是最OK的。说起来,当年白居易就是写诗给90岁的老太太听,她能听得懂,这就是好诗(这是老师当年说的,我没有认证过。)

上菜:http://www.zhihu.com/question/21518760

有人提问:

HTTPS 要比 HTTP 多用多少服务器资源?

一些国际网站,比如维基百科,在启用https前先会考虑自己计算能力是否可以承载https。请问,https要比http多用多少服务器资源?
有人回答:

知乎用户,网络设备从业者,对于互联网创新持续关注…

https其实就是建构在 ssl 层之上的 http协议,所以要比较https比http多用多少服务器资源,主要看 ssl 本身消耗多少服务器资源。
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。http 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;https建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。
SSL handshake latency and HTTPS optimizations. :: semicomplete.com
当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开https 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是 Nginx,参见下面的链接说明:
SSL termination proxy
那采用 https 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 https, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义,具体信息来源的英文网址:ImperialViolet。

--------------------------------------------------------------------

可能看了上面的描述,有些概念过于专业,所以想讲一个故事让大家比较好理解:
从前山上有座庙,庙里有个和尚......,别胡闹了,老和尚来了。

小和尚问老和尚:ssl为什么会让http安全?

老和尚答道:譬如你我都有一个同样的密码,我发信给你时用这个密码加密,你收到我发的信,用这个密码解密,就能知道我信的内容,其他的闲杂人等,就算偷偷拿到了信,由于不知道这个密码,也只能望信兴叹,这个密码就叫做对称密码。ssl使用对称密码对http内容进行加解密,所以让http安全了,常用的加解密算法主要有3DES和AES等。

小和尚摸摸脑袋问老和尚:师傅,如果我们两人选择“和尚”作为密码,再创造一个和尚算法,我们俩之间的通信不就高枕无忧了?

老和尚当头给了小和尚一戒尺:那我要给山下的小花写情书,还得用“和尚”这个密码不成?想了想又给了小和尚一戒尺:虽然我们是和尚,不是码农,也不能自己造轮子,当初一堆牛人码农造出了Wifi的安全算法WEP,后来发现是一绣花枕头,在安全界传为笑谈;况且小花只知道3DES和AES,哪知道和尚算法?

小和尚问到:那师傅何解?

老和尚:我和小花只要知道每封信的密码,就可以读到对方加密的信件,关键是我们互相之间怎么知道这个对称密码。你说,我要是将密码写封信给她,信被别人偷了,那大家不都知道我们的密码了,也就能够读懂我们情书了。不过还是有解的,这里我用到了江湖中秘传的非对称密码。我现在手头有两个密码,一个叫“公钥”,一个叫“私钥”,公钥发布到了江湖上,好多人都知道,私钥嘛,江湖上只有我一个人知道;这两个密钥有数学相关性,就是说用公钥加密的信件,可以用私钥解开,但是用公钥却解不开。公钥小花是知道的,她每次给我写信,都要我的公钥加密她的对称密码,单独写一张密码纸,然后用她的对称密码加密她的信件,这样我用我的私钥可以解出这个对称密码,再用这个对称密码来解密她的信件。

老和尚顿了顿:可惜她用的对称密码老是“和尚为什么写情书”这一类,所以我每次解开密码纸时总是怅然若失,其实我钟意的对称密码是诸如“风花”“雪月”什么的,最头痛的是,我还不得不用“和尚为什么写情书”这个密码来加密我给小花回的情书,人世间最痛苦的事莫过于如此。可有一次出意外了,山下的张屠夫给了小花他自己的公钥,谎称的我公钥刚刚更新了,小花后面给我的信的密码都用这个加密,然后张屠夫用他自己的私钥解开小花的对称密码后,不仅看到了小花的信件,还用这个密码给小花发了很多下流的信,同时也用这个密码伪造了一封小花给我的绝交信,直到三个月之后才真相大白。有此教训后,我重新发布到江湖的公钥,上面都有嵩山少林寺的火印,没有火印的公钥,大家不再相信是我的,可是从此之后,我在江湖已经没有名声,也好久没有收到过情书。

小和尚问:那然后呢?

老和尚:过了一年才知道,其实小花还是给我写过信的,当时信确实是用有火印的公钥加密,张屠夫偷到信后,由于不知道我的私钥,解不开小花的密码信,所以一怒之下将信件全部烧毁了。也由于张屠夫无法知道小花的对称密码而无法回信,小花发出几封信后石沉大海,也心生疑惑,到处打听我的近况。这下张屠夫急了,他使用我发布的公钥,仿照小花的语气,给我发来一封信。拿到信时我就觉得奇怪,信纸上怎么有一股猪油的味道,结尾竟然还关切的询问我的私钥。情知有诈,我思量无论如何要找到办法让我知道来的信是否真是小花所写。后来竟然让我想到了办法....

老和尚摸着光头说:这头发可不是白掉的,我托香客给小花带话,我一切安好,希望她也拥有属于自己的一段幸福,不对,是一对非对称密钥。小花委托小镇美女协会给小花公钥打上火印后,托香客给我送来,这样小花在每次给我写信时,都会在密码纸上贴上一朵小牡丹,牡丹上写上用她自己的私钥加密过的给我的留言,这样我收到自称是小花的信后,我会先抽出密码纸,取下小牡丹,使用小花的公钥解密这段留言,如果解不出来,我会直接将整封信连同密码纸一起扔掉,因为这封信一定不是小花写的,如果能够解出来,这封信才能确信来之于小花,我才仔细的解码阅读。

小和尚:难怪听说张屠夫是被活活气死的。您这情书整的,我头都大了,我长大后,有想法直接扯着嗓子对山下喊,也省的这么些麻烦。不过我倒是明白了楼上的话,ssl 握手阶段,就是要解决什么看火印,读牡丹,解密码纸,确实够麻烦的,所以性能瓶颈在这里,一旦双方都知道了对称密码,之后就是行云流水的解码读信阶段了,相对轻松很多。
修复反向代理

修复反向代理

之前有人在博客里回复,怎么反向代理不能用了。

经过检查,是我在使用4y.cn默认的dns的时候,我加的泛解析被删除了。
话说这两年4y.cn的dns解析什么的,问题不少,虽然解析速度挺快,但如果不准确的话,还是换到dnspod去吧。
目前已经移到dnspod。默认导入的时候,没有mx记录。需要调整,其他没问题
zepto的小坑

zepto的小坑

Javascript的一个组件zepto恐怕现在很多人都在用了。毕竟它几乎完全兼容jquery的语法。而且压缩后只有9K。所以大部分人在做移动端的时候就开始选择了zepto。它足够轻量。

毕竟你想一个jquery几十K,再加上一个jquery-mobile。得。。。等死吧。啥也没做200K没了。

但它毕竟和jquery不太一样。有点小坑

1、jquery的$('aaa :eq') ,这种伪类的选择符。它不支持。但可以用$('xxx').eq()这种函数式来代替

2、新版默认不支持touch事件了。这点要注意

不过大部分情况下,都够你使用了:http://zeptojs.com/

PD 9 的一些小问题

PD 9 的一些小问题

PD是我第一个mac上的正版软件。最近刚升到10.9,发现我原来的7不能用了。而我事实上用pd的时间已经没有原来多了。所以我就很纠结。所幸,网上有人提供了一些Beta版,我就下载来测试了一下

本站不提供下载,请围观此贴:http://mac.pcbeta.com/thread-144172-1-1.html
下载好后,如果你没有软件查看sha1的话,你可以直接php -r "echo sha1_file('/Users/???/Downloads/Parallels_Desktop_9.0.23136.932290_%5BHIOb%5D_Fix.dmg');"

可以看一下sha1是否正确。当然你还是有可能会出现1个CPU,0M内存的BUG,翻到第13页,有人回复:

If anyone faced with the problem of failing to start a virtual machine, because she has "more than 1 MB of memory and can not be started", then try this solution (I helped)

1) Close the Parallels Desktop

2) Remove the Parallels folder from / Library / Preferences (namely from the system Library, and not from the user!)

3) Start Parallels Desktop and select "Add existing virtual machine", then enter the path to your virtual machine

OK,就这么愉快的解决了