创业的一些感悟(转)

zhang 发表于 爱生活,爱梁坤 分类,标签:
19

做一件很棒的事,引起世界的注意,这可能是大部分人的理想。
在互联网这么发达的今天,创业其实也不是一件困难的事情了,现在并不是和以前一样,一定要成立公司,要有很多人才能创业,很多条件都降低了从程序员创业门槛。比如说Apple的AppStore,李开复的创新工厂等等。

创业不一定有了资金才能开始
你可能会问“创业基金从哪来?”,如果是传统行业创业,比如说开一间餐厅,开一个超市,可能真是需要一比启动资金,但做互联网创业,启动资金不是必须的,刚开始可以利用业余时间,都不用辞职。等产品基本成型了,有天使投资了或非常有信心盈利了,再辞职也不晚,这样风险也是最低的。

自挠其痒
很多人会说没有好的想法,好的点子,其实可以做的东西真的很多。
创造一款伟大的产品或者服务的最直接、最简单的方法就是去做你自己想用的。因为自己是最了解需求是什么,怎样可以满足,并能立即明白你做的东西是否靠谱,价值多大。

我们做的产品就是为了解决自己的问题, 那时公司想找一款CRM软件来记录,跟踪销售过程,公司是个小公司,没必要自己买服务器、软件进行部署,所以SaaS的CRM应用是最合适的,在试用了国内好几家的产品后,让我们很失望。原因很简单,注册之后基本不会 用,十几个功能菜单,好多专业词汇,一看就让人头晕,其实我们就是想找一款简单、实用的工具,解决我们的问题:比如,想关注我们商谈过的某人的动向,我们说过什么, 以及什么时候我们再跟进;这周的日程怎么安排的,明天都有哪些任务要完成。但现有的通讯录太简单,800客这样重量级的太复杂、难用,所 以我们决定自己做一个适合中小型企业用的在线CRM。
阅读全文 »

Firefox 查看、修改cookie插件—Firecookie

zhang 发表于 软件家园 分类,标签:
2

Firecookie 是一个Firefox扩展,可以为Firebug添加Cookie的查看和管理功能,操作很是方便。这个Firecookie与其他扩展不同的地方就是集成在了Firebug中,通过Firebug上的一个标签就可以直接查看Cookie。

目前Firecookie最新版本是1.2.1,要使用Firecookie扩展请先安装Firebug.

成功安装Firecookie后,打开Firebug面板,就会看到多出了一个 “Cookies”的标签,点这个标签下面就会显示一个列表,列表的内容对应的就是当前页面的所有Cookie。每一行对应一个Cookie,显示的是这 个Cookie的基本信息,包括名称、域名、路径等。

firecookie 界面

firecookie 界面

列表中每一项都可以展开,因为有很多cookie的值是很长的,展开以后就可以查看全部内容了。有时候这个功能是很方便的。而且展开以后可以直接对Cookie的值进行复制。

假 如某个网站的cookie较多,可以直接利用Firebug的搜索功能对cookie列表进行筛选,这个功能是从左到右完全匹配的,不匹配的结果将被隐藏 起来,直接显示那些符合条件的结果,比如你在搜索框输入a,则cookie列表只会显示那些名称以a开头的cookie。
阅读全文 »

在zend studio集成Aptana

admin 发表于 PHP, web开发 分类,标签:
6

众所周知 Zend Studio 和 Aptana 分别是编写 PHP 和 JavaScript 的利器,作为 Web 开发者,经常需要编写这两种代码。若分别安装 Zend Studio 和 Aptana,不仅浪费硬盘空间,还严重占用计算机的内存资源。由于二者均基于 Eclipse ,我们就有了将它们集成在一起的可能。 本篇文章中使用的是 Zend Studio 7.2.1 和 Aptana 2.0.5 。请注意 Aptana 有两个版本,分别是 Standalone Version 和 Eclipse Plug-in Version,这里我们使用的是 Eclipse Plug-in Version。

1.在下载并安装完成 Zend Studio 之后,从 Help 菜单中选择 Install New Software… 以打开安装软件对话框。如图:

Install New Software
Install New Software

2.将 URL:  http://download.aptana.com/studio3/plugin/install 填写进 Work with 后的输入框里,点击 Add.

Work with
Work with

3.在弹出的对话框中填写 Name: 为 Aptana,点击 OK 按钮。如图: 阅读全文 »

linux uniq命令:(过滤重复部分显示文件内容)

zhang 发表于 Linux 分类,
19

linux uniq命令用法
uniq [选项] 文件

说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。

该命令各选项含义如下:、

– c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。

– d 只显示重复行。

– u 只显示文件中不重复的各行。

– n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。

+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。

– f n 与- n相同,这里n是字段数。

– s n 与+n相同,这里n是字符数。

接下来通过实践实例说明:
===========================================
[root@stu100 ~]# cat test
boy took bat home
boy took bat home
girl took bat home
boy took bat home
boy took bat home
dog brought hat home
dog brought hat home
dog brought hat home

看test文件的内容 阅读全文 »

32位 与 64 位的区别 php

