平时我喜欢逛各种各样的网站,但实在是受不了各种纷乱的信息的烦扰,所以最近一直在用RSS阅读器来订阅我经常逛的内容。

其中也包括一些我挺喜欢的微博博主,但是微博这东西,本身肯定不会做RSS输出这种吃力不讨好的东西了,而且许多获取微博的接口都需要先登录,DIYgod 基于微博秀组件的接口做了个 转换工具,但不支持全文查看和图片,不太满意。后来发现了“微博看看”这个网站,但我实在是受不了它奇奇怪怪的排版,所以我写了个PHP写了个优化排版的程序,效果勉强能接受吧。但这一大堆正则表达式组成的代码真心恶心,难以维护,而且基于第三方网站来做的东西我始终都觉得不够稳定。

阅读全文 »

最近有许多师弟师妹们问入门 C 语言和 C++ 的时候练习代码应该装什么软件

根据老师和前辈们的建议以及我这一年的折腾经验,在 Linux 系统下学习 C 语言和 C++ 的话那真是极好的,但是鉴于现实的情况(例如 Linux 系统的命令行操作对于一个暂时对电脑不是非常了解的人来说可能一开始不太好上手),很多东西还是需要在 Windows 下进行。

在 Windows 下编程,大多数人用的是“宇宙最强IDE”—— Visual Studio (ps: IDE 是集成开发环境的简称),VS 的确好用,基本把你需要的东西都准备好了,然而装过的人都知道,装这东西有时候可以折腾你一下午,没设置好的话可能一下子装了几 GB 现在的我们还不知道是拿来干什么的东西。

师兄推荐了 Code::Blocks 这个相比 VS 更纯粹的IDE,但我觉得可以更简单。

所以我推荐 文本编辑器 + GCC 编译器 这个无敌组合,用来入门已经足够了。以后我们写相对复杂的项目的时候,再用 IDE 来帮助我们更好地组织我们的代码,我想这样会更好。

阅读全文 »

整个4月折腾一堆事情搞得焦头烂额,也不知道自己究竟做了些啥,总有些莫名的焦虑挥之不去

看看时间,4月30日,想想来到广州也有大半年,竟然没有好好出去逛过,更不要说吃了,传说中的“食在广州”呢

心血来潮想出去走走,想在江边吹吹风散散心,也许可以让自己好点儿吧

好在地铁站就在宿舍旁边,随手背起包就走,搭着人头涌涌的3号线,到了广州塔

五一的广州塔同样也是人头涌涌,看看墙上的票价,在网络中心干一个月助理的工资都不够上去一次的

从塔底出来走到珠江边,没有风,不过海心沙在对面。我想走过去看看。<!--more-->

IMG_20170430_101340.jpg

环顾四周发现,竟然没有一座桥可以到对面的,地图上不是画了吗???

再掏出手机看看地图,噢,原来那只是地铁的APM线而已,桥?不存在的╮(╯_╰)╭

还好,APM的地铁站就在3号线的旁边

第一次搭上这个传说中的无人驾驶、全程2块钱的地铁

相比3号线的人头涌涌,这里要安静许多,列车的车厢也只有两节

到了海心沙,似乎没有开放,算了,还是到花城广场走走吧

广州图书馆在花城广场旁边,同样也是人头涌涌

IMG_20170430_103835.jpg

找了个位置坐下,旁边一个大叔面前放着好几本“大数据营销”的书

似乎“大数据”,“机器学习”之类的名词在这几年都好热门啊

发现笔记本也在包里,掏出来打开,电量99%

......

不过就是换了个地方写代码而已

阅读全文 »

继上次我写了个PHP脚本抓取我的一卡通消费记录(用PHP爬取个人一卡通的消费记录)之后,我遇到了一些奇怪的问题。比如说,我统计上个学期的一卡通的花费的时候竟发现少算了400+RMB,百思不得其解。直到前段时间我才发现,原来学校的这个网站查询到的信息是不完整的,有些记录竟然会有缺失,后来我请教了负责这一块的老师,老师表示大概是学校里面某些一卡通的消费机离线时间太长,消费记录没有同步到服务器上,所以造成了这个问题。

