emacs解决windowns文件乱码


最近在看windows文件时总是乱码,查了资料后才知道windowns下的编码为 gb2312 , 而linux下的编码为 utf-8 ,所以打开文件会乱码

如何解决?

换系统

这不是废话吗!

修改language环境

在配置文件中加入这么一行

(set-language-environment 'Chinese-GB)

重启就行,结果····打开 linux下的文件乱码

重新以gb2312的编码载入文件(推荐)

参考这里

M-x revert-buffer-with-coding-system

选择chinese-gb2312,确认载入(不需要重启)

ok,是不是很简单

黑客丛林之旅


无意间看到,试了一下,结果http://www.fj543.com/hack/

第一关

没什么好说的,查看源码

第二关

还是查看源码,结果发现

onSubmit="return chkPassword()"

Ok,f12进入 console,输入

function chkPassword(){
alert('adas');
}

覆盖原有js

第三关

这关我也没想到,后来百度之,原来是cookie的原因

还是进 console

document.cookie="login=yes"

第四关

看到这里是不是很熟悉,摩尔斯密码,google一下 对应的密码就是 iamok

第五关

根据提示,密文为成 YmFzZTY0aXNvaw==ad93c1d102ae60f4

第一个很熟悉为base64加密 …

flask时间格式化


在前端显示为该问题 "几分钟前发表或几天前发表"

后端通过filter注册

参考资料

设计需求

  • 如果问题发表超过 10天 ,则显示为 /%Y-%m-%d %H:%M/
  • 如果小于 10天 ,但是大于 1天 ,则显示为 /n天前/ 发表
  • 如果小于 1天 ,但是大于 1小时 ,则显示为 /n小时前/ 发表
  • 如果小于 1小时 ,但是大于 90秒 ,则显示为 /n分钟前/ 发表
  • 如果小于 90秒 ,则显示为 /刚刚/ 发表

具体实现

通过 diff.daysdiff.seconds 实现

比如,大于10天

if diff.days > 10:
    return dt.strftime('%Y-%m- …

linux下串口读写权限问题


方法很简单,将用户加入串口所对应的group,需要 注意 的是不同的系统对应的group可能不同

按照网上说的加入 dialout,

└──╼ sudo usermod -a -G  dialout username

结果提示 /dialout”组不存在/

查看对应的组

└──╼ ls -al /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 6月  15 23:09 /dev/ttyUSB0
└──╼ sudo usermod -a -G  uucp username

ok,之后重启一下

archlinux更换默认内核为linux-lts


前几天更新内核到了 4.6.2 ,结果很不幸,电脑变得非常卡(貌似只有我遇到这个问题?), 实在是找不到解决办法了,于是将内核更改为 linux-lts

更改办法很简单,重装 linux-lts

$ sudo pacman -S linux-lts

重启之前,请确认安装了

img

(注:我的是双显卡,还需要安装 bbswitch-lts )

基于restful的flask权限管理


为什么需要restful形式的权限管理

最近在写flask应用时使用了 restful 形式的flask.views.MethodView,但是在对其进行权限管理时遇到了一些问题

flask文档上介绍说用

decorators = []

添加装饰器,但实际使用上,比如

  • getpost 采用不同的权限

get 不使用 login_required
post 需要 login_required

这样就不能使用 decorators 对视图进行装饰

  • post ,delete, put 都需要 login_required,但是get不需要 而 delete 又需要更高级别的权限,我们可以这样

    class AAA(MethodView):
    
        def get(self,uid):
            ...
    
        @login_required
        def post(self):
            ...
    
        @login_required
        def put(self,uid):
            ...
    
        @login_required
        @more_required
        def delete(self,uid):
            ...
    

    是不是看起来还不错, 但是,如果再加上类似EditBlogPostPermission …

培根密码


第一种方式
A aaaaa B aaaab C aaaba
D aaabb E aabaa F aabab
G aabba H aabbb I abaaa
J abaab K ababa L ababb
M abbaa N abbab O abbba
P abbbb Q baaaa R baaab
S baaba T baabb U babaa
V babab W babba X babbb
Y bbaaa Z bbaab

第二种方式
a AAAAA g AABBA n ABBAA t BAABA
b AAAAB …

wireshark解决权限问题


参考sudo 或者 root 打开 wireshark 是不安全的,毕竟我不是root敢死队

如何以普通用户运行 wireshark

  1. 添加wireshark用户组

    $ sudo groupadd wireshark
    
  2. 将dumpcap更改为wireshark用户组

    $ sudo chgrp wireshark /usr/bin/dumpcap
    
  3. 让wireshark用户组有root权限使用dumpcap

    $ sudo chmod 4755 /usr/bin/dumpcap
    

(注意:如果设为4754 Wireshark还是会提示没有权限 )

  1. 将用户加入wireshark组
    $ sudo gpasswd -a username wireshark
    或者
    $ sudo usermod -a -G wireshark username