望白云抚清风以修身,衔芳草拨碧水以养德
阅读文章

在我的观念里,死刑本身就是错误的,应该废除

我认为不应该有人有权夺走别人的生命,哪怕再冠冕堂皇的理由都不行。

我本人反对一切形式的死刑。

其原因主要有三:

一、当前技术条件下死刑是不可逆的,现世界无法重新获得死去生命的思考。

二、死刑并不能消除活着的人能感受到的罪恶,只能加剧罪恶。

三、当前技术条件下无法判定死亡的本质是什么,就像生存的本质一样,在事情没搞清楚之前,死刑的解释只是逃避难题的借口而已。

真正的代价或许并不是死亡本身,而是难以描述的孤寂感。

直观的感受,痛苦比死亡可怕,濒死的寂寞比痛苦更可怕。

这个运动手表不久会和大家见面,并且开源

 

项目代号 MoriPark  第一个里程碑实验版本 Thylacine

今天是2017年9月7日,MoriPark项目正式启动。

81年前的今天,地球上最后一只Thylacine(袋狼)死在地球人类的动物园里。

为了纪念这些曾经生活在地球上的小家伙,MoriPark的第一个版本定为Thylacine。

我很想以此为契机,为热爱运动和炫酷科技的小伙伴们,为热爱开源分享和开发的小伙伴们,创造一座前所未有的桥梁,让彼此的世界更加广阔。

考虑到第一期的制作成本,这里暂且使用很大众的单片机STM32F103,后续会选择更优异的架构。

这是我第一次用STM32单片机开发东西,先在这里给出原理图的pdf:

A0-MoriPark-Thylacine-1CORE A0-MoriPark-Thylacine-3rdpartyGPSBD-ATGM336H-5N A0-MoriPark-Thylacine-3rdpartyGSM-GA6

届时产品对用户开放所有现成的工程文件。

Read more

致我人生的导师 牟德经 与 刘峡壁


夜深了,突然想感谢我的老师。
老师是强悍的职业,记得我高中时网上的ID有个叫“我要当老师”,因为老师可以表达和启迪思考,而热爱思考的人多少会想有机会去表达。人的思考不在乎于你接受何等程度和何等水平的教育,而在你当时自然的求知能否通过可复用的渠道得到你所寻找的答案。没有合适的老师并不能阻止求知和学习,因为那是地球人的本能,而合适的老师能让人如虎添翼。
牟德经老师对物理世界的理解,是我小时候想要的真正的理解,如果没有这种理解,我很可能不会有今天的实践能力。没错,我想表达的是,我在各领域的所有实践和数学物理方法的认知基础都来自高一时的物理学习,尤其是牟德经老师传授的伊萨克牛顿先生的套路~(当年地球围着太阳转还是太阳围着地球转的问题牟老师你是对的,地球确实围着太阳转哈哈,当时居然折腾了好久才明白= =b)在那之后我才详细阅读过各位著名学者的原著,在思考上得到了足以支撑各种基本实践的长足进步。常有程序员朋友问我为什么可以做到开发调试四两拨千斤一人干翻一团队,到底是什么动力让你可以一夜一夜的调试实现那些看起来难以实现的东西,答案很简单可能外人也很难懂:因为我和牟老师讨论过物理问题啊哈哈~(思维定向性非常重要,不管做什么,更容易的成功方式就是你有非常明确的唯一目标。不论你的推理和计算离题多远,最终只要能收敛到这唯一的目标便成了。) 实际上, 我可以负责的告诉别人,牟德经老师思路的价值甚至高过我大学时代经历的所有老师,博士一大堆导师一大堆,大多数比起牟老师可真的差太远了,我想这也是为什么当时就听说有不少学生时隔多年偕妻携子给他拜年,远隔重洋专程回国探望。而我毕业后一次也没有回过母校青岛二中,一次也没有再次拜访过这位对我来说意义最深刻的导师,真的是无比惭愧。如果牟老师可以看到这些,我只想告诉牟老师一件事,我终于隐约知道牛顿为什么搞那么些没用的了哈哈~ 所以什么都不用担心,我相信您也已经获得了某些自己所追寻的重要信息。
大学以来,一度我以为理想是彩色现实是灰色,而重新赋予现实色彩的是我无意中在互联网上发现的,刘峡壁老师。非常有幸我后来真的成为了刘老师的学生。机器视觉和机器学习方面的实践落地基础,很多来自当年那本看似不起眼的人工智能导论小书,还有刘老师在当代高校里难得的求实精神。知道我经历的朋友在看过刘老师当年的文章后,自然知道我为什么会去北理工这个原本和我没什么关系的地方。我对刘老师也表达深深的感谢,不仅是对计算机算法学习方面的感谢,更有对当时的实事求是精神和激励的感谢。以前有人会笑我,说你这种疯子还用激励?那只是你没见过我吃不上饭用旧显卡换钱买馒头的时候什么样子~ 人多少还是要鼓励和认同的,其实我也很弱小,我当然理解和我同样弱小的人的无奈。人也是会改变的,希望大家都能向更好的方向改变,有更多的包容和理解。不过你们可以放心的是,我从小到大基本没怎么变过哈哈哈~ (我越来越明晰的自己就是独立思考,实事求是,并且尽量不影响或触痛别人,要对其他人的思考有足够的尊重,因为每个人的经历各不相同,但我们的时间都极其有限
继续码程序去了,两点多正是我思路清晰的好时候,这可真不是个好习惯 = =b

回忆与怀念——北京三峰连穿故地重游

上周是和演员公会的小伙伴们去香山捡垃圾,这周是和CBN小伙伴来三峰,真是幸福的两个周末。当年我第一次去三峰是一段那个比赛,奶茶带我们去探路。因为这个路线的原生补给点恰到好处,特别适合自己去跑,所以很喜欢。但因为工作繁忙和种种意外,已经很久没去过,这次和小伙伴故地重游,虽然顶着烈日,但非常开心。感谢同行小伙伴给的照片~

路线:http://www.foooooot.com/trip/66449/

Read more

首家把各种多人游戏搬进健身房团课的训练娱乐系统登录ChinaFit

没错,就是豆包开发的运动娱乐系统,直接上ChinaFit课程PPT。

暖场视频 课程广告

课程讲义 PowerPoint2016格式的PPT | PPT转出的视频

本系统将遵循下文给出的 AGPL协议 和 3mn.net附加协议 开放源代码,提供所有功能的实现(软硬件完全开放)。本次课程介绍的demo版本已经打包更新至之前的俱乐部系统源码包。

—————————————————————————
Read more

Windows上的蓝牙4.0BLE心率设备数据采集

本文所述方法在windows 10 1703(创意者更新)无法使用,在之前的版本没有问题,不知道之后的版本是否会修复,所以现在暂且先用1607等版本的win10禁止大更新使用了,详情见 https://developercommunity.visualstudio.com/content/problem/57636/gattdeviceservicefromidasync-broken-on-winforms-ap.html

最近开发了Windows系统上的心率功率墙,用到了蓝牙设备数据采集。

因为BLE比用SPP方便很多,所以连接现代蓝牙4.0+心率或其他BLE传感器获得数据要比以前省事很多,对于可以主动通知主机的设备,大致步骤如下:

  1. 在Windows建立配对,通常没有密码或者是六个零,如果不对的话,看看说明书。
  2. 用Windows SDK里的Windows.Devices.Enumeration.DeviceInformation.FindAllAsync获得对应类别的设备列表并枚举。
  3. 对于遍历的每一个设备,用蓝牙空间里的GattDeviceService.FromIdAsync得到service。
  4. 用得到的service对象的GetCharacteristics得到characteristic。
  5. 把characteristic的ValueChanged绑定指定的事件处理函数。
  6. 用characteristic的WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);设定主动通知模式。
  7. 在指定的事件处理函数中用DataReader.FromBuffer(args.CharacteristicValue).ReadBytes得到设备主动发来的数据。

工程源代码下载链接:(里面也同时提供了MSDN提供的针对Windows8.1 StoreApp的蓝牙心率采集demo,但默认启动工程没有用那个,也没有依赖)

BLEHeartRateReceiver

值得注意的是,在微软提供的demo里进行了一系列额外没用的设置,比如数据可加密、超范围断线回来自动重连,而那些都是不必要的,因为山寨设备都不加密,而且自动重连完全可以在更顶层统一实现,效率也并不会差多少。更重要的是,在微软的demo直接用.Net Core而不用FrameWork会带来很多额外的麻烦,比如连接数据库、使用Redis或其他Windows上的第三方组件等,既然是在Windows用不考虑跨平台,就没有必要用那个demo的方式了,因为即便用UWP、.Net Core,蓝牙BLE操作对Windows SDK的依赖也导致了无法直接用于其他平台(WindowsPhone基本没人用,我直接把demo里那个csproj给删了- -||),不如直接用我后来写的WinForm。(但目前如文章最开始所述,这个方法在版本1703行不通了,只能用store app,UWP操作其他东西非常麻烦。不知道是微软故意的还是bug,但愿下个版本能继续用吧)

利用现有代码学会自己写程序的智能程序落地

微软和剑桥大学研究人员创建的机器学习系统 DeepCoder 学会了如何自己写代码。它使用的方法让人们在没有掌握必要编程知识的情况下更轻松的构建出简单的应用程序。在不久的将来,非程序员可以通过简单的描述出一个程序的想法,然后让机器学习系统将其构建出来。DeepCoder使用了被称为“程序合成”的技术,将来自现有软件的一行行源代码拼接在一起。给定每一个代码片段的输入和输出列表,DeepCoder 学会要实现预期结果需要使用到哪部分代码。它的一大优势是速度,能在几分之一秒内创建出一个可工作的程序。在了解了哪一部分源代码能工作,哪一部分不能之后,DeepCoder 能改进每一次创建的新程序。相信在不久的将来,大量一般性的程序工作可以由机器取代。其实所有可归纳的逻辑性的工作包括之前报道的文字处理等工作,都可以被机器学习取代。国内的机器学习媒体“机器之心”报道概述了相关内容

有人一直有个误解,说是不是更感性的工作就更有人的意义了,不会被机器学习取代,其实不是的。我已经见过有朋友用机器学习创作音乐,人们难以听出那美妙的旋律是机器的作品。以下梵高风格化作转载自StefanChen的blog,小白法用开源项目组织机器学习创作梵高风格作品

222

后续豆包会把自己相关的实验工作和学习经历陆续免费分享给大家,祝大家工作愉快: )

神秘“Master”被证实就是AlphaGo

1483441940546mmexport1481166423371

Google 子公司 DeepMind 证实,在围棋对弈平台Tygem 和 FoxGo 上接连打败了中日韩顶尖棋手的Master (P)就是它的新版本围棋人工智能AlphaGo。DeepMind CEO Demis Hassabis通过Twitter发表声明(如图所示),称他们在围棋网站上测试了AlphaGo的新原型,如今非正式测试已经结束,它计划在今年晚些时候与围棋组织合作举行正式的比赛。声明引用了古力九段的话称,“人类将与人工智能合作揭开围棋更深层次的奥秘”。AlphaGo在在线的快棋比赛中取得了51连胜,只是在第52场比赛时因为对手下线而被系统判定为和局。在测试结束前它共取得了60场胜利,没有败过一局。

lic4ma2abdco

什么时候我能努力让我家的王破狗像AlphaGo一样给力,我也就满足了哈~

旧版AlphaGo的文章在这里:

Silver D, Huang A, Maddison C J, et al. Mastering the game of Go with deep neural networks and tree search[J]. Nature, 2016, 529(7587): 484-489.

http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

简明易懂的说明可以参考这里:

http://blog.csdn.net/songrotek/article/details/51065143

 

基于OpenCV的集群三维重建

文档点击这里下载 → cluster3dreconstruction

文档里给出了系统的详细构建方式,但因整个工程巨大且搭建拼接较为复杂,这里没有上传所有的源代码(即便给出也并没有很大的借鉴意义,因为目前已经有类似需求更好的开源实现)。有兴趣的童鞋完全可以用已有的流行开源项目实现类似的功能(当时常见开源项目文中有列举,更可直接搜索维基百科和谷歌学术)。

以下是本系统基于OpenCV 3.1实现的稀疏三维重建示例:

sp3drcv31

 

开源版俱乐部管理系统(ClubWorkBench demo)

本工程来自豆包2016年初至当年夏天的Demo探索实践,和目前维护的商用版本架构、细节、依赖、引用库、第三方组件均不相同,并且已经不再进行实用性维护。看到业内各种类似项目的蓬勃发展,为促进技术交流进步,将之前的探索实践完全开源。

系统功能:

常规俱乐部会籍管理、IC卡拍照发卡刷卡签到、IC卡储值、常规课程开单销单、电话约课客服、各种报表自定义打印、扫条码刷IC卡的商品入库和售卖、IC卡刷卡详细记录、俱乐部自定义OA系统、俱乐部HTML5多媒体文件网盘、微信可集成(部分需简单二次开发)……

概要性的说明可以参考 这个pdf文件

部署使用方法:

在服务器部署配置好Windows Server 2016、SQL Server 2016、IIS等所有基础依赖。使用客户端exe程序的系统推荐使用Windows 10。确保客户端计算机和服务器是可以通过IP网络连通的,如果需要的话,在客户端计算机接入USB扫码枪(用于商品入库和售卖)、USB IC卡刷卡器(用于IC卡会籍管理)、USB Modem(用于电话客服功能来电自动识别客户)。

下载所有源码,在vs2015打开所有解决方案文件,添加所有对应的引用和库(为了节省空间二进制基本都删掉了),编译之后,把所有目录按结构不变直接放到IIS的默认目录下,如C:\inetpub(如果目录改变需要对应修改部署用的站点配置文件appsites.xml),在C盘根下建立目录C:\Temp。其中LoginForm是使用DSkin的客户端程序,其他站点程序很多用到了DevExpress16.1.6,需要自行购买或下载得到。

点击这里下载所有源码
(已集成此处介绍的运动传感器及其数据采集、BLE4GATT心率数据采集、三维或实景视觉前端等)
下载须同意这里文章后半段深蓝色文字描述的AGPL&3mn.netAL 解压密码:3mn.net
文件名:developing.rar
大小: 2319316094 字节
MD5: E84C59A67F796CE731218615F4ABDFBA
SHA1: 435DEA8E403380761C4EF1BEAE0508BF7F683395
CRC32: FC0EBED6
*由于文件较大且存放于公共网络空间,请下载后务必哈希校验再解压使用。
点击这里下载站点配置

参考这里导入站点配置 http://www.cnblogs.com/goody9807/p/3613491.html

安装压缩包里提供的所有第三方软件,如Redis、AForge.NET等。在SQL Server 2016建库CustomerServiceForm(本系统默认配置文件里的连接用户是csf,密码l123456,可自行更改),导入CustomerServiceForm.sql建立数据表结构和必要元数据。直接通过Web访问IP即可进入管理后台,默认管理员用户admin,密码111。在刷卡客户端系统,配置好LoginForm的config文件,运行exe文件,即可进入客户端程序。

 

GNU AFFERO GENERAL PUBLIC LICENSE & 3mn.net ADDITIONAL LICENSE

3mn.net ADDITIONAL LICENSE

When you use and share the Software and other content disclosed on this Site,
you are deemed to comply with the following terms:
The software and the techniques and methods disclosed in this website CANNOT be used directly or indirectly in
Manufacturing weapons, brain life killing, animal damage, human damage,
pollution and destruction of any planet’s natural environment.
When deploy or modify this software, you need to open all the software source code and
all hardware schematics, packaging libraries, PCBs.

GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program–to make sure it remains free
software for all its users.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

A secondary benefit of defending all users’ freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

The precise terms and conditions for copying, distribution and
modification follow.

TERMS AND CONDITIONS

0. Definitions.

“This License” refers to version 3 of the GNU Affero General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this
License. Each licensee is addressed as “you”. “Licensees” and
“recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a “modified version” of the
earlier work or a work “based on” the earlier work.

A “covered work” means either the unmodified Program or a work based
on the Program.

To “propagate” a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal Notices”
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

1. Source Code.

The “source code” for a work means the preferred form of the work
for making modifications to it. “Object code” means any non-source
form of a work.

A “Standard Interface” means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
“Major Component”, in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work’s
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

The Corresponding Source for a work in source code form is that
same work.

2. Basic Permissions.

All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work’s
users, your or third parties’ legal rights to forbid circumvention of
technological measures.

4. Conveying Verbatim Copies.

You may convey verbatim copies of the Program’s source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;

How to construct an iSCSI encrypt agent

最近两天看了看如何以网络代理的形式加密各种存储协议向后端落地的数据。

其中用于SAN阵列加密的iSCSI代理,在CentOS 7居然一个包都没有yum就搞定了。

只顾着跑步和健身好久没有来更新和审核文章了,先把这个水货放上充充数吧 o(>_<)o

点击这里可以下载 示例脚本文件 <–download script file here. the content is the same as following blog text.

点击这里可以下载彩色版本的word文档 vSAN

Read more

科学家在开源许可证下发布新的农作物品种

一组科学家和活动人士在开源许可证下发布了14种农作物的29种新品种种子。任何人都可以使用这些种子,只要他们不利用专利或知识产权保护限制其他人使用。这一行动称之为开源种子计划(Open Source Seed Initiative),他们公开了萝卜、甘蓝、椰菜和藜谷等作物的种子。种植者必须承诺,任何衍生种子也都必须免费公开。计划组织者、威斯康星大学的植物育种专家Irwin Goldman教授说,种子在这个时代属于知识产权,被发明专利所覆盖,使用必须获得专利所有者的授权, 你甚至不允许收集种子供下一年种植。他不喜欢此种做法,认为这限制改进农作物的能力。