zhang 发表于 Linux, PHP 分类,
10

32位系统
echo ip2long(“172.16.1.63″);
结果 -1408237249
64位操作系统
echo ip2long(“172.16.1.63″);

结果 2886730047
32位的操作系统 整型 最大 2_32次幂 无符号数 无符号的范围是0到4294967295。
有符号数 2_32次幂 -2147483648到2147483647。
64操作系统 整型 最大 2_64次幂 无符号数 0-1.84467440737E+019
有符号数 2_64次幂 到 -9.22337203685E+018 到 9.22337203685E+018

切记64与32位系统之间的差距.与各种软件在64位与32位操作系统开发过程中要严重注意

PHP 中的整数是 C 语言的中的long 类型,是有符号的,最大值是 2^31 。在 64 位平台上,long可以达到 2^63.

  这样的话,有些PHP函数输出的结果在各个平台上就会不一致了。

  php -r “echo ip2long(’255.255.255.255′);” 在64位平台下是: 4294967295, 在32位平台下是 -1。还有比如 filesize 在 文件 大于 2G的时候,在不同的平台下结果就不一致了。

  解决这个问题很简单,sprintf(“%u”, filesize($file)). 把结果转换为 一个字符串。为什么结果会一样呢:无符号数 4294967295 的补码 和 有符号数 -1 的补码 是一样的。类似,返回值为int 最后结果可能大于 2^31 的函数,都要用这样的方法处理。

  注意,返回的虽然是一个字符串,但是,当进行四则运算的时候,PHP会自动装换。如果 数大于 2^31 会转换为 int 如果大于 了,就转换为double。
原文载自:http://hi.baidu.com/tdzpf/blog/item/49e0e81e49d4cee11ad5766c.html

如何才能称之为良好的php代码

zhang 发表于 PHP 分类,标签:
1
php

php

1.优良的PHP代码应该是结构化的。
2.优良的PHP代码应该是规范化的。
3.优良的PHP代码应该是自适应的。
4.优良的PHP代码应该是安全的。

PHP代码的优劣体现在哪里?
1.未优化过的php代码

echo(”

Search results for query: ” .
    $_GET['query'] . “.

”);

2.简单优化过的代码


echo(”

Search results for query: ” .
    htmlspecialchars($_GET['query']) . “.

”);

3.合理优化过的代码 阅读全文 »

浅谈数据库系统中的cache

admin 发表于 mysql 分类,标签: ,
3

Cache和Buffer是两个不同的概念,简单的说,Cache是加速“读”,而buffer是缓冲“写”,前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据。在很多情况下,这两个名词并没有严格区分,常常把读写混合类型称为buffer cache,本文后续的论述中,统一称为cache。

Oracle中的log buffer是解决redo写入的问题,而data buffer cache则解决data block的读写问题。对于Oracle来说,如果IO没有在SGA中命中,都会发生物理IO,Oracle并不关心底层存储的类型,可能是一套存储系统,可能是本地磁盘,可能是RAID 10,也可能是RAID 5,可能是文件系统,也可能是裸设备,或是ASM。总之,Oracle把底层的存储系统称为存储子系统。

在存储系统中,cache几乎无处不在(在后面的论述中,我们统称为cache),文件系统有cache,存储有cache,RAID控制器上有cache,磁盘上也有cache。为了提高性能,Oracle的一个写操作,很有可能写在存储的cache上就返回了,如果这时存储系统发生问题,Oracle如何来保证数据一致性的问题。

Oracle数据库最重要的特性是:Write ahead logging,在data block在写入前,必须保证首先写入redo log,在事务commit时,同时必须保证redo log被写入。Oracle为了保证数据的一致性,对于redo log采用了direct IO,Direct IO会跳过了OS上文件系统的cache这一层。但是,OS管不了存储这一层,虽然跳过了文件系统的cache,但是依然可能写在存储的cache上。

一般的存储都有cache,为了提高性能,写操作在cache上完成就返回给OS了,我们称这种写操作为write back,为了保证掉电时cache中的内容不会丢失,存储都有电池保护,这些电池可以供存储在掉电后工作一定时间,保证cache中的数据被刷入磁盘,不会丢失。不同于UPS,电池能够支撑的时间很短,一般都在30分钟以内,只要保证cache中的数据被写入就可以了。存储可以关闭写cache,这时所有的写操作必须写入到磁盘才返回,我们称这种写操作为write throuogh,当存储发现某些部件不正常时,存储会自动关闭写cache,这时写性能会下降。

RAID卡上也有cache,一般是256M,同样是通过电池来保护的,不同于存储的是,这个电池并不保证数据可以被写入到磁盘上,而是为cache供电以保护数据不丢失,一般可以支撑几天的时间。还有些RAID卡上有flash cache,掉电后可以将cache中的内容写入到flash cache中,保证数据不丢失。如果你的数据库没有存储,而是放在普通PC机的本地硬盘之上的,一定要确认主机中的RAID卡是否有电池,很多硬件提供商默认是不配置电池的。当然,RAID卡上的cache同样可以选择关闭。 阅读全文 »

