Ï

文章归档

    2017
    5月
    04
    React学习笔记——深入React组件(v15.5)
    “组件让UI独立,可重复利用,并且单独解决每块问题。React.Component是由React提供的。 React.Component是一个抽象的基类,因此它很少的被直接使用。反而,你会用一个有代表性的子类,并且至少定义一个render()方法。 使用JavaScript定义一个简单的类组件: class Greeting extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; ...”
    03
    React学习笔记——引用和DOM(v15.5)
    “在典型的React数据流中,props是父组件与子组件交互的唯一方式。想要修改子组件的,你需要重新渲染父组件的props。然而,有一些种情况是你需要在典型数据流的外面立即修改子组件。要修改的子组件可以是React组件的实例或者是一个DOM元素。对于这两种情况,React 提供了一个解决方案。 何时使用Refs 1、管理焦点、选中或者是媒体重放。 2、触发命令动画。 3、与第三方DOM库集成。 避免在可声明的事物上使用refs。 例如:不在Dialog组件上暴露open()和close()方法,而是传递一个isOpen属性。 在DOM元素上添加一个ref React支持在任何组件上添加一个特殊的属性。ref属性接收一个回调函数,并且这个函数在组件mounted和unmounted时会立即执行。 当ref属性被用在一个HTML元素上时,ref回调函数接收的是基础的DOM元素作为它的参数。 class CustomTextInput extends React.Component { constructor(props) { super(props); ...”
    React学习笔记——使用PropTypes类型检查(v15.5)
    “React v15.5中React.PropTypes已经被废弃了,建议使用prop-types库代替。 随着应用的增长,可能遇到越来越多的类型检查方面的bug,对于一些应用,你可以使用JavaScript的扩展如:flow、typescript来检查你整个应用。但是,对于React来说,即使你不使用这些,其也内置了一些类型检查能力。要使用类型检查作用于组件,你可以指定一个特殊的属性proptypes: import PropTypes from 'prop-types'; class Greeting extends React.Component { render() { ...”
    02
    React学习笔记——深入理解JSX(v15.5)
    “从根本上讲,React语法仅仅是React.createElement(component, props, ...children)方法的语法糖。 //JSX代码 <MyButton color="blue" shadowSize={2}> Click Me </MyButton> //编译后: React.createElement( MyButton, {color: 'blue', shadowSize: 2}, ...”
    4月
    25
    React学习笔记——组合与继承(v15.5)
    “React有一个强大的组合模型,并且推荐组合代替继承,在组件间重用代码。 一些组件不能提前知道它们的子组件。它些问题在一些公共组件尤其明显。如:侧边栏或者弹出框等组件。 我们推荐这样的组件使用prop的特殊属性children,直接传递子元素到它们的输出中。 function FancyBorder(props) { return ( <div className={'FancyBorder FancyBorder-' + props.color}> ...”
    React学习笔记——提升state(v15.5)
    “通常几个组件需要反映相同数据变化,我们推荐提升共享的state到它们最近的共同祖先元素。实现如下: 创建一个温度计算器来计算,给定温度的水是否会沸腾。 我们将从一个BoilingVerdict组件开始,它接收一个celsius作为prop参数,并且打印水温度。 function BoilingVerdict(props) { if (props.celsius >= 100) { return <p>The water ...”
    24
    React学习笔记——表单(v15.5)
    “React中的HTML表单元素有点不同于其它DOM元素,因为表单元素天生具备一些内部状态。 <form> <label> Name: <input type="text" name="name" /> ...”
    21
    React学习笔记——列表和Keys(v15.5)
    “1、渲染多个组件 你可以创建一个元素集合,通过‘{}’在JSX中使用 //创建元素集合 const numbers = ; const listItems = numbers.map((number) => <li>{number}</li> ); //使用集合放到ul标签 ReactDOM.render( <ul>{listItems}</ul>, document.getElementById('root') ); 2、基础列表组件  通常希望在一个组件内部渲染列表,修改上面的示例: function NumberList(props) ...”
    React学习笔记——条件渲染(v15.5)
    “React条件渲染和JavaScript的条件工作方式是一样的。 1、使用JavaScript中if或者条件运算符来创建一个代表当前状态的元素,然后让React来更新匹配的UI。 //创建登陆用户后组件 function UserGreeting(props) { return <h1>Welcome back!</h1>; } //创建访客组件 function GuestGreeting(props) { return <h1>Please sign up.</h1>; } //创建Greeting组件来动态显示登陆用户或访客组件 function Greeting(props) ...”
    20
    泰山游记
    “不知道这算不算是一场说走就走的旅行。 清明节放小长假了,4月2号到4号。1号晚上,我和L讨论着小假期要去哪儿玩,搜了很多地方,一开始确定的是去北京密云的古北水镇,然后开始讨论是跟团还是自己去。L想跟团,主要交通比较方便。我想自己去,觉得想玩什么就玩什么,想去哪儿就去哪儿,比较自由些。最后在L的劝说下,我也同意了他的安排,觉得跟团可能会好些。于是,我们开始查旅游团。毕竟之前没做好计划,临时开始查,2号可能也赶不上了,3号去的话,可能也玩不了多少了。如果自己去,光坐车都得6个小时。想来想去,最后决定,放弃古本水镇了。下次再找时间去好了。 于是,我们又开始查别的离北京比较近的可以玩的地方。于是,查到了济南。 L说,爬泰山。我顿了一下,爬泰山啊,会不会好累。然后又想,泰山也是超级有名的景点,以前看同学去玩过,据说很多人会夜爬,为了领略泰山迷人的日出。而且小学课本里还学过,我也想一睹泰山的真容风采。于是,就这么定了。开始计划,白天什么时间可以去周围其他的景点转转,晚上去夜爬泰山。查完景点,又赶快查火车票。2号的没有了,3号一大早的高铁还有幸亏高铁快,不会耽误很多时间。就这样,买了来回的火车票,5号早上回北京,不耽误上班。 路线定完之后,又在想,3号去济南的话,那2号干什么呢?玉渊潭!说了好久要去的,结果因为各种原因,都没去成,趁着樱花还未完全的谢落,赶快去欣赏一下啦~ 2号早上睡个懒觉,中午吃过饭,开始进发玉渊潭-北京赏樱花最好的地方。也确实是樱花的尾巴了,半开花,半长叶子的,不过还是风景宜人。园子不小,分东湖和西湖,这时节,树木的新绿,也算是很养眼的风景了,伴着爽朗的天气,阵阵的微风,樱花飘落,绝美了!如果能再早些时间来,估计能像剧里的十里桃林一样美不胜收了。身临其境,感觉整个人都超凡脱俗了。草长莺飞,柳暗花明,万里晴空,白云朵朵,波光粼粼,这些词来形容,再合适不过了。游客很多,近似脚尖踩脚跟那种了,想必前两个周末,人更多了。我们拍了很多照片,有几张,还是很满意的。 下午逛完樱花林,准备去附近的火车站把后两天的火车票给取了。离得不远,就找了两辆小黄车。路上也很堵,路边,都是各种旅游团组织的成群的游客。我问L:这都是来玉渊潭看樱花的吗?L说:有可能啊。这些人,如果一起进了玉渊潭,估计园里真的要走不动人了。现在假期的景点,也真是疯狂了!~ 千辛万苦,冲破人流,到了火车站,取了火车票,才想起来,买的3号早上的高铁貌似太早了,坐地铁根本赶不上。于是,又在偌大的火车站,转了一圈又一圈,找人工服务的窗口改签的晚一点,呵呵,这个过程,我们自己都被逗乐了。 晚上,吃完晚饭,到超市里买了一些面包、水,当是第二天的早餐了。 3号一大早,我们收拾好东西,赶第一班地铁,去火车站,时间,不是特别的充裕,但是行动稍微紧凑点,也松松的来得及。检票进站的人也不少,(此处有亮点哦~)在第N个弯的围栏下面,我惊喜的发现一笔财富,5毛钱的硬币!毫不犹豫的蹲下捡了起来。不要说我运气好,平时捡钱太多,只不过你们不知道罢了,哈哈~不要小看这五毛钱,后面却起了大作用~紧赶慢赶,上了车,吃了点东西,就睡觉,因为白天还要逛其他景点,早上又起得早,所以,车上抓紧时间休息,养精蓄锐。 九点多,到了济南西站,话说,站门口那朵大金链,还真是够吸引人的,标志啊!我们在附近找了公交站,坐车去游济南第一站-趵突泉。于是问题来了,我们没准备坐公交车的零钱!济南的公交都是一人两块钱,我和L在包里翻来找去,加上早上在高铁站捡的五毛钱,才三块钱了,还差一块。我们愣了,怎么办呢?怎么办呢。。。于是乎,剧情反转,好人出现了,只听到后面一个女生对和她一起的另一个女生说:给他们一块钱吧。L偷笑:真好,坐个公交,你捡5毛,别人再给一块,自己就出5毛,哈哈哈~(什么是奸笑,这就是,嘻嘻嘻~) 十点半左右,到了趵突泉东门。这个景点,人也是不少的,队排的,都到公路上去了。顶着大太阳,买了门票,一人40,学生半价。 怀着新奇又欢快的心情,我们走进了趵突泉公园。园里多是树木,而且柳树居多,到了济南发现,很多地方都是柳树,包括后来的大明湖。郁郁葱葱的,一种很清爽的感觉。刚进园子的时候,感觉这各地方可能没多大吧,都是一些树木,一些古建筑房屋,但是后来的游园,验证了我这个想法是多么的……尴尬。我和L从进院子右边开始转,有一些假山,小河流,小湖泊,偶有一些樱花什么的花种,但不是很多,倒也给这院子增添了一些生机。我们沿着小路,想追寻传说中的趵突泉的踪迹,蜿蜒曲折,曲径通幽,是这里的特点,别有一番风味呢!一边拍照,一边往前走,能看到一些小房屋里在烧香拜佛。大概在园子的中心位置,就是趵突泉了,传说中的趵突泉,池子里的泉水极其清澈见底,很蓝,三个泉眼咕咚咚的往上冒着水,很神奇的感觉。后来看趵突泉的成因,更加的感觉不可思议,大自然太神奇了。经过了几亿年,顽强的地下水,不远万里,凭着强大的压力,形成了这三个泉眼。据说,到了夏天,泉水会往上冒的更高。这泉眼,也是经历了一代又一代的人啊,想古人看这泉眼的时候,大概是安安静静,悠闲自在,真的处于一种欣赏,感悟的状态。而今的人们,泉子周围,水泄不通,只为看一看这“传说中神奇的趵突泉”吧。泉边的三面,分别各有一座古典小房屋,据说当年康熙帝三临趵突泉,在此为趵突泉题了不少诗文墨迹,目前留世的仅存刻有"激湍"二字的双御碑。 离开趵突泉,继续向其他地方游览。李清照纪念馆,李苦禅纪念馆,漱玉泉,卧牛泉,无忧泉等等,每一处的建筑构造都很特别,与众不同,建筑师真的是很用心了。其中有一条鹅卵石铺的小路,每一个格子里,都摆成了不同的造型,有的像一大朵盛开的菊花,有的像一朵朵的太阳花,有的成放射状,有的成聚集状……这些造型,估计都被游者忽略了,即使看到了,也只是看到了这些图案吧,因为,设计者的用心,被我和L细心的发现了:格子里不光有这些图案,还拼成的有字呢!挨着的四个格子里,铺的有“天天快乐”、“岁岁平安”、“幸福”等等……这些文字,恐怕没几个人会发现吧,也算是一种意外的收获了,就这些细节,感觉园林的设计师,对这个园林的用心程度了!本以为园子小的我,到现在才发现,原来这里面,简直是四通八达,永远走不到头感觉,每到一处,都是不一样的一个地方。 离开了趵突泉后已经接近晌午,于是开始找地方吃午饭,误打误撞地就走到了一个叫芙蓉街的地方(后来才知道这里是济南有名的小吃街),街道很窄,两边都是卖吃的,跟北京的南锣鼓巷差不多,人流涌动。我们顺着街边走边吃,不亦乐乎。可能是小吃吃多了,最后找了一家黄焖鸡,两个人竟然一份都没吃完…… 吃完了午饭,在路上看见了两辆小黄车,于是骑着小黄车就去寻找,那年大明湖畔的夏雨荷了。济南的几个景点离的都比较近,穿过了几个街就到了大明湖景区,说起来现在共享单车真的是方便又好骑,节省了我们很多脚力,可就这种造福于人的好事,也有一群无良的人恶意破坏,唉…… 大明湖畔据说分新景区和老景区,新景区不收费,老景区收费,如果只是像我一样看看风景的完全去新景区就够了。依依不舍的离开小黄车后,我们进入了景区,首先映入眼帘的是一汪湖水,给我的感觉就是大、很大。往园里走了一会儿,看见了有坐快艇的,由于S同志灰常想坐,我们就买票排队了坐了一趟,快艇绕着大明湖转了一圈,基本上也把景区风景看了一遍,也算是没白白排队等待了那么长时间。 接下来我们又往园区深处走,在一个小院里,有很多树遮住阳光,很是凉快,也有很多人在这里休息,我们也找了个位置坐下来休息,由于从早上4点多起床到正在一直没怎么停留,体力已经有些透支了,不知不觉就在这里睡着了,因为随身还带有背包,所以只能轮流休息,一觉醒来就已经5、6点钟了,我们就直接去了火车站,在附近找了个沙县小吃,吃完东西后,又在旁边的超市买了一些水和面包什么的就去了火车站。 二十二点零九分,火车到达了泰山站,由于火车站到泰山脚下还有段距离,所以下车后花了二十块大洋打了个车去了红门,到达泰山脚下已经快十一点了,往上看漆黑一片,也没看出泰山的样子,整理了一下行囊,在二十三点零三分开始登山。红门距离山门口还有一段距离,大约十来分钟后,到达了泰山售票处,用身份证买完门票后就正式进入泰山了。   未完待续……”
    19
    React学习笔记——事件处理(v15.5)
    “Reactl事件和Dom事件非常相似,但他们也有一些语法上的不同: 1、React事件使用的是驼峰命名,而不是小写 2、JSX传递给事件的是一个函数,而不是字符串 //Dom事件 <button onclick="activateLasers()"> Activate Lasers </button> //React事件 <button onClick={activateLasers}> Activate Lasers </button> 另一个区别是React不能返回false,以阻止默认行为。你必须明确的调用preventDefault。如下面一个简单的HTML,阻止一个超链接打开一个页面的行为: <a href="#" onclick="console.log('The link was clicked.'); return ...”
    17
    React学习笔记——State和生命周期(v15.5)
    “ UI更新 function tick() { const element = ( <div> ...”
    React学习笔记——组件(v15.5)
    “ 定义方式 function Welcome(props) { return <h1>Hello, {props.name}</h1>; } 上面函数是一个有效的Ract组件,因为它接收一个单一参数“props”对象,并且返回一个Ract元素。这种组件被称为函数式组件。 class Welcome extends React.Component { render() { ...”
    2016
    10月
    08
    macOS Sierra触摸板滑动敏感问题解决方案
    “升级完macOS Sierra系统后,JAVA开发工具滚动条过于敏感问题,原因是由于JDK和Sierra不兼容,由于 Sierra 的触发事件参数比之前系统都复杂一些,而JAVA统一将这些参数处理为默认值,导致滚动速度快了很多,事实上可以发现升级系统后所有Java应用都存在这个问题,还包括Eclipse。。 下载openJDK112版本: http://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u112b403_osx_x64.tar.gz 解压后,移动到/Library/Java/JavaVirtualMachines 打开idea,双击shift,弹出对话框,输入Switch IDE JDK 选择选项后,将openJDK跟换为刚才下载的版本 重启!   原文:https://youtrack.jetbrains.com/issue/IDEA-158500”
    2015
    11月
    19
    编写ORACLE存储过程
    “整体结构 create procedure 过程名称( 参数 IN|OUT|IN OUT 类型|表.字段%type , ...”
    07
    10月
    26
    折腾
    “又是疲劳的一个月,又是一个又爱又恨的月分。 十一小长假又去一趟北戴河,不过这次却少了些上一次的感觉,却多了几分回味和体会,本来是想去青岛的,还好没抢到青岛的票,38元一只的虾想想都后怕……俗话说“乐极生悲,物极必反”,疯狂的假期后迎接我的就是一轮疯狂的加班,累的我是前仰后合。 一直以来都对自己的这个网站都不是特别满意,不论是功能、布局、还是内容等等,所以一直都在不断的改啊改调啊调的,这次做了比较大的调整,虽然也不算特别满意,但也可以让自己的心里抗一段时间了。 前些天用了一年的.info域名到期了,我犹豫了好久决定换回.com域名,总感觉其它域名有些不正规,应该是先入为主的影响吧。之前一直用的是.com的,去年也不知怎么的头脑发热,用了一年的.info其实主要还是因为当时比较便宜。这次换回来以后也不会再变了,除非这个站不开了。为了以后可以拓展更多功能,这次加上了二级域名blog,以后博客这块都会在这个二级域名下了,这样才能完全利用域名。 说来真是惭愧,网站建了好几年了,天天折腾外皮,内容却没怎么更新太多,正如某些博客前辈所批评的那样,目前域名Google PR 是1,这也还是我第一年刚申请时攒下来的,后来就没涨过。 本来也没想把这件事发展成怎样,其实也就算是一种娱乐吧,也不想天天弄什么长篇大论,也不想通篇BUG攻略什么,所以每当这个时候,写的都是一些流水文吧,不过那又怎么样呢,感觉也挺好的! 你好,10月!”
    9月
    07
    程序员技术练级攻略
    “ 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。 一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。 一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。 注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下: 现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的图形界面不吃香了。 越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。 微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》 所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。 启蒙入门 1、 学习一门脚本语言,例如Python/Ruby 可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目: 处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log) 遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果 跟数据库打交道 ...”
    01
    NodeJs—配置eclipse开发环境
    “ 前提条件:NodeJs已经在系统中正确安装。如下图:   1、安装nodeclipse插件: Name:nodeclipse Location:http://www.nodeclipse.org/updates   2、javascript编辑插件 -- VJET Name: VJET Location:http://download.eclipse.org/vjet/updates-0.10 包含的全部选择即可。 3、google V8插件(调试必备) Name:googleV8 Location:http://chromedevtools.googlecode.com/svn/update/dev/ 包含的也可以全部选择。 4、安装完成重启eclipse,配置node相关信息:   6、测试代码: 新建node项目:   在项目中新建hello.js文件,代码如下: var http = require('http'); http.createServer(function handler(request, respose) { ...”
    4月
    11
    CSS Content
    “定义与用法 content 属性与 :before 及 :after 伪元素配合使用,来插入生成内容。该属性用于定义元素之前或之后放置的生成内容。默认地,这往往是行内内容,不过该内容创建的框类型可以用属性 display 控制。   值 描述 none normal content specifications inherit 规定应该从父元素继承 content 属性的值。 <style> div:before{ content:"书记说:"; color:red; } </style> <div>同志们好!</div>   浏览器支持 所有浏览器都支持 content 属性。 特殊字符 content属性同样支持ASCII ...”
    07
    等我
    “等我有时间了……等我有钱了……等我……等我…… 曾经或者现在不知道被这句话忽悠了多少次,一次又一次拿着这句连鬼不都信的话在敷衍着,欺骗着自己那纯洁的心灵。 体育运动是我一直以来的爱好,尤其篮球是我最喜欢的运动,从小学开始我就接触到了篮球,当时我是我们班里第一个学会三步篮的人,同学们那羡慕的眼神让我至今记忆犹新。都说好的开始是成功的一半,在我看来却未必,这只是一些人为了让自己坚持下去而找的一个鼓励自己的方式。到了中学时期,我几乎每次都是篮球比赛中的首发阵容,随着一年年的长大,除了年龄没被落下外,身高和体重到后来却慢慢的被甩开了一大截,以至于从原来的锋位掉到了后来的后位。虽然一些客观原因让我无法控制,但还是凭借着我那无人能及的速度和投篮精准的优势没让我彻底掉下神坛。后来我和我的室友们发展了第二纵队(由第二阵容人员组成)王朝,当时整个学校没有几个能打过我们那个阵容,现在想想依旧心潮澎湃。后来学习压力越来越大,渐渐地玩球的时间越来越少,当时我对自己说的一句话就是“等我以后有时间了,要好好的玩”,现在时间是有了,可是人却再也凑不齐了。 都说现在过年过节越来越没有味道了,方式方法没什么变化,为什么会变得没意思了呢。对我来说原因有几条,以前家庭经济条件不太好,平时省吃俭用的过日子,只有过年时才能吃得到平时吃不到的东西,玩到平时玩不到的,年少无愁。记得当时过完除夕盼十五,因为只有那天才有我最喜欢的圆宵,家里有时为了省钱,不会去外面买,自己用糖和花生什么的自己包,有时候包的不好咬的特别硬,即使那样我还吃的满嘴留香,而且总是吃不够,当时我就想“等我挣钱了,我要买好多好多圆宵吃”后来,我真的挣钱了,十八买的勉强吃了两次,现在还剩半袋在冰箱放着! 最近我的朋友圈里有一个每天坚持学英语的,每天为了鼓励自己都写一句话,今天写的是“困难就怕坚持二字”,我想了想这句话改成“困难就怕行动二字”更适合我。很多时候真的不太需要等我,只是我们更想等我而已,莫怠明日…… 明日复明日, 明日何其多? 我生待明日, 万事成蹉跎。 世人若被明日累, 春去秋来老将至。 朝看水东流, 暮看日西坠。 百年明日能几何? 请君听我明日歌! 明 ·钱鹤滩《明日歌》  ”
    02
    寻找失去的记忆
    “我可能是个喜欢回忆的人,往往越久远的事,我越喜欢去想,然后是一阵感慨,再然后怀念,再然后伤感,再然后… 不知怎么着,已经几年都没联系过的高中同学最近异常活跃,还建立了微信讨论组。每天都说个不停,我 也有幸被拽了进去,偶尔也参与一下讨论,大多数情况都没人理我,让我找不到存在感,于是我慢慢的发展成了潜水一族,现在想想那几年混的挺失败的,没有什么人缘,唯一的几个死党也随着时间的流逝逐渐疏远了。这就是当初我死活都不敢相信的现实,我不知道时间改变了什么,我只知道我还是那个我。 现在我身边讨论最多的话题就是结婚了,同事结婚,同学结婚,朋友结婚,身边的人都在结婚。是啊,到了这该死的年纪除了结婚还能有什么呢。前两天有个同学在qq上问我现在在哪怎么样之类的,我当时很诧异因为我已经和他几年没联系过了,上学的时候关系不能说有多深交情至少面上还是不错的。我开玩笑回复他我在外地谋生啊,然后他说:”是吗,我要结婚了,还想请你来喝喜酒呢,你也回不来了啊!“。我又回复他,是啊,最近有好多同学都结婚了,我也回不去,只能祝福你们了。当我还在等着他的回复时,却再也没有声音了。后来我得知有一个同学也没参加,但是礼钱到了。 没错我确实人缘不行,如果美好的东西非要带上铜臭的气味,我宁愿抛弃。如果要加上一个期限的话,那就永远吧!今夜我再一次迷失了自己,回到了无穷无尽的记忆中。”同学你叫什么名字,朋友我们在哪见过,兄弟你还记得我吗“,当我得知我曾经暗恋过的女生,已经为人妻为人母的那一刻,我才知道我当时的愚蠢。疯狂一次也许一切都会不一样,可是谁又能说那就是错呢,也许错的是我依旧还在原地踏步。 打开相册,寻找记忆中的点滴,虽然我可能忘记了你,但我却依然努力的想起…标记…”
    3月
    21
    Z的自白
    ““Z,22岁生日快。” “谢谢!希望新的一岁我会抬头……” 我来自H市X县的一个小地方,以前的我一直都认为是自命不凡的,这个想法不知道是何时萌生的,也许是从我来到这个世界的那一刻吧,因为龙抬头了,我注定的不平凡就这样开始了。 这还得从我和我现在已经不认识了的表弟第一天上学说起,那个时候学校离家比较远,交通条件也不好,只能步行两三里地去上学,当时我不知道我为什么要去一个那么多人地方,妈妈告诉我上课不许说话,铃声响后就下课了。于是,我一直没有说话,别人跟我说话我都不理会。而在妈妈走后不知过了多久,我终于听到了铃声,而我却把课间休息当成了放学,我跑到学校门口找了妈妈很久都没找到,于是我做了一次不寻常的事,自己走回了家,回到家里大人们都震惊了,当时应该是5岁左右,具体记不清了。 辗转间来到了一个新的地方开始了我的小学,那也是我记忆中最美好无忧的时光。班长,委员,同桌,最好的组长,最好的朋友,最美的同学……当时忘记了是什么原因,我和一个同学打架把他推倒在地上,脸都划破了。那也是我人生中第一次打架,回到家后我很害怕,也没敢告诉父母,那个同学的家长找到了家里,我都没敢出门,后来因为大人们都认识也就不了了之了。漫长的小学时光终于在我的长大成材梦中结束了,毕业晚会上也随着当时非常火的同一首歌落下的帷幕,炉火徐徐……我们毕业了。“鲜花曾告诉我你怎样走过,大地知道你心中的第一个角落,甜蜜的梦啊谁都不会错过……” 就这样一点点,一步步,我醒了,醒得那么干脆。 我叫Z,我来自H市X县的一个小地方,以前的我一直都自命不凡! (未完待续……)”
    18
    站长也要懂项目
    “ 在当今社会中,一切都是项目,一切都将成为项目。 ——美国项目管理专业资质认证委员会主席Paul Grace 博客建立也有一年多啦,一直在断断续续的维护着,三天打渔,几个月晒网,找个好听点的借口“忙”。 俗话说“麻雀虽小,五脏俱全”,我这小站点也算是经历过风风雨雨啦,建立之初的想法是怎么也算是个IT人啦,给人做过的网站也有很多啦,为什么还没有自己的小站呢。于是网上找了好久买了一个云服务器,整个网站的全部架构全是我自己设计的,做了半个多月试运行上线了,虽然功能不是很全,但是一直在不断的完善,当时成就感天天爆棚。半年后通过一点点的了解,发现大多数的个人网站用的都是虚拟主机,于是将目光移到了这边,经两三考虑对于没有收入的网站来说,云服务器确实像它的名字一样,有点高不可及,可是虚拟主机一般支持的都是PHP网站而我那个网站是JAVA做的自然就不能用了,还是有一些失望,再三衡量下我还站在了成本这一面。那么问题来啦,“空间技术哪家强”,“怎么建站”……,对于PHP我也是一窍不通,于是网上搜罗各种攻略,手册等等直到现在,虽不敢说是什么大牛,但建站各种问题,我也应该能说说一二啦,看来抽时间我也可以写一篇建站攻略啦^_^。 对于网站来说,其实最重要的就是Search Engine Optimization,也就是我们常说的搜索引擎优化简称SEO,网上对这方面的攻略比比绋皆是,除非你向我一样不是特别追求页面的访问量,否则我相信你应该看过很多类似的文章。虽然我并没有对这方面的技术有过太多的研究,但是我却对这方面有一些特别的看法。 我认为站长优先关注的,恰恰不是SEO(也不是瓜子),而是网站本身质量。首先内容是否有吸引力、新颖,如果你的网站能在这方面搏到访客的满意,那么你就不太需要做别的来浪费时间啦。然而往往大多数人都是废在这儿了,这是硬实力的体现,只能自己努力啦。其次,是页面的流畅度和交互感觉方面。我相信如果一个受访页面在3秒之内加载不出来,这个网站在访客心中印象的地位就大打折扣了,如果5秒中之内还打不开,我会选择直接关掉,除非你有让我不得不看的理由。不过你真的有这本事,你还优化什么流量啊!你不就垄断了吗……质量是一个项目最基本的要求,如果一产品边最基本的质量都保证不了,那么这个产品可能不会成功。之所以用“可能”两字,原因在于不同环境下有不同的需求,不同的需求下又造成了不同的标准,所以不同的产品质量的好坏也就无法做到统一评判。归结一句话就是干系人是否满意,从马桶盖上就可以看出些问题了……. 影响到用户体验的因素往往有很多,比如常说的主机类型,带宽大小,以及智能交互的体验等方面,而说到这些往往也都会牵扯一个问题“成本”,尤其对没有收益的小网站来说,当然要想办法越低越好啦。但是这里需要注意到一个前提“不影响体验效果”,也就是一直说的保证质量。有些人可能不太想花钱,但是也想搭建一个网站,于是就到处搜寻免费空间,费了好大的劲终于弄好了,也写了好多内容,功能和体验上也花费了好多心思,结果没过几个月或者几天,主机数据全部丢失或停止运营,最后连灰都没见着!你可能会想,没事反正也没花钱没啥损失。但是,真的没什么损失吗,你所付出的精力,你辛辛苦苦写出来文章,即使你的内容全都是些流水仗,那也是付出了机会成本的。当然一个产品的好与坏不能仅仅用成本的高低来区分,最根本的因素还是质量达标-干系人满意。然而质量有时又不仅仅说的是产品的本身,雾霾就是很好的例证…… 虽然我并不是什么技术大牛,但凭借这么多年的实践,我相信做到每天几更应该是不成问题的,但事实上我并没有这么做,因为从最开始的定位上我就不想让我的地盘变成一个纯技术类型,我只想在这里记录的是日常的点点滴滴,可以是任何类型。这个问题也就涉及到你的网站想要发展的范围,它是整个网站的骨架,直接影响着你网站的流量。你的网站到底是什么类型,一定要做到心中有数。 前面谈到硬实力,须要长时间的积累,但是就像我一样眼下并不达不到,难道就被判死刑了吗。也不一定,硬的不行咱来软的呗,交流是可以很好解决这一问题的办法,只有互动多了才能发掘出更多的想法和不被所知的见解,流量也自然而然就上去了。 有了这些,你还用SEO吗?用,当然用,锦上添花嘛^_^……”
    09
    吃汤元
    “独在异乡为异客,每逢佳节倍思亲。遥知兄弟登高处, 遍插茱萸少一人。 —王维 十五的元宵十八吃,说到元宵让我想起前天下班高峰期的8号线瘫痪,好多人都去鸟巢看灯,导致截流限行排了半个小时才上去。 记得以前在家的时候每到十五那天,家家户户都会走出家门,我们那里叫做“走百步”,意思是除百病,让一年有个好身体。大街上人来人往,有的跑着,有的蹦着,有的手里提着灯笼,有的嘴里嚼着冰糖葫芦;有集体放烟花的,也有组织扭大秧歌的,雪花飞舞,冰灯闪耀,街边到处都是点的透亮的火堆…… 另一个习俗应该就是往河里仍硬币了,一块的,五角的,一毛的,还有几分的。好多人到了第二天就下去捡,据说可以让你小发一笔的。路上遇到卖小灯笼的,我们叫喊着让母亲给买一个,软磨硬泡下母亲终于给我和小哥一人买了一个,小灯笼是玻璃做的,在里面放上蜡烛,专门喜欢往黑暗的地方跑,那叫一个开心,整个晚上都高兴的无法入睡。 散步回来,最大的期待就是煮元宵啦,那个时候一年到头来就只有这一天才能吃得到元宵,满满吃了两大碗小肚子撑的圆鼓鼓的,却还是眼巴巴的看着锅里剩下的,真嫌自己的肚子太小。 后来,大一些了才知道了,有北方“滚”元宵,南方“包”汤圆的说法,那个时候记得大人总是喜欢给小孩讲一个故事,大意就是说俄罗斯人来中国看到元宵,怎么也弄不明白为什么中国人能把元宵包的那么圆,然后大人总是自豪的说滚圆的呗。 再大一些后,总是在十五的时候吃元宵,可是我发现每次回来时候包装上写的都是汤圆,从没看过有写着元宵的,不知为何,我开始怀疑我是否吃过真的元宵,难免总有一些失落感! 哐嘁哐嘁,终于做上地铁啦,吃了点快餐,到家了…… ”
    02
    2月
    03
    1月
    09
    等一分钟MV
    “歌曲录制于2011年,最近迷上mv于是拿出以前录的歌用了十几个小时的视频制作,完成了这个mv,也算是处女作啦,瑕疵很多,相信后续会起来越来越精致。 ”
    2014
    10月
    9月
    29
    网页head内容跑到了body中
    “最近发现博客的favicon图标在chrome浏览器中不显示,但在IE中却可以,于是我打开调试工具查看,结果发现HTML head标签的内容全部跑到body中去了,由于favicon必须在head标签中所以现在不能显示了。于是排查可能出现的问题: 1.存在标签未闭合等问题 2.存在移动head内容的js代码等问题 3.存在编码或乱码等问题 经过检查后排除了1.2项的问题于是把注意力集中在第三个问题上,经过一阵咕弄终于发现了由于文件保存的时候编码存在BOM标记。 BOM是windows下记事本软件保存一个UTF-8编码的文件时开头正文的一部分来表明编码方式的隐藏字符,对于一般文件貌似没有什么太大麻烦,但对于PHP来说却不是个福星,它会被PHP完全读取出来,使整个网页向下填充无法紧贴浏览器顶部,并且可能出现标签混乱。 既然找到了问题就着手解决问题吧。 一种方法是手动将文本在编辑器中打开,将编码转换为UTF-8无BOM编码方式,当然如果你的文件太多这个方法就不太适用了。 第二种方法如下 <?php $basedir = str_replace('/clearBOM.php','',str_replace('\\','/',dirname(__FILE__))); $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) ...”
    28
    Java Properties文件
    “谈到Properties不禁想起java项目里特有的一种配置文件,Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 ...”
    5月
    07
    Linux服务器的初步配置流程
    “第一步:root用户登录 首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。 ssh root@128.199.209.242 这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。 接着,修改root用户的密码。 passwd 第二步:新建用户 首先,添加一个用户组(这里假定为admin用户组)。 addgroup admin 然后,添加一个新用户(假定为bill)。 useradd -d /home/bill -s /bin/bash -m bill 上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。 接着,设置新用户的密码。 passwd bill 将新用户(bill)添加到用户组(admin)。 usermod -a -G admin bill 接着,为新用户设定sudo权限。 visudo visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。 root ...”
    05
    Linux上分不清的查询指令
    “whatis : 列出相关指令的说明文件(相当于man -f) apropos : 列出系统的说明文件中,相关指令或关键词(相当于man -k) whatis/apropos两个指令想要使用必须用makewhatis(root权限)建立whatis数据库。 whois: 查找并显示指定帐号(或域名)的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,不区分大小写。 whereis 档案或目录名: 从指定目录中搜寻特定档案。 -b : 查找binary格式档案 -m : 查找在说明文件manual路径下的文件 -s : 查找source来源档案 -u : ...”
    3月
    27
    当你的才华...
    “当你的才华 还撑不起你的野心时 那你就应该静下心来 学习 --- 当你的能力 还驾驭不了你的目标时 那就应该沉下心来 历练 --- 梦想 不是浮躁 而是沉淀和积累 --- 只有拼出来的美丽 没有等出来的辉煌 --- 机会永远是 留给最拼搏的那个人 --- 要学会 与内心深处的你对话 问问自己 想要怎样的人生!人生苦短,必须精彩! 转自-左轮吉它 You’re lookin’ swell, Dolly…… ”
    25
    自由去哪了!
    ““爱情不是你想买,想买就能买……”,一阵闹钟声把我拉回到现实的世界,撇开放纵已久的被子,慌忙的起床洗漱,十几分钟后脸上带着还未洗净的泡沫匆匆的出了门。 庆幸,又是幸运的一天,只等待了30分钟公交就来了,这趟车的人不是很多,不堵车的情况下半个小时以内就能顺利到达公司(前题是奢侈的不堵车)。这就像是赌博,每天能否准时打卡就是我的筹码。接下来就是一天的常规任务:“吃饭-干活-吃饭-干活-吃饭-干活-睡觉”! 终于到了周六,在昨天不累的条件下,应该会在10点左右见到一天的第一缕阳光。懒一会床,玩一会手机……,然后起床洗漱。再磨蹭一会后,应该吃午饭了。 闲暇的时光总是短暂的,还没享受够周六的放纵,周日的脚步早已悄然来临。為了让周一能好过一点 ,遂,在家老实呆着吧,最多就是打一会球。 于是乎,在一个美梦中,那一阵阵美妙的旋律又响起来,“爱情不是你想买,想买就能买……”!!! It’s so nice to have you back where you belong!”
    09
    乔迁之喜,开門大吉
    “新博客终于搭建完毕了,由于先前从一个国外免费空间先试了一下手,所以一切还很顺利,没有遇到什么难题,只是主题真是让我煞费苦心,想要一种自由,大气,舒适的,确始终没找到.最后发现了这一款还算满意吧. 对自已的文彩很有自知之明的我建立这个博客只是为了自我生活中比较有意义的人或事以一篇或一段文字的形式记录下来,如果恰巧其中的某些只言片语能够让你感受到乐趣或是对你有所帮助,那便是我又一收获实乃三生有幸. 最近翻我以前的物品时,从中发现了我一本10多年以前的一篇日记,我从头到尾翻了一遍往事一幕幕浮现在我脑海,回想起那时青涩的我,还有我那年青的母亲.多年以后我越长越大,离家也越来越远.回家就越来越少.时过境迁,物是人非唯有那本快要泛黄的日记本记录着那一幕幕永恒的瞬间.那一笔笔的画面比影像还要清晰的在我的脑海放映.那一夜我兴愤的失眠了. 所以我决定重新捡起笔头来记录这生活的点点滴滴.等到下一十年、下下一个十年再来回忆.由于我对个人网站的喜爱我会公开我部分记录到到我的个人博客来,其中可能包括但不限于生活感悟、个人游记、技术文摘等等. Dolly’ll never go away^_^”
    1月
    06
    解决浏览器模式问题
    “网站前端开发在我看来是开发中最让人郁闷的工作,并不是其技术有多难,而是因为它的各种不稳定因素。今天浏览器厂商一个标准,明天浏览器厂商一个标准,这家厂商一个标准,那家一个厂商一个标准。前端开发大多数时候并不是因为一个布局实现方式而苦恼,而是为了各种浏览器的兼容。然而,最让人头疼的就属IE6啦。虽然这个浏览器,曾经立下过汗马功劳,但真的到了功成身退的时候了。 IE7在我看来只是微软公司临时抱佛脚的替代品,过渡产品自然用的就比较少,就像曾经的vista系统。 从IE8浏览器开始,微软向 Web 标准进行靠拢。改变重大,但是IE6的市场占有率仍然居高不下,且其代码标准与W3C的标准有许多出入,故按照 IE6/7 的规范来编写代码在IE8中也未必兼容,为了解决这个问题IE8浏览器增加了一种叫做“兼容性视图”的功能。从此处牵出两个功能“浏览器模式”和“文档模式”。 “浏览器模式”用于切换IE针对该网页的默认文档模式、对不同版本浏览器的条件备注解析、发送给网站服务器的用户代理(User-Agent)字符串的值。网站可以根据浏览器返回的不同用户代理字符串判断浏览器的版本和安装的功能,这样就可以向不同的浏览器返回不同的页面内容。 “文档模式”用于指定IE的页面排版引擎(Trident)以哪个版本的方式来解析并渲染网页代码。切换文档模式会导致网页被刷新,但不会更改用户代理字符串中的版本号,也不会从服务器重新下载网页。切换浏览器模式的同时,浏览器也会自动切换到相应的文档模式。 问题出现了,既然这么多模式那么怎么选择使用哪种模式,X-UA-Compatible出现了这是一匹神马。有了它开发者无需考虑网页是否兼容IE8浏览器,只要确保网页在IE6、IE7下的表现就可以了。 页面中用法: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 在<head>标签下面加入上面代码:IE=edge告诉IE使用最新的引擎渲染网页(其它可选值:IE5、IE6、IE7、IE8 ),chrome=1则可以激活Chrome Frame(可以让旧版IE浏览器使用Chrome的WebKit渲染引擎处理网页,因此旧版IE用户可以体验到包括HTML5在内的众多现代网页技术。) 参考:http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for-site-developers.aspx Apache设置方法: 可以在Apache主机做一些设置让服务器告诉IE采用何种引擎来渲染。在网站作用目录找到或新建.htaccess文件,添加下面的内容保存即可。 <IfModule mod_setenvif.c> <IfModule mod_headers.c> ...”
    2013
    11月
    10月
    9月
    01
    设计模式笔记
    “遵循原则 单一职责原则: 1、一个类或接口只有一个职责; 2、应该仅有一个原因引起类的变更; 在日常使用中很难完全做到。 提高了可读性和可维护性,降低变更引起的风险。 里氏替换原则: 所有引用基类的地方必须能透明地使用其子类对象。 父类出现的地方子类就可以出现,反之未必。 避免子类的个性。 依赖倒置原则: 高层模块不应该依赖底层模块,两者都应该依赖其抽象类; 抽象不应该依赖细节; 细节应该依赖抽象。 Java中的常见规则:接口负责定义public属性和方法,并且声明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化。 各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。 接口隔离原则 接口尽可能小,一个接口只服务于一个子模块或业务逻辑 已经被污染的接口,若变更的风险较大,则采用适配器模式进行处理。 迪米特法则 核心观念是类间解耦,弱耦合; 一个类应该对自己需要耦合或者调用者的类知道的最少。 开闭原则 一个软件实体(类、模块、函数)应该对外扩展开放,对修改关闭。 运维尽量减少对原代码的修改,保持历史代码的纯洁性,提高系统的稳定性; 单例模式(Singleton Pattern) 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 使用场景: 1、要求生成唯一序列号的环境; 2、整个项目需要一个共享访问点或共享数据。 3、创建对象需要消耗的资源过多,如访问IO和数据库等资源。 分类: 懒汉模式: publicclass SingletonClass1 { private SingletonClass1 instance = new SingletonClass1(); private ...”