数学证明因为太长而无法被人类验证

如果人类无法检验一个定理的证明,这个证明还能被当成数学吗?这是计算机辅助证明的流行而引发的一个疑问。利物浦大学的 Alexei Lisitsa和同事Boris Konev使用计算机生成了一个13GB大小的证明,这可能是有史以来最长的证明了,它的大小使得人类不可能去检查证明是否无误。他们的证明与匈牙利犹太数学家Paul Erdős在1930年代提出的一个猜想有关。Erdős提出,一个只含有+1s和-1s的随机无穷序列(例如对于序列(x1, x2, x3, …),其中xi = (−1)i+1)是否包含内在模式, 一种测量方法是将无穷序列在特定点切割,创造出了一个有限的子序列。Erdős的猜想是:对于任意整数C,存在整数K和d,使得liJ3eW3GO7XjU-small。Lisitsa和Konev用计算机证明,一个无穷序列总有一个大于2的差。论文预印本发表在arXiv.org上。

优美的数学方程式激活了与欣赏艺术相同的大脑区域

根据发表在开放获取期刊《Frontiers in Human Neuroscience》上的一篇研究报告,美的来源有许许多多,对于数学家和数学爱好者来说,优雅的数学方程式(如欧拉恒等式 1+e^iπ=0)就具有一种神秘的美感。伦敦大学学院教授Semir Zeki领导的团队让受试给60个数学方程式按美丽等级评分,同时用功能性核磁共振成像扫描他们的大脑。结果显示,优美的方程式如欧拉恒等式和柯西-黎曼方程激活了与其他人欣赏高雅艺术时相同的大脑区域。顺便提一下,印度天才数学家拉马努金的无穷级数和黎曼函数方程被数学家评为最丑陋的方程式。

 

Amherst Researchers Create Magnetic Monopoles

Nearly 85 years after pioneering theoretical physicist Paul Dirac predicted the possibility of their existence, an international collaboration led by Amherst College Physics Professor David S. Hall ’91 and Aalto University (Finland) Academy Research Fellow Mikko Möttönen has created, identified and photographed synthetic magnetic monopoles in Hall’s laboratory on the Amherst campus. The groundbreaking accomplishment paves the way for the detection of the particles in nature, which would be a revolutionary development comparable to the discovery of the electron.

3.7万名玩家成为论文的共同作者

玩家可用于筹集资金,也可用于虚拟实验。通过将虚拟游戏玩家和真实的生化实验室连接在一起,研究人员分享了他们的实验。名叫EteRNA的游戏可以让玩家远程执行真实的实验,去验证有关RNA分子折叠的理论预测。实验的第一个结果已经出来,发表在本周出版的期刊PNAS上,论文署名作者多达3.7万人,其中专业科研人员只有10人。有研究人员认为EteRNA代表未来的科学,不只是众包公民科学家,还允许他们远程访问真实实验室。云端生物化学正成为现实,科学家可以外包枯燥的实验,而将精力集中在不枯燥的部分。

把Tolkien的文学作品打了个包

这是从互联网搜集来的,英文word文档,喜欢托尔金和中土世界的朋友可以留作备份和词句出处查询。

收藏和长期阅读请去amazon购买正版书。

下面的链接可以下载,解压密码是tolkien

tolkien

CERN成功产生反氢原子束

CERN的ASACUSA(低速反质子原子光谱和碰撞)实验首次成功制造出反氢原子束,检测到了80个反氢原子。研究发表在《自然·通讯》上。为什么宇宙是由正物质而非反物质构成?有关亚原子世界的最优理论——粒子物理标准模型也无法给出答案。但科学家认为,物质和反物质属性之间的微小差异可能就是答案所在,而这种差异体现在违反CPT对称定理上。CPT对称指把粒子用反粒子替换,右手坐标系换成左手坐标系,以及所有粒子速度反向,物理定律不变。而反氢原子由一个反质子和一个正电子构成,这样简单的结构是测试CPT对称的最佳模型。CERN在实验中通过将反电子(正电子)和由反质子减速器产生的低能量反质子混合,产生大量反氢原子。正反粒子相遇会湮没,为了让正反粒子分离,实验利用了反氢原子的磁特性(类似于氢气的),并使用非常强的非均匀磁场诱捕反原子足够长的时间来研究。

libvirt support for Xen’s new libxenlight toolstack

Originally posted on jfehlig‘s blog, here.

Xen has had a long history in libvirt.  In fact, it was the first hypervisor supported by libvirt.  I’ve witnessed an incredible evolution of libvirt over the years and now not only does it support managing many hypervisors such as Xen, KVM/QEMULXCVirtualBoxhyper-vESX, etc., but it also supports managing a wide range of host subsystems used in a virtualized environment such as storage pools and volumes, networks, network interfaces, etc.  It has really become the swiss army knife of virtualization management on Linux, and Xen has been along for the entire ride.

The Mathematics of Gamification

The Foursquare blog has an interesting post about some of the math they use to evaluate and verify the massive amount of user-generated data that enters their database. They need to figure out the likelihood that any given datapoint accurately represents reality, so they’ve worked out a complicated formula that will minimize abuse. Quoting: ‘By choosing the points based on a user’s accuracy, we can intelligently accrue certainty about a proposed update and stop the voting process as soon as the math guarantees the required certainty. … The parameters are automatically trained and can adapt to changes in the behavior of the userbase. No more long meetings debating how many points to grant to a narrow use case. So far, we’ve taken a very user-centric view of p-sub-k (this is the accuracy of user k). But we can go well beyond that. For example, p-sub-k could be “the accuracy of user k’s vote given that they have been to the venue three times before and work nearby.” These clauses can be arbitrarily complicated and estimated from a (logistic) regression of the honeypot performance. The point is that these changes will be based on data and not subjective judgments of how many “points” a user or situation should get.

Intel今天发布了长达5000页的Haswell开发文档

英特尔在年底向Linux和开源粉丝送出了一份新年礼物:公布了多达5000页的Haswell文档。《开源图形程序员参考手册》涉及了 2013 Haswell HD Graphics、Iris Graphics和Iris Pro Graphics,其内容覆盖模式设置到3D引擎和GPGPU,到性能加速器和视频加速。在显卡制造商中,英特尔的集显驱动对开源最为友好。眼看明年AMD也要出新架构了,nVidia会不会被逼到左右为难,坐等明年的图形开发界的连台好戏。

数值计算工具Octave终于有了GUI,还是用OpenGL的

from http://www.phoronix.com/scan.php?page=news_item&px=MTU1NDg

GNU Octave, the open-source high-level language for dealing with numerical computations and largely compatible with MATLAB, has a graphical user-interface with its new 3.8 releaseGNU Octave 3.8 hasn’t been officially announced at the time of publishing, but the source package was uploaded just a short time ago to the project’s GNU.org FTP server.

The big feature of Octave 3.8 is a graphical user-interface, which has long been requested by users of this open-source package looking towards it as a MATLAB alternative. While there’s now a GUI, it’s not yet polished now and will not become the default user-interface until the GNU Octave 4.0 release. GNU Octave 3.8 considers the GUI to be in a preview state.

Octave 3.8 also now uses OpenGL graphics by default in conjunction with FLTK widgets. GNUplot is still used in cases where OpenGL or FLTK support is not available for its graphical tool-kit.

Another change to GNU Octabe 3.8 is support for nested functions with scoping rules that are compatible with MATLAB, limited support for named exceptions, new regular expressions, a TeX parser for the FLTK tool-kit, overhauls to many of the m-files, function rewrites, and numerous other changes.

GNU Octave 3.8 also ships many bug-fixes and other improvements. While waiting on the official release announcement, more information on Octave can be learned from GNU.org.

基于OCaml的Mirage OS的1.0版本前不久已经发布

http://xenproject.org/downloads/mirage-os-archives/mirage-os-10.html

What is Mirage OS and why is it important?

Most applications that run in the cloud are not optimized to do so. They inherently carry assumptions about the underlying operating system with them, including vulnerabilities and bloat.

Compartmentalization of large servers into smaller ‘virtual machines’ has enabled many new businesses to get started and achieve scale. This has been great for new services but many of those virtual machines are single-purpose and yet they contain largely complete operating systems which typically run single applications like web-servers, load balancers, databases, mail servers and similar services. This means a large part of the footprint is unused and unnecessary, which is both costly due to resource usage (RAM, disk space etc) and a security risk due to the increased complexity of the system and the larger attack surface.

CloudOSDiagram

Mirage OS is a Cloud Operating Systemwhich represents an approach where only the necessary components of the operating system are included and compiled along with the application into a ‘unikernel’. This results in highly efficient and extremely lean ‘appliances’, with the same or better functionality but a much smaller footprint and attack surface. These appliances can be deployed directly to the cloud and embedded devices, with the benefits of reduced costs and increased security and scalability.

Some example use cases for Mirage OS include: (1) A lean webserver, for example the openmirage.org, website is about 1MB including all content, boots in about 1 second and is hosted on Amazon EC2. (2) Middle-box applications such as small OpenFlow switches for tenants in a cloud-provider. (3) Easy reuse of the same code and toolchain that create cloud appliances to target the space and memory constrained ARM devices.

How does Mirage OS work?

Mirage OS works by treating the Xen hypervisor as a stable hardware platform and using libraries to provide the services and protocols we expect from a typical operating system, e.g. a networking stack. Application code is developed in a high-level functional programming language OCaml on a desktop OS such as Linux or Mac OSX, and compiled into a fully-standalone, specialized unikernel. These unikernels run directly on Xen hypervisor APIs. Since Xen powers most public clouds such as Amazon EC2, Rackspace Cloud, and many others, Mirage OS lets your servers run more cheaply, securely and faster on those services.

Mirage OS is implemented in the OCaml language, with 50+ libraries which map directly to operating system constructs when being compiled for production deployment. The goal is to make it as easy as possible to create Mirage OS appliances and ensure that all the things found in a typical operating system stack are still available to the developer. Mirage OS includes clean-slate functional implementations of protocols ranging from TCP/IP, DNS, SSH, OpenFlow (switch/controller), HTTP, XMPP and Xen Project inter-VM transports. Since everything is written in a single high-level language, it is easier to work with those libraries directly. This approach guarantees the best possible performance of Mirage OS on the Xen Hypervisor without needing to support the thousands of device drivers found in a traditional OS.

MirageDNS-500

An example of a Mirage OS appliance is a DNS server and below is a comparison with one of the most widely deployed DNS servers on the internet, BIND 9. As you can see, the Mirage OS appliance outperforms BIND 9 but in addition, the Mirage OS VM is less than 200kB in size compared to over 450MB for the BIND VM. Moreover, the traditional VM contains 4-5 times more lines of code than the Mirage implementation, and lines of code are often considered correlated with attack surface. More detail about this comparison and others can be found in the associated ASPLOS paper.

For the DNS appliance above, the application code was written using OCaml and compiled with the relevant Mirage OS libraries. To take full advantage of Mirage OS it is necessary to design and construct applications using OCaml, which provides a number of additional benefits such as type-safety. For those new to OCaml, there are some excellent resources to get started with the language, including a new book from O’Reilly and a range of tutorials on the revamped OCaml website.

We look forward to the exciting wave of innovation that Mirage OS will unleash including more resilient and lean software as well as increased developer productivity.

Google利用PNaCl将AmigaOS移植到Chrome

为演示Portable Native Client(PNaCl)技术,Google开发者 Christian Stefansen将上世纪80年代的AmigaOS移植到Chrome。Chrome运行是一个特别的AmigaOS开源版本,Stefansen利用PNaCl将该版本的C语言代码移植运行在Chrome上。Native Client技术让Web应用程序能以接近原生代码的性能运行在浏览器上,Native Client针对的是X86架构处理器,而Portable Native Client则扩展了Native Client,变成了一个架构独立的技术,让应用程序可以运行在X86或ARM平台。最新的演示只支持Chrome 31以上版本,不支持Android和iOS。

liR9UwZrlN0Jc

 

Epic和Mozilla发布虚幻引擎3的浏览器演示

今年早些时候,Mozilla和Epic Games利用asm.js、Emscripten和WebGL,在浏览器上演示了虚幻引擎3的一个DEMO,展示了Web成为一个3D游戏平台的潜力。这一演示吸引了游戏工作室NomNom Games的注意,他们因此开始探索将其开发的虚幻引擎3游戏移植到浏览器的可能性。12月12日,Mozilla和NomNom宣布了第一个基于asm.js技术的3D商业Web游戏——Monster Madness。用户可以在支持WebGL的Firefox、Chrome或Opera上测试游戏的Alpha版本,和之前的演示一样,进入游戏前需要花比较长时间载入纹理素材。

liwFR8EHxPPSE

模拟支持宇宙全息理论

一组物理学家提供了至今最明确的证据证明我们的宇宙可能只是一个巨大的投影。1997年,理论物理学家Juan Maldacena提出了一个大胆的宇宙模型去诠释现有的物理学理论。在这个模型中,引力源于无限小、薄且振动的弦,而弦则存在于九维空间和一维时间中,弦的世界很可能只是一个全息图,真正的行动则发生在一个简化平坦无引力的宇宙中。Maldacena的理论令物理学家非常兴奋,因为它提供一种方法将热门但未获证明的弦论奠定在一个坚实的基础上,同时解决了量子理论和爱因斯坦引力理论不一致的地方。Maldacena理论虽然已广为接受,但仍然没有经过严格证明。现在,日本茨城大学的百武良文和同事在预印本网站上发表了两篇 论文,提供了强有力的证据证明Maldacena的猜想是正确的。

64位低功耗处理器即将爆发

高通、英伟达和博通也计划生产 64 位处理器,而且已经做好在 CES 2014 上发布的准备。
ARM 首席营销官 Ian Drew 最近表示,未来基于 ARM 的 64 位解决方案数量将激增,不只应用在移动设备上,还将应用在网络和服务器市场中。
此外,消息还显示,高通、英伟达和博通已经重新指定 2014 年产品路线图,明年 Q1 和 Q2 发布 64 位处理器。联发科日前发布了真正的八核处理器 MT6592,预计于明年下半年呈上 64 位处理器方案。
谷歌安卓系统已经能够支持 64位处理器,谷歌目前在进行进一步研发,以提供更好的支持。英特尔计划于 2014 年第二季度推出安卓版入门级 Bay Trail 芯片,日前英特尔已经在 Bay Trail中运行安卓 64 内核。

Jolla智能手机终于发布了,但愿未来能形成三足鼎立

Jolla的第一款智能手机已在芬兰上市,无锁版售价399欧元(含税)。来自136个国家的消费者预购了手机,Jolla计划从2014年开始在中国和欧洲其它地区销售这款产品。Jolla主要投资者之一是香港的长远控股,它在今年2月以100万欧元收购 6.25%的股份。Jolla还考虑与阿里巴巴、腾讯和百度合作推出定制版本。但Meego的继承人是否能真的挑战Android?有用户在试用后认为可以。Jolla手机的硬件设计简洁优雅,正面没有按钮,侧面有电源和音量按钮,当照相机激活的时候音量按钮也可以用于拍照。960×540 分辨率虽然不高,但用户肉眼并不能明显区分像素。基于手势的操作界面需要用户花几分钟时间适应,但熟悉了SailfishOS之后,Android的界面可能就不堪入眼了。

SailfishOS是一个真正的GNU/Linux操作系统,内核版本是3.4。它是完全开放的。

SailfishOS的sdk可以在这里找到:

https://sailfishos.org/cn/develop.html

公司CEO Tomi Pienimäki接受芬兰杂志采访时证实,Sailfish很容易安装到Android设备上。Pienimäki称,芬兰可能没有刷手机固件的文化,但刷机是中国的主流文化,半数中国Android用户会升级他们手机上的旧操作系统。Pienimäki认为,可以通过这种方式在中国传播Sailfish操作系统,中国客户不需要教他们怎么刷机,只要提供Sailfish系统和确保它能运行在不同的Android设备上。Pienimäki称,他们会免费提供Sailfish系统。

免费开源云平台与VDI的构建

2013年11月28日所说的部分话撤回,愿提供更好的方案给需要的人。 2017年1月24日。

 

下面列举一下如何快速构建开源VDI平台:

总体思路是通过开源项目,依次构建虚拟化平台、IaaS云平台、VDI桌面管理。

 

a) 如果主要需求点是Windows桌面,则通常基于Xen/XenServer/Hyper-V构建。

以最常用的Xen为例,为了直接获得可实际使用的版本,首先你需要下载开源的XenServer, http://xenserver.org/open-source-virtualization-download.html

直接下载安装iso,不要试图从两张源代码DVD从零构建,编译组件后组合没有文档的,如果你不能得到Citrix工程师的支持,需要耗费巨量的时间。

直接安装以后主要部分都很容易从源代码DVD里找到对应,如果你要修改或者山寨,对应的替换就可以了。

然后选择一个IaaS平台,下载安装,例如选择CloudStack,稳定版本可以从官网的下载页面获得,http://cloudstack.apache.org/downloads.html

如果想体验最新开发版本,可以从github直接checkout,https://github.com/apache/cloudstack

