坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Category Archives: linux

linux qq的问题,ubuntu的问题,linux常用命令的问题,都在这个分类里能找到解答.

BLUNO试用手记

准备工作 rmbp BLUNO ×1 Android 4.3+ Devices with BLE or IOS 7.0+ Devices Accessory Shield with Arduino ×1 Micro USB cable x1 http://freeware.the-meiers.org 下载安装简化串口调节工具CoolTerm。 通过AT指令配置BLUNO的蓝牙属性 1.把BLUNO上的AT开关,从NORMAL拔到AT 2.连接BLUNO到电脑,打开CoolTerm 3.CoolTerm -> Options -> baud rate -> 115200 -> ok 4. Connect 5. …

Continue reading

Posted in linux | Tagged | Leave a comment

arduino-蓝牙各种版本类型及费用对比

厂商 做单芯片系统和蓝牙模块的厂商主要有:Bluegiga(蓝兆),Texas Instruments(德州仪器),Nordic Semiconductor(北欧半导体),Cambridge Silicon Radio(CSR公司),Broadcom Corporation(博通公司),这几家公司,基本掌控了全球所有的蓝牙、无线、voip、音视频解码等核心技术。(技术门槛岗岗的!) 常见类型 2.1+EDR 2004年推出,2006年大量使用。 http://blog.sina.com.cn/s/blog_8a49cc8f0101b03j.html *此款为目前最好用的一款了。 3.0 2009年推出。升级的秘密在于,在需要的时候,其会调用wifi协议,传输速度提升8倍。 4.0(BLE) 2010年推出。低功耗、提升传输距离为60米。android4.3才宣布完整支持。 http://www.cnblogs.com/zdz8207/archive/2012/10/17/bluetooth_ble_android.html http://redbearlab.com/bleshield/ 北欧半导体生产,只支持从模式。 *此款为最烧包的款了。 费用 所有使用蓝牙技术的产品都应该通过BQB专利认证,才能拥有蓝牙技术的使用权,当然,国内是比较少人去做的,但使用了蓝牙技术的产品出口到欧盟、美国等一些发达国家,在通关时不能提供这个蓝牙BQB认证,货会被当地海关扣压,因为你的货侵犯了蓝牙的专利权。 蓝牙认证是没有期限的,只要您认证过的产品没有更改它的认证模块及软件版本,就会一直有效,

Continue reading

Posted in linux | Tagged | Leave a comment

arduino学习手记四:串行编程

