bookkeeping 使用教程

一 介绍 一款开源永久免费的 webdav 记账 app 开源地址:https://github.com/sunbufu/bookkeeping 酷安地址:https://www.coolapk.com/apk/261672 特点: 开源且永久免费,欢迎监督,也欢迎 issue 和 pr 不申请多余权限,后台纯净 完全依赖 webdav,没有其他服务器,不会滥用用户数据 之前一直在使用圈子账本,刚开始还挺好,后来的广告越来越多,启动越来越慢,各种地方想变现,有点恶心了。找了一圈没找到喜欢的 app,索性自己用 flutter 开发一个,开源并放在了 github 上。欢迎大家下载使用,也欢迎大家的意见,更欢迎大家 PR。 二 配置 配置过程主要是对 webdav 的配置,我使用坚果云作为服务器,以下也以坚果云为例,其它服务类似。 2.1 webdav 创建目录 首先需要在 webdav 服务器新建目录 bookkeeping,用于保存 app 配置和数据。 2.2 创建 webdav 第三方账号 在【账户信息】>【安全选项】>【第三方应用管理】中新建账号,也可以参考坚果云官方示例。 2.3 在 bookkeeping 中配置 点击右上角菜单中的设置账号。 昵称:随便取 webdav url:webdav的地址【注意,此处需要加上目录名称,例如:https://dav.jianguoyun.com/dav/bookkeeping】 账号:webdav 的账户名 密码:webdav 的密码【注意,坚果云中需要点击"显示密码"复制出来】setting.png 至此,配置已经全部完成,enjoy it :) 三 导入导出 TODO. 四 关于

May 2, 2020 · 1 min · sunbufu

authorize(基于注解的权限认证框架)

