记第一次 hackathon 与反思

###报名
一周前,记不清通过什么渠道知道了这么一场黑客马拉松的活动,当然也叫创客马拉松。活动大概是这么宣传的:两天时间内,报名参加的选手想一些 idea ,然后可以获得现场导师的帮助,再经过好多轮迭代最后完成项目,做出产品,或者是 demo 。主办方在 SJTU 承包了个食堂做场地,然后我和一个小伙伴就乐呵乐呵凑热闹去了。

###Day one
第一天中午开始,到了之后进一步了解到,直白的说,就是那么多人产生一些创意,然后自由组队,然后做项目。但是作为一个没有开发经验的小白,实在不知道怎么办了,于是就思考一下别人提供的点子,感觉没有十分合适的,就准备随意聊聊天回去了。开始之前,有几位嘉宾导师发言,讲了些设计模式之类的内容,要我们着眼于‘大局’,而不是某种语言某种技术。这点还是值得思考的。

了解了Codingkata的概念, Codingdojo(结对编程),等等

下午,我和小伙伴先是和另一个人A讨论了一个题目。A想要用gcc来编译一种gcc本身不能编译的语言,甚至是自创的语言。于是引出了很多问题,产生了争论,对,就是争论。

在我看来这就是写一个编译器呗,当然,我还不会写。我的小伙伴的想法是:把这个语言(比如D语言)的关键字使用 C 的宏替换成 C 的关键字,这样转换成的 C 程序,在调用gcc编译。我觉得这个想法不是很可行。需要考虑的东西比较多,或许学完编译原理好后直接就写个简单编译器即可。A 自己也没什么思路,最后不了了之。

一位导师倒是提供了一个信息:Ragel State Machine Compiler. 这个开源软件好像可以实现一些上述功能。这个也留着以后研究。

傍晚时分, 准备离开的时候,遇到了两个创客,交谈甚欢,产生了一些基于硬件的想法,最后决定做一个简单demo,并且取名 Health Cloud,然后可以衍生这个‘健康云’的应用场景,等等。交谈的过程中,知道了LiveCode这种用于快速开发的编程语言,并且能转化为任何平台的原生程序。不过确实小众。

###Dat two
经过合计约十五小时的现学现卖,查找资料以及努力调试,终于做成一个简单的 demo ,现记录下来,以便日后还原以及改进。

###Demo所用到的硬件和技术

  • PcDuino开发板
  • 温度传感器,光传感器,信号的采集
  • 接入互联网的wifi信号
  • 七牛云存储空间,API调用
  • 基于python的实现,使用matplotlib库绘图展示。

其中温度传感器得到的数据模拟体温,光传感器得到的数据模拟脉搏,每隔40ms采集数据各一个,每20s采集的500×2个数据作为一组,并打包成一个文本文件。

文本通过PcDuino上面编写的上传API程序(七牛云)上传到云端。然后,PC端使用API下载云端的文本文件,绘制心率折线图,计算平均温度,并且每个反复请求云端,当新的数据产生时,更新折线图。end

###需要注意的几点

  • 七牛云API规则的学习,可以直接使用官方的SDK(python)
  • 每隔一定的间隔时间,循环上传和下载信息,并更新曲线图。

###可以改进的方面

  • 采集更加准确精确的数据
  • 如果可行,直接将电压值处理后生成相应的脉搏次数
  • 信息在云端的存储规则,考虑断点上传等;
  • 数据是否可以实时传输,实时的绘制曲线,而非存在时间间隔
  • 如果不使用现有云平台,而是搭建服务器,该如何实现

###体会&其他
这次知道了原来有那么多的hackathon活动,认识了一些创客,创客团队,以及一些有想法的人。一位创客对我说,这次的比赛流程一点也不好,不是24小时,不能通宵,每个2小时介绍项目进度这样不好,宾馆偏僻等等问题。我们增长了见识,知识,宝贵经历经验。我们还知道了国内纽约大学的hackthon比赛,可惜无缘参加。

最后,值得一说的是,晚上在宾馆通宵的产出比白天还要高,可能是白天在研究各种技术细节把。本来想顺便玩一玩宾馆的无线网络的,最后也只是进入了电信的猫,仅仅知道了可能的路由拓扑结构,没什么意思。看来网络知识还欠缺,不能像乌云前辈那般潇洒了。

顺便记录一个网址,可以解出猫的登录密码,留存。