mV2RayConfig:V2Ray典型配置生成工具

这是一个V2Ray的配置文件生成工具

V2Ray是一个非常优秀的Proxy

但是配置文件较为复杂且生涩 非常不便于新手理解与使用 因此就有了这个小工具

虽然它目前还不是非常成熟 但是已经达到了可用的程度

现在它还只能生成服务端的配置文件 Windows下的客户端我还是推荐您使用图形化界面的V2RayN

接下来的计划是提供对应客户端配置文件生成以及TLS和动态端口的配置(果然我还是又懒又磨磨蹭蹭的)

它在这里:https://github.com/mili-tan/mV2RayConfig

希望您能够喜欢

如果使用中遇到任何问题您都可以联系我进行反馈

你好,很高兴见到你。1th/5th

你好,很高兴见到你。

也同样很高兴能够遇见你,我是Mili。

时间真的过得飞快,这两三年,我做了一些自己想都不敢想,和曾经认为自己完全做不到的事情。

现在,又一个暑假开始了,我即将迎来下一个五年,我不知道这是不是所谓的人生的转折点什么的,我不知道。我只知道我从前一个五年渐渐从懵懂走向成熟,也渐渐从对这个世界报以热切的期待和探索的热情,变得渐渐的麻木和无力。我经常说“不知道如何真正的开始”,是因为我不知道真正的去迈出那个第一步。

这个博客也已经陪伴了我许多年 从sharists.com到nocitial-mili.pw再到nocitial-mili.asia和supermili.com最后到现在的milione.cc

我不知道我变成了什么样子 也很难的说出“我从未改变”这种不知真假的话。

我甚至不知道我在那些所谓的人生的转折点做出的决定是否是“正确的”。

写到这里,我不知道该如何写下去了。

好吧,很高兴见到你。

一周年/五周年快乐。

C# 判断输入内容是否为中文

通过非常简单的办法实现了 如下

 public static bool isChinese(string str) { bool boolVal = false; for (int i = 0; i < str.Length; i++) { if (Convert.ToInt32(Convert.ToChar(str.Substring(i, 1))) < Convert.ToInt32(Convert.ToChar(128))) { boolVal = false; } else { boolVal = true; } } return boolVal; }

安卓开发手记 缩减APK的大小

首先

经过本人的实(zuo)践(shi) 最好不要缩减掉com.android.support:appcompat-v7向下支援库!不要!

这个包是为了考虑API level 7(即Android 2.1)及以上版本而设计的 缩减之后许多方法(包括Material Theme)将对5.x以下系统不支援

因为我需要考虑低版本的旧设备 使用我不对这方面进行缩减 当然如果你不考虑5.x以下系统的向下兼容 这就完全没有关系了

可以通过开启开启资源压缩和代码混淆压缩来缩减体积

build.gradle(Moudule:app)的buildTypes部分中

 buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

这样就好了 十分的简单 而且有效

也可以清理项目文件夹中的各个assets文件夹 它们中会存放着一些未使用的资源文件

然后你可以还通过Refactor菜单中的Remove Unused Resources移除掉未使用的资源文件

再然后还可以使用Analyze菜单中的Inspecting Code来优化代码 缩减掉不必要的代码和资源文件

好的大概就这样

如果有问题 请轻喷

我想砸键盘了

好了

今天升级WordPress一直500

我也不知道我为啥一直想升级这玩意

毕竟我真很少用这玩意

最近敲代码都磨磨蹭蹭的

出产的的东西真的很少啊Orz

还想要学UWP(拖延中)

还在学Android和Java(超慢速中)

有点时候甚至怀疑自己没有天分什么的

老师还说我自学能力还不错……我都不怎么相信……

最近还在规划一个WPF的Hosts管理工具什么的……大概会叫mHosts

另外我好像又和别人吵架了 虽然是不怎么熟悉的人 但是还是会去在意这些东西什么的

但是确实感觉自己不太成熟 也不想成熟 想要有人一直让着我什么的

有空的话一定要去重写一下那个个人页面……太丑了……

另外下周要去上海了啊……

另外想要买一块树莓派嗯

嗯……大概就这样……

什么?!又要开学了?!

寒假还是和那样子一样过去了

简直无法弥留

剩下的只有开学初的一片嚎哭

居然有人肝作业肝到昨晚凌晨两点多

真是XD

看来这个寒假简直过得快的不科学啊。

Orz

过了一年,还是和原来一样的渣。

连写个博客组织语言都不会了Orz

有些事情即便想起来了也会忘掉去做啊!

啊说起来我某次在学校打开了我的List页 简直被丑哭了(因为当时写CSS忘记考虑字体什么的)

然后心里就想着一定要找个时间去改一下什么的

说起来这一想就是好几个月

然后最后发展成为“唉我好像有什么事情忘记做了”的样子

