经常有人玩着英雄联盟、王者荣耀问我平时玩不玩游戏,我说不玩。
仔细想想,其实也不是完全不玩,只是很少玩,而且玩的都是些小游戏,毕业之后玩得最多的应该是电商活动小游戏,比如淘宝、京东、支付宝APP里的小游戏。
当然偶尔也会玩一下其他的游戏。比如前年,我偶然在一个网站上看到一个游戏介绍(链接)。跟其他游戏相比,这界面——神秘无比,啥都没有~,你甚至会怀疑这到底是不是游戏。我试着玩了一下,发现还挺有意思~~,接下来花了一个星期,每天玩一会儿,把游戏通关了。
我的目标在远方
现在有些网站出于安全或者利益考虑,已经不允许用户直接发布二维码图片了,比如淘宝、知乎等等,上传的二维码图片会被自动屏蔽或者替换为文本信息。
当然,非要发布还是有办法的。
首先我们要知道网站屏蔽二维码的技术原理,以及你的目标用户对二维码的使用方式(长按识别/摄像头扫描)。
一般原理应该是,用户上传图片后,服务器上的二维码识别程序会对图片进行扫描,如果发现二维码就进行对应的操作。
应对的核心思想就是对二维码动手脚,让服务器上的程序检测不到二维码,但是又要能让摄像头扫描或者微信识别。
应对方法有多种,适用于不同的场景。
1、编辑 /etc/default/grub
GRUB_DEFAULT=saved
2、查看所有启动菜单入口
grep "submenu\|^\smenuentry" /boot/grub/grub.cfg | cut -d "'" -f2,4
输出格式为:标题’ID (中间以 ‘ 号间隔)
结果中含“Advanced options”的一行是 submenu ,底下紧跟的行是 menuentry。
3、设置默认启动菜单(内核),使用步骤2中的 ID 而非标题
#grub-set-default "(submenu ID)>(menuentry ID)"
4、重新生成 /boot/grub/grub.cfg
#grub-mkconfig -o /boot/grub/grub.cfg
更改名字和邮箱(作者和提交者):
git filter-branch -f --commit-filter 'if [ "$GIT_AUTHOR_NAME" = "xxxxxxxx" ];then GIT_AUTHOR_NAME="yyyyyy";GIT_AUTHOR_EMAIL="[email protected]";GIT_COMMITTER_NAME="yyyyyy";GIT_COMMITTER_EMAIL="[email protected]";git commit-tree "$@";else git commit-tree "$@";fi' HEAD
git filter-branch 会生成备份,可以删除:
删除某个分支备份:
git update-ref -d refs/original/refs/heads/分支
或者(删除所有备份):
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
前段时间看到一个有意思的视频展示效果,简而言之就是左右两个视频总是显示各自中间的部分。文章作者通过 JS 同时改变每个视频的视窗宽度和视频的位置来实现,属于底层操作,我觉得应该可以更简单一些,只要让视频始终处于容器中间就不用对视频进行位移了。本来想看看文章中提到的 beoplay 页面里是如何做的,结果已经打不开了。。没关系,反正我也做出来了,而且找到了4种方法,CSS 和 JS 均只控制 width,居中则由浏览器自动完成,请看效果。
当时看到这个效果的时候,首先就想到了 flex 布局,因为常规布局下当图片以及视频内容宽度超过容器宽度时,常用的 text-aglin:center 和 margin:0 auto 已经无法让内容处于容器的中间,不行不行,给容器加上 overflow:hidden 也不行,但 flex 布局的居中却可以轻松实现此需求。
然后又在学习过程中,想到了另外3种办法:
在Debian中可以通过
#aptitude install nautilus-dropbox
来安装Dropbox,而且在朝内需要先翻Q才行:
#export http_proxy=http://xxx.x.x.x:xxx
或者使用VPN等手段……
Dropbox需要手动更新版本,同样需要先翻Q,然后:
#dropbox update
通过Debian CD1安装的Squeeze默认情况下,关机对话框是没有“挂起”(也就是待机)和“休眠”选项的,需要安装acpi-support软件包增加此功能。
$sudo aptitude install acpi-support
重启电脑后再次关机时就可以选待机和休眠了。
看到别人写的Linux学习之路,感触颇多,心里也有点痒,想记录一下自己的。
从上高中开始,我才算正式接触电脑(虽然很小的时候在别人家也玩过电脑游戏,但也就个把小时而已,没什么更多了解),由于高中自由支配时间比较多(相对而言),加上我的不自觉,所以花了不少时间在玩电脑上,不过我也不是纯粹的玩,我比较喜欢去了解事物的原理,所以在高中期间我还是学了不少电脑知识,不过记忆中好像整个高中我都还没有听说Linux这个词。
直到上大学后,才听说了Linux这个东西,觉得很神奇,就像发现了新大陆,买电脑后不久就开始折腾Linux系统了。 也不记得最开始看的是什么资料了,安装的第一个系统是Red Hat 9(旧资料坑爹呀,那时好像Fedora Core 5都出了,而我完全不知道),下载3CD安装镜像,花了不少流量,而那时学校上网还没有包月,心疼……安装采用的是VMware虚拟机方式,安装过程很顺利,但后来在vm-tools上面折腾得够呛。
由于看的资料不系统,又是初次接触Linux,很多地方都不懂,还好我知道搜索,不过不同教程里的命令都不太一样啊,只有按部就班的输入教程里的命令,一个一个试,最可悲的是我那时不知道bash有tab自动补全啊,只能SB般地完整输入那些又长又不知道意思的命令……不记得花了多少时间,终于安装好了该死的vm-tools,也许就是这个事情,让我以后对VMware一直没什么好印象。
我意识到我需要更系统的学习资料,于是就去图书馆借了《鸟哥的Linux私房菜》等书来看,慢慢的,我发现我以前所做的事情是多么SB。之后很长一段时间我都是看资料,我觉得我需要更多理论知识的支持。
后来出于对无线网络(Wi-Fi)的兴趣,我经常在某无线论坛潜水,接触到BackTrack这个Linux系统,当时还是BackTrack 2,我还专门去买了一个U盘,将它安装到了U盘里,后来又升级到了BackTrack 3。
08年4月,Ubuntu 8.04发布,我果断下载来安装,而且这次是直接安装到硬盘分区,和已有的XP组成双系统,随后开始了各种折腾……
看到我当时有多蛋疼了吧……
不过Ubuntu虽然有很多优秀的地方,但用一段时间后,我还是被其不时弹出的错误窗口整烦了,于是格式化掉,安装上了BackTrack3,同时也明白了原来系统安装就是复制文件加设置这么回事儿。
由于BackTrack4以前都是基于Slax(Slackware)的,我不是很喜欢其软件包管理系统,同时发现Debian的很多优点:系统超级稳定,apt包管理系统先进又好用……于是,我又将系统换成了Debian,它也是到目前我一直使用的系统。
我的开机画面(那时昵称还叫 小新),够自恋吧……背景图片来自腾讯TM网页。
感谢Linux,让我知道了Windows之外的美好世界!开源、自由、分享,这就是我所喜爱的。
说到U盘,我就想起了我以前那个制作好的Win7安装U盘,被人借走后就再也没有回来了……
好了,题外话啰嗦完了,下面进入正题。给U盘设置一个个性图标,在Windows中,一打开“我的电脑”或者“计算机”就可以看到,多酷!
效果图:
设置方法:
第一步:准备一个图标
这个图标可以是ICO格式,也可以是带有图标的EXE文件,也可以是打包为DLL格式的图标集。
这里有一些在线制作、转换ICO格式图标的网站:
http://www.damotou.com/、http://www.ico.la/
http://converticon.com/、http://tools.dynamicdrive.com/favicon/(这两个网站为英文界面,但支持一个图标包含多种分辨率)
也可以用本地软件制作、提取:AveIconifier2、Axialis IconWorkshop、图标终结者3
第二步:制作autorun.inf文件
这个文件是不是很眼熟?没错,它就是被U盘病毒弄出名的,但今天的工作跟病毒无关。
假设上一步准备的图标文件名为 upan.ico /tubiao.exe/tubiao.dll。在U盘根目录新建一个文本文件,用记事本打开,写入内容:
[Autorun]
icon=upan.ico
—————–到此为止,这是分割线—————
注:对于exe和dll文件
icon=tubiao.exe,0 (0表示第一个图标,依次类推)
icon=tubiao.dll,0 (同上)
然后将文本文件改名为“autorun.inf”(如果系统未显示文件名后缀,则写入内容后,选择另存为,文件名和前文一样,文件类型选“所有文件”)。
第三步:重新插一次U盘。
更多折腾:
1.在autorun.inf里写上
label=自定义U盘名字
名字可以写很长哦……,而且即使修改了卷标仍然显示这个名字
2.隐藏这两个文件
在CMD中,分别运行(X改为U盘盘符)
attrib +h +r +s X:\autorun.inf
attrib +h +r +s X:\upan.ico
一说到星空极速,就跟说到x虎360一样让我不爽。以前在学校的时候就想方设法把它干掉,当然,在众人的帮助下也确实干掉了。当时为了使用方便,自己用C语言实现了一个破解程序,虽然不完美,但也基本够用。
前不久在别人电脑上又看到了星空极速这个垃圾软件……
现在刚好自己又在学习Python,于是我想到了用Python来重写一遍,想了一下,应该比用C实现起来更顺畅些。
纯属练习,fuckxkjs32-gbk.py 代码如下:
#!/usr/bin/env python
# -*- coding:gbk -*-
”’ 找回星空极速3.2真实拨号密码
用法:
1-直接运行,然后按提示输入密码
2-加参数运行,参数为密码,多个密码用空格隔开
比如:fuckxkjs32.py woshimima1 woshimima2
感谢:http://blog.sina.com.cn/s/blog_48a42d5b0100cet2.html
注:本程序只使用了部分字符加密表
”’
import sys
encryptdict = { “ch_0” : [ “E2”,“96”,“D0”,“AC”,“9D”,“A3”,“B6”,“8F” ],
“ch_1” : [ “E3”,“97”,“D1”,“AD”,“9C”,“A2”,“B7”,“8E” ],
“ch_2” : [ “E0”,“94”,“D2”,“AE”,“9F”,“A1”,“B4”,“8D” ],
“ch_3” : [ “E1”,“95”,“D3”,“AF”,“9E”,“A0”,“B5”,“8C” ],
“ch_4” : [ “E6”,“92”,“D4”,“A8”,“99”,“A7”,“B2”,“8B” ],
“ch_5” : [ “E7”,“93”,“D5”,“A9”,“98”,“A6”,“B3”,“8A” ],
“ch_6” : [ “E4”,“90”,“D6”,“AA”,“9B”,“A5”,“B0”,“89” ],
“ch_7” : [ “E5”,“91”,“D7”,“AB”,“9A”,“A4”,“B1”,“88” ],
“ch_8” : [ “EA”,“9E”,“D8”,“A4”,“95”,“AB”,“BE”,“87” ],
“ch_9” : [ “EB”,“9F”,“D9”,“A5”,“94”,“AA”,“BF”,“86” ],
“ch_q” : [ “A3”,“D7”,“91”,“ED”,“DC”,“E2”,“F7”,“CE” ],
“ch_w” : [ “A5”,“D1”,“97”,“EB”,“DA”,“E4”,“F1”,“C8” ],
“ch_e” : [ “B7”,“C3”,“85”,“F9”,“C8”,“F6”,“E3”,“DA” ],
“ch_r” : [ “A0”,“D4”,“92”,“EE”,“DF”,“E1”,“F4”,“CD” ],
“ch_t” : [ “A6”,“D2”,“94”,“E8”,“D9”,“E7”,“F2”,“CB” ],
“ch_y” : [ “AB”,“DF”,“99”,“E5”,“D4”,“EA”,“FF”,“C6” ],
“ch_u” : [ “A7”,“D3”,“95”,“E9”,“D8”,“E6”,“F3”,“CA” ],
“ch_i” : [ “BB”,“CF”,“89”,“F5”,“C4”,“FA”,“EF”,“D6” ],
“ch_o” : [ “BD”,“C9”,“8F”,“F3”,“C2”,“FC”,“E9”,“D0” ],
“ch_p” : [ “A2”,“D6”,“90”,“EC”,“DD”,“E3”,“F6”,“CF” ],
“ch_a” : [ “B3”,“C7”,“81”,“FD”,“CC”,“F2”,“E7”,“DE” ],
“ch_s” : [ “A1”,“D5”,“93”,“EF”,“DE”,“E0”,“F5”,“CC” ],
“ch_d” : [ “B6”,“C2”,“84”,“F8”,“C9”,“F7”,“E2”,“DB” ],
“ch_f” : [ “B4”,“C0”,“86”,“FA”,“CB”,“F5”,“E0”,“D9” ],
“ch_g” : [ “B5”,“C1”,“87”,“FB”,“CA”,“F4”,“E1”,“D8” ],
“ch_h” : [ “BA”,“CE”,“88”,“F4”,“C5”,“FB”,“EE”,“D7” ],
“ch_j” : [ “B8”,“CC”,“8A”,“F6”,“C7”,“F9”,“EC”,“D5” ],
“ch_k” : [ “B9”,“CD”,“8B”,“F7”,“C6”,“F8”,“ED”,“D4” ],
“ch_l” : [ “BE”,“CA”,“8C”,“F0”,“C1”,“FF”,“EA”,“D3” ],
“ch_z” : [ “A8”,“DC”,“9A”,“E6”,“D7”,“E9”,“FC”,“C5” ],
“ch_x” : [ “AA”,“DE”,“98”,“E4”,“D5”,“EB”,“FE”,“C7” ],
“ch_c” : [ “B1”,“C5”,“83”,“FF”,“CE”,“F0”,“E5”,“DC” ],
“ch_v” : [ “A4”,“D0”,“96”,“EA”,“DB”,“E5”,“F0”,“C9” ],
“ch_b” : [ “B0”,“C4”,“82”,“FE”,“CF”,“F1”,“E4”,“DD” ],
“ch_n” : [ “BC”,“C8”,“8E”,“F2”,“C3”,“FD”,“E8”,“D1” ],
“ch_m” : [ “BF”,“CB”,“8D”,“F1”,“C0”,“FE”,“EB”,“D2” ],
}
def main():
password = “”
# charset = “0123456789abcdefghijklmnopqrstuvwxyz”
if len(sys
.argv) == 1:
while password == “”:
password = raw_input(“请输入待破解密码:”)
print “真实密码:%s“ % encrypt(password)
else:
args = sys.argv
print “原始密码:真实密码”
for p in args[1:]:
print “%s:%s“ % (p,encrypt(p))
def encrypt(password):
truepass = “”
for i in range(len(password)):
truepass += encryptdict[(“ch_” + password[i])][i % 8]
return truepass
if __name__ == “__main__”:
main()
————————————————————–
不完善的地方(TODO):