一、是什么 很多项目都会用到权限管理,目前流行的权限框架(Apache Shiro,Spring Security等)在使用的时候都觉得很繁琐,特别是在一些小型的项目中。有时候我会想,如果通过注解的方式,直接把权限注解到访问的接口方法上那该有多好。 authorize就是一个为了解决这个问题,通过注解配置权限,借助拦截器进行权限检查的一个开源权限框架。使用起来就像下面这种感觉。 @Access("manage") @RequestMapping("index") public String index() { return "this is index page"; } @Access是这个框架的注解。通过注解配置权限的方式,解决权限认证的问题,不管是写代码还是读代码,都感觉更清晰了许多。 二、如何用 2.1 快速使用 可以参照示例authorize-demo 2.1.1 引入maven依赖 <dependency> <groupId>com.github.sunbufu</groupId> <artifactId>authorize-starter</artifactId> <version>1.0.0-RELEASE</version> </dependency> 2.1.2 实现IAuthorizeService 在IAuthorizeService的实现类中,至少应该实现3个方法: 登录方法:登录成功后,把用户信息存放到session中 鉴权方法(authorize):通过比对用户和请求方法的权限,返回该用户是否可以访问 鉴权失败方法(authorizeFail):用户没有权限时,需要进行的处理方法 登录: public User logIn(String userName, String passWord, HttpSession session) { User user = users.get(userName); if (!user.getPassWord().equals(passWord)) { return null; } session.setAttribute(USER_SESSION_KEY, user); return user; } 鉴权: @Override public boolean authorize(String[] access, HttpSession session) { User user = (User) session....

June 13, 2018 · 1 min · sunbufu

S_MarkDownEditor

S_MarkDownEditor(-一款MarkDown编辑器) 0、写在前面 在网上查资料的时候,发现一个很有趣的现象。很多开源项目的READERME都是用MarkDown写的。很好奇这是个什么玩意,然后在强大的国产谷歌—百度的帮助下突然觉得这TM不正是我苦苦追寻的“东西”吗? 以前写文档整理资料只能通过word或者什么叉叉笔记,所以也就不得不花费很大的精力在文档格式、字体颜色等完全没用的地方。一直很苦恼,但是对于此也是无计可施。MarkDown的出现让我看到了一丝“光亮”。好了,不扯这些没用的了,如果到现在你还对MarkDown没有一个具体的认识,可以出门左拐自行百度。 但随之出现了另一个让我很是苦恼的问题,就是在Windows平台下找不到令人满意的MarkDown编辑器。我也尝试百度了许多工具,Such AS,叉叉PAD,CMD叉叉。要不就是死活在我电脑上罢工,要不就是网页应用,再要不就是卡的我受不了,让我完全找不到MarkDown的感觉= =。 “为什么不自己写一个呢?",这个想法也吓了我一跳,但是谁叫我年轻来。写就写吧,正好最近在学习Java。 就这样终于经过一段时间的冥思苦想、求助百度、以及压迫键盘后就有了现在的这个版本的S_MarkDownEditor。虽然功能算不上强大,甚至还有很多的BUG和垃圾的地方,但是毕竟“能用”了。哈哈哈哈 1、简介 目前这个编辑器没有什么太强大的功能,甚至还很“弱小”,但我还是尝试对传统MarkDown的语法进行了点稍微的“本土化优化”,让他能更好,更强的出现在我的应用列表里(因为本人比较狭隘,写这个软件的目的只是为了自己写MarkDown的时候方便点)。 1)首行缩进 首先是首行缩进,因为MarkDown是外国人规定的,而在英文的语法中并没有像中文段落首行的那种首行缩进,所以我稍微做了一点处理。效果如下: 传统段落显示效果 缩进后段落显示效果 首行缩进的作用在这里就不一一描述了,有兴趣的朋友还请自行百度。 2)表格 其次是在MarkDown的标准语法中,如果你想使用表格有两种方法。一种是你用其他方式生成表格后截图然后插进来;另一种是使用HTML的语法<table>...</table>,很是繁琐。其实现在的很多MarkDown编辑器都支持下面这个语法了 | row1 col1 | row1 col2 | row1 col3 | row 1 col4| |-----------|-----------|-----------|-----------| | row2 col1 | row2 col2 | row2 col3 | row 2 col4| | row3 col1 | row3 col2 | row3 col3 | row 3 col4| | row4 col1 | row4 col2 | row4 col3 | row 4 col4| 效果如下: 注:如果觉得实在是难看受不了,请勿喷,良辰在此谢过!...

June 1, 2018 · 1 min · sunbufu

恐龙快跑(Flappy T-Rex)

0、写在前面 相信大家都了解过Google的Flappy T-Rex。一次偶然的机会,我也有幸在断网的情况下玩了几局,感觉就是一句话—“不愧是Google的作品”。在这里就不多夸奖Google和他的Flappy T-Rex如何如何牛X了,不了解的读者还请自行百度。 由于那时候正在学Java和线程,觉得正好练下手,于是就有了这款山寨版的Dinosaur Run。当然使用Java写的,为了方便读者的学习,本人公开Dinosaur Run的源代码(很简单,但还是要拿出来丢人现眼)。求路过的大神高抬贵手,轻喷。叩首谢过。 1、运行界面 Google Flappy T-Rex Dinosaur Run Google Flappy T-Rex Dinosaur Run 因为是山寨的,所有本人本着尽量不给“山寨”丢人的原则,一张一张的把恐龙的动作,地平线的变化,植物的种类,天上的云彩整合成图片,然后应用在这个小小的游戏里。 当然游戏体验还是差的一塌糊涂。感兴趣的大神不妨抽空调一下,使之更符合人类的直觉,提高游戏的可玩性。 2、操作逻辑 Google的产品一致是以简单为基础的,从Google的搜索主页就可以看出。增加用户的学习成本是一个非常不明智的选择。 Dinosaur Run和Flappy T-Rex在操作上一致的(因为本来就是山寨啊= =)。 回车键:开始/停止 上键:跳跃 下键:蹲 注意:其实在Google的Flappy T-Rex里面,如果你能玩的后期的话,还会出现一种在天上飞的恐龙(目测是翼龙)。需要蹲在跑才能躲过去,但是,由于时间关系,我没有继续实现这个功能。 3、源码分析 项目的工程列表如下所示: image 文件夹里面存放了各种图片,包括:恐龙的各种动作、地貌的变化、云朵等。 sound 文件夹里面存放了各种音频资料,例如恐龙死亡时发出的超级玛丽死亡时的声音(请不要再鄙视我了,谢谢= =) AudioTest 用来播放音效的类 BarrierThread 障碍物和背景运动的线程,包括仙人掌、地貌和云朵等 CrashThread 碰撞检测线程,实时监测恐龙和障碍物是否重叠,即是否碰撞 DinosaurRun 该游戏的主线程,除了start() 其他线程之外,还负责监听键盘事件 DinosaurThread 恐龙运动的线程,主要包括分析恐龙的运动轨迹(跳跃时按照h = V0t-0.5gt^2)、刷新恐龙的位置(坐标) ScaleIcon 一个可以自动调节图片大小的类 ScoreThread 统计玩家得分的线程 我之所以在这里写这个,是希望拿到我的源码的朋友能够快速了解我的思路,如果哪位大神觉得我写的太菜了,希望可以跟我联系,也可以在本文下边评论,我孙不服在这里谢过各位朋友了。 4、致谢 实在没什么好写的了,感谢Google吧!

June 1, 2018 · 1 min · sunbufu