爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 51063|回复: 166

【10.26清风故事会】忆那些年写的小程序【连载持续更新】

  [复制链接]

新浪微博达人勋

0
早起挑战累计收入
发表于 2016-10-11 22:32:09 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
        自从离开北京,离开一群好基友之后,就一直在感慨时光飞逝,不知不觉论坛都已经五岁多了,我作为一名大气专业的本科生已经工作六年多,从一个伪预报员变为程序猿也已经四年了,于是突发奇想,把我这些年业(不)余(务)时(正)间(业)写的小程序整理了一下,竟然发现写过不少,而每个程序到现在还是记忆犹新,因为都有一段小故事,现在想来也是挺有意思,于是打算开个帖子慢慢道来,不管有没有人看,我都会把这个帖子写完,毕竟这些伴随了我工作后的成长。

    No.1 我和老五@topmad 的基情

    看到这个标题不要懵,如果没有老五,我不可能一个人建立气象资料站,没有气象资料站就不会有这个论坛,所以,老五注定是我今生的好基友了。
    嗯,第一个要说的小程序就给好基友做的。    下面是软件的截图:

    ptu.png


    从大家的留言看来,似乎并不关心软件是干嘛的,而是更关心我跟某人的基情,嗯,有点长,只能浓缩一下了。
    我跟老五是2007年就认识了,当年在自习室,某人每天带着。。此处省略一万字,转眼间大学就要毕业了。
    那一年,大约在冬季,北京的某公司来到学校招聘,在准备面试的地方神奇的又遇见了某人,原来我们都投递了简历,都被通知参加面试!
    很快,面试结果出来,我们一起踏上了去往北京的T66,硬座,那时的我们对未来充满希望,好像这份工作我们会坚持一辈子!
    在北京实习的七天,白天上班,晚上一起挤在地下室谈人生,玩游戏!
    也许是地下室太潮湿了,老五还是决定读研!
    知道他决定的那一刻,我有点蓝瘦香菇!
    但是很快我就开始了工作,他也开始了烟酒僧的生活,因为做预报对我来说实在是难以产生兴趣,一有空就在琢磨着写点小程序,于是乎,公司里的小程序开始多了起来;烟酒僧的生活大家也是知道的,一大半的人应该都是在为论文奋斗,所以研一真的好无聊呢!
    于是,我们决定干点什么,我竟然开起了淘宝店。。。老五,还没想好要干嘛!
    在老五一次“调戏”我之后,我们决定做一个网站,嗯,就是后来的气象资料站!
    那时候,大概有一两个月,我们每天一到办公室,就是各种搜集资料,然后连接ftp,上传,然后在后台编辑详细资料,一直搞到大半夜,就这样,气象资料站诞生了,我们又开始在人人网进行各种宣传,现在回忆起来,那仍然是一段美好的时光!
    基情如何产生大概说完了,这款软件好像还啥都没说。
    如果没有基情,我怎么可能花上老长时间做一个几乎是免费劳动力的软件呢,这是在2013年,快毕业的老五被老板交待一个任务(那时候他整天苦逼的跑去野外种地),做一个能够自动发送观测命令的串口通信工具,要求能够控制他们买的一个观测设备,于是老五快疯了!那时候我刚进入程序猿的状态,就勇敢的跟他说,我来吧!
    来一张2013年老五的手稿(其实是程序的界面):
    1.png
   刚开始拿到这张图的时候,真的是一脸懵逼,我连串口是啥都不知道,竟然敢接下来!然后就是各种疯狂找资料,知道原来串口是数据通信用的,然后又对整个流程一窍不通,于是老五又送来了流程图:
    2.png
    嗯,一次次深入浅出的交流之后,我终于明白我要做什么了!
    于是水到渠成,软件很快写完了,老五也完成了老板的任务,于是他的老板一高兴,说给点劳务费吧!后来老五就拿着劳务费外加自己贴了几百大洋给我买了个SSD,到现在还在我的一个电脑上用着!
    今天更新差不多了,后来的几年,老五来到北京工作,我们又快乐的在一起了,可是现在似乎又反过来了!
    后面的主要就是介绍一些小软件了,还有为什么会有这些软件~

    No.2 我的第一个有界面的程序
    正式进入工作后,我是跟着两位某中心退休下来返聘老教授学习气候预测,每个月需要做一次下个月的气候预测,每个季度需要做下个季度的预报,每半年需要做下半的预报,最重要的是春季对汛期降水做预报(没想到四年后还能记得这么多,看来没白学)。

    说到这里,想起了带过我的两位老师(真心感谢),这两位老教授各自的本领都很强,一个是擅长做统计,一个擅长肉眼统计(其实是经验)结合天气形势做延伸期的预报(好吧,预报的真本领我是真没学到)。But,这二位老顽童水火不容,一个办公室在这头,一个在经过长长走廊后的另一头,这可就苦了宝宝我了,一天分成两半用,上午在这边,下午在另一边,要不然哪边都不高兴(怎么说的赶脚怪怪的)。

    我工作后竟然没想着要怎样提高我的预报能力,倒是对他们预报中繁重的体力劳动开始简化,比如计算温度降水的距平,原来是用excel半自动,我直接一个fortran双击一下搞定,47个站点每个月都要做大量的表格,我也是想尽一切办法让体力劳动减到最少。后来某中心常年使用的一台作图服务器“坏了”,我们这边连不上了,他们新版的系统两位老人又不愿意用,这可咋办呢,那时候我只会使用GrADS画图,我很确定他们需要的图形(月距平之类的)我通过fortran结合GrADS完全能搞定,可以怎么做出一个界面来呢?

    我想起来上学时候好像学过一门狐狸标识的语言,找啊找,想起来叫Visual Fox Pro,看了看,语法好像还有点印象,于是买了一本超级厚的书回来,开始啃,边啃边尝试,于是我的第一个界面程序就这样面世了,因为大部分是在业余时间完成的,所以就放到这里来回忆啦。

    写到这里,如果你是还没有工作的宝宝,请记得一定要做自己喜欢做的事情,这样你才能把这个工作长久的做下去,才能主动的去学习各种相关知识,当然,如果你只是想谋求一个混日子的工作,那就爱咋咋吧!

    下面就是这款小程序了:
    历史资料作图.png

    首先通过fortran程序更新数据,然后在界面上指定作图的相关条件,选择数据源,就可以出一张你需要的图了,这个程序如果现在让我实现,可能只需要一两天的时间,当时花了好几个月才完成。

    现如今这门程序语言已经落寞的不行了,也很少会有人选择去学习,但是程序真的都是相通的,当年写fortran程序积累的经验到现在仍然让我受益匪浅!5
   No.3 一个等值线分析程序
   今天要说的小程序就没有太多的故事啦,不过这是我第一次尝试自己实现一个完整的算法,对于我个人的意义还是挺大的。当时论坛刚建立不是很久,MeteoInfo那时候在论坛宣传的火热,射月楼主正在开帖子讲二次开发,我跟了几期教程之后,发现自己对你其中的等值线分析挺好奇,于是就自己搜集文献,并咨询了射月楼主他参考的哪个算法,于是楼主就把一篇年代久远但是讲解非常清晰的论文发给了我,照着文章里面的方法,大概花了整整两天的时间,我的第一个完整算法便实现了。

   当算法调试完成,等值线在屏幕上显示出来的时候,那种鸡冻的心情真的是难以言表的,这也极大的增加了我编程的信心,相信我有能力去做更复杂的事情。(下图使用随机数)

    bContour.png


   万事开头难,这句话是真理,一旦你开始做一件事,并且真正投入后,你会发现那段过程真的是最美好的,不管最终结果如何,你都不会后悔,即使没有得到自己想要的结果,你也会因此而收货颇丰!(这句话不仅仅分享给看到的你,也送给我自己!)

   当你不想开始做一件事,排斥一件事的时候,多半是因为你对自己没有信心,这时候你就不应该去顾虑太多,大胆的跟着感觉走,也许成功就在不远处。
    No.4 在线绘图,传说中的“云”
    这个大数据的时代,各种“云”满天飞,但是在四年前,这个概念还不是怎么普及,那时候因为要收集各种资料,所以经常上国外的数据网站,比如遇到过一个基于NCEP资料绘图的网站,界面非常简陋,但是功能却比较强大,用户可以选择一个数据集,然后设置各种绘图的条件,网页就会返回一张绘制好的图片。

    这不就是“云”吗?用流行的说法就是SaaS,把软件包装为一个服务对外提供,当时对这个网站很感兴趣,于是决定山寨一把,就有了这个在线绘图的软件。

    这也是我第一个网页程序,使用ASP.NET进行开发,可以将用户选择的条件转变为gs文件,然后在后台调用GrADS绘图,再把图片返回前台显示。

    曾经这个程序在论坛上线过(点我穿越),后来因为论坛人越来越多,服务器需要升级,在服务器搬迁到Linux系统下之后,ASP.NET的程序运行起来很不方便,于是就下线了,当年还专门为这个程序设计了一个论坛积分叫做水滴,还写了一套连接论坛数据库的代码可以使用论坛账号在那个平台登录。

    drawonline.png

    如今回想起来,这个程序还是有意义的,如果能够把数据源进一步扩展,操作流程进一步优化,不失为一个好的应用。
    No.5 一些在业余时间免费给公司写的程序
    爱上编程的感觉之后就一发不可收拾,于是利用业余时间捣鼓出好多小玩意儿,这些程序大多是为了解决某一种问题而生,因此功能比较简单,也适合新手来做。

    如果你也想学习编程,那最重要的莫过于动手实践了,任何书本或者网络上看到的资料,都无法给你带来实践那样直观的感受,而且在实践过程中,也会逐步发现自己的问题,这时候再看一些编程“思想”上的书,提高就会很快了。当看你去年写的程序,发现是一堆垃圾的时候,说明就有提高了。就好像我现在回头看这些程序的代码,虽然满满都是回忆,但是实在不能看下去,当时的思路依稀都还记得,如果现在让我实现,一定不是像当年那样的思路去做。

    下面这是一个提取城镇预报并显示的小程序:

