手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表全部文章

MAC复制文件后所增加的._开头的文件

当从mac复制文件到其他系统的时候,你会发现,目录下面多了一堆._开头的同名文件,很让人纠结,找了资料,说这是【 “Apple Double” 的文件系統處理機制】,虽然可以被删除,但很麻烦。

找到的原文是这么说的:

XML/HTML代码
  1. Before Mac OS X, the Mac OS used ‘forked’ files, which have two components: a data fork and a resource fork. The Mac OS Standard (HFS) and Mac OS Extended (HFS Plus) disk formats support forked files. When you move these types of files to other disk formats, the resource fork can be lost.  
  2.   
  3. With Mac OS X, there is a mechanism called “Apple Double” that allows the system to work with disk formats that do not have a forked file feature, such as remote NFS, SMB, WebDAV directories, or local UFS volumes. Apple Double does this by converting the file into two separate files. The first new file keeps the original name and contains the data fork of the original file. The second new file has the name of the original file prefixed by a “._ ” and contains the resource fork of the original file. If you see both files, the ._ file can be safely ignored. Sometimes when deleting a file, the ._ component will not be deleted. If this occurs you can safely delete the ._ file.   

好吧,我当然是没辙的,所以就只能用fin . -name "._*"|xargs rm这样的方式来删除了。这也是参考文章中的办法:

不过还是有一点小问题,那就是如果文件夹中有空格,其实在查询的时候是会被加上“\”的,也就导致在删除 的时候这个反斜杠变成了转义符。所以,这个目录还是先mv一下,改个名吧

Tags: mac, copy

好文推荐:PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

不清楚这些博客是否还会连载,要知道连载这东西真的很耗精力,如果编辑器不好、如果不能自动保存,真的很可能是会失去连载的信息的。事实上,我就是因为这些问题放弃了一些文章的连载。辛苦写了上千字,结果因为编辑器的问题一下子消失了。

再过一段时间,我还是会准备将博客转换到typecho或者wordpress上,毕竟这两个博客软件都是可以支持xmlrpc来投稿的。这样,我就可以用第三方软件来投稿了。(firefox有插件,黑黑)

上链接了,不然会被人骂:(如果有更新,我这里也会同步更新链接,或者你就直接移步该作者的博客吧)

  1. PHP __autoload()方法真的影响性能吗?
  2. PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
  3. PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
  4. PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
  5. PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式

暂时只有5篇关于PHP的,这还有一篇对话也可以看看:PHP 跟老大的对话

因为其中这一段可以拿来共勉:

XML/HTML代码
  1. 题外话:曾经我在离开一家工作一年的公司的时候!项目经理就跟我说你如果频繁跳槽,会对你的将来的发展是不利的,但是没有告诉我怎么不利?现在我有点明白了,因为我到过的公司很多技术过硬的人,都是在这个公司带过3年以上的人。我发现如果你在一家公司待很长时间,对你的技术提升是很有帮助的。  
  2. 1》 不停的重构代码,提升你的代码质量。  
  3. 我们开始进入公司的时候,一般都是公司急需赶个项目人手缺乏。等项目完成,一般都是1年左右。如果你在公司待足够长的时间,这个项目多多少少会跟你扯上边的,这时候,你会不停的翻看自己的代码,你也会不断的调整代码, 不断的重构你的代码——跟写文章一眼,你不停的看自己写过的文章,你会不停的做修改,越修改你的文章会越让你喜欢。  
  4. 2》业务熟悉,能够更快更好的写出代码!——我个人比较喜欢“行云流水”似的感觉。  
  5. 你如果在一个公司待了很长一段时间,那么你对这个领域是非常熟悉的。新需求上来,你会很快的知道怎么做代码架构,比如上面提到的,你就知道方法中,哪些代码部分可以抽出来,独立做成一个方法;你也会知道,将来什么地方会频繁修改的。——写代码,如行云流水般!  
当然不一定就很有道理,但也不是完全没有道理

利用phpstorm将文件上传到软链接目录

在项目中,有一个目录是通过ln软链接而来,在FTP(filezilla)里也不能上传,在很多软件里都不认这个目录是软链接,这时候真纠结。当然phpstorm在默认情况下也不能上传到该目录中