所以我花了一晚上重新设计了一个启用了宏功能的Excel表格,写了个vba脚本一键补全那些缺失的消费记录,顺带加上了一键计算每顿饭的总花费的功能(在华师的食堂一般是先在售饭窗口买完饭之后,再去一个个窗口分别点菜,所以消费记录一般都比较零散,一下子不好计算每顿饭的花费。)

使用方法:
把脚本得到的 result.csv 表格复制到这个文档中的对应位置,然后点击按钮运行vba脚本,程序将自动把缺失的记录补齐(只能补全价格和余额,其它信息还是需要自己脑补),并算出每个就餐时段的花费。<!--more-->

步骤:

1.清除文档中原有的内容
清除内容

2.复制result.csv的数据
复制

3.粘贴数据
粘贴数据

4.运行脚本
点击按钮

5.计算完毕
计算完毕

然后就可以愉快地记账啦!!

有兴趣的小伙伴们可以试试:一卡通账单计算.xlsm

这里不得不吐槽一下,要玩 Office 的话,Windows系统还是离不开的(貌似只有Windows下的office才对vba有完美的支持),无奈的我在这Ubuntu上安了个Windows 7的虚拟机。

VBA代码参考

'
' 一键计算 Macro
'
' 首先删除之前的记录
Sheets("Sheet1").Range(Cells(3, 5), Cells(Sheets("Sheet1").UsedRange.Rows.Count, 5)).Clear
' 查找缺失的消费记录
Dim a, i, j, k, total
a = 0
For i = 2 To Sheets("Sheet1").UsedRange.Rows.Count
    If (Abs(Sheets("Sheet1").Cells(i, 2).Value + Sheets("Sheet1").Cells(i, 3).Value - Sheets("Sheet1").Cells(i + 1, 3).Value) > 0.01) Then
        'MsgBox (i)
        Sheets("Sheet1").Rows(i + 1).Insert
        Sheets("Sheet1").Cells(i + 1, 3).Value = Sheets("Sheet1").Cells(i, 2).Value + Sheets("Sheet1").Cells(i, 3).Value
        Sheets("Sheet1").Cells(i + 1, 2).Value = (Sheets("Sheet1").Cells(i + 2, 3).Value - Sheets("Sheet1").Cells(i + 1, 3).Value)
        a = a + 1
    End If
Next
' 更新状态
Sheets("Sheet1").Cells(2, 5).Formula = "=IF(ABS((C2+B2)-C3)<0.01,""正常"", ""异常"")"
Sheets("Sheet1").Range("E2").Select
Selection.AutoFill Destination:=Range(Cells(2, 5), Cells(Application.WorksheetFunction.Count(Sheet1.Range("C:C")), 5)), Type:=xlFillDefault
' MsgBox ("补全了 " & a & "个数据")

'
' 计算每餐的花费 Macro
'
' 首先删除之前的记录
Sheets("Sheet1").Range(Cells(2, 6), Cells(Sheets("Sheet1").UsedRange.Rows.Count, 6)).Clear

total = Application.WorksheetFunction.Count(Sheet1.Range("C:C"))
'MsgBox (total)
For i = 2 To total
    k = i
    j = Cells(i, 2).Value
    Do While (Abs(DateDiff("n", Cells(i, 1).Value, Cells(k + 1, 1).Value)) < 40)
        k = k + 1
        j = j + Cells(k, 2).Value
    Loop
    'MsgBox (k)
    'Cells(i, 6).Value = j
    Cells(i, 6).Formula = "=sum(B" & CStr(i) & ":B" & CStr(k) & ")"
    i = k
Next

MsgBox ("补全了 " & a & " 个数据并算出了每餐的花费")






阅读全文 »