城市预报要素提取.png

    可以通过一个站点列表,把指定站点的城镇预报数据在界面中显示,并且以一定的格式进行输出,用户可以勾选需要显示的要素。功能很简单,但是在当时却非常的实用。

    下面这个是提取最高最低温程序:

    高低温筛选.png

    这个好像是把一系列的温度预报数据根据指定的阈值重新筛选,并且输出为指定的格式,输出后可以直接在Micaps中打开,这个主要是节省预报员手动筛选的时间,之前都是在Micaps中打开后通过一系列的手动设定来筛选。

    下面这个程序是当年为一个老师写的,说到这里就不由得伤心起来,这位老师曾经也给了我很大的帮助,可是如今却无法再见到她。当年我虽然没有跟她学习,但是因为我程序写的还可以,而她是做资料处理的,经常需要对各种数据进行筛选处理,所以我经常会给她写一些程序,我正式从事程序开发就是她推荐我去的,在这里,希望她在另一个世界过的好,在北京最后悔的一件事就是那天下午去加班,她给我带了一袋刚煮好的芋头,我后来没有记得吃而浪费了!

    地面天气现象提取.png

    嗯,今天就到这里,明天继续更!

    No.6 今天不能更新了,大家抱歉了,明天再续    真的No.6 用手机控制你的电脑
    也就是在我刚工作的那两年,安卓手机开始流行起来了,于是我也跟风学习了一把,哎呦,偏了,那个不是今天说的。今天说的是跟论坛也有些关系的。

    我们的论坛当年还是在windows机器上运行,记得是2003的服务器系统,因为资金有限(当时还没有开通充值,所以完全自己掏腰包),所以服务器性能不是很高,CPU和内存常常会爆满,所以当出现这种情况时,就要重启一下服务器,经常登录什么的好麻烦!

    于是我就想,能不能做一个服务程序,跑在服务器上,用手机监控服务器的状态,当达到一定程度的时候用手机发送一些命令给服务器执行(其实还有些别的想做的,要是光这个直接程序监控到后自动重启就得了)。

    这个程序使用了MSN作为通信载体,服务器上登录一个MSN的账号(使用了第三方的MSN库,直接集成到程序中),手机上登录另一个,用手机按照设定的格式给服务器发送消息,就好像聊天一样,服务器收到后会自动给出反馈,并返回命令执行的结果,有没有点像手机版的终端工具呢?(当然,那时候还没有现在这些东西,现在我在手机上直接就可以SSH登录论坛的服务器了)

    下面就是这个程序啦:
    手机控.png

    好像有人对基情比较感兴趣,那改天再八一八我是如何发现并把现在这些版主聚到一起,然后搞的一个个基情四射的吧!

    No.7 再来一个跟气象没关系的,飞信精灵(好俗的名字)这个小程序完全是当时短信耗费量太大了,就想着怎么用免费的飞信来发短信,还有上一个程序中的MSN必须联网才能用,但是短信在不连接互联网的时候也能收到,所以有些通知用短信来更合适,比如当服务器满足一定条件时候,就给指定的手机发个短信;当发现基友要嫁人时,额。。偏了。

    飞信精灵.png

    这个程序主要利用了鼠标模拟点击的技术,先开启一个迷你版的飞信在桌面上,然后当需要发短信的时候,由自己的程序去模拟点击那个飞信程序,通过win api往窗口输入文本,最后再发送并关闭窗口。

    编程在于折腾,这句话一点也不假!
    No.8 历史曲线显示 (C/S AND B/S)
    这个软件是我用c#写的第一个软件,当初放弃VFP学c#就是因为想编写一个这样的软件,那时候找了很多VFP的插件,但是都是很旧,不太好用(当时根本也没有能力自己写一个插件),才意识到需要学习一门新的语言,当时听说气象部门很多人使用VB,甚至差点学习了VB,之所以没有选VB是因为微软已经基本放弃VB了,在新版操作系统上的支持不太好,而VB.NET是为了推广.NET的同时又兼顾原来的VB用户,所以作为一个纯新手,还是学习c#吧!

    当初为了“讨好”带我的一个老师,为他编写了这个软件,从那个公司离职之后还给他升级了两次版本,这个软件是参考之前某中心的一个软件而制作,那个软件只能显示到2010年,再往后就无法显示了,所以就做了这个软件。

    这个软件做了客户端和网页端两个版本,功能基本一致,客户端版本更新数据更方便。

    lsqx-cs.png

    lsqx-web.png
    No.9 文件同步助手
    对于刚开始工作的人,表现欲望一般是比较强的,想让获得同事的认可,更快的融入到集体,大多都会很努力的去工作、奋斗(当然一年之后就不是所有人能坚持下去了),我当时也是很希望能把我业余时间学习的一些东西展示出来。

    终于有了一个机会,一直在整个局大院都可以用的Micaps数据共享盘被限制访问的IP了,需要申请才能使用,而我们公司,当然没有这个权限使用了,后来经过领导申请,总算开通了一台电脑的访问权限(那个公司的性质就好像省局下的专业台差不多的意思,所以能访问一些数据也是很正常的),不过这对于一个团队来说是远远不够的,于是就做了这么一个东西,可以在被开通的那个电脑上将文件实时的进行同步的自己的服务器上,这样访问速度就会快很多了,当然这个程序由于各种原因(非程序本身原因)最后没有使用,不过也是给我积累了不少的开发经验。

    文件同步助手.png

    同步分为两种方式,手动和自动,自动方式使用文件监听的方式实现,手动方式可以随时进行文件同步。这个程序在论坛共享过,感兴趣的可以自己搜索下~
   NO.10 曾经获得不少好评的转换工具
   这个小程序也是我用VFP写的,写这个程序真是折腾了不少,因为当时想写出一个高大上的程序,但是能力又比较低,所以就各种找资料,各种尝试啊,不过还是有所收获的。

   2010年6月,苹果发布了iPhone4这个经典的机型,由于当时还是穷屌丝(现在好像也是),根本没有那么钱去买买买,9月份,苹果发布了iPod4,这让我等屌丝看到了玩苹果机的希望,虽然乞丐版只要1500左右,但是当年也还是省了两月才省出来一个(坑的是年底公司抽奖,我又中了一个...),于是就各种找游戏、找应用。

    当年有个非常火的应用市场叫做91助手(那时候豌豆荚还只是长在地里的豌豆荚),越狱后使用这个工具可以直接安装各种程序,不过这个平台下载的程序是pxl格式的,而iTunes支持的标准格式是ipa格式,每次使用都要根据威锋网大神们的帖子一步步的手动转换格式,so,就打算做一个自动转换的(那时候也有可能自动转换的,但是要不是不能批量,要么就是步骤太复杂),于是就有了这个小程序。

    这个小程序的难点在于不规则的窗体(现在好多程序实现起来很简单,但是当时使用VFP还是很难的),还有就是后台调用winrar程序实现解压(当然现在看来也不是啥难的),还有就是真的当时很菜...很菜...,这个程序在威锋网发布后还是收到不少好评的。

   