于是,我在phpstorm的Deployment中配置了一个mapping,将要上传的目录map到线上的实际目录中,这样就不会出现上述问题了。
例如,线上有一个/var/www/upload目录,但我们在项目中的地址是/var/www/xxx.com/upload,实际上是映射到/var/www/upload目录的。这是通过 ln -s来实现。嗯,不能用硬链接,因为硬链接不能跨分区。
在这种情况上很多FTP软件在打开/var/www/xxx.com/upload目录的时候都会报550错误,为了偷懒我在phpstorm里将项目的upload目录直接指向/var/www/upload。而不是xxx.com/upload,一下子世界就清静了。

Tags: phpstorm

Yii框架中使用PDO时强制将表字段设为小写的BUG

Yii框架的使用者越来越多,虽然大多数情况下都能够被使用的很正常,但偶尔还是有一些小问题,比如mysql对库名和表名区分大小写,但字段名不区分;这个问题就给Yii框架使用者带来很大的烦恼,特别是这个表还不是自己设计的,只是你拿来使用的,这个郁闷程度啊。
于是有人提醒我,应该这么用,在components中的db数组里加入:attributes=>array(PDO::ATTR_CASE,PDO::CASE_LOWER),以达到强制小写的目的,嗯,想法是好的,但是gii没法用了,gii直接报错,排查了半天,发现可能是CMysqlSchema这个类中的createColumn方法导致的错误,因为当你设置为列名小写后,这个方法中的一些判断却还是用的大写,于是很多变量就找不到了,没有办法继续下一步操作,于是我改了一下这个函数:

PHP代码
  1. /** 
  2.  * Creates a table column. 
  3.  * @param array $column column metadata 
  4.  * @return CDbColumnSchema normalized column metadata 
  5.  */  
  6.    protected function createColumn($column) {  
  7.        $column = array_change_key_case($column, CASE_LOWER);  
  8.        $c = new CMysqlColumnSchema;  
  9.        $c->name = $this->getDbConnection()->getColumnCase() == PDO::CASE_LOWER  
  10.                ? strtolower($column['field'])  
  11.                : ($this->getDbConnection()->getColumnCase() == PDO::CASE_UPPER ? strtoupper($column['field'])  
  12.                        : $column['field']);  
  13.        $c->rawName = $this->quoteColumnName($c->name);  
  14.        $c->allowNull = $column['null'] === 'YES';  
  15.        $c->isPrimaryKey = strpos($column['key'], 'PRI') !== false;  
  16.        $c->isForeignKey = false;  
  17.        $c->init($column['type'], $column['default']);  
  18.        $c->autoIncrement = strpos(strtolower($column['extra']), 'auto_increment') !== false;  
  19.        return $c;  
  20.    }  


当然上面的代码很粗燥,我也只是先临时解决这个问题,这么写之后,马上gii就恢复正常了。黑黑

顺便再说一个技巧:以前用gii的时候,对于生成model类都是一个个的输入一个个的生成,总想着应该可以批量生成,但一直不知道如何操作,直到昨天在解决上面的问题时,发现原来在gii里有这样一段代码:

PHP代码
  1. if($this->tableName[strlen($this->tableName)-1]==='*')  

我晶啊,原来那个表名可以写成*啊,这样就是自动生成整个数据库的model了,哎,以前居然一直没在意。

Tags: yii, model

来自Fenng:创业团队成员的「挑战」以及「成长」的问题

以下这篇文章来自于Fenng的博客,主要是其中有几段对我来说很有意义,当前我也是正处在一个创业公司中,也遇到了其中所提到的一些问题,工作量和工作难度这一点其实很多时候都无法界定,工作量大的时候,工作难度肯定是低的,这让我想起很久以前看到过的一篇文章:某一个实习生去某大公司实习,发现做的都是一些重复重复再重复的事情,问其他人为什么不改变,或简化流程或合并制作,但很多老人都告诉她还是按部就班吧;她不愿意这样,于是在实习期间自己想办法把自己的工作简化了流程,提升了很大的工作效率,实习结束后,被上面看中升为了部门经理。嗯,其实大家都知道做网站很多时候大量的时间都浪费在做表单上,不过也没有办法,总是各种各样不同的表单,于是很多人就开始做表单自动生成器,表单验证器,这何尝不是一种学习?
哎,不说废话了,看看Fenng怎么说的吧,我会将一些话标红,也希望能够引起共鸣: 创业团队成员的「挑战」以及「成长」的问题