前面几节介绍了一些常见的传感器使用办法,许多人一定会有一种困惑,如果要做一个arduino发微博的例子得怎么做? 本节不是教发微博的。 通过在pc上运行的程序去访问互联网,然后把数据通过usb返给arduino的做法,就是利用了串口的编程办法。 在第一节里(http://www.54chen.com/_linux_/arduino-starter-1.html),我们说到了arduino使用的主要语言是processing。 以下例子均在mac下试验通过,ubuntu应该差不多,windows不知道应该怎么搞。 Processing 这是一门目标群体类似设计师的编程语言,非常的极简,语法类似java,java开发者基本不用学习。其IDE:PDE也是极简到了极致。 PDE(processing IDE)的极简程度令人发指,用习惯了eclipse的同学上来就找的第一个功能就是自动完成,遗憾的是,人家的定义是给设计师们用的,看来工程师们还是回到eclipse的世界去吧。PDE is admirably simple。 十分想用代码自动完成功能的同学,可以试试在eclipse里完成代码: http://t.cn/zH3b2KP 其下载和安装都非常简单:http://processing.org/download/下载之后直接使用即可。以mac为例,长得和arduino的IDE基本上一样(应该是说arduino的和它长得基本上一样)。 开始互动之旅 打开PDE,代码如下: import processing.serial.*; String cs; String buffer = ""

Continue reading

Posted in linux | Tagged | Leave a comment

arduino学习手记三:八位数码管

上图是八位数码管里各二极管和引脚的关系。 一共两个正极(接+5v),剩下的8个脚,哪个是低电平时管就亮,于是就可以凑出来数字。这个小数点可以用来区分正反。 数字0数字1引脚对程序upload的影响 如果你将数码管接到了数字0和数字1上,那很遗憾,每次upload的时候,你都要拔下来才行。因为数据交互借用了这两个脚做事情。 如果你的IDE出现avrdude: stk500_recv(): programmer is not responding的提示的时候,注意看看你的数字0和数字1是不是插着东西。 八位数码管的连线 数字: a-12 b-13 c-2 d-3 e-4 f-5 g-6 DP-7 剩下的两个正极同时接到+5v上。 这里a和b故意让开0和1,方便开发过程,不需要拔来拔去的。 显示的代码 void num9() { digitalWrite(pin0,LOW); //显示9 digitalWrite(pin1,LOW); digitalWrite(pin2,LOW); digitalWrite(pin3,LOW); digitalWrite(pin4,HIGH); digitalWrite(pin5,LOW); digitalWrite(pin6,LOW); digitalWrite(pin7,HIGH); } 以上是一个数字9的显示。 完整的代码 以下是在第二节里的代码和连线基础上的加强版本 http://www.54chen.com/_linux_/arduino-starter-2-led.html。 …

Continue reading

Posted in linux | Tagged | Leave a comment

arduino学习手记二:写程序控制灯控制蜂鸣器红外

在上一节中,初步领会了基础精神,对电路板和ide有了一点感觉。 这里的目标是完成一个电路,通过红外传感头,用摇控器控制LED灯和蜂鸣器。 Arduino Libraries arduino库函数,是一堆c/c++写的代码库,一般用来做一些固定的事情,对arduino的能力进行扩展,有点像php里的各种扩展,当然你也可以实现自己的库。 在arduino代码中要使用库的时候,依次选sketch->import Library->xxx,它会自动在代码头上加上#include的代码。 同时,也可以下载一个library.zip包,依次选择sketch->import Library->add Library,然后就加入了新的库。 要在arduino IDE环境中删除一个已经引入的库,1.0.5及以上版本的IDE需要去~/documents/arduino/libraries下删除对应的目录(相传windows在C:/.../我的文档/arduino/libraries)。 IRremote库简介 官方网站:http://www.pjrc.com/teensy/td_libs_IRremote.html 作者:Ken Shirriff 作用:接收和发送红外控制的代码库 接线 GND接线略去不提,220欧电阻+LED灯之后,将LED接数字11。 蜂鸣器接数字10。 红外OUT接数字8。 这里要提一下,红外接收头的圆鼓包的一面面向自己,最左一脚为OUT,中间为GND,最右为5V。 如图所示: 程序 #include #define LED 11 #define BIZZER 10 #

Continue reading

Posted in linux | Tagged | Leave a comment

arduino学习手记一:基础知识

历史 arduino是一个商标。 2005年诞生于意大利一个设计学校。然后学生和老师们一起把它开源了。 教科书上一般说,arduino是一个开源电子原型制作平台,包括一个简单易用的电路板和一个软件开发环境。 它与android除了长得像之外,没有半毛钱关系。 开发环境 http://arduino.cc 这个算是官方网站吧,可以下载到开发环境。 http://arduino.cc/en/Main/Software 有各种环境下的,我下了一个mac下的。 版本号有1.0.×与1.5.×的,看上去1.0的就够用了,1.5系列的还是beta,怕遇到麻烦。看release note,1.5的似乎在有意兼容更多的东西。 下载就可以用了,一个小小的窗口。 认电路板 某宝上有各种品牌的版子,不过大家的基准是一样的: 14个数字引脚,这些数字引脚可以在程序中设置是输入还是输出。 GND 地线。 AREF 输入参考电压。 6个模拟输入引脚,这些引脚可以用来读取各种模拟信号的值,比如说读某感应器的值,在程序中转化为0到1023的值。 6个模拟输出引脚。 电路板可以接usb,也可以接外接的电源。 长得像这样,每个引脚下板上写了字,多余的引脚暂时还不知道做什么用的。 arduino IDE arduino的编程语言是一种叫做processing的语言改编而来的。他的作为是当你上传到arduino的时候,自动变成c语言。 代码 #define LED 13 void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LE

Continue reading

Posted in linux | Tagged | Leave a comment

scribe的生产实践总结

一、scribe是什么 scribe是facebook开源的分布式日志系统。这里两年前的使用手记。http://www.54chen.com/_linux_/log-server-scribe-helper.html。严格说它只是一个日志处理的节点,与分布式系统相比差很多复杂的节点间的控制过程。不过也贵在它很精简,不容易出现问题。两年多时间以后,线上还没出现过一例scribed自己crash掉的情况。 二、scribe遇到master挂掉 生产环境中一般配置为一个primary(type=network)带一个secondary(type=file),在遇到master挂掉的情况下,会直接写到本地磁盘。 这个设置有非常多好处,当远程的master恢复了,本地磁盘的这些个日志还会被scribe给送回去。 日常要监控这个事情的发生也很简单,一行脚本就可以: ALERT=`du -sb /tmp/scribe/|awk '{print $1}'` if [ ${ALERT} -ge 1024000 ]; then //alert fi 三、scribe自己挂掉 scribe自己挂掉要预防把业务堵死了,一定要用异步线程在写这个日志,如果本地的scribed挂了,那端口一定不在了,在new thrift连接的时候就会失败,可以在这个异步线程中去设定多久再重试,但这就是有损日志的了。 日常监控一般可以直接看端口还在不在,不过一般不会挂(两年多还没见过)。 比较文艺的做法可以用他给的ctrl.sh那个python脚本去读取scribed内部的perfcounter来报警。 四、scr

Continue reading

Posted in linux | Tagged | Leave a comment

移动互联网创业公司的服务器选择

小公司,三五个人,扯开嗓子开干的情况下,不妨参考一下过去我们淌过的坑。 1.网络 在中国,网络成本是比较贵的(包括托管费用)。分析你的目标用户,如果用户是特别集中在南方或者是北方,这能省些钱,多线机房还是很贵的。同时,移动互联网,特别是中国特色的情况下,各种运营商挂js,各种基站网络不通,如果所在的机房在搜索引擎上一条记录都没有的话,那会很惨,基本上你的用户在手机上是很难过去的。 如果是百分之百的手机上的应用后端,前期数据量不大的情况下,可以考虑租用一些双线机房的机器。搞大了再自己买机器吧,能省则省。 2.硬件 如果要考虑硬件了,说明你的业务量已经到一个阶段了,当然也不排除高富帅创业过程,上来先来一堆高端服务器的。 内存条:注意你买的机器的主板,主板与内存的配合至关重要。常见的三通道主板,尽可能使用三条相同的内存条,高端四通道主板,使用四条相同内存条。只求大内存,随便加大是没有意义的。 raid卡电池:注意你的raid卡的电池是否加电,是否开启raid cache,这一条在mysql db机器上效果相当明显。 ssd:可以考虑在db机器上使用一部分,app机器上完全不需要。 3.软件 操作系统:一次开放调查结果显示centos5和centos6是你不二的选择,投票地址在http://vote.weibo.com/vid=2087907。 常规开发的软件:这里有一系列的介绍 《谈谈创业公司的技术选型--朴素的技术观》 协议选择:移动互联网特点,手机或者其他手持设备会需要来服务器拿数据,所以这个桥梁的选择也是一个关键的步骤。一般http的穿透率是比较高的,但是要防各种地方运

Continue reading

Posted in linux | Leave a comment

scala入门手记

一、安装环境 localhost:~ chenzhen$ java -version java version "1.6.0_37" Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909) Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode) 如果java没有安装,需要先安装。此处略去N字。 http://www.scala-lang.org/downloads 下载最新的版本。翻墙自理。 $tar zxvf scala-2.10.0.tgz 解压后,添加环境变量到配置文件中。 vim ~/.profile (or .bashrc) export PATH=/Users/chenzhen/scala-2.10.0/bin:$PATH localhost:~ chenzhen$ scala -version …

Continue reading

Posted in linux | Tagged | Leave a comment

gitlab3.1升级4.0手记

在过去的几个星期,已经顺利在gitlab中开始了团队的代码合作。http://www.54chen.com/_linux_/github-gitlab.html 圣诞前后Gitlab发布了最新的4.0版本,感觉最大的改动有: 1.merge request的diff上的comment好用了 2.支持namespace,看上去是未来用来按team划分权限的 3.network界面的bug修复 以下记录了所有的升级过程: 所有过程完全按照https://github.com/gitlabhq/gitlabhq/wiki/From-3.1-to-4.0,任何一步都可以重复搞。 坑: 因为在之前由于好奇用管理员账号在后台建立了几个Group,这回namespace支持就坏菜了。 sudo -u gitlab -H bundle exec rake gitlab:enable_namespaces RAILS_ENV=production 会出现一堆错误。由它去吧。 然后所有的原来加的Group的project重新生成push吧。 铁一般的事实说明:一定要先在3.1下把groups设置去掉之后再来打开namespace支持。

Continue reading

Posted in linux | Tagged | Leave a comment
Page 1 of 101234510...Last »