然后想啊想 想啊想

某日又想起来“啊我想起来我什么没做了!明天一定要找个时间补上啊!”

什么的

然后最后又是不了了之 怎么进入一个奇怪的死循环了啊XD

真是讨厌啊

说起来 我才不会用备忘录这种东西呢 坚决不用!

因为麻烦(x

嗯……明天一定要记得去把那个List页的CSS改掉()

年末

又到年末了

晃荡着2016就这样子过去了

福州的冬天简直就是说来就来 冷的要死

而且因为是沿海 湿度很大 穿再多的衣服都木有什么用的样子

简直就是要命啊

想要写点总结什么的 然而写不来

反正我双11和双12都没有买东西 是不是超厉害

然后十二月后面就是补齐一些DEMO加笔记以及一些形式性的总结什么的就好了

另外以一个非主流专科生的身份收获了国职赛市一等奖和省二等奖什么的

好像没什么了不起的

还是原来那么渣

PHP和Python都忘光光了 真是令人烦恼啊

另外VS出了17RC和Mac Beta真是令人惊讶

还有多说最近都有垃圾评论了 真是令人讨厌啊

大概就是这样吧

C# WinForm MDI父窗口子窗口控件互操作

在窗体中定义一个 用于存放当前窗体的对象

public static MDIParent1 mdiwin = null;

然后 将他初始化

mdiwin = this;

然后 就可以通过

主窗体类名. mdiwin

在子窗体来操作主窗体对象了 例如

MDIParent1.mdiwin.Text = "Hello World!";

到这里 还没有全部完成 你会发现 只能操作窗体对象主体 无法操作控件
还需要将我们要将要操作的控件的 modifiers 属性 设为 public
或在Designer.cs中将访问符手动从 private 改为 public
如果需要使用变量的话 也可以在变量前加 public 解决 例如

public int i = 0;

设置之后 就可以正常操作控件了 例如

MDIParent1.mdiwin.label1.Text = "Hello!";

以上 父窗体操作子窗体同理

但这并不是一个好的方法 因为在调用时 他将破坏封装 你可以把它封装成方法后再进行使用


拓展与参考资料:http://blog.csdn.net/max01/article/details/1869008

Bizideal Zigbee V24 SDK C#开发手记(3)

RFID与之前部分较为相似
依旧需要引用库
也需要实例化命名控制 此处有些不同

BIControllerManager ControllerRfid = new BIControllerManager(new BIRFIDProtocol());//生成控制实例,并指定相关协议。BIRFIDProtocol射频RFID协议。

开始接收

this.ControllerRfid.PacketReceived += ctrlrfid_PacketReceived;this.ctrlrfid.OpenPort(this.cmbRfid.Text, 9600, Parity.Even, 8, StopBits.One);//射频(RFID)串口号,波特率是9600,偶校验,数据位8,停止位1this.ctrlrfid.StartReceiver();

处理接收到的数据

void ctrlrfid_PacketReceived(object sender, BIPacketReceivedEventArgs e){ //添加新建一个线程 防止用户界面卡死 this.BeginInvoke(new Action(() => { //解析数据包 BIRfidUpgoingPacket Packet = BIRfidUpgoingPacket.ParseFromBinary(e.BinaryData); if (Packet != null) { byte channel = Packet.AntennaChannel; //如果读取成功 if (Packet.TagCardState == BizIdeal.Data.BIRFIDTagReadResult.Succeeded) { //如果包为标签 if (Packet.DataList[0].SensorType==BISensorType.RFID_15693_Tag) { this.lblId.Text = Packet.TagID; } //如果包为数据 if (Packet.DataList[0].SensorType == BISensorType.RFID_15693_Data) { this.txtData.Text = BitConverter.ToString(Packet.BlockData); } } //如果没有读到 else if (Packet.TagCardState == BIRFIDTagReadResult.NoCard) { this.lblId.Text = "NoCard"; this.txtData.Text = "00-00-00-00"; } else if (Packet.TagCardState == BIRFIDTagReadResult.Error) { this.lblId.Text = "Error"; this.txtData.Text = "00-00-00-00"; } } }), null);

读取标签

this.ctrlrfid.RFID.ReadTag(0xffff, 0, BIRfidReadMode.Manual15693);//第一位短地址 此处使用广播//第二位通道//第三位读取模式,手动 //BIRfidReadMode.Auto15693(自动模式)

读取数据

this.ctrlrfid.RFID.ReadDataBlock(0xffff, 0, 0, BIRfidReadMode.Manual15693);//第一位短地址//第二位通道//第三位数据块//第四位读取模式,手动

写入数据

this.ctrlrfid.RFID.WriteDataBlock(0xffff, 0, 0, data);//第一位短地址//第二位通道//第三位数据块//第四位数据内容