回想从最初开始负责丁香园技 术团队到现在,团队规模已经增加了几倍,有人离职,也有更多的人加入。团队一大,自然有些问题会浮现出来。比如最近在和团队同事聊天或是面试面谈的时候, 经常会听到类似的话「觉得现在的工作没什么挑战」或是「感觉学不到东西」,以前偶尔听到团队同事这样的反馈,还是挺让我着急的,我第一直觉是很惭愧,公司 或是团队给同事提供的资源和机会太少了,于是,不停的争取资源或是尽量改进,但是最后我逐渐发现,这样还是不能完全解决问题,这并非是问题的根源,因为一 方面有人说没挑战 ,一方面是一堆老大难问题很久得不到解决。觉得「没挑战」和「没成长」其实是很多人会有的心态,尤其是刚参加工作没几年的容易形成这样习惯上的认知。

我以前写过一篇 工程师在创业团队的技术挑战 ,说了一下我对技术上的「挑战」的看法,现在趁着有点空闲,再谈谈谈创业团队中的成员的「挑战」以及「成长」的问题。{请注意,这只是一篇随笔,我无意去讨论什么管理之类的废话,也不奢望就这么几个字能解决所有问题,对少数人起到一个提醒的作用就足够了}

一般觉得工作没什么挑战的,原因可能无外乎几个: 要么认为自己的能力足够高了,不屑于再做「简单」的事情; 要么认为自己是在做「重复」的工作;要么,觉得没接触到新东西;也很有可能只是各种借口或是「心态」的体现。

实际上,任何团队中都没有「简单」的事情,只有做得好或是做不好的事情。什么是简单? 给产品写一段文字说明够简单么?写一封 EDM 够简单么? 如果仔细推敲的话,会看到绝大多数文案都是糟糕的一塌糊涂,那么为什么不用更高的标准要求以下自己呢?既然能力够高了,为什么你说的「简单」的事情还做不好呢?所谓眼高手低,不就是说这种情况么? 如果小事情做到比别人好,那么大一点的事情团队就会更加放心的给你去做。否则的话,换了是你,你也不会将重要的任务交给连小事情都做不好的人吧?

任何团队中也没有「重复」的事情。任何事情,如果不针对反馈做任何改进的话,做第二遍你就会觉得是重复;而如果每次都能根据反馈不停的修正,那么做 成千上万次可能还会找到乐趣。比如说我们网站经常要给用户设计一些广告图片,有的同事说,总让我做广告图片,枯燥、乏味,我的设计能力如何得到提高? 的确,如果每次都用最低的标准要求自己,怎么提高呢?客户或是同事给你的反馈,比如,图片上的文字都是毛边的,无论怎么说你都无动于衷,那么怎么可能真的 提高呢? 所以,面对「重复」的事情,必须不断的给自己设立新标准,然后努力去突破,重复的事情里面依然大有文章,想想如何提高质量,再想想如何提升效率

至于说接触不到新技术,其实问一句话就好: 你业余时间为什么不学呢? 大部分回答是: 没时间。这是无解的问题。一般听到「没时间」,有时间整天逛淘宝难道没时间学习么? 其实潜台词都是「这是不重要的事情」,任何事情,你不投入比别人更多的精力,怎么做到比别人更好么? 正所谓,「以大多数人的努力程度之低,根本轮不到去拼天赋」,同样,不做好准备,也等不来机会。

至于心态,我引用丁香园 CEO 张进的一句话:两个都是新入职的同事,也都是第一份工作,交给他们差不多的事情做,一个想「他奶奶的,就这么点工资,让干这么多活?」,另一个则想「没想 到新人都给这么多机会锻炼」,你说过几年谁的成就更大? 这或许可以回答某些人的疑问「为什么我和同学毕业的时候都差不多,怎么过几年不见,人家都做到某公司总监乃至副总了,我还是在不停的换工作?」,就是心态 导致的差异。