写这篇blog的时候,github上的4.4版本的CloudStack可以直接成功编译使用。使用OpenStack相对繁琐一些。

安装文档可以参考官方的指南, http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/index.html

最后,你需要一个RDP或者SPICE的远程桌面分配平台,并自己写几个脚本,让用户的虚拟机可以在访问桌面的时候自动启动,即可完成VDI的构建。

RDP客户端的开源项目一样是铺天盖地,如果考虑到实际的桌面需求,需要跨平台支持各种终端,又不想安装客户端程序和Agent,为何不考虑用Flash或HTML5的桌面呢。

例如Guacamole,一款完全开源的HTML5桌面代理,http://guac-dev.org/#download ,你可以轻松的用它构建VDI,并支持动态分配桌面、AD域集成身份认证等,官方有详细的文档。

如果想要性能好一点,可以基于rdesktop http://sourceforge.net/projects/rdesktop/files/?source=navbar 或其他开源的RDP/SPICE客户端稍加改造,甚至不用改造,直接使用原本的Windows远程桌面即可。http://cgit.freedesktop.org/spice/spice-html5 这里有html5的spice。

最可笑的是现在很多卖瘦客户端的,就是弄个破ARM开发板上面跑个远程桌面,还说什么1080p,你去看看随便买个几百块钱的破ARM板子多少都支持1080p显示?怎么能有脸卖几千块呢。。

比如飞凌的板子: http://item.taobao.com/item.htm?spm=a1z10.1.w4004-185985825.11.Ntntya&id=18449162554 类似的CortexA8 A9的板子大量支持HDMI高清显示,

不要说1080p,就算4k的视频输出的板子,也卖不到几千块钱啊~ 而且买个板子,源代码本身是cpu厂商连同BSP一起提供的,真心对瘦客户端VDI宣传什么云主机还注册专利的,表示呵呵~

开关虚拟机用CloudMonkey写几行python脚本就搞定了,https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI 。

b) 如果主要需求点是linux或BSD的服务器虚拟化,则通常基于KVM构建。

KVM的更好办,直接装个CentOS,把虚拟化支持打开就ok了,装CloudStack需要额外装个Agent,然后就可以把KVM当底层Hypervisor了。其他部分和上面一段一样。

另外,红帽比较喜欢SPICE桌面,http://www.spice-space.org/download.html ,但实测一般应用场合感觉这东西用户体验没比RDP好多少。

 

 

费曼物理学讲义第三卷上线

加州理工和费曼物理学讲义网站正在整理HTML5版费曼物理学讲义,今年9月发布了第一卷,刚刚上线了第三卷。费曼物理学讲义网站的Mike Gottlieb宣布,他们发布了付费的PDF版,读者可以通过购买PDF电子书来支持他们的活动。《费曼物理学讲义》由理查德·费曼、罗伯·雷顿及马修·山德士合著,分为三卷。第一卷主要讲力学、光学、电磁辐射和热力学;第二卷主要讲电动力学和电磁学;第三卷主要讲量子力学。第二卷的HTML转换工作还没有完成。

英特尔未来的桌面CPU也将整合128MB四级缓存

英特尔今年为移动版Haswell架构处理器引入了容量高达128MB的L4缓存,L4缓存不是直接整合在芯片上面,而是封装在一起。L4缓存容量比L1/L2/L3要大得多,其响应时间约为50-60ns,比L3缓存的响应长,但只有主内存的一半。引入L4缓存被认为能提升某些工作负荷下性能,但目前还没有多少基准测试软件能检验这一说法。现在,根据最新的消息,英特尔下一代处理器架构的桌面版本Broadwell-K(k系列比标准版更贵)也将引入128MB的L4缓存

突然想到2001年写的一篇文

凡学法因人而异,吾言之不尽。故仿白氏,截六百一十六言于吾旧文,简言吾行学途之心境,望励同窗。
吾好置身于山间,叹万物之生气。望白云抚清风以修身,衔芳草拨碧水以养德。欲求此境,不免越岭而寻之。登山越岭之长途跋涉,人尝疲累而叹其苦。是时便昂首观山景,看云雾缭绕,望绿莽丛生,方可出荡胸生层云,决眦入归鸟之佳句。心境豁开,不免随风而呼其乐。此诚乃踏漫漫学途之缩影。置身于山景之外者叹其苦,昂首入佳境者呼其乐。乐者欲求雾后之景而甚乐,苦者欲求止步之时而甚苦。夫观二者之步,乐甚方可疾,苦甚只可缓。汝或道:“由此观之,生于忧患,死于安乐,岂不胡言?”否也。彼安乐乃委靡之乐,而非此作学问之乐;彼忧患乃天降之忧患,而非此叹苦之忧患也。作学问乃以人心为本,人心苦则志不定。而追心苦之源,乃作学问之心不专也。未入其境,未见其景,只见脚下路,只知行路难,悲哉。若学无止境又无乐境,而人终不倦于终生作学问,此人生舍乐而求苦,岂不笑料!学海既无涯,岂能苦作舟?!求知乃人之德,踏求知之途即为乐,即为观山景之甚乐!
汝或于观山景之途遇霪雨霏霏连月不开之境,而徘徊低回盼得云散时之山景,熟不知此举误旷世之佳景也。凡山间霪雨,云浓而低。若加疾阔步攀于云之上,便可得脚下之青云梯,倚云岸之峻峭壁,叹壁前之云涛起,闻莽间之奇鸟鸣。此属羽化而登仙者之极乐境也,惜只惜霪雨诚难遇!云中之道,荆棘为雾所避。踏之不免伤身,疾行不免失路。浓云难拨?笑罢强拨之!身着信念,脚下毅力便可强作路。吾以为心衔芳草方来毅,壮志自存不尽力。故人心存则志不陨,志不陨则定得境。古之人知其不可而为之,今之士心竹信手绘,甚乐而为之。作学问亦如此也,心无强拨云之魄,安求山后景致?彼天降之忧患非吾心之忧患也!忘身而取本心,再求太白一句:“长风破浪会有时,直挂云帆济沧海!”

2015年旋风足迹越野跑路线

旋风足迹北京越野跑线路(南段)

线路介绍

此路线为越野跑赛事常用路线连穿,爬升和里程为适中难度,路况包含碎石、泥土、石板、台阶、水泥公路、柏油公路,为标准山地马拉松配置。

211679136256965930

苹果园地铁站-苹果园路-八大处路-八大处公园-中华精印谷-茶棚-北马场-挂甲塔-猴子爬-瞭望台-小小五新公路-南坡-双坡路山口路-温泉路-大觉寺路-大觉寺-萝芭地-鬼屋-瞭望台-阳台山主峰-三界碑-双龙岭-车耳营-凤凰岭公交站

累计行程:42 公里

累计上升:2408米
累计下降:2388米

海拔最低:41米 (苹果园)
最高:1271米 (阳台山主峰顶)

海拔分布

001a

六只脚记录

http://www.foooooot.com/trip/744674/ 

沿途照片与路线提示