电脑如何一开机后,不用输入登录用户或密码直接进入桌面

zhang 发表于 爱生活,爱梁坤, 软件家园 分类,标签:
2

电脑如何一开机后,不用输入登录用户或密码直接进入桌面,每次开机后电脑系统都停留到登录界面,需要点击登录用户进行登录,然后登录后电脑还要过会才能把所有的东西都加载上去。有没有什么办法可以开机后自动进入到桌面,不用经过让我点击登录名进行登录的界面呢,这样的话可以让电脑直接加载东西,提升开机的整体速度。
解决这一问题的方法是:
第一步:
“开始”菜单—->点击“运行”—->输入“control userpasswords2”回车。会弹开一个“用户账户”小窗口。

第二步:
在这个新弹出的“用户账户”小窗口中,去掉“要使用本机,用户必须输入用户名和密码”前面的勾选。然后再点击“应用”,会弹出一个小窗口,如系统没有设置过密码,直接点击“确定”。如系统设有密码,输入你的密码后再点击“确定”。重启下你的电脑看看是不是已经可以直接进入到桌面了,哈哈。 阅读全文 »

Linux性能分析工具(vmstat,iostat,sar)

admin 发表于 Linux 分类,标签:
0

Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。
在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。

用vmstat监视内存使用情况

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

vmstat的语法如下:

程序代码
vmstat [-V] [-n] [delay [count]]

其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。

用iostat监视I/O子系统情况

iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

iostat的语法如下:

程序代码 阅读全文 »

[技巧] 生产环境下的MySQL数据库备份和恢复

admin 发表于 mysql 分类,标签:
9

为什么要用生产环境这个名词呢,这样更能引起我们重视,不是简单随便的拿上你知道的命令就干活了。它有其特殊的环境,不是平时学习实验那样的只是为了达到我们的目的。在企业中运行Mysql是一个完全生产环境,我们必须要考虑很多相关因素。最典型的特点,既然是生产环境,那么就绝对不允许你去宕机,仅仅为了你的备份活动吗(想都不要想啦)。你要清楚备份只是为了保障我们的系统更加安全的运行,减少灾难带来的损失,相对而言只是一个小角色,设想如果服务器压根就没有发生问题的可能,那么备份也就没有存在的必要了,正因为有意外,之后我们才会采取相应的措施。

MySQL的备份主要分为逻辑备份和物理备份。在备份之初我们需要考虑哪些因素呢?
首先确定当前MySQL处在哪种表类型下工作,它们支持事务处理还是非事务的,因为我们需要根据不同的特点做一些设置。
其次要选择备份形式是全备份还是增量备份,各有其优缺点。
为了确保恢复的完整性我们开启binary log功能,同时binlog给我们恢复也带来了很大的灵活性,可以基于时间点或是位置进行恢复。考虑到数据库性能可以将binlog文件保存到其他安全的硬盘中。
正如最初所提到的,备份操作是和应用服务同时运行,这样就十分消耗系统资源,导致数据库服务性能下降,这就要求我们选择一个合适的时间在应用负担很小的时候,再来进行备份操作。
最后要提的就是,备份完不是就没事儿了,怎么就知道备份是否可用的,所以之后的恢复测试完全有必要。

下面就来具体实践一下。
1、逻辑备份和恢复
MySQL的逻辑备份就是将数据库的结构连同数据用一个文本文件备份出来,我们可以对这个文件进行查看和编辑。逻辑备份对于所有的存储引擎都是适用的,而后面提到的物理备份则会根据不同数据库的特点采取不同的备份方法。MySQL逻辑备份的主要工具就是大家熟悉的MySQL自带的mysqladmin这个工具。
#mysqldump -u root -p -all-database > all.sql 备份所有数据库
#mysqldump -u root -p mysqlsytems > mysqlsystems.sql 备份指定数据库
#mysqldump -u root -p mysqlsystems wp discuz > wp_discuz.sql 备份指定数据库中的若干表
TIPs: MyISAM中为了保持数据一致性需要在备份之前对进行备份的数据库加读锁操作flush table with read lock;InnoDB则可以在mysqladmin命令中加入–single-transaction选项,可以生成一个快照以保证数据备份期间的一致性。
以上介绍的是都是全备份,我们都知道全备份是必要的,在应用之初我们可以采用全备份的方式,但随着应用数据的增加,这种备份方式的效率就会变得很低,每次会花掉大量的时间和系统资源。我们有必要在全备份的同时结合增量备份。增量备份是通过备份binary log来实现的。当我们开启MySQL的二进制日志功能之后,对数据库进行的DML(select除外)、DDL操作都会纪录到其中,MySQL Replication就是通过bin-log实现的。每当MySQL重启,数据库都会重新生成一个bin-log文件。比如5月9日凌晨2点开始备份,同时我们也将bin-log进行更新重新生成一个,那么备份完成之后,我们对数据库进行的操作就会被从新纪录到生成的这个新的二进制文件中,增量备份就是要我们保存从5月9日开始,到你进行下一次备份,这期间的操作都在这个bin-log文件里面,我们只需将它备份起来就可以了。 阅读全文 »