前言最近拜樱之诗所赐对Galgame又有了兴趣,但长时间高强度推Gal是很累的,所以在研究更优雅的解决方案。
一个明显的事实是,绝大部分Galgame只需要很少几个键,除去开始的Load和结束的Save,鼠标更是几乎完全用不到,所以如果可以做一个只有几个键位的蓝牙键盘,把手臂从桌面上解放出来,就能轻松很多。而如果做成机械键盘,用起来或许还蛮有趣的?
简单想下必要的键位有:
Enter or Down : next
Ctrl : skip
Up : backlog
除此之外,我喜欢在有意思的情节或优秀的CG处截图,所以使用Snipaste配置的快捷键截图,并保存到指定目录的功能必不可少,因此需要一个键能一次完成下列键盘操作:
Alt + Shift + S : 快捷键截图
Enter:选择保存目录
Enter:保存至指定目录
这样想来,只需要四个键位即可,刚好也还在一手能拿过来的范围内,就开搞吧。
主控所谓的机械键盘,实际上就是一堆开关轴+PCB板,因此主要的难度在主控上。
基本逻辑其实很简单,单片机读取GPIO电平,当出现上升沿或下降沿时将对应键位的编码发送至上位机。实际...
前言时隔十个月,终于推完了樱之诗,出人意料的比想象的更加优秀,在因广受盛赞让人有如此期望的情况下,还能超越这种期待,毫无疑问是真正的神作。在实际玩之前,就听说樱之诗是关于美的故事,当然也确实如此,无论是樱花飞舞的CG,还是完美的OST,都是如此美。但最有趣的是,对于美的事物,尤其是故事中出现的天才绘画,樱之诗居然直球地具体加以描述,甚至真正将画作画为CG,而且如此高难度的手法,真正做到了精彩的演出。尤其是樱日狂想,樱花们的足迹,梦蝶,向日葵等都是表现力惊人的CG。之前我看少女歌剧的时候想到,将难以具体描述的舞台能力抽象为漂亮的战斗,将Revue的竞争抽象为舞台少女之间战斗的胜负,从而实现了表现力惊人的演出(剧场版实现的效果更是很美),实在是很聪明很有趣的做法。但扶她自却完全并非如此,选择了难度很大的直球给出绘画的描述和CG,如果CG没有与故事中描述想匹配的表现力就会非常都合,如果描述不够精彩就难以让人理解绘画与艺术之美,但扶她自却完美实现了二者的融合。
真琴线
似乎是樱之诗最短的一条线,这让人有点意外,本以为校长和直哉家的关系会是主线。这条线最精彩的应该是共通的明石与美术部创作樱...
出于一些麻烦的原因,我最近开始给老师跑WRF算法,用于做相当复杂的气象运算。说实话,编译一次需要用gcc和gfortran两个编译器并行跑四十分钟才能完成的代码真是第一次见。单是第一步的生成可执行文件就花了不少功夫,所以记录下来好了。不管怎么说,也算是有趣的经验吧,虽然快把我累死了。
首先给读者讲两个常识:
如果你从来没有了解过你将要上手的软件,最好不要随手搜一个教程跟着做,尤其不要搜中文教程,因为这些教程可能本身就有错误,或者早已经过时。最高效的方法是去找官方网站找官方文档,或者Github官方仓库去找README。
遇到模式编译或运行中的错误,千万不要在国内网站上浪费时间,把遇到的问题用英文描述出来去官方论坛搜,找不到就去Github对应的项目搜issue,再不行就Google一下,把时间花在CSDN之类的网站上只会让你更迷惑。
以下是与WRF相关非常重要的参考URL:
WRF构建详细过程的官方教程:How to Compile WRF: The Complete Process
WRF运行官方教程:WRF–ARW Online Tutorial
其中包含详细配...
0x00 前言最近终于挖到个有点意思的漏洞,比之前卵用没有的信息泄露好点。可惜因为是Windows Server,最后没搞到shell,不过也学到点东西吧。
Redis是最流行的非关系型即key-value数据库,通常用来做缓存。我之前写Java Web的时候,存储身份信息用的session和cookie,但据说用redis做token也可以。此外,如果查询数据量大,或者对并发要求高,也需要用redis做消息队列。
说起来比较有意思的是,我最早在面试安全社团的时候就遇到过redis未授权,但直到今天才搞明白。
0x01 漏洞描述言归正传,导致漏洞的原因很简单:
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写...
玩了这么久Java的web开发,也差不多玩腻了,尤其是有了SpringBoot之后,简直是保姆级别的框架,所以对web开发兴趣不大了,所以打算来玩更有意思的Java安全。就从Runtime命令执行,反射和反序列化开始吧,刚好反序列化还是两年前玩过的POP链里的内容,有点亲切。
Runtime类命令执行有回显在cmd执行命令:
123456789101112131415161718192021222324252627import java.io.*;import java.nio.charset.StandardCharsets;/** * @author Yoruko * @apiNote RCE执行ping命令并回显 */public class ping { public static void main(String[] args) throws IOException { Process process = Runtime.getRuntime().exec("ping baidu.com"); I...
本文摘要:
掌握基于SpringBoot框架的程序开发步骤
熟练使用SpringBoot配置信息修改服务器配置
基于SpringBoot的完成SSM整合项目开发
SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。
使用了SpringMVC框架后已经简化了我们的开发,而SpringBoot又是对SpringMVC开发进行简化的,可想而知SpringBoot使用的简单及广泛性,这就是所谓的项目迭代吧。
既然SpringBoot是用来简化Spring开发的,那我们就先回顾一下,以SpringMVC开发为例
创建一个maven工程,并在pom.xml中导入所需依赖的坐标
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263<dependencies> <dependency> ...
SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。
SpringMVC是处于Web层的框架,所以其主要作用就是用来接收前端发过来的请求和数据,然后经过处理之后将处理结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
REST是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,后期的应用也是非常广泛。
对于SpringMVC的学习,最终要达成的目标:
掌握基于SpringMVC获取请求参数和响应JSON数据操作
熟练应用基于REST风格的请求路径设置与参数传递
能根据实际业务建立前后端开发通信协议,并进行实现
基于SSM整合技术开发任意业务模块功能
SpringMCV总览目前Java Web的开发方式是如下:
将后端服务器Servlet拆分成三层,分别是Web,Service和DAO。
web层主要由servlet来处理,负责页面请求和数据的收集以及响应结果给前端
service层主要负责业务逻辑的处理
dao层主要负责数据的增删改查操作
但servlet处理请求和数据时,...
Spring核心概念解决的问题核心:耦合度高。
业务层需要调用DAO层的方法,就需要在业务层newDAO层的对象
如果DAO层的实现类发生变化,业务层的代码也需要改变,更需要编译和打包部署。
Spring的解决:使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象,即控制反转。
IOC – 控制反转
使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。
业务层要用数据层的类对象,以前是自己new的
现在自己不new了,交给别人[外部]来创建对象
别人[外部]就反转控制了数据层对象的创建权
这种思想就是控制反转
Spring和IOC之间的关系是什么呢?
Spring技术对IOC思想进行了实现
Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的”外部”
IOC思想中的别人[外部]指的就是Spring的IOC容器
IOC容器的作用以及内部存放的是什么?
IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象
被创建或被管理的对象在IOC容器中统称为Bean
...
0x00 基本概念Docker的意义是让搭环境更方便。
Docker 是一个应用打包、分发、部署的工具。
你也可以把它理解为一个轻量的虚拟机,但它只虚拟你软件需要的运行环境,而不虚拟硬件。一方面可以很方便的复制整个环境,一方面也可以防止污染本机环境。
复现漏洞时,部署环境用Docker会高效很多。实际上常用的漏洞平台Vulhub就是基于docker,kali中搭建Vulhub参见。
Container - 容器容器是一个独立于系统内其他所有进程的进程,相当于一台运行起来的虚拟机,即你的软件或Web应用运行的环境。容器与镜像的关系类似于对象和类。
Image - 镜像镜像相当于一个虚拟机快照,其中包含了你要部署的应用程序和它所依赖的所有库,一个镜像可以创建多个容器。
一般情况下,你所运行的软件都依赖于某种解释器或容器,例如node,python,tomcat,nginx,redis等,因此Docker有大部分解释器的官方镜像,在Dockerfile中需要指定并安装该环境。
Docker在制作镜像时会缓存所有用到的环境,因此部署一次之后会快很多,这种操作成为分层。
Dockerfi...
最近几年最有名的漫画家非藤本树莫属,而且大概当之无愧。我总感觉一话尽的短篇更适合他的风格,长篇连载总要受太多无聊的因素影响,让最后的结尾很难完美,但读切则自由得多。《再见绘梨》绝对是藤本树最优秀的漫画之一,实在太有趣了!
藤本树以天马行空的奇幻设定和神经病般的故事发展出名,其实我倒感觉他在描绘真实细腻的感情与真实的世界上同样出色。炎拳也好,电锯人也好,都找不出一个标签化单纯的人物,每个人的感情都是如此复杂,在荒诞奇幻的设定与脱线剧情发展的外表下,藤本树其实很擅长用简洁的篇幅讲述很有情感密度的故事,这让他笔下的人物和故事都如此有魅力。
再见绘梨最大的特点是全篇居然几乎都由电影般的分镜组成,以第一人称而非客观的角度看待故事,这让故事有着无与伦比的现实感。例如优太在天台上自杀时,画面先是探到栅栏外看到地面,然后又犹豫地缩回天台的地面,只用几个分镜就让人感觉到死亡就在眼前。有大量分镜背景不动,只有人物小幅度的动作或者表情变化,让故事中的时间流逝如此真实。很有特点的大量重复分镜也很有趣,例如绘梨和优太父亲争吵前,有十几个一言不发的吃饭画面,让人感觉气氛相当压抑,给后面优太父亲情感爆发做了很...