经过新小小五公路后下撤到南坡之前不要上山抄近路,如果经过蘑菇帚不去东山村直线过去,会经过一处军事禁区。旧版路线的直穿是经过军禁的(旧版路线在这里:http://www.foooooot.com/trip/709938/ ) 如果要爬蘑菇帚,需要在东山村下撤。大觉寺去萝芭地路上的岔口如果左转是本路线,右转去北尖也可以走通,但平时人迹稀少道路狭窄,到高压线铁塔左转回归,右转会从鹫峰森林公园下撤(参见上述旧版路线,旧版路线就是高压线铁塔从鹫峰森林公园下撤)。过了阳台山一路全部右转下山,直到车耳营之前的山口左转继续下山,即可抵达凤凰岭。本路线如果从八大处公园正门进入需要10元门票(2014年价格),从凤凰岭公园穿过需要25元门票(2014年价格),直接爬进八大处或走香山小学,凤凰岭之前走车耳营,则不需要门票,走正门好处是方便快捷,省门票爬升会有相应的一点增加,里程基本不变。

如果跑了前半段不想去大觉寺了,在温泉路可以随时乘公交(346或633)回城,例如这个支线 http://www.foooooot.com/trip/776900/  。本路线中的小小五、阳台山妙峰山一代,都很适合山地骑行。随着景区的不断开发和对原生态路线的破坏,越来越多的越野跑路线已转变为山地骑行路线。

Read more

旋风足迹室内健身训练资源

 由于3mn.net开启了防盗链设置,下载出现403错误时直接在3mn.net刷新即可下载,无曲目列表的打包原歌曲名通常在文件名上。

室内抗阻训练 

室内抗阻音乐按日期打包

腰腹核心 2015年9月17日音乐打包下载 ◇

室内抗阻训练相关资料(★自用推荐)

囚徒健身

囚徒健身2

体能增长与健身训练


来自网络的其他资源

Insanity The Asylum  http://pan.baidu.com/s/1ntr5bID 密码: qkwx
Insanity Max 30  http://pan.baidu.com/s/1jG7XuBW
max30 cardio challenge中文字幕版 http://pan.baidu.com/s/1dDq6azf
腹肌8分钟,胸肌、臀部家庭训练视频  http://pan.baidu.com/s/1i3KcfQ1
P90x链接: http://pan.baidu.com/s/1o65Mgg6 密码: rumv
P90X2全系列(腹肌撕裂者第2代)链接:http://pan.baidu.com/s/1kT89OYN 密码:09ho
P90X3链接: http://pan.baidu.com/s/1gd3l8v5 密码: 37g7
hip hop abs : 链接: http://pan.baidu.com/s/1o6IfVHg 密码: cxnt
Les Mills Combat: 链接: http://pan.baidu.com/s/1i3IqgFb 密码: ti2q
CIZE MP4合并版 : 链接: http://pan.baidu.com/s/1kTEijgN 密码: 7xk4

 由于3mn.net开启了防盗链设置,下载出现403错误时直接在3mn.net刷新即可下载,无曲目列表的打包原歌曲名通常在文件名上。

固定自行车骑行训练

室内骑行音乐库 网盘分享

(未打包的单曲持续更新,按时间排序即可看到最新编辑的曲目)

http://pan.baidu.com/s/1fIR74

室内骑行音乐按日期打包

——————–90分钟以上主题骑行课程——————-(★自用推荐)

2016年1月6日音乐打包下载 ◇ (主题:节奏)

2016年2月24日音乐打包下载 ◇ (主题:耐力基础)

2016年3月21日音乐打包下载 ◇ (主题:能量)

2016年4月6日音乐打包下载 ◇ (主题:耐力间歇)

2016年4月20日音乐打包下载 ◇ (主题:自由)

2016年5月4日音乐打包下载 ◇ (主题:平衡与稳定 / 本包仅41分钟,后半节为单曲重组,单曲见上面的网盘链接)

2016年5月26日音乐打包下载 ◇ (主题:间歇与突破感 / 本包仅72分钟)

2016年6月2日音乐打包下载 ◇ (主题:15次上坡挑战 / 本包仅68分钟)

2016年6月9日音乐打包下载 ◇ (主题:力量间歇)

2016年6月16日音乐打包下载 ◇ (主题:热浪)

2016年6月23日音乐打包下载 ◇ (主题:热浪 II)

2016年7月14日音乐打包下载 ◇ (主题:破晓!)

2016年7月19日音乐打包下载 ◇ (主题:凯旋)

2016年9月8日音乐打包下载 ◇ (主题:循环爆破与速攀/前半程41分钟为5月4日主题)

————————-45-55分钟课程————————-

2016年1月27日音乐打包下载 ◇

2015年9月15日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年6月29日音乐打包下载 ◇

2015年6月15日音乐打包下载 ◇

2015年5月25日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年5月2日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年4月14日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年4月8日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年3月16日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年3月2日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年2月6日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年1月30日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年1月20日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年1月12日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2015年1月5日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年12月29日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年12月27日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年12月16日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年12月7日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年11月23日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年11月16日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年11月11日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年11月4日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年10月31日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年10月19日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年10月14日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年10月5日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年9月27日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年9月6日音乐打包下载 ◇ 歌单(原版曲目名称列表)

2014年8月9日音乐打包下载 ◇ 歌单(原版曲目名称列表)

室内骑行课程相关资料

—————–旧版SPINNING/RPM风格———————

SPINNING官方入门指南(某些地区需要代理才能打开)

SPINNING官方入门指南pdf打包

SPINNING的九种训练动作、推荐的拉伸动作介绍

SPINNING的阻力和配速调节

骑行姿势与RPE在SPINNING训练时的相互影响

Read more

一种新的单目视觉3D重建算法

想和人眼一样拍摄3D立体图像通常需要2个镜头。哈佛大学研究员《光学快讯》上发表的文章通过改变单个镜头焦距拍摄两幅图像,使用数学模型重建3D图像,其效果相当于单眼摇头视物。主要原理是:像素上的光线角度包含了重要信息,通过改变焦距拍摄两幅图像的细微差别推算出每个像素上的光线角度,通过数学计算重建新图像,模拟镜头移动的效果(视频演示)。

OpenGL 4.4 and OpenCL 2.0 Specs Released

Via Ars comes news that the OpenGL 4.4 and OpenCL 2.0 were released yesterday. OpenGL 4.4 features a few new extensions, perhaps most importantly a few to ease porting applications from Direct3D. New bindless shaders have access to the entire virtual address space of the card, and new sparse textures allow streaming tiles of textures too large for the graphics card memory. Finally, the ARB has announced the first set of conformance tests since OpenGL 2.0, so going forward anything calling itself OpenGL must pass certification. The OpenCL 2.0 spec is still provisional, but now features a memory model that is a subset of C11, allowing sharing of complex data between the host and GPU and avoiding the overhead of copying data to and from the GPU (which can often make using OpenCL a losing proposition). There is also a new spec for an intermediate language: “‘SPIR’ stands for Standard Portable Intermediate Representation and is a portable non-source representation for OpenCL 1.2 device programs. It enables application developers to avoid shipping kernel source and to manage the proliferation of devices and drivers from multiple vendors. OpenCL SPIR will enable consumption of code from third party compiler front-ends for alternative languages, such as C++, and is based on LLVM 3.2. Khronos has contributed open source patches for Clang 3.2 to enable SPIR code generation.” For full details see Khronos’s OpenGL 4.4 announcement, and their OpenCL 2.0 announcementUpdate: 07/23 20:17 GMT by U L : edxwelch notes that Anandtechpublished notes and slides from the SIGGRAPH announcement.

迪士尼演示2D照片生成高清3D模型算法

Disney研究院开发出一种算法,可以将2D照片生成高清3D模型。和此前的3D全景技术类似,这项技术也有十多年的历史。但迪士尼的新算法赋予了3D模型更多的细节,能计算每个像素的深度,足以满足视频游戏和电影制作的需要。它的3D模型仍然受限于原始2D照片提供的视觉信息,不能自动填充数据。

Disney Research has developed an algorithm which can generate 3D computer models from 2D images in great detail, sufficient, it says, to meet the needs of video game and film makers. The technology requires multiple images to capture the scene from a variety of vantage points. The 3D model is somewhat limited in that it is only coherent within the field of view encompassed by the original images. It does not appear to fill in data

在Linux运行Direct3D 9游戏,性能胜过Wine

借助新的Gallium3D状态跟踪器,Linux桌面系统现在能支持微软的Direct3D 9 API ,不同于早期的Direct3D 10/11实现,新的代码确实可以在Linux上运行Direct3D 9游戏,而且游戏性能强于Wine。Gallium 3D是一个自由软件和开源OpenGL实现。2010年,Direct3D 10/11以Gallium 3D状态跟踪器的形式在Linux上原生实现,但由于上游的Wine开发社区对此不感兴趣,最终无疾而终。Nouveau开源显示驱动的开发者Christoph Bumiller本周宣布了一个Direct3D 9状态跟踪器。虽然Direct3D 10/11支持很短暂,但Bumiller相信Direct3D 9情况要好得多。通过Gallium 3D,Direct3D 9 支持开源Linux驱动,不需要将Direct3D指令翻译到OpenGL,就可以用开源Radeon和Nouveau驱动运行游戏如《上古卷轴V:天际》、《文明五》、《Anno 1404》和《星际争霸2》,测试显示游戏fps最高是Wine目前代码的两倍。

小车使用的系统平台详细介绍

双目视觉小车使用的是三星处理器s5pv210,s5pv210又名“蜂鸟”(Hummingbird),是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器。s5pv210和s5pc110功能一样,110小封装适用于智能手机,210封装较大,主要用于平板电脑和上网本,苹果的iPad和IPhone4上有的A4处理器(三星制造的),就用的和s5pv210一样的架构(只是3D引擎和视频解码部分不同),该处理器还被用在了Nexus S,魅族M9,三星GT-S8500 Wave,三星P1000(Galaxy Tab),三星i9000(Galaxy S)。s5pv210是旧时的叫法了,2011年2月,三星电子正式将自家基于ARM构架处理器品牌命名为Exynos。Exynos由两个希腊语单词组合而来:Exypnos和Prasinos,分别代表“智能”与“环保”之意。s5pv210获得了新的代号Exynos 3。Exynos 3是Exynos系列中唯一的单核处理器。下面是这款处理器的架构图:

Exynos3110_Diagram3110

 

将这款处理器的平台作为双目视觉小车的主控系统考虑到以下几方面原因:1.优秀的性能功耗比,性能不愁电池也不愁;2.官方提供linux和android的bsp不需要移植,视频传输也可以用以往开发移植的方案;3.我喜欢用消费类电子处理器做自控,因为比较好玩~

小车使用的是改造的三星Exynos 3标板,借鉴的开发板是飞凌的ok210:

63265143

 

 

三星的资料,包括电路原理图、cpu手册等 ok210-downloadfromsamsung

ok210的原理图和器件手册 ok210-schanddatasheet

引导用的uboot ok210-uboot_1.3.4.tar

移植好的linux 2.6.35内核 ok210-linux2.6.35.7.tar

NandFlash使用的Yaffs2文件系统 ok210-Yaffs2.tar

 

小车直流电机驱动L9110H和L298N的选择

L9110H是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片 IC 之中,使外围器件成本降低,整机可靠性提高。该芯片有两个 TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过 750~800mA 的持续电流,峰值电流能力可达 1.5~2.0A; 同时它具有较低的输出饱和压降; 内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。L9110H被广泛应用于玩具汽车电机驱动、步进电机驱动和开关功率管等电路上,我所拆卸的遥控车玩具,大多使用L9110H。

当前的小坦克上在电机输入前接了L9110H,所以cpu的gpio可以直接通过74HC244后连接小坦克。我记得很多年前有人曾经问244能不能取代光耦隔离,实际上,如果回灌电流不是很猛,是可以起到隔离作用的,因为244有比arm cpu更大的承受能力,如果244烧不穿,自然也就保护了cpu,但如果244击穿,情况就另当别论了,所以,应该说能够部分取代光耦,并不能完全取代。

11

相比之下,在选择直流电机的情况之下,L298N显得杀鸡用牛刀。L298N主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

L298N驱动小车直流电机的典型模块电路和实现:

 

16059114562605911456

 

 

如果使用万向轮小车底盘,选用这个驱动模块是合适的,我习惯杀鸡用牛刀,哈哈。

 

小车底盘选型组装完毕,开发板到手,零碎器件到手

双目视觉小车的底盘初步定型为两款。分别是一个橡皮履带的坦克底盘和一个带万向轮的双轮小车底盘(最常用的寻迹小车底盘模型)。

1

第一款是带测速方波和减速直流电机的坦克,准备用210开发板的gpio直接经过74hc244后连接电机驱动L9110或L298,这款速度控制比较好,行驶可以非常慢,有助于第一步目标中各种实验的进行。

2

第二款是我以前非常常用的两个轮子带一个万向轮的小车底盘,这是最常用的寻迹小车的底盘模型,但是这款测试时十分灵活,速度较快,无法很慢的行驶(和电机与减速箱有关),在坦克上充分测试调试,算法足够健壮的情况下,可以使用这款经典的底盘。

3

 

开发板使用的是飞凌嵌入式的ok210,找一款靠谱的210开发板真不容易,难得有这么一款不错的产品,我自己投板的还不知道需要焊到哪年哪月。。初步计划把键盘按键拆了改成gpio经过74hc244增益连接电机驱动控制,在linux直接用字符驱动写方波即可,另外配置两个输入的gpio或者中断,从红外遮挡测速那里把信号读回来(坦克底盘上有现成的测速器,而万向轮双轮小车需要我自己接一下,主要是模具费劲,暂时先用坦克的吧)。

另外,今天去了中海园和中发,状况和当年差不多啊唉,中海园还是那样,周末没什么人,柜台大多数都锁门了,连个人影都看不见。。马路对面的知春电子城还不错,买到了74hc244和需要的零散器件,电池也找到了大容量锂电池排,重量可以接受,不过那卖电池的有点头晕,逆变升压电路参数说不清楚,看了半天我也不知道那个小电路从3.7逆变到5V能承受多大电流,改天再找家靠谱点的。。

先写这么多,组装像样了,驱动写差不多了再继续更新~ 期待吧~

Harlan:简化GPU编程的新语言

印第安纳大学研究员Erik Holk 发布了一个简化GPU应用程序开发的声明式编程语言Harlan

Harlan的语法是基于LISP语言方言Scheme,旨在让开发者能更高效的使用GPU,而不必处理会干扰实际工作的日常性GPU编程任务。两大最流行的GPU编程模型是OpenCL和CUDA ,Harlan可以编译到 OpenCL。Holk还为新语言赋予了部分函数编程语言特性,他是在开发Mozilla的RUST语言过程中学到了GPU编程经验。Harlan这个名字取自肯德基招牌人物Sanders上校的第一个名字Harland,Harlan的所有文件扩展名是.KFC。

显然Erik Holk是个天天吃肯德基或者和肯德基有神马关系的人。。真心无力吐槽。。

 

双目视觉小车的前端3D展示放弃xbap+xna,改用webgl或unity3d

如题,在尝试过ie11以后,又考虑到 http://news.xbox.com/2013/06/xbox-one-unity-announcement 的影响,为了后续的兼容性和进一步扩展,不再使用xbap+xna,具体更改为webgl还是直接使用unity3d,有待进一步评估。

有一部分原因是因为xna后续没有版本了,而前几天unity3d对windows用户免费了(可参考先前的链接或搜索相关新闻)。周末除了去中发以外,我还会具体评估unity3d的新版本和ie11所支持的webgl。

双目视觉小车实时重建场景3D模型的娱乐项目今天启动

2013年7月2号是美好的一天。整整8年过去了,历经8年,我终于找到了一位合适的导师,我的热情娱乐终于可以重新开始了。

今天是2013年7月3日,我的双目视觉小车正式开始制作开发,整个系统的第一步的目标结构如下图所示:

MoridaEyes-sysarch

 

系统结构图visio文件下载 MoridaEyes-sysarch

暂定本项目代号为 MoridaEyes (ME.) 意为森田之眼。

 

总有人问我森田幻羽的森田是否和日本话有关系,这里解释一下,部分是的。

森田,一是出自我是极端热爱大自然的人,讨厌钢筋混凝土的世界,喜欢绿树和田野;

二是出自漫画《蜂蜜和四叶草》中的森田忍,具体为什么,一言难尽,相信看过这部漫画又熟知我的朋友会非常清楚。

 

明天开始组装小车的硬件底盘和车身,本周末去中发中海园买缺少的小零部件。

另外需要买244增加io的驱动能力再连接直流电机驱动,懒得投板了先用面包板和飞线凑合吧,

不知道整个系统需要多大功耗,我估计可能需要若干手机电池并联才能玩得转。

多向跑步机控制在游戏中跑步

你或许会觉得在跑步机上跑步太单调,那么为什么不尝试在虚拟现实,在你最喜欢的游戏中跑步?一家叫Virtuix的美国德州公司在kickstarter上发起集资活动,筹集15万美元开发Omni虚拟现实跑步机。目标已被远远甩在后面,距离结束还有21天融资金额已接近百万美元。受到kickstarter用户如此热烈的支持响应,无疑与其创新理念离不开。Omni让玩家戴着虚拟现实眼镜穿着特别定制的鞋子在跑步机上跑步,软件将跑步动作翻译成按键,在游戏中执行走跑跳蹲等动作。Omni计划在明年1月交付。

今天把09年以前的blog文章选了一些转移了过来

一共没几篇文,也懒得写转移程序了,手工转,呼呼~

森田幻羽最近要复活了,因为我有一些新的实验要做,涉及新学习的计算机视觉和人工智能相关。

我打算把以往用红外和超声传感器避障循迹的单片机步进电机小车大改造一番,变成用arm系统背电池的高级小车,使用更高精度的电机,同时用摄像头采集视频信息,用计算机视觉的方法,进行避障循迹和各种应用的尝试。因为很多涉及视觉和人工智能的算法计算量较大,考虑将图像实时传给我的x64并行计算系统,做尽可能的多线分解,最理想的情况是能实时生成环境的3D模型,然后在上位机计算如何运动,直接给小车发送控制指令。同时,我要深入学习之前没接触过的各种比较冷门的数学物理方法,希望能从中找到一些我一直以来困惑的问题的解答。希望能找到学数学的有兴趣的朋友和我一起玩,那样不懂的问题能得到立即的解答,会轻松好多额。

几个以往用过的小系统回忆

已经很久没有做低功耗便携系统了,最近翻出以往的开发板,颇有味道的回忆了一番。尤其是想起第一次投板六层板的那一次,南京的那哥们答应给特价盲埋孔打样,高兴了一晚上。当年9000块钱就觉得好多好心疼哈,现在看看,还不够交一次房租…唉……还有后来合作卖2410开发板的硬件高手吴兄,不知道现在过得怎样了,还在飞思卡尔么…回忆起来很是想念…每次路过北交大都想起当年一起开发,好巧在北理工的刘老师和当年的吴兄长得特别像哈哈。

现在的系统能力真是强悍,当年这些arm9的片子,如今恐怕博物馆都找不到了吧。

44615_071016182928

 

05年最初使用的s3c2410开发板,我自己编写的多线程操作系统和第一次编写GUI的尝试是在这个板子上进行的,对我来说,这个开发板非凡的意义还有一点,那就是带我了解了诸多底层总线协议的具体实现和相关软件开发,诸如IDE、I2S、I2C、ISA等等。

 

44615_071016135026

这是一个ep9315的开发板,在这个板子上我第一次尝试了高频硬件驱动,它可插接的数据和地址总线,让我得以把很多外设挂载总线上进行各种调试,用总线直接驱动一下子就屏蔽了IO不够用的问题,但是有些貌似要挂244增大驱动能力才能带的动。

44615_071016135114

这是一个can总线和232/485的调试板,用单片机做了一些基本的实验,有了这些实验,才得以把这些总线顺利的挂到频率比较高的arm系统上去。

44615_071016182959

这同样是一个做低频实验用的arm7的板子。

 

44615_071207232232

这是一个ep9315的开发板,在上面扩展了很多实用的接口,如PCI、CF/SD卡、各种常用的扩展总线等。

 

NDS游戏开发起动 很多东西游戏开发前辈已经写了,转几个有用的地址来

【2009.1】
有了的就不再写了,DS的年龄比较长,寻找资料和开发很顺利,概括一下,转几个地址来~
想花几分钟立刻建立DS游戏开发环境的朋友请直接阅读黄色和蓝色底色的文字。
NDS开发环境配置(官方开发环境 实际上就是开发裸机ARM程序的ADS)
陈超的专栏 ——NDS开发揭秘
实际上就是按ARM系统裸机开发的方式使用老版ADS里的CodeWarrior,对于业内的朋友应该是相当的熟悉和顺手~因为我当年在ADS的CodeWarrior写过好多程序,所以看到DS直接用这个真是倍感亲切,其实这也是意料之中的事情,Nintendo肯定懒得自己做IDE,而且ARM还提供了这么方便的。。另外需要提及的是,我没具体尝试,不知道04年左右流行ADS开发的时候流传的无限期license能不能直接用在这里提供的CodeWarrior之上,如果能直接用的话,就不存在什么时间限制问题了,我估计没有什么问题,这里提供的CodeWarrior应该没有什么特别的改动。
陈超的图链接好像断了,这个帖子里有:
官方的注册帐号比较麻烦,要一堆公司的信息之类的。。下面看看fans的~
NDS开发环境配置(fans开发环境 可以用VisualStudio或linux下的一些IDE配合交叉编译)
jiaweihao1987的专栏(一份可行性分析报告)
还有这里
类似的google就可以,教程和资源十分丰富。
fans之前是用arm-linux-gcc编译过DS程序(比如甚至移植了uClinux2.6到DS上,”dslinux”),CodeWarrior所使用的armcc.exe实际上和arm-linux-gcc极其相似,用什么编译器都是可以的。DS实际上是个裸机环境,而且cpu没有mmu,全是直接寻址,也没有什么程序装载的问题,全裸上阵。
fans方案大多就是用传说中的devkitpro, PSP等东西的开发也可以用这个kit:
使用PAlib(一个基于fans用的devkitPro的更方便开发的工具包)结合VC++9.0的具体安装步骤 (2009.02.06补充,解决新版本的PAlib和devkitPro的兼容性问题)
00 – Visual C++ 2008 Express Edition
01 – devkitPro Updater
v. 1-4.7
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=160396
02 – devkitARM
r21
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207&release_id=549080
     delete c:devkitProdevkitARM and extract to C:devKitPro
03 – libnds
20071023
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=151608&release_id=549081
     delete all contents inside C:devkitProlibnds and extract in the folder
04 – PAlib Community Update
BETA 080203
http://palib.info/downloads/Beta/PALib_CommunityUpdate_BETA-080203.7z
     extract to C:devkitPro
     080823
     extract and copy PAlib/lib/* to C:devkitProPAlib (fix some bugs)  
05 – libfat-nds
20070127
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=197264

extract the files in the include folder to C:devkitProlibndsinclude and the files in the lib folder to C:devkitProlibndslib
06 – dswifi
0.3.4
http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=199021
     The same method as 05
07 – StartComputerright clickpropertiesadvanced tabenvironnement variables
Add a new user variable
name : PAPATH
Value : C:/devkitPro/PAlib
Add a new system variable
name : DEVKITPRO
value : /c/devkitPro
08 –
     VC8.0 setup
09 – Open VC++ and new a PAlib project, build it, create an .nds file,
     just run it.
        
NDS系统概览
参见我这个blog收藏的相关链接和之前的文章.
还有 这里写得相当不错
blog “猴子灵药”:
当然,可以不用PAlib,那样就直接按devkitPro官方站点的说明来配置IDE。只使用devkitPro只需要做前面叙述的一堆步骤中的00和01即可。 
NDS游戏程序demo
官方开发环境的demo warioworld.com里有。
fans在linux开发的可以看一下http://www.dev-scene.com/NDS/Applications_2007

NeuroSky与Square Enix推出脑波控制的游戏控制器

【2008.10】

用脑波来玩游戏的新玩法似乎已经走出实验室阶段了,这家名为「NeuroSky」的厂商在心智控制领域方面钻研,继上次的脑波侦测器,这次与Square Enix合作,推出可以应用在游戏的脑波控制器,透过额头前的侦测器读取脑波,进而在游戏中来进行动作与操作。这个脑波控制器套件目前只支持Windows平台,会在今年的日本电玩展展示,有了Square Enix的支持,相信用脑波来玩的游戏推出指日可待。

NeuroSky Intro: Neurons that comprise the brain work on electrical impulses known as brainwaves. The last century of neurological research has demonstrated that brainwaves of different wavelengths can be indicative of unique emotional and mental states, like a focused awareness, a meditative state, or drowsiness. Brainwaves have been used in medical research and therapy for years. NeuroSky is introducing it to the consumer world.

NeuroSky Inc. has developed a non-invasive, dry, bio-sensor family of products that capture the electrical waves generated by neurological activity and eye movements and translate mental state information into digital signals for simple Brain-Computer Interfaces (BCI). Our wearable technology unlocks worlds of new applications in consumer electronics, health, wellness, safety, education, training, market research and a host of many more.

sanicle注: 最另人兴奋的领域已经逐渐成熟和深入,电子系统和生命系统的融合正在一步一步的打开我们的梦想, 从Meet Gordon,Blue Brain,ThinkGear-EM™..我们看到了崭新的领域, 人类对自身的改造和扩展似乎不会是非常遥远的梦想.

低功耗再创奇迹:采用树木为无线电网络供电,树木遭殃

【2008.10】
美国林务局利用由各种自动化工作站构成的网络来跟踪气候条件,特别是在火灾季节。然而,这种太阳能供电的遥控网络需要大片的森林空地,以便阳光能够到达太阳能采集板。
与此同时,美国林务局官员希望他们能够在更大的树木上安装传感器。
目前,研究人员表示,通过利用树木与地面之间的电压差,新的超低功耗传感器能够从几乎任何树木上发射传感器数据。该方法还不必清扫森林植被来接收太阳能。
“我们认为,通过在每英亩仅仅4颗树上安装无线电传感器,我们能够提供更佳的火灾预测建模,更早的报警,以及较之于目前在任何森林中可用的更好的局部气候数据,”麻省理工学院的Andreas Mershin教授说。

 

44615_081009195856

 

 

MIT研究人员还预测,树木提供的电力将最终对其它类型的环境监测有用,如观测加拿大森林边界的长期膨胀扩张趋势。MIT科学家试图确定为什么树木有着不同于地面的电势。在排除了若干其它可能性之后,如电磁辐射,他们从19世纪的研究中发现了其原理:pH值的差异能够产生电势。“正是树木内部与栽培树木的土壤的pH值之间的不平衡产生了一个电压,”Mershin表示,“对于每一步的pH失配来说,你获得大约59毫伏的电压差。”Mershin透露说,树木和周围土壤之间存在电势差的重要性在于,树木本身的新陈代谢维持该电势;不论是白天或是黑夜,秋天和春天,夏天和冬天,下雨或出太阳。“因为树木必须在它的内部具有一定浓度的不断新陈代谢以及执行其它生物功能的离子,树木本身积极的调节它自己的pH值。因此,不论你把树栽培在具有什么pH值的土壤中,它均将努力地采用它的新陈代谢能量来保持它自己的pH值恒定,”Mershin说道。

 

44615_081009195914

 

 

其电势是微弱的,但是,它持续维持该电势的能力意味着它能被可靠地用于连续地给电池或电容充电。这个电池或电容接下来可以被用于每天给一个无线电传感器节点供电四次,以发送数据。通过在安装于树木上的各个节点之间实现网状网,研究人员计划把传感器数据从一个节点传输至另一个节点,直至它抵达一个地区的气象站。该气象站然后把来自各个树的不同的传感器读数中继至中央火灾预测计算机。MIT 最近成立了一家称为Voltree Power的公司,Mershin是它的科学家顾问,以利用它在树电(tree power)上的发现。MIT高级研究人员Christopher Love担任Voltree公司的研发副总裁。Mershin、Love以及MIT生物医疗工程中心总监Shuguang Zhang一道,已经能够把最初的毫伏级电势提升至超过1伏,足以为电池充电,为射频设备供电,并把各个传感器的输出广播至一个网状网络。

 

44615_081009195937

 

 

“通过利用专门选择的金属作为电极而地下的盒子由一颗钉子在树的根部穿透树木,Voltree已经完善了它的技术,”Mershin表示。在周围土壤中的第二个电极为无线电传感器节点的电子系统提供接地。天线导线沿着树木盘缠而上,把树上安装的传感器与地下的电子系统连接起来。美国林务局预计2009年春对目前正准备之中的树木供电的无线传感器网络进行现场测试。树木供电研究项目由MagCap Engineering以及MIT研究生研究机会计划提供。

使用linux的小型消费类系统上的常见应用层程序移植

【2008】

1.Web服务器: BOA 与 cgic库

本节内容摘自网络流传的教程,我曾经在s3c2440和ep9315系统亲手移植过BOA,没有遇到问题.
cgic只是需要交叉编译一下,不需要做什么修改和配置.

移植
第一步:从www.boa.org下载Boa源码,将其解压并进入源码目录的src子目录。
# tar  xzf  boa-0.94.13.tar.gz
# cd  boa-0.94.13/src
生成Makefile文件
# ./configure
修改Makefile文件,找到CC=gcc和CPP=gcc -E,分别将其改为交叉编译器安装的路径CC=某路径下arm-linux-gcc和CPP=某路径下arm-linux-gcc -E并保存退出。
然后运行make进行编译,得到可执行程序boa
# make
# 某路径下arm-linux-strip boa

第二步:Boa的配置。
Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改。
1.    Group nogroup修改成Group 0,由于在/etc/group文件中没有nogroup组,所以设成0
另外在/etc/passwd中有nobody用户,所以User nobody不用修改。
2.    ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/ 修改成 ScriptAlias /cgi-bin/  /var/www/cgi-bin/
其它默认设置即可。
还需要创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,将静态网页存入该目录下(可以将主机/usr /share/doc/HTML/目录下的index.html文件和img目录复制到/var/www目录下),创建CGI脚本所在目录/var /www/cgi-bin,将cgi的脚本存放在该目录下。另外还要将mime.types文件复制/etc目录下,通常可以从linux主机的/etc 目录下直接复制即可。

第三步:测试
1.静态HTML网页
在目标板上运行boa程序,将主机与目标机的ip设成同一网段,然后打开任一个浏览器(linux或window下都可),输入目标板的ip地址(http://10.10.10.2)即可打开/var/www/index.html网页
2.CGI脚本测试
boa源码中有cgi-bin测试脚本(examples/cgi-test.cgi),但由于它不是在我们目标平台下编译的,所以不能将它复制到/var/www/cgi-bin目录下进行测试。
下面是一个简单的hello, world!程序,代码如下:
#include <stdio.h>
void main(){
printf(“Content-type: text/htmlnn”);
printf(“<html>n”);
printf(“<head><title>CGI Output</title></head>n”);
printf(“<body>n”);
printf(“<hl>Hello, world.</hl>n”);
printf(“<body>n”);
printf(“</html>n”);
exit(0);
}

Boa移植时常出现的问题
1.    当运行boa程序时出现错误,如下:
# ./boa
[27/Nov/1990:13:22:25 + 0000]boa.c:266.icky Linux kernel bug!:No such file
将 User 0修改成 User nobody
2.    打开网页时,网页中的图片无法显示
就将存放图片的子目录/var/www/images修改成/var/www/img
3.    在测试cgi脚本时,当在浏览器地址中输入“http//10.10.10.2/cgi-bin/helloworld.cgi”时,浏览输出下述错误:
502 Bad Gateway
The CGI was not CGI/1.1 compliant
(sanicle注:此种错误在使用BOA时十分常见,原因基本都是自己写的cgi程序的输入输出问题)
在目标板的调试终端中输出下述错误:
……cgi_header:unable to find LFIF
上述错误是在boa原码中的cgi_header .c文件中的process_cgi_header函数产生,如下:
buf = req->header_line;
c = strstr(buf, “nrn”);
if (c == NULL) {
c = strstr(buf, “nn”);
if (c == NULL) {
log_error_time();
fputs(“cgi_header: unable to find LFLFn”, stderr);  //出错信息
#ifdef FASCIST_LOGGING
log_error_time();
fprintf(stderr, “”%s”n”, buf);
#endif
send_r_bad_gateway(req);
return 0;
}
}
我们可以定义FASCIST_LOGGING,使产生该错误时将buf内容打印出来,结果如下:
……cgi_header:unable to find LFIF
Content-type: text/html
<html>
<head><title>CGI Output</title></head>
<body>
<hl>Hello, world.</hl>
<body>
</html>
原来buf中的内容就是helloworld.c中输出的内容,查看输出结果,再看process_cgi_header函数中的语句:c = strstr(buf, “nn”),很明显buf中没有两个连续的换行符”nn”,所以是helloworld.c文件中的语句:printf(“Content- type: text/htmlnn”);错写成了printf(“Content-type: text/htmln”);
上述行通过标 准输出将字符串″Contenttype:text/plainnn″传送给Web服务器。它是一个MIME头信息,告诉Web服务器随后的输出是以纯ASCII文本的形式。在这个头信息中有两个新行符,这是因为Web服务器需要在实际的文本信息开始之前先看见一个空行。

WEB应用开发
CGIC库的移植
从CGIC的主站点http://www.boutell.com/cgic/上下载源码,将其解压并进入源码目录。
# tar  –zxvf  cgic.tar.gz
# cd  cgic205
修改Makefile文件,同样是改为使用交叉编译。
然后输入make进行编译,可以将生成的capture和cgictest.cgi文件复制到目标板目录/var/www/cgi-bin/下,以测试正确性。

2.数据库: sqlite (结合web服务器,小型嵌入式设备也可以做各种BS结构的应用和web服务)

网上同样有教程,我就不再转载了,我在ep9315上的linux2.4.21和s3c2440上的2.6.14都曾用过sqlite3,这里我直接把移植好的一个版本提供过来(sqlite3.3.14).

下载 sqlite3-arm-linux (扩展名改成z01,和其他压缩包放在一起解压) sqlite3-arm-linux
3.GUI: MiniGUI QT

涉及商业使用中的文档,暂略,等有适合放出的再放吧.

4.USB摄象头获取视频并由以太网传出: 驱动spca5xx 视频服务器servfox 视频客户端spcaview

我曾经在各种系统上(如s3c2410,ep9315,rm9200等)尝试使用常见的301p摄象头,用spca这些东西感觉很不错,移植容易,基本也就是交叉编译一下,作者是一个和蔼可亲的法国大胡子老爷爷.这一堆东西具体可以看这里:
http://mxhaard.free.fr/embedded.html (我刚才上不去..不知道是我的网络人品还是那个站人品了..汗)

我07年的时候对这些还是蛮有兴趣的,但可惜的是经常使用的Video4Linux相关的东西,由于时间安排,我还没有详细研究.
spcaview在fifth的努力下可以在windows使用,代码简明易懂,以下是fifth的blog中的相关内容:
http://blog.chinaunix.net/u/27015/showart_223753.html

我曾经用过的ARM系统MCU厂商列表

【2008】

以下是我曾经接触过的一些板子,简单总结对比一下,供大家参考. 现在这些系统标板在我们大陆市场上很容易买到,ic的货源也相对充足.

 厂商 当前主要型号 特点 官方资讯站点
 Cirrus Logic  EP93xx  资料全,有2D显示加速;但功耗往往都稍大,不适合做手持设备,适合做定点应用.  http://arm.cirrus.com/
 Samsung  S3C244x S3C64xx  起家早,质量较差,但功能迎合大众市场,适合普通消费类电子产品.  http://www.samsung.com/global/business/semiconductor /products/mobilesoc /Products_ApplicationProcessor_developmenttool.html
 Atmel  RM92xx  运行稳定,功耗控制优秀,军工级方案首选;性价比较高.  http://www.atmel.com/products/at91/default.asp
 Freescale  Mx31  高端pmp的典型方案  http://www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=0162468rH31143
 Marvell  PXA27x PXA3xx  Intel扔掉的东西,给人感觉很一般,成本相对较高.  http://www.marvell.com/products/cellular /applications.jsp
 NXP  LPC291x  标板带有CAN和LIN,适合工业和汽车电子应用.  http://www.nxp.com/#/homepage/cb=[t=p,p=/50809/53962]|pp=[t=pfp,i=53962]

iDSL入手,开始解剖

【2008】

买了DS,我将对这个系统进行全面的研究解析学习,从硬件改造到系统内核,然后是游戏和工具软件开发,所以专门在blog里面建立了这样一个板块.说实话,这确实有点过时,但是作为一个经典的业内系统案例,我还是决定研究一下.小DS要拆开比较费劲,还要买个三角螺丝刀.解析的第一步自然是了解硬件系统结构,所以这里我将其他站点的一些资料转来(本文的后半部分),结合pcb阅读一下.详细的原理图我正在寻找,但是尚没有找到,所以也只是粗看,具体的问题碰到以后再做具体分析吧.

附图:我买的iDSL现场新鲜解剖

44615_080924172129

图1.拆开来先看到的主板反面

44615_080924172045

图2.翻过来看到了主板正面

cpu在屏幕的后面,我没拔掉屏幕拍照,直接转个别的站的日版nds拆机的相关部分吧(可能会有细节差异,这里仅是示意一下)。

44615_081105203613

图3.NDS的cpu照片(来自日経BP社)

实际上DS是一个由不带mmu的一片ARM946和一片ARM7构建的系统,初看起来挺像普通的手机或pmp方案.但和现在的多数类似的消费类电子产品相比,他并没有安排多线操作系统,从网上找来的以往的反向工程研究资料来看,他的构建比我想象的要简单很多.我昨天晚上大体阅读了一下网上流传的libnds的代码,发现操作果然是全裸式的,这也让喜欢做底层的我感觉十分亲切.可以直接和registers打交道,总归要比结合mmu的系统简单得多.我想,如果当年我不是做三星的开发板的话,大概在DS这种东西上尝试写个操作系统要更有趣一些.

以往已经有人把uClinux2.6跑在了DS上,可惜那群人的网站不知道为什么挂掉了(dslinux.org),联系不上他们(我都跑去linux.com的论坛上灌水找了),我也搞不清楚他们最开始的时候具体是怎么入手寻找切入点的,毕竟如果什么资料都没有的话(Nintendo并没有开放研发资料),这个porting还是很有难度的.今天我找到了NDS wiki这个站点,上面有不少关键有用的资料,我想这些基础研究应该是在uClinux移植之前完成的,大概的有了点头绪.

我还有些数学书没看完(最近在学些东西),今天先写到这里.

另外,偶要感谢动物之森联谊会和其他DS群组里的朋友给偶的帮助,谢谢大家.

—-以下内容供参考———————————————-

sanicle注:idsl/ndsl,ids/nds是有细节差异的,部分配件不太一样,现在网络上的很多详细资料是针对日版nds的(日版nds的主板上写着C/NTR-CPU-01,而我买的idsl主板上的title是C/USG-CPU-01)。

《日经电子》拆卸小组的DS剖析(针对日版NDS)
http://china.nikkeibp.co.jp/china/news/digi/200411/digi200411260113.html
http://techon.nikkeibp.co.jp/members/NEWS/20041123/106554/

NDS硬件系统非官方解析(针对日版NDS)
http://www.bottledlight.com/ds/index.php/Main/Hardware

英国诞生有生物脑的机器人

【2008.8】

据国外媒体报道,英国科学家日前揭开全球首个有生物脑的机器人神秘面纱,这个机器人名为“米特 咯噔”(Meet Gordon),也许是世界上第一个专由活大脑组织控制的机器人。

“ 戈登”的原始大脑灰质由30万个经培育的老鼠神经细胞缝合而成,由英国雷丁大学科学家设计,他们于8月13日揭开这个由神经细胞驱动的机器的神秘面纱。该 小组成员在接受法新社采访时表示,他们开创性试验将探索自然灵性和人工智能之间正在消失的界限,同时揭示记忆和认知最基本的构造单元。

雷 丁大学教授、“戈登”机器人主要设计者之一的凯文·瓦维克(Kevin Warwick)说:“我们的目的是搞清楚记忆如何存储于生物大脑之中。”据他介绍,观察神经细胞在发出电脉冲时如何粘合成一个网络,还有助于科学家找到 攻击大脑的神经变性疾病的治疗方法,比如阿尔茨海默氏病和帕金森氏综合症。

瓦维克说:“如果我们可以对人类大脑模型中发 生情况的基本原理有所了解,这可能会在医学上具有巨大的益处。”“戈登”外表看上去有点像好莱坞卖座动画大片《机器人总动员》中的主人公,其大脑由5万至 10万个活跃的神经细胞构成。研究人员从老鼠胚胎中取出专用神经细胞并用酶清洗分离后,将其放到富含营养物的培养基中,培养基被置于长宽均为8厘米、由 60个电极组成的列阵上。

这种“多电极列阵”(MEA)起到连接活组织和机器之间的作用,大脑发出电脉冲,驱动机器人的车轮运转,接收对这一环境做出反应的感应器发出的脉冲。因为大脑是活组织,它必须放在一个特制的温控装置内——它经由无线电连接同其“身体”沟通。

这 种机器人不需要人或者电脑进行额外控制。从一开始,神经元便紧张地忙碌着。瓦维克说:“大约24小时内,它们彼此伸出触毛,建立链接。一周之内,我们便可 以看到一些自发放电以及类似大脑的活动,与普通老鼠或人类的大脑活动类似”。虽然没有额外的刺激,但这个大脑几个月内不会出现萎缩或者死亡。瓦维克解释 说:“现在,我们正寻找最理想的方式教会它以确定的方式活动。”

从一定程度上说,戈登是自学成才的机器人。举个例子来说,撞墙的时候,它能够在传感器帮助下获得电刺激。随着遭遇类似情况,它逐渐养成学习的习惯。为了帮助戈登完成这一过程,研究人员利用不同的化学物质增强或抑制在特殊活动中活跃的神经通路。

戈登实际上拥有多重性格,因为科学家可以为它植入几个多电极阵列大脑。瓦维克说:“非常有趣的是,大脑之间也存在差异。这一个比较活跃,另一个则并不会做我们希望的事情。”

出 于伦理和道德上的考虑,雷丁大学的研究人员或者世界其它实验室不可能短期内在同样的实验中使用人类神经元。幸运的是,老鼠大脑并不是一个难当大任的“替身 ”。啮齿类动物和人类虽然在智力方面存在很大差异,但据沃里克推测,这种差异是由数量导致的,而不是质量。老鼠大脑由大约100万个神经元组成,这种特殊 细胞通过被称之为“神经传送体”的化学物质在大脑各部分之间传递信息。相比之下,人类大脑则拥有1000亿个神经元。

火影op-bluebird歌词

op timestamp:

[00:01.36]飛翔(はばだ)いたら 要是振翅高飞
[00:04.78]戻(もど)らないと言(い)って 我说过不会再回来
[00:07.36]目指(めざ)したのは 目标就是
[00:10.74]苍(あお)い 苍(あお)い あの空(そら) 蔚蓝的蔚蓝的天空
[00:20.30]“悲(かな)しみ”はまだ覚(おぼ)えられず 还没记住那份悲伤
[00:24.31]“切(せつ)なさ”は今(いま)つかみはじめた 就开始了解到了苦闷
[00:26.99]あなたへと抱(りだ )く  この感情(がんじょう)も 怀着对你的这份感情
[00:29.86]今(いま)“言葉 (こどば)”に変(か)わっていく 现在化作千言万语
[00:33.01]未知(みち)なる世界(せかい)の 游迷(ゆめ)から目覚(めざ)めて 从未知世界的梦中醒来
[00:40.27]この羽根(はね)を広(ひろ)げ 飛 (と)び立(た)つ 展开翅膀 飞向天空
[00:45.50]飛翔(はばだ)いたら 要是振翅高飞
[00:48.59]戻(もど)らないと言(い)って 我说过不会再回来
[00:51.52]目指(めざ)したのは 目标就是
[00:54.60]苍(あお)い 苍(あお)い あの空(そら) 蔚蓝的蔚蓝的天空
[00:58.74]突(つ)き抜(ぬ)けたら 如果能够穿越
[01:01.50]みつかると知(し)って 我知道能够找到
[01:04.68]振(ふ)り切(き)るほど 像竭力争脱那样的
[01:06.83]苍(あお)い 苍(あお)い あの空(そら) 向那蔚蓝的天空飞去
[01:10.42]苍(あお)い 苍(あお)い あの空(そら) 向那蔚蓝的天空飞去
[01:13.64]苍(あお)い 苍(あお)い あの空(そら) 向那蔚蓝的天空飞去

完整版:
见 我的生活娱乐blog http://lmnsky.blog.163.com/blog/static/3236928720089534937316/

又看到有人引用了那段难懂的C代码,简单说两句

#include <stdio.h>
main(t,_,a)
char *a;
{
return!0<t?t<3?main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,”%s %d %dn”):9:16:t<0?t<-72?main(_,t,
“@n’+,#’/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#
;#q#n+,/+k#;*+,/’r :’d*’3,}{w+K w’K:’+}e#’;dq#’l
q#’+d’K#!/+k#;q#’r}eKK#}w’r}eKK{nl]’/#;#q#n’){)#}w’){){nl]’/+#n’;d}rw’ i;#
){nl]!/n{n#’; r{#w’r nc{nl]’/#{l,+’K {rw’ iK{;[{nl]’/w#q#n’wk nw’
iwk{KK{nl]!/w{%’l##w#’ i; :{nl]’/*{q#’ld;r’}{nlwb!/*de}’c
;;{nl’-{}rw]’/+,}##’*}#nc,’,#nw]’/+kd’+e}+;#’rdq#w! nr’/ ‘) }+}{rl#'{n’ ‘)#
}’+}##(!!/”)
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a==’/’)+t,_,a+1)
:0<t?main(2,2,”%s”):*a==’/’||main(0,main(-61,*a,
“!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m .vpbks,fxntdCeghiry”),a+1);
}

这段C代码的阅读可以考验读者作为地球人的毅力哈哈,是以前世界最难懂C代码比赛的一段代码~当时我看了好久才隐约明白过来~ 最近看到有博友发了这个,简单分析两句~
这段代码之所以难以理解主要是因为 1)尽可能的利用递归,2)分明就是只有putchar输出字符而已,却故意把字符串搞成很难阅读,3)把逻辑分支都搞成问号冒号的形式。。。分解的第一步自然是把绕眼的字符串先砍掉。

去掉双引号的部分先分析逻辑
双引号故意乱眼的部分是:
“@n’+,#’/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#
;#q#n+,/+k#;*+,/’r :’d*’3,}{w+K w’K:’+}e#’;dq#’l
q#’+d’K#!/+k#;q#’r}eKK#}w’r}eKK{nl]’/#;#q#n’){)#}w’){){nl]’/+#n’;d}rw’ i;#
){nl]!/n{n#’; r{#w’r nc{nl]’/#{l,+’K {rw’ iK{;[{nl]’/w#q#n’wk nw’
iwk{KK{nl]!/w{%’l##w#’ i; :{nl]’/*{q#’ld;r’}{nlwb!/*de}’c
;;{nl’-{}rw]’/+,}##’*}#nc,’,#nw]’/+kd’+e}+;#’rdq#w! nr’/ ‘) }+}{rl#'{n’ ‘)#
}’+}##(!!/”

“!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m .vpbks,fxntdCeghiry”

去掉以后,把问号冒号和递归逻辑展开,这里比较麻烦,因为实在套了不少。
但先不用展,我们也能分析一些东西。我们知道,要控制递归结束,嵌套执行的次数运气好的话会在程序里找到常数。暂且假设作者没有变态到连这个控制用的数都隐藏起来了,试着从表面查找它。程序中大小比较只有“<”,查找所有的“<”,发现变量和常数比较的时候出现的正数只有13,又因为程序中没有出现递减1,但有很多递加1,可以感觉到,貌似是循环13或12次输出什么东西,而具体输出的东西自然应该和那两段乱人眼的引号之间的字符串有关系,因为连续重复的字符貌似没太有,所以可以暂时先试着排除作者要输出某种字符组成的图形的可能性,往后再展开程序具体分析那两段怎么变成正常的地球语言~ 有空的朋友可以具体分析下哈~ 不过感觉这个过程比较需要耐心~

运行结果是:

On the first day of Christmas my true love gave to me
a partridge in a pear tree.

On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.

On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.

On the fourth day of Christmas my true love gave to me
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the fifth day of Christmas my true love gave to me
five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the seventh day of Christmas my true love gave to me
seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eigth day of Christmas my true love gave to me
eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the ninth day of Christmas my true love gave to me
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

有了结果,规则基本可以看见了,再倒回去分析可能会容易一些。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

刚才我在网上搜了一下这段文字,发现有人把这段程序解析成地球版本了已经~
以下程序来自这里

///////////////////////////////////////////////////////////////////////
//"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m .vpbks,fxntdCeghiry";
// !-------------------------------!
///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////
//
// @n'+,#'
// on the
//---------------------------------------------------------------------
// /*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/
//  first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth
//---------------------------------------------------------------------
//  'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!
//   day of Christmas my true love gave to me
//---------------------------------------------------------------------
// /+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!
//  twelve drummers drumming,  eleven pipers piping,  ten lords a-leaping,
//---------------------------------------------------------------------
// /n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!
//  nine ladies dancing,  eight maids a-milking,  seven swans a-swimming,
//---------------------------------------------------------------------
// /w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlw]!
//  six geese a-laying,  five gold rings,
//---------------------------------------------------------------------
// /*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!
//  four calling birds,  three french hens,  two turtle doves
//---------------------------------------------------------------------
//   nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/
//  and  a partridge in a pear tree.
//
///////////////////////////////////////////////////////////////////////

#include <stdio.h>

#ifdef __TURBOC__
#include <conio.h>
#endif

#define END_DAY     12
#define START_DAY    1

#if !(START_DAY>0&&END_DAY<=12&&START_DAY<=END_DAY)
    #error "error! START_DAY or END_DAY is not in range!"
#endif

const int START_DELIMITERS   =  0;
const int NUMBERS_DELIMITERS = 13;
const int GIFTS_DELIMITERS   = 13;

const char * decodeTbl=
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m .vpbks,fxntdCeghiry";
const char * cryptograph=
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l 
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# 
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' 
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlw]!/*de}'c 
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# 
}'+}##(!!/";

void decodeAndPrint(int d)
{
    const char *pc = cryptograph;

    while (d < 0)
    {
        if (*pc++ == '/')
        {
            d++;
        }
    }

    while (*pc != '/')
    {
        const char *p = decodeTbl;
        while (*p != *pc) p++;
        putchar(p[31]);
        pc++;
    }
}

void start()
{
    decodeAndPrint( - START_DELIMITERS );
}

void number(int n)
{
    decodeAndPrint( - (START_DELIMITERS+n) );
}

void dayToMe()
{
    decodeAndPrint( - (START_DELIMITERS+NUMBERS_DELIMITERS) );
}

void gift(int g)
{
    decodeAndPrint( g - (START_DELIMITERS+NUMBERS_DELIMITERS+GIFTS_DELIMITERS) );
}

void gifts(int g, int n)
{
    if (g < n)
        gifts(g + 1, n);
    if (g > 0)
        gift(g);
}

void printBible(int n)
{
#ifdef __TURBOC__
    static int temp = 0;
    if(++temp%5==0)
        getch();
#endif
    start();
    number(n);
    dayToMe();
    gifts(1, n);
    if( n < END_DAY)
        printBible(n + 1);
}

void main()
{
#ifdef __TURBOC__
    clrscr();
#endif
    printBible(START_DAY);
#ifdef __TURBOC__
    getch();
#endif
}

研究人员力图打开潘多拉的盒子,模拟大脑和地球的设计面临重重挑战

【2008.6】

根据Blue Brain Project(蓝脑计划)咨询理事会主席Robert Bishop的介绍,对人脑以及地球的气候进行仿真是科学上两个最重要的挑战。

瑞士Ecole Polytechnique的Fdrale de Lausanne以及IBM公司正在就大脑的仿真进行合作,这是一个起始于两年前的项目。NEC的Earth Simulator是后一个项目的主要构成部分。

“ 蓝脑计划为期10年,目前尚处于1.5阶段,仍然有很长的路要走,”Bishop这个位于日内瓦的咨询公司的主席在一次研讨会上进行的采访中告诉EE Times电子工程专辑,“它需要6至7个步骤,从哺乳动物链条上的耗子、老鼠、猫向灵长类动物以及最终人类的方向深入研究,每一个步骤要解决的问题会越 来越复杂。”

“如果我们能够精确地掌握人脑的结构和功能,那就相当可能最终在我们的半导体设计中模仿人脑,”Bishop补充说,“如果我们能够掌握地球的所有细节的构造和功能,我们就最终能够预测在自然灾害发生以前对它进行预测。”

Bishop预测,从现在开始10年内,设计工程师在针对特殊应用的集成电路(ASIC)设计中将分别考虑我们积累的关于人脑和地球的知识。这样的ASIC将被结合进更加广泛的系统,涉及标量、向量、现场可编程门阵列以及图形处理单元,以解决手头上的全盘工作,他说道。

要仿真的人脑神经细胞有1000亿并且神经突触超过了100万亿。“我们尚未对所有这些神经构建完美的数学模型,”Bishop表示,“尽管在一个小型且重要的构建模块——皮层柱上进行了很好的研究。”

对地球的仿真也是同样令人畏惧的任务。“无数的物质和材料混合在复杂的结构以及过程之中,构造层的运动、动态磁场、地球自转和公转、空间的天气以及本地的天气,这一切均会同时改变着地球的运行状态,”他说道。

Bishop表示,研究工作位于科学、仿真和超级计算这个三角形之内。IBM公司安装在加州Lawrence Livermore实验室的BlueGene/L提供478Teraflops的峰值速度。Bishop预计,在2008年底,超级计算机将超越Petaflop的标杆,并且将来的超级计算机将在未来十年突破Exaflop的瓶颈。

大脑和地球的仿真将利用日益增长的计算能力以及软件的进步,Bishop表示,最终产生可以被精确地建模和仿真的新的见识。

与此同时,各国政府和其它机构需要加快先进仿真技术的应用,这位未来学家表示,“大脑仿真器和地球仿真器最终将创建可商用的知识产权,但是,我们在短期内无法指望商业价值的产生。”

从计算机学习说起——始终实践和审视历史的观点

【2008.6】

从我用C写第一行程序到写这篇文,已经十几年,回想起自己小时候对计算机的狂热喜爱,到系统的了解点点滴滴,我感觉计算机所给我的很多东西已经超出了编程和电子设计本身,很多时候有一种对历史发展和精神追求的感触。经常有年轻的朋友向我说学习计算机的困惑,不禁让我感觉现代国内校园教育对于计算机相关开发方面的理解太过机械、肤浅和浮躁,很多时候随兴自学反而要有效得多。
计算机世界的美妙之处在于,这个世界是人类构建的,你可以尽情的按你自己的想法去构建、改变和补充它。我推荐喜欢电脑的孩子按自己的想法疯狂编程,实现那些自己想实现的,从网页、普通应用程序、联网游戏到驱动程序、单片机程序、各种嵌入式系统相关的,什么都可以,只要你想做的,就想办法去做。在刚开始疯狂编程满足创造欲的时候,可以接触C语言然后看看<<Computer Systems: A Programmer’s Perspective>>,虽然书中涉猎的东西十分有限,并不是完整全面的,但是我感觉很适合初学者入门,因为作者始终站在稳固的平实的基础上讨论。我认为,塌实的接受一些较为稳固可靠的历史资料并不断的自己创意和实践是十分重要的。疯狂编程是我的计算机学习的第一个阶段,这个阶段我走了近八年,很多人可能没有时间像我这么变态,其实我觉得八个月也是可以的,术业有专攻嘛,和我一样变态的人将付出很大的视力和身体代价,对于正常地球人来说,即便有兴趣也多少有些不值得。有的孩子看了不少计算机的书,听了不少课,却没有一个自己完整的作品,我实在不知道这些孩子是怎么相信那些书籍和课程的,这正是国内教育的悲哀,人们总是相信口口流传的东西,而不用自己的实践去检验(尤其是在自己的角度来看不能通过缜密推理得到的东西)。我更倾向于在开发中但凡有疑问之处,都编程实际检验;除非是对非常权威的书籍中的疑问,那种时候就刨根寻底,找到问题的历史根源。计算机的很多知识是历史性的,一种理论的推广、一种方案的实施,很多情况下并不因为那是最好最艺术最完美的,因为在不同的历史阶段、在不同的开发环境,人们有针对不同需求的不同选择,有时候我们分明走了弯路,却还要按弯路走下去,那往往也是很常见的。

编程语言只是工具,目标是构建符合需求的工程、或者玩乐,任何达成目标的合法手段都是合理的。C是我个人喜好的最常使用的语言,可能是因为小时候的首因效应,也可能是我本性比较喜欢贴近cpu的工作,C++变成机器码的过程不象C那么直接,C++的编译还是比较复杂的。对于网上常出现的所谓诸如C语言的经典问题和面试题之类,我经常答复这样几句话:“这样的东西即便你不知道编译器所使用的标准,为什么不直接编译一下,看看cpu究竟怎样工作呢?如果你不确定这些问题,你又是怎么知道你不确定的呢?别人既然遇到了这些问题,他们又是在什么时候遇到的呢?你在怎样的体系结构平台上以怎样的标准是审视这些代码?”可悲的是,这些问题大多是口口流传而已,实际深入研究底层运作细节和历史出处的几乎没有。把现在互联网上流传的那些所谓的问题拿出来问问小孩子,激发一下学习兴趣是可以的,但是作为一个成年的程序员,我不认为掌握类似的东西有任何现实意义,因为给你一台工作的电脑,你可以用十几秒钟来验证类似的问题(如果工作需要的话,很可惜,大部分时候还是不需要的)。而对于C++,那几乎是人类花费时间最多的语言了吧,很多东西是艺术性的,欣赏C++的美妙是很多程序员所陶醉于的,主要的推动力是人的思考感觉和设计模式。可惜任何事情在人的眼中都没有尽善尽美,很多人从某些角度发掘他的不足,而以我的观点,并不存在真正的不足或完美,一切都是在人的感觉和需求中平衡选择取舍的,历史的发展就是不同观点和需求的动态平衡。至于如今的Java和C#之类,完全是一些观点配合当今社会需求的商业化产物。

在疯狂编程疲劳之后,我们审视经历的一切,把各种疑问不断刨根寻底,自然会去找计算机的历史源头,从早期的计算机工作原理,到现代的分布式计算和各种系统解决方案,我们会发现这个领域简直太庞大了,即便用我们的一生去阅读,也读不完。这正是计算机学习的第二个美妙阶段的开始——深耕 计算机历史和各种系统的各个层面运作细节。我还在这个阶段不断的学习着,不知道能走多久,这期间,我在业余时间不再多写以往那些娱乐性的程序,我只尝试那些难以调试的、比较神秘的、或带有历史阴影的部分。到现在为止,一切都源于我最初对计算机的热爱。

不管怎样,计算机只是人类生活的一部分,也是我生活的一部分。说实话,小时候,那简直是我精神的全部;而现在,比重已经减少了好多,因为生存的需要、责任和感情的需要,我不得不放弃一些爱好。对我来说我会觉得惋惜,就好比人面对死亡,回头看着幸福的人生,又有谁能一点都不惋惜呢。我有时候真想变成一台不死的机器,去探索宇宙里我们还未知的奥秘,而这种探索的心情本身又是什么呢,那是我们无法理解的递归感,就像小时候望着蓝天和星空一样。在这种空虚和无助里,顺着我们的好奇,始终实践和审视历史的观点给我们很大的慰藉,或者说是暂时的麻醉。但不管怎样,我那样幸福的度过了我的青春。如今的我已经是高度近视,身体像很多辛苦工作的中年程序员朋友一样脆弱,我再一次辞掉工作拿起一些书,不知道将走向何方。

从地震想到的廉价应急通信网解决方案和生命探测器的实现

【发表于当年的汶川大地震之后】
sanicle写在前面的话:
首先祝灾区的所有人好运.
我们知道在地震中,互联网(Internet和电话网)和移动通信(手机网和各种AMFM无线电网)的中断带给人们太多不便,保持通信是十分重要的.我们所构建的通信系统或者说计算机系统对于人类社会的作用将会越来越重大,因为当我们每一个人都被部署在一个高效运行的网络上的时候,我们之间的联系能使我们获得更大的能力.在各种计算机系统解决方案中,如果按通信来分,系统无非部署在网络的各个结点,不同的结点有不同类型的计算机系统(一部电话,一台pc,一台服务器,一个voip网关,一个路由,一部手机 etc.).如何使我们的网络尽可能的始终保持运作?
1.适时建立足够健壮的无线互联网 保持应急通信
当地震发生时,光缆和电缆被破坏,有线通信很容易中断;而无线通信因为地面基站也容易被破坏,所以也很容易中断.我们更多的想到如何尽可能的保持无线通信,很容易想到卫星通信,但就我个人体会到的环境来说,个人利用简便设备进行卫星通信基本上还是很少见的.剩下的只有利用我们手里的手机等常用终端了,但是如果基站被毁坏了,我们如何继续和外界保持联系呢?自然会想到短距离p2p无线网.我们可以设计这样一种p2p双工无线网络,当网络覆盖范围最边缘的结点或一些结点能和外界取得联系时,所有网内的其他结点都可以将他们作为桥梁和外界取得联系.可以利用现今手机常见的各种类似wifi蓝牙,wimax的短距离无线通信建立网络,每一个终端都在网络中的所有其他终端上注册(并不绝对,可以设置一定的数量进行分片),任意两终端都可以互相通信,并且,只要有一个终端能和外界保持联系(所谓”外界”可以结合实际情况按不同的范围大小理解,更可以根据实际情况动态的改变网络自身的大小以适应通信需求),所有其他终端都可以借由这个终端(将其作为网关)和外界取得联系(暂不考虑性能问题和具体动态分片的复杂性),另外做专用的抗破坏能力强的这种网络和外界联系的基站,在容易发生破坏的位置专门设立.一旦建立这样的应急网络,即便附近的基站全部毁坏,密集度相对较高的人群也可以暂时互相通信.再结合GPS,我们可以通过这样的手持终端方便的进行互相定位.这种以尽可能保持通信为第一目标设计的p2p网络模型在Internet中已有实现的先驱,这里我不方便具体点名~大家也应该想到是什么了~~这种网络虽然对结点性能要求较高(因为协议势必比较复杂),但其健壮性极强,其最直观的理解就是,每个结点都尽可能的和附近的结点手拉手,并且始终尽自身的最大努力为别的终端服务.如果将其开发成一个基于短距离无线物理层的网络协议,在人口密集区发生地震或战争等灾害时,势必会成为我们强有力的救援导航工具.
2.生命探测器的实现
下面简单介绍一下现在灾区常用的生命探测仪的实现(日本是地震超级多发国家,他们肯定不缺这种东西,而我们大陆的行业圈里很少有听说哪个公司做这个开发的,而实际上多储备一些这种大天灾后救命的东西是必要的…生命探测仪做得成熟的话,应该可以区分老鼠等小动物和人的生命反映区别,这里就不再多写),本来想自己写一个,后来发现网上有文介绍,直接转来.以下内容为转载:

地震几乎将汶川夷为平地,到处是残墙断瓦,大部分人在地震中来不急逃生被压在废墟之下。如何快速的救援被掩埋在废墟下奄奄一息的伤员,成为救灾的焦点,但也是难点。除大型机械的缺乏,随着时间的推移,生命迹象也越来越弱。消防队员为了及时发现废墟下的伤员,广泛使用一种高科技救生仪——专用于搜救灾难中被困人员的”生命探测仪”。 通过这种探测仪,可以探测人力无法到达的区域是否还有人员被困,从而实施援救。在分秒必争的营救工作中,生命侦测仪可以帮助搜救人员迅速准确安全地发现仍然存活的遇险者, 从而为营救工作争取到宝贵的时间。

生命侦测仪可以即时移动侦测, 可以透过混凝土,砖, 雪, 冰和泥浆,专用于震灾、雪灾、泥石流等大型自然灾害。生命侦测仪移动探测系统是一个由以下主要部件组成的传感器,它包括一个发送超宽频信号的发送器、一个侦测接收返回信号的接收器、一台用于读入接收器的信号并进行算法处理的电脑,传感器包含了可编程的固件。传感器产生的信号通过无线传输传送给掌上电脑进行显示。传感器和控制器有各自相互独立的电源。原文地址:

http://www.industrialcontrols.eetchina.com/ART_8800523153_2500007_NT_8eaca3d9.HTM?click_from=0,0,2007-12-21,EETCOL,ARTICLE_ALERT

 

简单的说生命侦测仪实际上是一个呼吸和运动探测器(sanicle补充:当然还应结合热源探测,红外)。它的工作原理是:雷达信号发送器连续发射电磁信号,对一定空间进行扫描.,接收器不断接收反射信号并对返回信号进行算法处理。如果被探测者保持静止,返回信号是相同的。如果目标在动,则信号有差异。通过对不同时间段接受的信号进行比较等算法处理,就可以判断目标是否在动。生命侦测仪是通过测试被探测者的呼吸运动或者移动来工作的。由于呼吸的频率较低,一般每秒1到2次,就可以把呼吸运动和其他较高频率的运动区分开来。相比其他救生系统除了无法穿透障碍物侦测移动外,大部分的系统,例如摄像系统,侦测的范围非常有限并且只有在移动的遇险者进入摄像机镜头或传感器的视野后才能报警。基于音频的侦测系统大大受限于距离,障碍物,残垣以及遇险者是否还强壮和清醒到能够发出声音。

HP新发现改写教科书,传说中的“忆阻器”得到证实

【2008.5】

惠普实验室(HP Labs)的资深院士R. Stanley Williams不久前成功地证实了有关”忆阻器(memristor)”的学说──所谓的忆阻器是指电子电路中除了电阻、电容与电感之外的第四种被动元素,早在1971年就由美国加州柏克莱大学教授Leon Chua所提出,不过当时仅是初步发现,直到日前才由HP正式发表。而此一成果也意味着相关教科书必须重新改写。

 

忆阻器概念的创始人Chua表示:“我的处境跟1869年发明化学元素周期表的俄罗斯化学家Dmitri Mendeleev很类似;Mendeleev当时假设该周期表上有许多失落的元素,而现在所有的化学元素都已经被发现了。同样的,来自HP Labs的Stanley Williams发现失落的电路元素──忆阻器。”

 

Chua当时是以数学推论电子电路在电阻、电容与电感之外还有第四种元素;他将之命名为忆阻器的缘故,是因为该元素会透过电阻的改变“记忆”电流的变化。而现在HP则宣称发现了首个忆阻器的实例──它是由一片双层的二氧化钛(bi-level titanium dioxide)薄膜所形成,当电流通过时,其电阻值就会改变。

 

“此一新发现的电路元素可解决今日电路学上的许多问题,因为当其尺寸缩小,其性能也会提升。”Chua表示:“忆阻器可实现非常小的纳米组件,且不会产生现今将晶体管尺寸缩小的过热问题。”

 

HP已在其超高密度纵横式交换器(crossbar switches)中测试过以上元素,该交换器使用纳米线(nanowires)达到在单芯片中储存100Gbits容量资料的记录;而目前最高密度的闪存芯片则可储存16Gbits的资料。

 

“我们花了多年时间寻找应用在超高密度纳米线纵横式交换器中的最佳材料,以实现在一平方公分的面积内容纳1,000亿个纵横闩(crossbars)的目标。后来我们发现,最理想的材料就是忆阻器。”Williams表示。

 

Williams除了是忆阻器以二氧化钛为基础的材料的主要发明人之外,亦是HP成立了12年的信息与量子系统实验室(Information and Quantum Systems Lab)的创始主管;他所率领的研究团队并将该材料的配方最佳化。

 

Chua则表示,在过去的37年来,忆阻器所遇到的障碍是电子电路学说中一个普遍的错误想法──即被动电路中,有关电压与电荷之间的基础关系。研究人员认为,电压与电荷间的基础关系,应是在电压的变化值,或称电通量(flux),与电荷之间;而这也是让HP能研发出电阻器的关键原因。

 

“电子理论学者在这些年来都使用了错误的变量比对──即电压与电荷;事实上,电子理论所遗漏的一个部份,是有关电通量与电荷之间的变量比对。“Chua表示,以上的错误观念与亚里斯多德运动定律(Aristotle’s Law of Motion)的谬误十分类似,该定律认为力与速度(velocity velocity)应该是成正比的,但两千年之后牛顿(Newton)指出其错误,表示亚里斯多德用了不正确的变量,力应该是与加速度(acceleration)成正比;加速度是速度的变化值。

 

Chua指出,以上的例子与今日电子电路学中的错误观念如出一辙,但所有的教科书给的信息都使用了错误的变量,即电压与电荷;事实上,电压与电荷间的基础关系,应该是在电通量与电荷之间才正确。

 

HP曾在多年前邀请Chua前往发表其学说,不过当时并未透露他们正在积极寻找忆阻器;直到最近,Williams才告诉Chua,他已经使用了正确的变量,也就是电通量与电荷,发明了世界上第一个可以运作的忆阻器。

 

忆阻器的运作模式类似一个带着内存的非线性电阻(non-linear resistor),可做为一种尺寸小巧且高能源效率的存储元件。不过Chua与Williams表示,忆阻器是一种新型态的电路元素,可制造出的新组件会是大家无法预料的。

 

Williams与其研究团队所发明的首个忆阻器,是以两层三明治型态的二氧化钛薄膜为基础;做为一种记忆元素,其运作方式是透过耦合该种材料中的原子运动与电子运动,来改变薄膜的原子结构。

 

HP所使用的底层材料,是由钛原子与氧原子组成的对称晶格(lattice),可做为良好的绝缘体;但顶层则掺杂了氧空缺(oxygen vacancies),使其能成为导体(空缺越多导电性越好)。HP在二氧化钛中制造这种氧空缺的秘诀,是使用溅镀沉积法(sputter deposition)产生大量的氧,然后再削减氧气流量产生空缺层。

 

透过在三明治层的上方与下方放置纳米线纵横闩,电荷就会穿越该材料。Williams指出:“我发现忆阻器材料的方法,就是透过研究二氧化钛传感器的运作模式;这让我想到,可以透过移动该材料内的氧空缺来制造忆阻器。”

 

Williams表示,对该组件通电之后,就能推动材料层中的氧空缺到没有氧空缺的地方,因而改变其电阻系数值达1000以上,将忆阻器“开启”;而若将电流逆转,让氧空缺回到原地,就可“关闭”忆阻器。

 

就像Chua所预言的,Williams已经在计划利用HP的纵横闩结构,研发超越一般内存的全新型态组件。“如果我们用快速猛烈的方式来对忆阻器通电,它的运作方式会像是数字组件;但是如果我们用缓慢温和的方式来对其通电,它就会像是模拟组件。”他表示,该团队已经利用其纵横闩结构,设计了一种同时具备数字与模拟功能区块的新型态电路。

 

Williams透露,在模拟功能的那部份,他们希望能创造一种以忆阻器为基础的模拟计算组件,其运作方式类似人脑神经元突触,执行功能控制时会以比较对照的方式来进行,例如判断某样东西的尺寸比另一样东西大或是小。

 

该研发团队尚未建立一个神经元网络,不过相信在其纵横闩的模拟功能部份应用忆阻器,将可对神经元网络有很大助益。

 

HP计划在2008年稍晚公布其忆阻器材料的运作细节,以及该研发团队已经最佳化的、在不同型态电路中的纳米级纵横式交换器架构。“忆阻器不只可做为现有内存组件的替代品,也可望应用在人们从未想象过的各种新型态组件中。”Williams表示。

英雄无敌5人类城堡haven拉丁文背景音乐赏析

下载 Town-Haven(扩展名改为z01,和其他包放在一起解压) Town-Haven

这里的附件就是魔法门之英雄无敌五的人类城堡背景音乐.从初中玩英雄无敌第一部开始,我就十分喜欢这个游戏.后续的几部中,除了第四部因为学业繁忙没有接触,其他的都比较了解.我认为这套游戏是游戏文化中经典之中的经典,其所蕴涵的各种内容可以说是一部魔幻派欧洲中世纪风格的大作,也正是因为这个游戏,让我对古代欧洲文化产生了一定的兴趣.英雄无敌五中的人类城堡音乐很迷人,当然其他英雄无敌中的城堡音乐也有十分动人的,大家可以搜集欣赏.

英雄无敌5的作曲是green street工作室完成的(网址是http://www.greenstreetstudios.net/site.html,看看他们的作品,真是个了不起的工作室),美妙的旋律真是让人心醉.和英雄无敌5中其他城堡不同的是,人类城堡haven的背景音乐是有歌词的,这个歌词我听了几遍,感觉不像是我们现在说的英文,就在网上搜索了一番,没想到真的有人已经找到了这个歌词的出处.

下面是我从网上搜集来的这支曲子中歌词的渊源——莫扎特的《安魂曲》.需要说明的一点是,我听过莫扎特的安魂曲,就在写这篇文之前刚刚又听了一下,英雄无敌5中借鉴歌词的部分和安魂曲中对应的部分的曲调并听不出什么相同,那曲子应该完全是green street工作室的杰作.

以下内容全部是转载

现在来谈谈我听到的人类城堡的背景音乐所唱的内容(拉丁文)

Lacrimosa dies illa, 那些充满悲伤的日子

qua resurget ex favilla 将随着尘埃扬起的时刻远去

judicandus home reus. 有罪的人将得到审判

Huic ergo parce, Deus, 主啊,给他施以您的仁慈吧!

pie Jesu, Jesu Domine! 仁慈的主耶稣基督!

Dona eis, eis requiem! 赐予他们安息!

Amen. 阿门!

前面一段是之前比较舒缓的

后面一段是比较快的

——————————-

(以上是我下午自己反复听了OGG文件后翻译的 以下是晚上的新研究成果)

把自己听出来的结果搜了下 发现…

是Mozart(莫扎特)安魂曲的第六章

下来我把搜到的原文和他们翻译的版本贴出来

《6. Lacrimosa 哀憐頌 》

Lacrimosa dies illa

當那痛哭之日

qua resurget ex favilla

罪人從灰燼中

judicandus homo reus:

復活受審判。

huic ergo parce, Deus.

以慈愛對待他們,哦主。

Pie Jesu, Domine, dona eis requiem.

耶穌慈悲的主,賜他們安息。

Amen.

之后有网友要我听主题和LOADING时的音乐

主题画面和LOADING的时候唱的应该是文件夹里的MAINMENU-THEME,我初步听下来开始是重复”Dies irae, dies illa,solvet saeclum in favilla”两句

意思应该是”这一天,这愤怒的一天,最终将把世界毁灭成灰烬”

用这两句去我上面提到的安魂曲里搜 果然在”《Ⅲ. Sequenz 續抒詠 》

《1. Dies irae 末日經》”部分搜索到了

后面高昂的男女高音应该是末日经的剩余部分

所以完整的应该为”Dies irae, dies illa,

solvet saeclum in favilla,

teste David cum Sybilla.

Quantus tremor est futurus,

quando judex est venturus,

cuncta stricte discussurus”

全文的翻译我就偷懒粘贴那个安魂曲网站的了” 震怒之日,這一日

世界將被燒成灰燼,

正如大衛與西維拉所預言的。

將會有如何可怕的顫慄,

當審判來臨時

深受嚴厲的苛責。 ”

因此 这个游戏里的背景音乐都应该取自莫扎特的《安魂曲》(sanicle注:应该仅是歌词取自安魂曲) 有祈求上帝宽宥死者 在末日审判的时候让死者的灵魂安息之意 而HAVEN作为一个典型的中世纪欧洲风格的城 自然很明显的也属于”Christianity”(基督教文明)的象征 也加入了其中一段歌词 这是所有城市的背景音乐(TOWN THEME)中唯一带有歌词的了吧~

怀旧用dx7的一个踢小球的2D游戏demo

【2007.12】
下载
这个包里面有编译好的小游戏,这个小游戏的VC6代码工程,以及使用到的3dmax模型.
ps.这个demo写得很烂,仅仅是为一篇感怀以往的回忆录存在的 o(^3^)o,,,
最近因为又要离职踏上新的道路,有空整理了一下以往的代码,从在dos时代用TC写的飞机打小球游戏,到初中时候BASIC的猴子打香蕉代码分析,windows9x时代VB5写的日记本,高中的时候用VB6写的数学函数图线绘制,VC6用dx7 api搞的这个小游戏demo,VB6写的ssa字幕时间戳软件,到.net出现后用C#写的聊天室,用j2me结合asp做的类似移动qq的手机聊天软件,用jsp1.0做的初期的3mn.net…等等等等..我在闲暇时写的pc上跑的软件攒起来也算有不少,主要以windows上的代码为主.从一堆堆的代码中,我回忆着各种程序陪我度过的美好时光,和现今在社会与学校混比起来,往日平静的学习和研究生活感觉要好得多,我的人生 从小时候刚接触计算机到从事开发工作 因为那些带着感情的小程序而充实幸福起来~
给我感触最深的要算是几个带着不少感情的小程序,可惜这几个小程序都写得很烂哈哈 XD, 这个gamedemo是其中之一.记得当时我读了一本蛮厚的Andre Lamothe的书,具体的名字不太记得了,墨绿色皮的,讲使用directx的2d游戏编程.当时我十分喜欢游戏编程,构建一个游戏的时空很能满足我的创造欲.这个小程序的编写没有使用C++,而是以C为主,我记得那本书中的demo程序也是用C的好象..其实一直以来我更喜欢用C,大概是因为和硬件方面的控制接触多了,用C++总有一种摸不到cpu的感觉,而用C在熟悉的cpu体系上不需要编译就能知道对应的汇编大概是什么样子,都怪我对C++造化不够,其实到现在为止我都不熟悉STL,让我用C++我完全不会考虑到模板,就如同用早期的java写程序一样的感觉.之所以对这个小demo很有感情,主要是因为所有的美工都是我自己做的,为了画那两个小人,我还专门研究了一番3dmax哈哈,真是很麻烦的记忆哈,当时本来以为不看书也可以很快上手这种大众化的软件,后来折腾了好几天觉得麻烦,还是买了一本3dmax的参考书 =_=bb ..看来尽管有点经验,一些想法真正实施的时候,事情往往都不像想象的那么简单.
这个小demo实话说写得很烂,现在看来,代码罗列严重,复用性差,技术含量很低.真想不到那个时候的自己居然还写出了如此烂的程序,我本以为高中以后我的编码水平没有什么进步的,现在回头看一些代码才发现,大学以后的进步还是有的,哈.现在看来,不管是算法上还是模式上,这完全是一个失败的工程,大概是因为当时我并没有详细阅读linux kernel等一些比较优秀工程的代码,程序完全是堆出来的,寻迹也是使用最白痴的算法,和小学初中时的水平没什么两样.后来用C做工程逐渐习惯用结构中的函数指针的形式来模仿面向对象,这种习惯对我的工作选择有不小的影响,前两年所做的嵌入式系统底层开发工作中,我也一直热忠于使用C的面向对象开发.有点扯远了,总的说来,就是只要保持开心奋进的状态,平淡人生中的每一步都会是有进步和有意义的.
让我有感触的不仅仅是这个小游戏,还有很多其他工程..不过相比起来比这个写得还烂,哈哈(^0^),不过都很有感情,以前都是想到一个什么应用,就顺手写个方便自己用的小软件,比如记得上大学的时候我在战部渡的家魔神论坛还有狂客动漫论坛的时候(现在狂客论坛还在http://bbs.enetxp.com http://comicdna.com ),我搞过几集动画片的字幕,当时ssa的字幕脚本时间戳和特效还专门写了个软件..现在很多动画片字幕组都有自己的特效和时间戳软件,年轻的地带总是充满新鲜活力的哈~ 说到这里,我应该感谢全国各地所有的朋友对我以往写的一些小破东西的支持~不管是发布在哪里的,有人用的东西好歹是米有白做哈~也感谢所有漫友以往在各个动漫论坛的吐槽八卦交流,你们给了我很BT的动力~ 不管如何,我觉得既然活着,就感恩的活着,充满活力的活着,BT的活着,个性的活着,享受生命的幸福.
说到最后,可以download运行下这个破烂demo,感受一下这个无聊game哈哈~ 按上下左右方向键可以滚屏,选小人和控制他们走动就和其他即时战略游戏里一样哈,他们踢小球小球可以撞掉砖头…没做游戏结局 = =bb…

在EP9315(arm920t)标板外扩can总线控制 其他ARM9可类比实现

【2007.10】
压缩包里有原理图和对应的linux标准字符设备驱动程序,原理图中的标号与edb9315a标板中的标号对应.
汽车总线can在工业控制中因其低功耗优于ip互联网,因其性能优于传统485等总线,越来越受应用开发和系统集成者青睐.这里给出一个在arm9平台ep9315实现的can总线外扩的解决方案.方案将常用can总线控制器sja1000t挂在数据总线,使用一个外部片选和两个gpio控制,提供了在linux2.4的sja1000字符设备驱动程序,实现sja1000在peliCAN模式下(支持CAN2.0)的can数据侦收发,经测试可以正常使用.
像类似的扩展在arm9或其他应用中十分常见,最常见到的是一些arm9结合dsp ic的平台,它们也是使用这种方式,以前我做过一个2410控制ac488的ip电话方案就也是如此.一般的控制扩展都是将外部控制ic挂在数据总线,用cpu的外部片选,gpio或地址总线组合控制时序.在linux系统中,对这种扩展经常使用常规字符驱动程序编写具体的时序控制,为应用软件提供控制接口.这里给出的sja1000驱动程序十分简单,和其他此类的应用类似(简单的实现sja1000的初始化,开辟一个小数据缓冲,实现can总线数据的读写,request一个irq,处理sja1000发出的中断).
在开发中主要遇到的问题有以下几点.
一是对peliCAN模式下can2.0b扩展侦的收发尝试,因为sja1000对于29bitID数据侦那部分数据存储器是多出来交叠复用的寄存器,驱动程序想弄个标准数据侦和扩展侦复用的比较麻烦,懒得写了,给出的这个是写死了只支持标准11bitID数据侦的,如果需要扩展的can2.0b收发,就麻烦点自己再改改弄弄吧..
二是起初can总线连接线无法过长,才几十厘米就发不通了,很短的时候可以收发正常.我的数据收发测试是使用microchip的pic单片机pic18f2580外接2551can收发器直接与这里arm板外扩的can总线相连的,直接测线比较长时传输线上的扰波十分猛..最开始认为是端电阻没加会不会有问题,后来发现其实加不加似乎都一样,又怀疑了其他地方的干扰或不同的can收发器ic会不会带来兼容性问题,后来这方面也排除了..最后发现居然是电源干扰过大引起的,再次印证了那句话,”管什么不好,先查电源”..ft~
这个ep9315平台扩展can总线的方案主要用于以下网络模型:
一个ep9315的系统作为核心结点,下面通过can总线接很多单片机板做成的结点,一个个单片机结点可以控制或采集一些io等,而这些单片机又通过一定的协议被核心ep9315结点控制,这样一个ep9315结点就可以通过can总线控制和采集很多io或其他信号(如rs232,spi,iic etc.),而ep9315自身的接口如uart,spi,iic等也可以另外单独使用,每个ep9315结点实际上相当于一台嵌入式工控机.多个9315的核心结点再用以太网连接组成局域网,最终数据汇总到一台互联网上的服务器,服务器可以分别控制各个ep9315结点(一般直接使用普通tcp连接即可,不同操作系统间进行socket通讯).整体形成一个低功耗高性能的优质工业控制网络.实际上类似的网络我几年前已经实现过一个(以太网和485,没用can总线),当时没有项目可以具体应用,所以后来搁置不理了.
ps. 在写这篇文的时候ep9315的所有开发资料是在cirrus logic网站公开的,不需要签什么保密协议就可以全部免费download到,其实大多数厂商都是很开放的,包括atmel等,用9200的时候获得资料也很容易..不像marvell那么变态,搞几片破arm还要签保密协议,鄙视(-n-)…cirrus logic本身做的开发十分到位,这也是我喜欢用9315的原因之一哈~

转篇宋宝华的Linux设备驱动编程之内存与I/O操作

还是十分不错的,最近看了一些相关的代码,想找篇比较系统的应用笔记,搜了一搜,发现宋兄有这么好的文~ 不用自己写了,直接转来~
操作IO和总线上的设备是很多情况下最基本的必须操作.我搞过的机器人玩具操作步进电机,ARM9扩展CAN总线等,都是通过普通字符设备驱动直接操作地址和数据总线或GPIO来和外设交互.这篇文对使用linux系统的设计来说很有用~

无线传感网络专用IC有多节能?5号电池可支持工作5年

【2007.10】

硅谷的风险公司GainSpan开发出了面向传感器网络用途的节能无线LAN用IC,目前已开始向部分厂商供应样品。这款无线LAN用IC的特点是能够大幅降低待机时的耗电。在消耗电流最小的待机模式下,1.8V工作时为2μA,3.6V工作时为5μA,耗电量仅为数μW,相当于以往产品的1/10~1/100。10mm见方芯片集成了RF收发电路、MAC及基带处理电路,还将微控制器也集成到了该芯片中。
GainSpan是原任职于英特尔的技术人员为开发传感器网络用半导体,于2006年9月创办的风险公司。最初从事ZigBee/IEEE802.15.4规格收发IC的开发,之后转向了无线LAN规格IC的开发。其原因在于“ZigBee和IEEE802.15.4的基础设施尚未得到普及。也就是说,即使制造相应的芯片,能够应用的市场也非常有限。另一方面,无线LAN的基础设施随处可见。尤其是美国,各种场所都有能够利用无线LAN的区域(热点)。因此我们认为,制造能够使用无线LAN基础设施的传感器网络用芯片肯定会有很大的市场”。

但是此前的无线LAN用芯片在待机时的消耗电量也高达数百μW,无法直接应用于传感器网络。为了在传感器网络中利用,消耗电量需要达到使用5号干电池可连续工作两年的程度。

为此,GainSpan开发出了待机时的消耗电流与ZigBee芯片相当,仅为几μA的收发IC。“使用我们的芯片时,在1分钟只收发1次数据的情况下,使用5号干电池可工作5年以上”(Parmar)。耗电量的降低归功于彻底的电路架构改进和门控时钟。虽然该公司还未公布详细情况,但估计电路采用了待机时停止向乎所有部分提供时钟的结构。芯片内部的CPU内核采用两个ARM7,在嵌入主机侧产品时能够减轻主机侧的负荷。

新芯片的名称为“GS1010”。GainSpan计划把该芯片应用于工厂内管理、大厦内设备管理、家庭安全等用途。“只要有无线LAN接入点,任何场所都能成为传感器网络区域”(Parmar)。应用于嵌入产品所需的软件开发工具包也已开始提供。该公司计划首先使该芯片符合利用2.4GHz频带的IEEE802.11b/g规格,今后再推出符合高速版IEEE802.11n规格的版本。未来还希望嵌入手机等产品。 

从算法开始从零编写的RSA密钥生成和文件加密软件

【2006】

下载 textrsa

源代码包下载 sanpack_rsa_vs2003sln_src

后来我也在华军发表过这个软件 http://www.onlinedown.net/soft/46622.htm

底层用C++实现,上层界面用C#实现.VS2003的工程.

 

里面包括我的五流本科毕业论文,回头看看真是2到无语,论文里不能提到“本文”二字不知道是哪来的规矩,还有那蹩脚的英语摘要,要把汉语逐句对应过去,真是脑残没有极限,我自己译的不蹩脚的被否了,这个摘要是软件生成加哪个同学改的,居然合格。

不过这个软件里有几个可借鉴的地方,一是C++大整数运算类,二是C接口dll在C#古老版本的引用。

 

我05年在2410标板上写的时间片多线操作系统

旧版本下载 SanOS_public_0.1_s3c2410x 往下看,有更新过的
有GUI(640*480),
可以把2410的lcd信号直接接adv7121做成VGA输出接显示器显示.
有英文和数码字库,
带有串口鼠标驱动程序,
支持时间片均分调度,
支持有优先级的64个线程
代码/ADS工程
年代有点久远,
我自己的备份找不到了,
网上居然有转载的要收费才能下,真晕~
这份是拜托arronwu兄提供的,
在此十分感谢 🙂
构建这个小系统主要参考了WinCE4.2的nboot和uCOS2系统内核.
———————————————————————-
今天是08年3月20号,我今天突然发现,去年放这里的这个版本GUI不带字库…
昏迷..把大家给忽悠了…@_@
实在不好意思,我自己也不知道,今天找到了05年9月的版本,对比的时候突然发现的…
下面赶紧放出我今天收拾旧电脑硬盘找到的05年9月的比较新的版本,
这个版本是我当年参加电子设计比赛的时候修改的,
连比赛的试题和我做的示例也一起提供给大家了,都在里面.
新版本下载 SAOS_2410

诺贝尔物理学奖授予“巨磁电阻效应”发现者

【转自以往的博客 2007.10】

瑞典皇家科学院近日宣布,法国科学家阿尔贝-费尔和德国科学家彼得-格林贝格尔,由于先后独立发现了”巨磁电阻”效应而共同获得2007年诺贝尔物理学奖

获得今年诺贝尔物理学奖的两名科学家在基础研究中发现,像三明治一样被”压”在一起的几种薄膜材料在磁场环境中出现”巨磁电阻”(GMR)效应。这一发现揭开了硬盘革命的序幕。

IBM公司将这项基础研究成果用于硬盘开发中,于1997年生产出第一个应用”巨磁电阻”技术的硬盘。随着这项技术的产业化,硬盘的块头越来越小,信息存储量越来越大,价格快速下跌。

“巨磁电阻”技术通过改进硬盘的读取磁头,催生了这场硬盘技术革命。磁头的读取灵敏度越高,硬盘的单碟容量也越大。单碟容量上去了,硬盘总容量自然会有提高。正是由于采用”巨磁电阻”技术,电脑硬盘的存储能力与日俱增。如今,内置上百G容量的硬盘已成为电脑的标准配置。

看看你的计算机硬盘存储能力有多大,就知道他们的贡献有多大。由于“巨磁电阻”效应,易使器件小型化,廉价化,除读出磁头外同样可应用于测量位移、角度等传感器中。此外,利用”巨磁电阻”效应制成的随机存储器,具有可在无电源的情况下继续保留信息的优点,已成为手机、数码相机、MP3等电器必备的存储元件。

 

GMR效应也是量子计算机研究的重要推进。

在点阵lcd上显示上位机点阵字模库中的汉字字符

我在2006年开发usb电话的时候,需要将上位机的点阵字库中的汉字显示到电话机的屏幕上,本文略去usb传送汉字编码,显示控制等数据的自定协议不谈,仅说明一下一些常见的字符编码转换.
我需要做的一个工作是: 用字模软件提取一个gb2312字符点阵集,将windows程序中字符串使用的汉字从点阵集中找出来,把点阵数据送到单片机以显示.
我们用VC6编写的应用程序中使用的汉字字符串(比如使用一个lpstr),在编译后以机器内码的形式保存在应用程序中.我们需要将机器内码转换成汉字在字模软件提取的gb2312点阵集中的位置.
首先需要将机器内码转换成区位码,这一步只需要把机器内码的高低字节分别减去0xa0即可.然后我们需要通过得到的区位码,找到对应汉字在gb2312字符点阵集中的位置.
假设每个字符点阵汉字都是16×16大小的,一个汉字站用32字节.设我们得到的区位码为AB,A为高字节,B为低字节,则我们需要的”对应汉字在gb2312字符点阵集中的位置”(即对应的汉字点阵数据开头离整个字符点阵集开头的字节数,下文简称”偏移码”),根据gb2312和区位码的编码规则,可以通过如下计算获得:
 [(A-1)x94+(B-1)]x32
=[Ax94-94+B-1]<<5
=(Ax94+B-95)<<5 …①
根据以上的论述,可以得到VC6中汉字字符在内存中使用的机器内码直接转换成字模偏移码的算法:
设机器内码位CD,C为高字节,D为低字节.
有 A+0xa0=C, B+0xa0=D.
代入①得:
 [(C-160)x94+(D-160)-95]<<5
整理出最快式得:
 (Cx94+D-15295)<<5 …②
由②知:
 对应汉字在gb2312字符点阵集中的位置=(机内码高字节x95+机内码低字节-15295)<<5;
其他可能需要的是一些windows api可以直接提供的转换,还有就是简单的三字节utf-8与unicode的转换等,只需要简单的移位或加减操作即可完成.
在usb电话上显示出好看的楷体和宋体汉字字符后,喝了口茶,感觉很不错~

ST7565小黑白LCD在单片机上的使用

这是我在2006年USB电话开发中的显示屏幕驱动笔记的摘抄.
Skype-usb电话一般使用小黑白lcd,我选了一些lcd,最终确定使用了一款ST7565核心的点阵lcd,屏幕大小是128×64.本来想选oled的,可是成本比较高,我06年问的一个双色128×64大小的oled一般卖到17块左右,用不起中= =b.而同样大小的lcd一般只有10块左右.
这里首先说一下我选lcd调试时遇到的一些问题,帮助大家少走一些弯路.因为单片机的io往往比较有限,所以我们在选这种小lcd的时候往往使用串行控制的lcd,一般都是标准的spi接口的.而一些初次尝试驱动小lcd的朋友通常回想到,在没有spi的单片机用io模拟时序略显复杂,所以想直接选用并行数据控制的lcd,这种小黑白lcd往往使用一组8位的数据总线D0–D7来交互显示数据,看起来io写时序控制比较容易.我起初也是用了一款并行数据控制的lcd,然而却没调试成功.问题出在时序的匹配上.我们必须考虑lcd所能接受的最慢时序单片机性能是否能满足.如果单片机不仅仅用来显示,而还要同时完成一些其他的必须及时进行的操作,这个问题尤其突出.所以,最终我的感觉是,能用spi则用spi,否则也还是用io模拟串行时序做起来简单一些,否则一但遇到性能问题,将十分棘手.一般来说,如果你纯粹使用io做时序,连接一个使用ST7565核心的lcd需要使用至少5个io管脚,分别接lcd的信号SI(串行数据),SCL(串行时钟),A0(数据指令选择),RES(复位),CS(片选).
下面说一下ST7565P的使用中遇到的一些问题.首先,lcd要使用一般必须外部接电容构成正倍压电路,有了pump才能显示.我在开发usb电话时使用了一组datasheet上说明的4倍压电路.在用电容时遇到了问题,一般我们调试的时候喜欢焊接直插件,而电容一般有极性.很多ST7565P核心的lcd在管脚标识的时候,正负号与电容的正负正好相反,所以出现调试的时候倍压不能的情况,一般显示器的厂商会提醒全部使用无极性电容,一般直接用产品化后设定的贴片电容来焊接即可,不需要刻意买一些直插的.
我使用的holtek hr82a832r单片机来做的usb电话,这个片子有现成的spi接口,所以使用lcd不需要使用io模拟,比较容易.用io模拟时序的方式我也试了,完全可行.用单片机的spi记得调整SCL上升沿还是下降沿锁定数据,否则这样的低级错误被遗忘会浪费不少时间迷茫~ 其他时序完全参照mcu和lcd核心ic的datasheet搞定即可.
一般屏幕的初始化和显示测试程序可以向lcd提供商索要,他们一般有pic或是普通51的测试程序.有了初始化的demo做起来省很多时间.这里还要补充一点,如果屏幕初始化了不显示,各种电气信号又都测量出正常,不要着急,调整一下lcd的显示亮度.我一开始就是因为lcd的显示对比度设置不妥当,导致全是黑屏.对于ST7565P,微调指令是0x81 0xmm (mm=00–3f) 粗调指令是0x2n (n=0–7),我使用不同厂家的屏幕,发现显示对比度设置后,效果差距较大,一个设置0x0d 0x26正好,一个需要设置0x0a 0x27才可以,第一个屏幕使用第二条设置会几乎黑屏.
调试ok以后,显示几个图形,心情很不错.

站点今天终于重新开放了

经过一系列折腾,站点终于重新开放了。

以往的各种内容都已经存档,未来会继续放出全新的各种开发研究资料。

需要以往的任何东西随时邮件联系我即可。祝大家学习工作愉快~