netwjx

混乱与有序

服装布料常识

| 评论

平时买衣服发现有很多的布料种类, 还有很多别名, 各自的特性, 舒适也总搞不清, 这里整理一些我所知道的一些布料和特性.

棉(Cotton) 是天然植物纤维, 日常使用的最多的一种, 柔软, 穿着舒适, 吸湿, 透气, 弹性几乎没有, 容易折皱, 需要熨烫才能弄平, 可以机洗, 必然会缩水.

一般洗多次之后表面会起毛, 根据材料和织法, 轻重程度不同.

容易染色, 白色的不能和褪色的衣物一起洗, 有些衣服图案使用的印染技术不好图案会花, 发粘, 我说的是在以纯买的一件.

Unicode转义(\uXXXX)的编码和解码

| 评论

在涉及Web前端开发时, 有时会遇到\uXXXX格式表示的字符, 其中XXXX是16进制数字的字符串表示形式, 在js中这个叫Unicode转义字符, 和\n \r同属于转义字符. 在其他语言中也有类似的, 可能还有其它变形的格式.

多数时候遇到需要解码的情况多点, 所以会先介绍解码decode, 后介绍编码encode.

下文会提供Javascript C# Java三种语言下不同方法的实现和简单说明, 会涉及到正则和位运算的典型用法.

黑莓使用备忘

| 评论

我曾经使用过将近1年时间黑莓的手机, 期间零零碎碎的有一些使用资料, 这段时间整理成一篇独立的文章, 算是对过去的一些留念吧.

概况

购买黑莓主要是想试试全键盘的手机, 黑莓全键盘手机主要是两个系列, Bold 经典设计, Curve 小巧设计, 其实Curve和Bold的大小差异就是几毫米.

不同时期黑莓手机就是屏幕, 性能, 外观差异, 比如7xxx 87xx 83xx 85xx 89xx. 同一时期的主要是网络制式, GPS, WiFi, 发行地区, 键盘Y/Z倒置之类的差异.

黑莓的型号数字大小和发布日期最初是有些对应关系的, 但是后来就很混乱了, 不仔细找资料还真很难区分.

硬件

BlackBerry 8310

我购买的是水货的BlackBerry Curve 8310, 以下简称bb8310, 铁灰色, 和图片上哪种颜色不同.

  • GSM网络制式, 国内能用移动和联通的2G网络.

  • 支持GPRS/EDGE上网, EDGE是GPRS升级, 理论上快一点, 但是我没感觉到. EDGE移动的基站支持的比较多, 联通挺多的还是GPRS.

  • Intel PXA901 312 MHz, 就实际使用的流畅感觉来说, 所有点击操作都有延迟的感觉, 列表滚动经常短暂的卡顿.

  • 内置存储 64M, 精简ROM后还能剩30M左右, 安装第三方应用都需要占用内置存储空间.

  • 支持MicroSD(TF)卡, 应该是不支持SDHC, 不过实际我用的是2G的, 因为bb8310读写速度极慢, 写入速度低于1M/s.

  • 320x240解析度的TFT屏幕, 阳光下可以看清字, 因为会自动调整背光强度.

  • 带GPS, 带200w像素的摄像头, 无自动对焦, 带闪光灯, 闪光灯实际当手电筒使用.

  • 无WiFi, 有WiFi的那个型号只能使用系统自带浏览器上网, 第三方应用要折腾导入服务预订

  • 轨迹球导航键, 比侧边的滚轮能提供4个方向导航, 但是比更新型号的光学触控板更容易变油腻, 老化明显.

  • 图片JPG, BMP, TIFF. 音乐AMR, MP3, WMA. 视频MPEG4, 3GP(H.263), 不建议考虑视频, 即使是录制的视频质量也太差, 没有实际意义.

Jekyll插件:分类云

| 评论

Octopress默认有存档页, 但是没有能列出所有分类的页面, 我试图找这方面的插件, 但是尝试使用的一些都不是很理想, 所以尝试自己写了一个这样的插件, 效果就如导航栏链接分类 哪样.

以下是代码, 多数代码都是从Jeykll插件示例中抄的, 第一次写实用的ruby程序, 也没多想注释什么的.

使用.Net Remoting的IpcChannel时发生 RemotingException : 拒绝访问 异常

| 评论

在一个使用IPC进行单机跨进称的通讯时发生了 RemotingException : 拒绝访问 异常, 期间查找异常原因的时候发现中文不大容易搜到正确的答案, 也可能是因为Remoting是已经不再支持的技术吧, 因为历史的原因还不能使用WCF, 所以这里将这个异常的原因和解决办法介绍一下.

发生这个异常的场景是一个Windows服务程序在IPC信道注册, 另外一个桌面程序连接到IPC信道通讯, 重点是在IPC信道注册的程序是Windows服务, 默认情况下它将运行在LocalSystem帐号下, 连接这个IPC信道的是另外的用户启动的进程.

错误的原因是向IPC信道注册时, 默认的授权是相同用户的进程才可以访问这个IPC信道, 可以通过下面的代码修改默认授权:

C#委托和Lambda表达式

| 评论

C#算是个多范式编程语言, 除了传统的OO风格, 还可以在部分范围中使用函数式编程的风格, 这里整理一下C#中委托和Lambda实践中的各种写法.

这里不会解释具体的代码含义, 仅仅介绍写法, 可能不适合刚开始学习.

声明委托类型

使用前必须要有具体的委托类型, 下面的例子中会使用到这些常用的委托类型

1
2
3
4
5
6
7
delegate void Action();

delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);

delegate bool Predicate<in T>(T obj);

delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);

ActionAction<in T1, in T2>是在dotnet 3.5 sp1出现的一个很实用的委托, 类似的还有1-16个参数的, 这里主要使用这2种.

Predicate是从dotnet 2.0就出现的, 一般是在泛型集合的查询中使用.

Func<in T1, in T2, out TResult>也是dotnet 3.5 sp1出现的, 和Action基本一样, 也有1-16个参数的, 和Action不同的是这个委托都声明有返回值类型, 而不是Action的void.

Ruby 和 Jekyll 的笔记

| 评论

之前发现Octopress产生的页面中, meta标签的content属性没有处理换行, 今天尝试自己写个插件来处理这个地方, 因为没有学过Ruby, 下面的操作基本都是临时找资料, 所以记录一些重点.

插件代码如下

plugins/html_attr_filter.rb
1
2
3
4
5
6
7
8
9
10
# coding: utf-8

#html attribute filter
module HtmlAttrFilters
    def html_attr(input)
        input.gsub(/\r\n|\r|\n/, "\r\n"=>'&#13;&#10;', "\r"=>'&#13;', "\n"=>'&#10;')
    end
end

Liquid::Template.register_filter HtmlAttrFilters

修改source/_includes/head.html<meta name="description"所在的行

source/_includes/head.html
1
  <meta name="description" content="{{ description | strip_html | condense_spaces | truncate:150 | html_attr }}">

然后rake generate就能看到<meta name="description"content已经不会有换行了, 下面说说中间涉及的相关东西.

Fork me on GitHub