编程
文章平均质量分 64
loveisbug
这个作者很懒,什么都没留下…
展开
-
函数的返回值,16位/32位
同事的一段代码里出现的异常,内存访问错误。遂一起排查。使用的是VC6.0,系统是Win2K。 主调函数func1,传进一个数组的首地址。用数组的下标方式访问,下标是一个子函数func2的返回值。异常出现在这里。一开始怀疑传进来的地址有问题,跟踪下来发现是对的。我怀疑func2的返回值,但看到这个函数很简单,就一句返回一个结构的WORD成员,好象不应该有错。 func2有一个参数,是一个结构指针l原创 2004-06-27 15:44:00 · 2246 阅读 · 6 评论 -
调整遥控器(1)
先用Gliffy画图,耗时两个小时,画出一个支持PVR的中端DVB-S FTA STB的遥控器样图。图中没写完整的按键是:mu -> mutesub -> subtitlerad -> tv/radioslp -> sleepttx -> teltextaud -> audiome -> menuulist -> usbswit -> pip switchmov -> pip move原创 2010-01-26 17:07:00 · 765 阅读 · 0 评论 -
愚蠢的网站行为
优酷youku把我上传得一个视频屏蔽了,说是无意义的标题,那是因为我都是上传后再改的,其他视频就没事。这倒罢了,但是它为什么不提供一个修改标题的功能,而让我重新上传?重新上传也罢,但它又提示我说该视频已经传过,无法再次上传。好吧,那么我尝试联系他们——但是,我就是找不到该怎么联系。 ——来自jeffz_cn这是来自twitter上的内容,优酷的使用体验,我也觉得原创 2009-12-17 10:02:00 · 543 阅读 · 0 评论 -
蓝屏
地铁上的移动电视,信号弱到不足以播放的时候居然全屏蓝色,几秒钟后出现一个小窗口里面写着类似no signal的字样。 这很不好。蓝屏会吓着用户。 完全可以做到在信号不好的时候保留最后一帧可以显示的画面,弹出no signal的提示,在信号恢复后继续播放。 对于蓝屏,我们避之唯恐不及,为什么要设计出现蓝屏呢?原创 2009-12-29 21:16:00 · 690 阅读 · 0 评论 -
《Java语言精粹》译者序
豆瓣链接:http://book.douban.com/subject/6516576/互动预定链接:http://product.china-pub.com/193980关于《Java语言精粹》 这是一本几乎只讲Java 优点的书。作者总结了他所认为的Java 语言及其环境的诸多精良部分,包括:类型系统、异常处理、包机制、垃圾回收、Java 虚拟机、Javadoc、集合、远程方法调原创 2011-06-13 13:13:00 · 592 阅读 · 0 评论 -
内存有限的问题
虽然《苹果往事》这本由外行翻译的书有很多的遗憾,我还是觉得很值得一看,当然,直接去Folklore网站看更好。从中能窥得很多苹果的趣事,开发Macintosh的趣事。我最喜欢《We're Not Hackers!》一篇,虽然它的Overall Rating在我打了五星后还是只有3.93。我感兴趣的是,他们总是在处理内存有限的问题。现在很少开发人员关注这个,无论磁盘空间还是内存空间,都早原创 2010-02-13 17:11:00 · 541 阅读 · 1 评论 -
package manager service是怎样选择armeabi/armeabi-v7a中的库文件的?
Android应用中使用到C代码,编译成so文件打包进apk的libs路径下。因为要支持ARMv5和ARMv7,libs下有armeabi和armeabi-v7a两个目录。安全的做法是编译库C代码时,Application.mk中打开,APP_ABI := armeabi armeabi-v7a编译生成的两份so文件各自放到项目工程的armeabi/armeabi-v7a目录中。有时还需要原创 2013-04-25 17:04:43 · 2364 阅读 · 2 评论 -
为什么应用商店里搜索不到你的App?
最近连续有国外的客户报告在某些特定的Android设备上搜索不到我们的应用。一开始怀疑uses-feature的设置排除了硬件不支持的设备。我们在manifest里有以下设置:该设置会排除不支持OpenGL ES 2.0的设备,但是客户报告的设备Sony Xperia Tablet Z是支持OpenGL ES 2.0的。需要注意的是,据《Beginning Android Games》原创 2013-06-05 15:37:09 · 6876 阅读 · 0 评论 -
TimeZone里的daylight savings
被一个夏令时的问题折腾很久。场景是这样的,欧洲数字电视应用(DVB-T标准)可以从空中实时信号中获得当前UTC时间,节目预告的UTC时间,和所谓的offset值。这个offset是包含夏令时的,也就是说如果在UTC+1时区的夏令时期间,空中信号送来的offset是2,非夏令时期间,offset是1。欧洲的客户报告说我们显示的节目预告时间比当地时间提前了一小时。我们做了测试版本,显示UTC时原创 2013-06-13 15:40:43 · 1357 阅读 · 0 评论 -
Android里透明的ListView
发现了一个list滚动时,某item背景透明的问题。网上搜索一下,发现有很多人在问list背景黑色的问题,交流中给出的解决方案基本上很统一。先是解释问题产生的原因是Android对list的滚动做了显示优化,用写在该list的layout文件中的android:cacheColorHint颜色值与item背景混合,黑色主题下该颜色值默认为#FF191919,于是背景黑了。解决方案是关掉优化原创 2013-06-06 23:02:51 · 2661 阅读 · 0 评论 -
ISDBT中CC的处理疑问
一个针对日本的数字电视应用(ISDBT)里字幕处理有一些问题,规范文档庞大又复杂,读起来还觉得语焉不详。接手遗留项目尝试处理字幕显示的问题,边读spec边看代码,先猜测、试图理解既有逻辑,再分析问题产生的原因,寻找解决方案。文档是ARIB STD-B24 Version 5.1 Volume 1(Data Coding and Transmission Specification for Di原创 2014-01-23 17:48:34 · 1899 阅读 · 0 评论 -
关于left / right / stereo / mono
机顶盒、DVD等类似的家庭娱乐多媒体产品里有音频设置:Left / Right / Stereo / Mono,简单说说在机顶盒里是如何处理的。1)如果节目源是立体声(Stereo)的。有左(L)右(R)两个声道。1.1)机顶盒设置为Stereo模式。机顶盒把左声道数据送到音频输出(譬如莲花端子RCA)的左声道(譬如RCA的白色端口,标记L),把右声道数据送到音频输出的右声道(RC原创 2009-11-30 17:53:00 · 5312 阅读 · 0 评论 -
又是被优先级问题折腾了三天
因为换用了一颗第三方前面板芯片,需要把第三方提供的驱动合到我们的系统里。上周整合好驱动,前面板的四个8段显示正常,按键有问题。前面板排插5根pin分别是:data,clock,3.3V电压,接地,IR。驱动是这样读取键值的(SomePanel_Read()):先写一个命令字,然后读一个byte,判断读回byte的第6位,如果是1,认为是有按键按下,送出键值;如果是0,认为不是有效键值,返回原创 2010-01-20 21:29:00 · 615 阅读 · 2 评论 -
又要down size
去年,为了满足那些急切地想从劳动中获得解放,一厢情愿地认为在二十一世纪任何人的劳动都可以由工具来代替的测试工程师们,我要在一个资源极其抠门的系统中强行塞进一个自动测试功能。1M的code size上限所剩不多,大约百十来K,内存也只有2M,确实有些紧。程序完成以后就开始down size。将近一个月,每天几十个字节地扣。头几天很有成就感,稍微做一些事就拿掉了三五K,越往后越艰难,三五十字节就让我欢原创 2005-06-06 18:23:00 · 1533 阅读 · 0 评论 -
代码之美 - 29代码如散文
《代码如散文》。Yukihiro Matsumoto自然对Ruby大夸特夸。作者用简洁的一篇散文谈了谈漂亮代码的几个因素,简洁,保守,简单,灵活。有两句话应该时时记住:程序中不应该包含无用的信息。不要重复代码,不要把相同的东西编写两次。原创 2008-10-17 13:39:00 · 698 阅读 · 0 评论 -
代码之美 - 14优雅代码随硬件发展的演化
《优雅代码随硬件发展的演化》,因为题目的诱人,选择读这一章,开了头就发现上当。磕磕巴巴把前面的问题描述读完,被示例程序14-1难倒了。且不说MATLAB的奇怪写法,LU因式分解我也没搞清楚,于是,这个30多行的程序,来来回回多少遍也看不明白。自然也就不明白作者说的这个代码如何地漂亮。了解了一下LU因式分解,再去看程序,还是头晕。于是决定放弃看代码,包括后面的FORTRAN代码和C代码。原创 2008-10-16 15:06:00 · 1184 阅读 · 0 评论 -
代码之美 - 7漂亮的测试
这一章很容易阅读,Alberto Savoia介绍如何写测试用例,漂亮的。他举例说明如何写漂亮的测试代码,这个过程又是如何使被测代码变得更好。其实,更加强调的是程序员本来就应该测试自己的代码。有多少程序员像画家一样,常常放下笔,站远点,从不同角度,在不同光线下,审视自己的作品呢?我很少编写程序去测试自己写的函数,我的同事也一样。我们更多依赖运行整个程序检查结果是否正确,依赖测试组的同事原创 2008-10-07 13:14:00 · 1101 阅读 · 0 评论 -
代码之美 - 24美丽的并发
收到了《代码之美》,把目录翻来翻去,在33章里找我最容易能看懂的,似乎并没有哪一章让我觉得可以顺畅阅读不用多加以思索的。 最后挑选了第24章《美丽的并发》,作者是Simon Peyton Jones,他用Haskell语言来介绍STM(Software transactional memory),看得我很头大。注意力几乎全被Haskell语言占据了,3、5行的程序段却费了不少脑筋去思量。以原创 2008-10-03 23:16:00 · 1799 阅读 · 3 评论 -
代码之美 - 16Linux内核驱动模型:协作的好处
这章篇幅不大,可读得费劲。上来就有两句话没看懂:在2.4版本的内核中,每一个设备的物理部分都由一段总线特定的代码来控制。总线代码负责各种不同类型的任务,而每一种具体总线的代码之间则没有交互。后一句的原文是:This bus code was responsible for a wide range of different tasks, and each individual bus co原创 2008-10-08 14:27:00 · 1625 阅读 · 0 评论 -
代码之美 - 28漂亮的调试
《漂亮的调试》,Andreas Zeller以ddd的一个bug为引,介绍了增量调试(Delta Debugging),主要思想类同二分,算法好理解,可是程序看不大明白。 程序如下。def dd(c_pass, c_fail, test): """Return a triple (DELTA, C_PASS, C_FAIL) such that原创 2008-10-22 18:13:00 · 972 阅读 · 1 评论 -
代码之美 - 30当你与世界的联系只有一个按钮时
《当你与世界的联系只有一个按钮时》,Arun Mehta讲的是给霍金教授设计写字和说话的软件。Mehta是一个印度人。这一篇的翻译一般,也许是译者看原文看得很枯燥,译文让我读得也枯燥。由于输入只能通过对一个按钮的点击,软件的设计煞费苦心。主要以树型结构为基础,用表实现预测,用缓存提高命中。有兴趣的可以去这个讨论列表。P535有一个错误,“在界面的右下方显示了两个数字(参见图30-原创 2008-11-04 13:37:00 · 1475 阅读 · 0 评论 -
隔行扫描,视频分辨率
H.264即MPEG-4.10,SMPTE 421M(VC-1)是其有力的竞争者。 隔行扫描(interlaced),分成两场传输一帧,每次传输的数据量是少了一半,但是一帧画面传输的时间被拉长了,不知道这样理解对不对?原文如下: In the early days of television, a technique called “interlacing” was used to原创 2009-11-14 14:07:00 · 1607 阅读 · 0 评论 -
颜色空间color space
RGB用于视频系统中的问题:1)三个分量都占用相同的带宽;2)如果需要修改像素的亮度或颜色值,必须同时从帧缓存里读出三个分量,重新计算亮度和颜色,执行修改,再计算新的RGB值,再写回帧缓存。sRGB,IEC61966-2-1,使用BT.709色度,D65参考白色,2.2显示色彩增益(gamma)和线性RGB(每个颜色8位)。scRGB(sRGB64),IEC61966-2-2,扩展原创 2009-11-14 14:09:00 · 1972 阅读 · 0 评论 -
Boto Config File
Boto是AWS SDK for Python,可以通过pip安装,也可以下载源码直接安装。直接安装挺方便的。安装后参照AWS给出的Sample Project,连接S3,遍历一下buckets,获取指定的bucket,都挺简单的。但是忘记了做一件事,没有“export access keys to environment variables”。模仿Sample只能把access key原创 2014-05-30 16:29:56 · 2534 阅读 · 0 评论