你夏了夏天
现在的我在想些什么呢?在写些什么呢?就随着自由的思绪去吧,白纸黑字,所思所想,快到信里来:)
很喜欢现在的状态,那是一种静静地坐着,会觉得有了你我什么不缺的心绪。你对我的爱,那么直接,那么美好,没有任何怀疑,不带有一丝瑕疵,有时候让我觉得自己不能配上这一切,觉得仿佛是庄周梦蝶。
庆幸,感恩,一切的一切,都让我觉得上天真的很眷恋我。从生命的这个时刻望向那扇通过未知终点的门,我会觉得很满足。而在从那扇门望向这一生的时候,应该会更满足,会感谢2013年的这一场相遇。
夜空中最亮的星
或许是自己的青春期从来没叛逆过,或许是最近想的事情有点多,或许是情商不够用,到现在,有些事情才慢慢开了窍。
可是落后就要挨打,父母的责备和唠叨或许对付对付就过去了,怕的其实是更刺痛神经的那一声叹息,或者一份沉默。
他们不会明白,为什么那些令他们非常满意的答案你都不要;他们会问你什么究竟才是你的标准答案;他们会说就做个选择题吧,A,B,C亦或D。
Ubuntu 12.04 Samba配置小记
本来这种文章网上一搜一大把,也没什么记的必要,但是亲身实践过后,发现有些细节还是记录下来的好,估计半年之后也就全忘了。
主要步骤跟这篇文章说的并无太多不同,基本一路配下来不会有什么问题。主要想说的是这几个小tip:
1) 关于useradd和adduser
对于ubuntu来说,useradd
不会在本地建立/home/${user}
文件夹,也不会赋本机登录密码(除非你之后显式地passwd ${user}
),也就是说useradd完的用户是不能从本机登录的。
而adduser会一次性地赋本机密码,创建完的用户是正常的本地用户。
对于samba共享的用户来说,useradd
就足够了。
如何诊断OSGi环境下的packages uses conflict(二)
上一篇文章说到packages uses conflict出现的原因,这篇文章来说一下怎么快速定位到不能加载的bundle,并找到解决方案。
怎么样才算有问题
从产品的功能角度来说,这类问题只会在特定的运行期显现,编译期仅仅是「潜浮」状态。而从开发的角度看,问题的出现是有很多症状的:在OSGi的控制台ss后看到一些INSTALLED的bundle始终没法start,或启动log中有大量以下的信息,都是出现问题的征兆。
!ENTRY org.eclipse.osgi 2 0 2013-03-30 20:26:32.242
!MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists:
!SUBENTRY 1 org.eclipse.osgi 2 0 2013-03-30 20:26:32.242
!MESSAGE Bundle bunle_x [6] was not resolved.
!SUBENTRY 2 bunle_x 2 0 2013-03-30 20:26:32.242
!MESSAGE Missing required bundle bunlde_y.
!SUBENTRY 2 bunle_x 2 0 2013-03-30 20:26:32.242
!MESSAGE Missing imported package package_z.
如何诊断OSGi环境下的packages uses conflict(一)
之前的文章提到了在OSGi环境下会出现Packages uses conflict问题,在那个例子中,产生的原因在于:
- 上游的bundle(B)在export package(u.v.w.common)时使用了
:uses
关键字,进而严格绑定(wire)了某个特定package(x.y.z.core 1.0.0) - 当前的OSGi环境下有多个同名的export package(x.y.z.core 1.0.0和2.0.0)
- 下游的bundle(C)直接或间接地依赖多个同名的package(x.y.core 1.0.0是间接依赖,x.y.z.core 2.0.0是直接依赖)。而如果不是import package,而是require bundle,情况会更加简单粗暴——因为require bundle等价于硬性import那个bundle的所有export package。
了解这三个原因,对诊断OSGi中的此类问题非常重要。
EMF简介——构建ecore model
元模型作为EMF框架中的模型表示,在产品架构中起着举足轻重的作用,这篇文章将对EMF元模型构建中的一些基本概念及细节作尽可能细致的阐述。
EMF中的元模型是一个.ecore文件,你可以通过Eclipse自带的EMF模块来设计(下载Eclipse带EMF模块的build)。同时Eclipse也支持其他方式的导入,从而生成ecore:
- 其他工具的模型文件,例如Rational Rose的UML模型,RSA中的emx模型
- xsd文件
Understanding The Jvm Note
这本书是13年看的第一本技术书,算是采用了分析阅读的方法来阅读。尝试着以问自己四个问题的方式(来源),来做一次读书笔记。
这本书主要写了什么?
围绕着JVM这个技术体系,重点阐述了JVM如何对内存进行分配,垃圾的回收方式(GC),字节码的结构与生成机制,类加载器的工作机制,JVM解释执行与编译执行(JIT)的细节,最后提到了Java内存类型和Java线程的设计原则。需要注意的是:JVM是一种规范,或者说是概念模型,而各虚拟机厂商在实现上会有一些区别,在阅读时必须注意JVM这个词的上下文语境。
Ubuntu12.10下编译openjdk 7
最近在读《深入理解Java虚拟机》这本书,于是谨遵书中教诲,尝试着自己动手编译一个jdk。这篇文章就把在Ubuntu12.10下编译openjdk 7的最简步骤记录下来,以备不时之需。
1. 下载build所需lib包
sudo aptitude build-dep openjdk-7
2. 下载openjdk7源码
我编译时用的是官方打包好的源码包,这里要注意的是:选择最新的源码包以避免不必要的麻烦(即主页上带7u的链接,而不是7)。