pxl2ipa.png
    NO.11 第一次试着给论坛做广告
   关于论坛建站的话题,有一堆可以写的东西,以后有机会可以另开帖说明。
   第一次给论坛做广告是论坛成立大概一年左右的时候,那时候访问量已经很大,但是由于资金问题,只能使用比较低端的服务器,为了能够升级到高一点配置的服务器,决定在论坛上放一些广告,也是刚好当时有机会认识了个做气象公司的老总,一拍即合,虽然只是几百块钱,但是确实为论坛发展提供了不少的帮助。

   当然我要付出的就比较多了,除了在论坛挂一段时间的广告,连广告链接到的网页都是我做的,也就是做了个给他们宣传的网页,不过当时也是抱着积累技术的想法才答应下来的,毕竟那时候我还没有用html+javascript写过程序(asp.net的webform几乎不用写html),于是就有了今天介绍的这个小网页:

    drtc.png

   突然又想起建站以来的点点滴滴,想起了去年服务被黑时候的措手不及,想起了前几年为了找一个性价比高的服务器几天几夜的备份“搬家”...   今天是1024节,祝所有“伪”程序员们节日快乐,好人一生平安~
   No.12 继续.NET,第一次尝试silverlight,第一次尝试WebGIS
   WebGIS系统现如今在气象系统有大量的应用,以前主要有三种技术手段,以前用的最多的是Flex,比如挺久以前的Web版本的Micaps,也有用Javascript的,还有就是用silverlight的,但是目前最流行的还是用H5。

   大概是13年的时候,我开始正式开始做各种气象业务系统,于是就打算业余时间学习一下WebGIS相关的内容,之所以选择silverlight完全是因为自己最熟悉c#,当然这个小程序后来有人看中了,还稍微扩展了一下得到了一笔小收入,当然这是我所没想到的。

   这是一个台风相关的系统,可以渲染micaps7类(应该没记错吧)的台风数据,还可以渲染13类的云图,也可以分析等值线,然后填色等等,是一个小小的气象WebGIS开发模板。

    台风路径.png
   No.13 一个很傻叉的程序

   这个程序真的很傻,很2,还记得说跟老五基情的那一段吗,那时候因为对工作内容不怎么感兴趣,除了学习编程,还在业余时间开了个淘宝店,当时想的是方便自己和朋友充话费,后来想想为啥不干脆认真做一做,也许还能赚钱。

   开张了才知道,靠充值要赚钱实在太难了,大部分店家做充值都是为了刷信用,因为回款很快而且没有库存压力,所以基本都是亏本赚吆喝,于是就想法就变成了把信用刷上去,反正以后做什么都可以快速的开始(当时的排名跟店铺信用非常大)。

   于是就很2的做了这个工具,竟然也是用VFP写的,好吧,谁还没写过几个很2的程序呢:

    流量王.png

   就连名字起的都很2...

