cabrillo.js的诞生

Cabrillo是一种运用于业余无线电竞赛的日志格式,在Github上找了一圈,发现有Ruby和python写的,想了想,不如用我比较熟悉的js弄一个cabrillo的解析库。

目前发布的是0.1.0版本,准备在重构后推出0.2.0版本。同样会在集成node-adif两个库后推出cli工具。
但是意外的是,我在国内外的ham论坛里推广了下发现没有这类的需求,所以在第一条issue出来前是不会开工的,相反大家对c++的解析更感兴趣???用electron封装不是更好???

实现的是cabrillo和json的互相转换,目前是兼容了CQWW,CQWPX,和ARRL标准模板的cabrillo和json互相转换。同时兼容浏览器和node环境

Github: https://github.com/YuYanDev/cabrillo.js

这是第一个写的有点像样子的js库,全部使用ES5标准写的,标准英文驼峰命名。

整个库编写难点就是在于Cabrillo缩进问题,呼号不足要用占位符补全。
但是js对空格的补全处理非常鸡肋,在html环境下得用 ,所以我单独封装了函数creatVariableQsoField来专门处理这个问题,这个函数将原始字符串,长度,对其方式传入,当字符串大于长度时抛出错误,不足时按长度补全空格后返回处理好的字符串。

关于json的处理的理解和能力提升了很多

在库的开发方面还是需要提高姿势水平啊

数字模式初体验FT8

数字通信一直是业余无线电发展的方向。今天说的不是DMR之类的数字信号,而是诸如FT8/JT65之类的数字模式。

传统上大家都是用SSB或者CW模式进行通联,或者有些时候也会用RTTY传统数传的方式通联。这些模式在目前日益糟糕的电磁环境下,已经很难dx或者有较好的通联效果了。而FT8/JT65这类新出现的数字模式,则具有更好的效果。

更具ham们的经验,借晨昏线40-60W即可无压力通欧洲,更多情况下,大家还是更热衷于FT8的QRP通联,具体的实际效果呢,hellocq等很多地方有很多记录啦,看着非常羡慕。

js玩家的数据库初体验

这学期的专业课有一门就是数据库。课也快上完了,但是我个人认为这是一门没有什么卵用的课程,忽略了实际运用,只讲理论,这也是我非常不爽的原因。

都8102年了,还TM在用SQL Server 2008。这和我个人风格是非常不符合的,在之前,高中时学习了Access数据库,而大学我一直在使用了MongoDB这类缓存型数据库,体验还是不错。这次我使用的是MySQL数据库,这是我比较喜欢的关系型数据库。

让我们定个小目标,写个电台日志!这可是非常简单了,一张表就能搞定。成品在: https://bg6tti.intl.moe/(懒癌的我没有更新)

业余无线电的初入门及常用网站

我这根香肠烤成火腿,大概经历了五个来月吧,现在准备FCC的Tech和General级别的考试,然后年底准备考B上短波

首先,什么是业余无线电

业余无线电(英语:Amateur Radio),也被称作火腿电台(英语:ham radio)是一种供业余无线电爱好者进行非盈利信息交换、无线通讯技术实验、自我训练、个人娱乐、无线电运动、竞赛以及应急通信的一项使用无线电频率频谱的无线电业务。其中“业余无线电爱好者”指“经过正式批准的、对无线电技术有兴趣的人,其兴趣系个人爱好而不涉及牟取利润(直接的利润或是间接的奖赏)”。业余无线电与商业广播、公共安全无线电(例如警用与消防用无线电)或者其他专业双向无线电业务(例如船用、航空和公众对讲机无线电)存在区别,业余无线电并非这些专业无线电业务的业余形式,也不是有关这些业务的业余爱好,而是一项独立的无线电业务。(Wikipedia)

自己可以设立一个自己的个人业余电台,是不是想想就兴奋呢?

不过业余电台和商业电台不同,业余电台不得广播,也就是只能和其他业余电台通讯,而且不得传播商业内容,这是非盈利的。

关于前端路由系统的简单分析与实践

你也许会在很多网站上看到他们的链接都是http://example.com/#/xxx的形式,而且加载速度非常快。如果你是React/vue/ng的开发者,那你应该也对这个东西非常熟悉。今天就分析一下hash路由的原理。

初次尝试WebAssembly

首先,什么是WebAssembly?

根据维基百科上面的解释:WebAssembly或称wasm是一个实验性的低级编程语言,应用于浏览器内的客户端。WebAssembly是便携式的抽象语法树,被设计来提供比JavaScript更快速的编译及运行。WebAssembly将让开发者能运用自己熟悉的编程语言(目前主要是C/C++)编译,再藉JavaScript引擎在浏览器内运行。

http://webassembly.org/

按照博主的理解,WebAssembly应该是种可以被浏览器运行的二进制程序。嗯

使用React,GithubAPI,Hexo,Travis-CI构建一个属于自己的博客

的确现在的博客就是基于这个思路打造的。纯粹的restful+单页应用的风格。

首先的Hexo部分,hexo本来是通过生成一个个目录的然后加入index.html实现的文章路径,得益于“hexo-generator-json-content”这个插件,它可以把所有文章信息,构造为一个json。这个json后面上传到github上便成为了最主要的api。

至于原来的目录,出于seo优化的需要,我们在page.ejs等模板上做一个重定向/post/postname ->/#!/post/postname

Travis-CI方面,主要是根据GihubAPI的特点,满足我们懒人的需要,只需要朝gitpage的一个分支上上传markdown,Travis-CI就会给我们自动部署发布到主分支上。我们hexo生成上传的东西也需要做些优化,毕竟,我们要的只是那个content.json和其他一些东西。

Github方面,不说了,就提供文件储存还有API。

关于React,接下来继续说

好久没有写博客了,来叙叙最近吧

最近踩了很多坑,然后用React 15,通过travis-ci来hexo生成一些json,结合github的api一起造了这个博客。
踩了很多的坑。以后慢慢在博客中叙述叙述记叙出来吧。

大学生活也是一言难尽,总之,我回来了

Nginx+FCGI编译安装+TCL/C++/shell的学习/安装调教

FCGI虽然是上个世纪的东西,但是缺了还真不行。在FCGI的编译安装方面Google都无法找到相关笔记文档。在经历了一下午的折磨后,才安装上了。我觉得应该写成笔记,帮助更多人少走弯路。

FCGI存在与epel和Ubuntu等源里,因此,大多数设备都能无痛安装。

但由于我的是CentOS armv7版的操作系统,不可能使用epel源,由于FCGI缺乏维护,所以在编译过程中,走了很多弯路。

nginx的安装查看我的上一篇博客的nginx安装部分即可。

首先我们来搞清楚一下,CGI相关的原理,如何编写相关脚本,以及使用这套组合的意义。