有些人觉得创业团队或是小型公司里面,资源少,「学不到什么东西」,其实,是你没仔细去学习应该学的东西。前几天给几个好友的新创业项目提建议,我 说你们某个地方做的不及格,他们说要我给讲讲,我说这个应该不用讲的,你们团队中的某某,以前看过我做同样的事情,按理说,他也能做一下的。遗憾的是,没 去做,也做不来。为什么? 别人做他熟悉的那一点领域之外的事情,他是漠不关心的,意识不到学习更多东西是有价值的。有人说,问题就是机会,团队的问题,就是每个人的机会,谁能解决 掉,就会给团队带来更大的价值,相应的,他也会得到更大的回报。而在创业团队里面,恰恰是需要解决问题的人,不欢迎那些不动脑筋的螺丝钉。创业团队中,可 接触的问题不可谓不多,公司的方方面面都需要有人动手来做,如果平时多用点心思,学到的东西早晚在将来还会用到。很多人不都是有创业的想法么?但是你连基 本的积累都不够,创业? 怕是要撞墙。

那么是不是在大公司里面才能让人得到锻炼呢? 曾经遇到过不少工程师当面告诉我,想去某某大型互联网公司去工作几年,提高一下技术,遗憾的是,几乎没看到一个人在几年后能力真的得到提升,有的甚至退 步,为什么?一个很大的原因是,大公司里面多数的事情都已经固定下来了,而很多牛人之所以牛,是因为他们遇到公司从小到大的过程,在这个过程中他们得到了 难得的成长机遇,不停的学习充实自己,解决各种问题,才成为牛人,牛人也多是苦日子熬过来的。等到天下皆定,哪还有那么多硬仗好打呢? 另外,「想锻炼技术」并不是一个很好的出发点,单纯的想锻炼技术实际上并不利于「解决问题」,培养能力和意识更为关键。

我在微博上调侃过:很多人都希望找到一个完美的公司,比如,办公室要无比舒适;用最好的设备;完备的培训机制,还别占用休息时间;弹性工作制;别他 妈太累;也别让老子加班;公司前台要好看;没有刻板的工作流程;工作要有创造性不是重复劳动,别管我是否有创造性;队友不是猪而且都是天才,遇到困难他们 就会出手解决;做的事必须是最潮的,但别管赚钱与否... 还有,最重要的,薪水要高。遗憾的是,这样的工作估计是做公务员也不一定完全具备,只会让自己更加痛苦,甚至增加无谓的抱怨。

提起抱怨来,也有必要说一下对队友的抱怨这个事情。曾经见过有人对一起合作项目同事的抱怨,比如设计师抱怨合作的产品经理有问题,总要不停的修改, 时间长了,认为产品团队都很烂,经常打扰你,那么有没有想过,你是否可以给产品设计提出更好的建议呢? 甚至,有些产品设计你是否可以进行改进呢? 什么?「那不是我的工作!」 可是,为什么要给自己的能力设定一个边界? 这是多么可悲的事情,你完全可以无限制的突破边界,突破个人的局限。或许再过几年你会成为一个更好的产品设计师的啊。Zynga 的核心价值观有一条是「Level up」,不断升级,这恰恰是我们普遍缺少的心态。

的确,这是个浮躁的时代。大家容易听到各种各样的声音,每当心存困惑的时候不妨静下心来,加强对自身的认知。别幻想着走捷径,也尽量少去问别人如何成功,那些没有用,只要你别总在错误的路上越绕越远,将一些看似细微的事情做到更好,最后的成就依然惊人。

看清无处不在的「挑战」,让自己真正有所「成长」,毕竟,以后每个人都要承担更多的责任,只要你愿意。

--EOF--

最后补充一句话:「一个真正聪明的人,应该去发现别人话语中合理的部分,并且加以吸收利用,改正自己不正确的地方。而不是一发现别人言语中有漏洞或是有疑议就全盘否定。」

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

上面的内容全部来自于dbanotes.

Tags: dbanotes, fenng