评分

参与人数 10威望 +12 金钱 +186 贡献 +35 体力 +547 收起 理由
dunbating + 20 清风大大真是有自己梦想并能坚持的人
fan_y_p + 1 很给力!
鲸鱼便子 + 20 + 2 励志!
四叶草 + 20 大大的故事很精彩!
风往北吹 + 30 + 10 + 200 赞一个!
林夕 + 5 + 30 + 10 + 100 原来大大这么早就这样~恩~和老五幸福快乐在.
才仔 + 13 + 1 + 47 一段情能埋藏多少年
二爷名声在外 + 2 + 22 + 2 + 200 么么哒!
又是那隻貓 + 5 + 30 + 10 + 200
兰溪之水 -200

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-11 22:59:50 | 显示全部楼层
mofangbao!!!!没想到你是这样的人!!!!10月4号那天在新街口橘子酒店你对我说的那些信誓旦旦的话这么快就忘记了吗?你在这里公然跟人秀恩爱是几个意思?我恨你恨你恨你恨你恨你恨你恨你!

点评

好像是金陵饭店吧!你到底跟几个人出去过,这都记错了!!!  发表于 2016-10-12 08:45
密码修改失败请联系微信:mofangbao
回复 支持 5 反对 0

使用道具 举报

新浪微博达人勋

发表于 2016-10-11 22:36:51 | 显示全部楼层
第一个!厉害了word大大!

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
mofangbao + 10 + 5 沙发一般都是真爱粉!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2016-10-11 22:37:17 | 显示全部楼层
卖情怀么
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-10-11 22:38:06 | 显示全部楼层
我不问你们怎么在一个被子底下的。。。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-11 22:45:16 | 显示全部楼层
这么说来,老五已经独身在北京了,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-11 22:45:56 | 显示全部楼层
看到了赶紧搬小板凳抢前排慢慢围观........
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-11 22:50:13 | 显示全部楼层
前排围观ing。。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-11 22:59:11 | 显示全部楼层
必须围观{:5_213:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-10-11 23:45:42 | 显示全部楼层
必须围观
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表