Restore deleted repositories

This commit is contained in:
mayx
2022-01-04 20:42:55 +08:00
commit f4aa957c53
132 changed files with 9570 additions and 0 deletions

6
404.md Normal file
View File

@@ -0,0 +1,6 @@
---
layout: default
title: 404 - 找不到页面
---
# 找不到页面
你访问的资源 <code><script>document.write(window.location.pathname)</script></code> 不存在或者可能已经被永久移除。

4
BingSiteAuth.xml Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<users>
<user>0ADFCE64B3557DC4DC5F2DC224C5FDDD</user>
</users>

139
BlogCard.svg Normal file
View File

@@ -0,0 +1,139 @@
---
---
<svg
width="495"
height="195"
viewBox="0 0 495 195"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.header {
font: 600 18px 'Segoe UI', Ubuntu, Sans-Serif;
fill: #fff;
animation: fadeInAnimation 0.8s ease-in-out forwards;
}
.stat {
font: 600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif; fill: #9f9f9f;
}
.stagger {
opacity: 0;
animation: fadeInAnimation 0.3s ease-in-out forwards;
}
.rank-text {
font: 800 100px 'Segoe UI', Ubuntu, Sans-Serif; fill: #66ccff;
animation: scaleInAnimation 0.3s ease-in-out forwards;
}
.bold { font-weight: 700 }
.icon {
fill: #79ff97;
display: block;
}
/* Animations */
@keyframes scaleInAnimation {
from {
transform: translate(-5px, 5px) scale(0);
}
to {
transform: translate(-5px, 5px) scale(1);
}
}
@keyframes fadeInAnimation {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
</style>
<rect
data-testid="card-bg"
x="0.5"
y="0.5"
rx="4.5"
height="99%"
stroke="#e4e2e2"
width="494"
fill="#151515"
stroke-opacity="1"
/>
<g
data-testid="card-title"
transform="translate(25, 35)"
>
<g transform="translate(0, 0)">
<text
x="0"
y="0"
class="header"
data-testid="header"
>Mayx's Blog Article</text>
</g>
</g>
<g
data-testid="main-card-body"
transform="translate(0, 55)"
>
<g transform="translate(370, 47.5)">
<g class="rank-text">
<text
x="0"
y="0"
alignment-baseline="central"
dominant-baseline="central"
text-anchor="middle"
>
M
</text>
</g>
</g>
<svg x="0" y="0">
<g transform="translate(0, 0)">
<g class="stagger" style="animation-delay: 450ms" transform="translate(25, 0)">
<line x1="12" y1="6.25" x2="19" y2="6.25"
style="stroke:rgb(255,255,255);stroke-width:2"/>
<text class="stat bold" x="25" y="12.5">{{ site.posts[0].title }}</text>
</g>
</g><g transform="translate(0, 25)">
<g class="stagger" style="animation-delay: 600ms" transform="translate(25, 0)">
<line x1="12" y1="6.25" x2="19" y2="6.25"
style="stroke:rgb(255,255,255);stroke-width:2"/>
<text class="stat bold" x="25" y="12.5">{{ site.posts[1].title }}</text>
</g>
</g><g transform="translate(0, 50)">
<g class="stagger" style="animation-delay: 750ms" transform="translate(25, 0)">
<line x1="12" y1="6.25" x2="19" y2="6.25"
style="stroke:rgb(255,255,255);stroke-width:2"/>
<text class="stat bold" x="25" y="12.5">{{ site.posts[2].title }}</text>
</g>
</g><g transform="translate(0, 75)">
<g class="stagger" style="animation-delay: 900ms" transform="translate(25, 0)">
<line x1="12" y1="6.25" x2="19" y2="6.25"
style="stroke:rgb(255,255,255);stroke-width:2"/>
<text class="stat bold" x="25" y="12.5">{{ site.posts[3].title }}</text>
</g>
</g><g transform="translate(0, 100)">
<g class="stagger" style="animation-delay: 1050ms" transform="translate(25, 0)">
<line x1="12" y1="6.25" x2="19" y2="6.25"
style="stroke:rgb(255,255,255);stroke-width:2"/>
<text class="stat bold" x="25" y="12.5">{{ site.posts[4].title }}</text>
</g>
</g>
</svg>
</g>
</svg>

37
README.md Normal file
View File

@@ -0,0 +1,37 @@
---
layout: default
---
# Mayx的博客
Mayx's Home Page
Powered by [Jekyll](https://github.com/jekyll/jekyll)
## 使用的开源项目
[Jekyll](https://github.com/jekyll/jekyll)
[jQuery](https://github.com/jquery/jquery)
[gitalk](https://github.com/gitalk/gitalk)
[minimal](https://github.com/pages-themes/minimal)
[jekyll-toc](https://github.com/allejo/jekyll-toc)
[Live2dHistoire](https://github.com/eeg1412/Live2dHistoire)
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
## 使用的网络资源
[Github](https://github.com/) | 包含:
- Issue
- Pages
- Git
- [Git.io](https://git.io/)
[网易云音乐](https://music.163.com/)
[一言](https://hitokoto.cn/)
[jsDelivr](https://www.jsdelivr.com/)
[CDNJS](https://cdnjs.com/)
[unpkg](https://unpkg.com/)
## 版权声明
未经作者同意,请勿转载
若需转载,请联系作者(主要希望找人聊天~
本站转载的文章如无特别说明,均按原文章的协议执行
## 打赏/赞助 Mayx
![QRCode](/images/QRCode.png)

13
_config.yml Normal file
View File

@@ -0,0 +1,13 @@
theme: jekyll-theme-minimal
title: Mayx的博客
logo: https://avatars0.githubusercontent.com/u/17966333
author: mayx
timezone: Asia/Shanghai
excerpt_separator: <!--more-->
paginate: 7
plugins:
- jekyll-sitemap
- jekyll-feed
feed:
path: atom.xml
google_analytics: UA-137710294-1

95
_includes/toc.html Normal file
View File

@@ -0,0 +1,95 @@
{% capture tocWorkspace %}
{% comment %}
Version 1.0.7
https://github.com/allejo/jekyll-toc
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
Usage:
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
Parameters:
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
Optional Parameters:
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
* class (string) : '' - a CSS class assigned to the TOC
* id (string) : '' - an ID to assigned to the TOC
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
* baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
* anchor_class (string) : '' - add custom class(es) for each anchor element
Output:
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
generate the table of contents and will NOT output the markdown given to it
{% endcomment %}
{% capture my_toc %}{% endcapture %}
{% assign orderedList = include.ordered | default: false %}
{% assign minHeader = include.h_min | default: 1 %}
{% assign maxHeader = include.h_max | default: 6 %}
{% assign nodes = include.html | split: '<h' %}
{% assign firstHeader = true %}
{% capture listModifier %}{% if orderedList %}1.{% else %}-{% endif %}{% endcapture %}
{% for node in nodes %}
{% if node == "" %}
{% continue %}
{% endif %}
{% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
{% if headerLevel < minHeader or headerLevel > maxHeader %}
{% continue %}
{% endif %}
{% if firstHeader %}
{% assign firstHeader = false %}
{% assign minHeader = headerLevel %}
{% endif %}
{% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
{% assign _workspace = node | split: '</h' %}
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
{% assign html_id = _idWorkspace[0] %}
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
{% assign html_class = _classWorkspace[0] %}
{% if html_class contains "no_toc" %}
{% continue %}
{% endif %}
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
{% assign space = '' %}
{% for i in (1..indentAmount) %}
{% assign space = space | prepend: ' ' %}
{% endfor %}
{% unless include.item_class == blank %}
{% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
{% endunless %}
{% capture my_toc %}{{ my_toc }}
{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
{% endfor %}
{% if include.class %}
{% capture my_toc %}{:.{{ include.class }}}
{{ my_toc | lstrip }}{% endcapture %}
{% endif %}
{% if include.id %}
{% capture my_toc %}{: #{{ include.id }}}
{{ my_toc | lstrip }}{% endcapture %}
{% endif %}
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}

154
_layouts/default.html Normal file
View File

@@ -0,0 +1,154 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
{% feed_meta %}
<link rel="stylesheet" href="{{ "/assets/css/style.css?v=" | append: site.github.build_revision | relative_url }}">
<!--[if !IE]> -->
<link rel="stylesheet" href="/Live2dHistoire/live2d/css/live2d.css" />
<!-- <![endif]-->
<script src="//cdn.jsdelivr.net/npm/jquery@1.9.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
{% if site.google_analytics %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}");
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
}
</script>
{% endif %}
<style>
.backToTop {
display: none;
width: 18px;
line-height: 1.2;
padding: 5px 0;
background-color: #000;
color: #fff;
font-size: 12px;
text-align: center;
position: fixed;
_position: absolute;
right: 10px;
bottom: 100px;
_bottom: "auto";
cursor: pointer;
opacity: .6;
filter: Alpha(opacity=60);
}
</style>
</head>
<body>
<div class="wrapper">
<header>
<h1><a href="{{ "/" | relative_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
{% if site.logo %}
<img src="{{ site.logo | relative_url}}" alt="Logo" />
{% endif %}
<p>{{ site.description | default: site.github.project_tagline }}</p>
<p><form action="/search.html"><input type="text" name="keyword" id="search-input-all" placeholder="Search blog posts.."> <input type="submit"></form></p>
{% if site.github.is_project_page %}
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ site.github.repository_nwo }}</small></a></p>
{% endif %}
{% if site.github.is_user_page %}
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
{% endif %}
<a href="{{ "/Mabbs/" | relative_url }}">About Me</a>
</header>
<section>
{{ content }}
</section>
<!--[if !IE]> -->
<div id="landlord" style="left:5px;bottom:0px;">
<div class="message" style="opacity:0"></div>
<canvas id="live2d" width="500" height="560" class="live2d"></canvas>
<div class="live_talk_input_body">
<div class="live_talk_input_name_body" style="display:none;">
<input name="name" type="hidden" class="live_talk_name white_input" id="AIuserName" value="Mayx_Blog_Talk" />
</div>
<div class="live_talk_input_text_body">
<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?"/>
<button type="button" class="live_talk_send_btn" id="talk_send">发送</button>
</div>
</div>
<input name="live_talk" id="live_talk" value="1" type="hidden" />
<div class="live_ico_box" style="display:none;">
<div class="live_ico_item type_info" id="showInfoBtn"></div>
<div class="live_ico_item type_talk" id="showTalkBtn"></div>
<div class="live_ico_item type_music" id="musicButton"></div>
<div class="live_ico_item type_youdu" id="youduButton"></div>
<div class="live_ico_item type_quit" id="hideButton"></div>
<input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
<audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
<input id="duType" value="douqilai" type="hidden">
</div>
</div>
<div id="open_live2d">召唤伊斯特瓦尔</div>
<!-- <![endif]-->
<footer>
{% if site.github.is_project_page %}
<p>This project is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
<p><small>Made with ❤ by Mayx<br />Last updated at <script>document.write(lastUpdated.format("yyyy-MM-dd hh:mm:ss"));</script><br /> 总字数:{% assign count = 0 %}
{% for post in site.posts %}
{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}
{% assign count = count | plus: single_count %}
{% endfor %}
{% if count > 10000 %}
{{ count | divided_by: 10000 }} 万 {{ count | modulo: 10000 }}
{% else %}
{{ count }}
{% endif %} - 文章数:{% for post in site.posts %}
{% assign co = co | plus: 1 %}
{% endfor %}{{ co }} - <a href="{{ "/atom.xml" | relative_url }}" >Atom</a> - <a href="{{ "/README.html" | relative_url }}" >About</a></small></p>
</footer>
</div>
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
<script src="/js/main.js"></script>
<!--[if !IE]> -->
<script src="/Live2dHistoire/live2d/js/live2d.js"></script>
<script src="/Live2dHistoire/live2d/js/message.js"></script>
<!-- <![endif]-->
</body>
</html>

55
_layouts/encrypt.html Normal file
View File

@@ -0,0 +1,55 @@
---
layout: post
---
<script src="/js/aes.js"></script>
<script>
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null) len += 3;
else len += 1;
}
return len;
}
function onbtnDecrypto() {
var encryptedData = "{{ content | strip_html | strip_newlines }}";
var keyword = document.getElementById("inputkey").value;
if (keyword.replace(/(^\s*)|(\s*$)/g, "") == '') {
alert("请输入密码!");
return;
}
while (getByteLen(keyword) % 8 != 0) {
keyword = keyword + "\0";
}
var key = CryptoJS.enc.Utf8.parse(keyword);
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
if (decryptedData.sigBytes < 0) {
document.getElementById("output").innerHTML = "解密失败密文或者key错误!";
return;
}
try {
decryptedData.toString(CryptoJS.enc.Utf8)
} catch(e) {
document.getElementById("output").innerHTML = "解密失败密文或者key错误!";
return;
}
var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
document.getElementById("output").innerHTML = decryptedStr;
document.getElementById("pwinput").style.display = "none";
}
</script>
<div id="pwinput">{{ page.tips | default: "请输入密码:" }}<br />
<input id="inputkey" type="password" /> <button onclick="onbtnDecrypto()">解密</button>
</div>
<div id="output"></div> <br />

90
_layouts/post.html Normal file
View File

@@ -0,0 +1,90 @@
---
layout: default
---
<small>{{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: " " | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: <span id="{{ page.url }}" class="visitors" >Loading...</span>
</small>
<h1>{{ page.title }}</h1>
<p class="view">by <a href="//github.com/{{ page.author | default: "Mabbs" }}">{{ page.author | default: site.author }}</a></p>
<div id="outdate" style="display:none;">
<hr />
这是一篇创建于 <span id="outime"></span> 天前的文章,其中的信息可能已经有所发展或是发生改变。
<br /><br />
</div>
<script>
BirthDay = new Date("{{ page.date | date: "%m/%d/%Y" }} 00:00:00");
today = new Date();
timeold = (today.getTime() - BirthDay.getTime());
secondsold = Math.floor(timeold / 1000);
e_daysold = timeold / (24 * 60 * 60 * 1000);
daysold = Math.floor(e_daysold);
if (daysold > 90) {
document.getElementById("outdate").style.display = "block";
document.getElementById("outime").innerHTML = daysold;
}
</script>
<hr />
{% include toc.html html=content sanitize=true %}
{{content}}
{% if page.tags %}
<small>tags: <em>{{ page.tags | join: "</em> - <em>" }}</em></small>
{% endif %}
<div class="pagination">
{% if page.previous.url %}
<span class="prev" >
<a href="{{ site.baseurl }}{{ page.previous.url }}">
上一篇:{{ page.previous.title }}
</a>
</span>
{% endif %}
<br />
{% if page.next.url %}
<span class="next" >
<a href="{{ site.baseurl }}{{ page.next.url }}">
下一篇:{{ page.next.title }}
</a>
</span>
{% endif %}
</div>
<!--[if !IE]> -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.css">
<script src="//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.js"></script>
<div id="gitalk-container"></div>
<script>
if (window.location.host != "mabbs.github.io")
{
var gitalk = new Gitalk({
clientID: '098934a2556425f19d6e',
clientSecret: '0bd44eed8425e5437ce43c4ba9b2791fbc04581d',
repo: 'mabbs.github.io',
owner: 'Mabbs',
admin: ['Mabbs'],
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
distractionFreeMode: false // Facebook-like distraction free mode
})
}
else
{
var gitalk = new Gitalk({
clientID: '36557aec4c3cb04f7ac6',
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
repo: 'mabbs.github.io',
owner: 'Mabbs',
admin: ['Mabbs'],
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
distractionFreeMode: false // Facebook-like distraction free mode
})
}
gitalk.render('gitalk-container')
</script>
<!-- <![endif]-->

View File

@@ -0,0 +1,13 @@
---
layout: post
title: 2015.2.23日记
tags: [日记]
---
今天是2015年2月23日离开学还有5天<!--more-->
今天我修好了我的U盘之前我的U盘在一个太阳黑子盛发的时期坏掉了我感到十分难过于是写了一篇议论文和短篇小说纪念它然后就半坏半好的用。就在今天我去了我大伯家发现我的U盘中那个坏掉了的那个文件夹突然能读了这还是那个王哥哥的功劳呢如果不是我展示我U盘坏掉的情况我还不知道我的U盘竟不自动断线了。于是我使用了CHKDSK修复了我的U盘结果所有问题解决了。就是留下了一个不知名的文件i怎么也删不掉。
昨天我打算玩爷爷的电脑,结果打不开,于是我在今天看了看电脑,拿下来一通电,结果可以启动了。然后我很高兴,安上后,一打开显示器又不能用了,于是我猜这是显卡的问题,然后我关了显示器,打开了电脑后又开了显示器,结果好了,于是我就在这台电脑写了我今天的日记。
快开学了,我写一个假期小结
这个假期一共30天去了4个城市对手机的了解更深了。比如partition分区mount挂载prop设置变量。而且我还因此弄坏了手机。在2015年的2月18日。我以错误的方式挂载了boot分区结果……boot分区被我玩坏了。手机是靠boot分区进行启动的结果我还脑残的重启了。于是在2015年的春节我一整天都想着我的手机。终于在春节的下午我去了二姨家使用了电脑花了10秒修好了手机。于是我知道了mount是个危险命令。不过在弄坏手机之前我还做了一件事那就是在手机上装windows3.2中文版这是第一个推广到中国的windows系统。首先我装了DOSBOX模拟DOS环境然后在这个上面安了CCED并正常的运行了我很高兴。然后在手机上下载了win3.2系统的安装包没有电脑的帮助安装了win3.2,证明了电脑就是一垃圾,便携式手持设备才是信息的未来,于是我就弄坏了手机,证明失败了……虽然我没去旅游,但我这个假期还是很有意思的。

213
_posts/2018-03-26-neko.md Normal file
View File

@@ -0,0 +1,213 @@
---
title: (转)关于Neko与羽毛的记录
layout: post
author: gledos
tags: [Neko, 羽毛]
---
## 序:
吸取经验,为了每一个人的明天。
>如果有一天我消失了,我想我是死在为自由而战的冲锋路上, 而这不是一个人的悲剧。
>
>——亚伦斯沃茨
<!--more-->
(待续)
# 张千叶发布的想法的时间轴
1. `2018-03-14 02:52` 张千叶在知乎上发表了[想法](https://www.zhihu.com/pin/957297608381730816)
>先要咨询一个问题
<br />我的朋友 @Ayaka Neko 在火车站被父母带走了。
<br />其父母原因是要将其带回云南老家住院,而其本人倾向于去北京的医院。
<br />其中 @Ayaka Neko 已经成年,并且上精卫和北六没有给出住院意见(开了文拉法辛)
<br />我上前争辩的时候被其父亲诬陷为协助自杀,但实际上当事人称其药量都是正常并且自愿服用,我(未成年)争辩几 句之后遭到殴打导致眼角出血,整个过程警察在场,因为赶火车没能走流程。
<br />那么,已经父母有权利强制将已经成年的子女带回家/住院吗?
<br />有权利殴打未成年人吗?我选择不走流程的情况下可否让监护人代为走流程?
<br />现在我与她已经没有联系方式,其父母关掉了通话,一个关机一个只有留言,当事人手机遗失。
<br />她曾经口头说过与其父断绝关系,并且其父承认(在做 CT 扫描和其他医疗费用的时候拒绝支付,也未支付生活费)。
<br />那么现在该怎么办?怎么帮到她呢?需要上法庭吗?
2. `03-14 03:01` 张千叶回复
>个人建议报警
>
>现在是我不清楚行踪,原本是我们去保定,但是她没有上车,所以我不清楚怎么弄。
<br />另外这个算是用什么理由报警呢?我眼角的伤不是很重,留了点血的程度。
<br />我还可以补充的是他家庭是离异家庭,离婚协议中监护权归属于其母,但是据一个未公开/不明的协议,转给了他爸爸(不确定)。
<br />她有社交恐惧和一些人格障碍所以很依赖我,我很担心。
<br />现在是,我以什么理由报警?其父曾说过这是我们家的事情你就不要管这行的话,并且态度极其差。
3. `03-14 03:04` 补充
>还可以补充的是有一次换药反应过大打了 120我先打的其父电话她父亲第一反应是诈骗然后她用云南家乡话和特有的称呼说是她其父称 「我没这义务」 救护车和毒理化验都是我和朋友垫付,从头到尾没有任何支付的意愿。
4. `03-14 19:34` bc
>通过我的父母和 Ayaka Neko的父母的交谈得知她被带回云南省红河哈尼族彝族自治州个旧市而不是双方与警官所协商的去上海市精神卫生中心做检查。
<br />想哭。
3. `03-14 20:03`
>现在说一下,有人证,有警官协商录音,还有医院处方单+支付宝记录(能看出来不是其父亲付款)
<br />大家看看还要啥呢
4. `03-14 23:18`
>先说一下吧,我个人,除开 Neko 家庭问题。在 Neko 被夹走的时候我阻拦了一下,然后被揪住头发一拳打中右眼,现在右眼左眼睑发炎并且右眼视力下降严重,然后一脚踢中我肾左右的部位并让我疼了一天,明天去医院做一下鉴定看看。
5. `3-15 11:48` bc
>暂时联系上了,不清楚情况。
<br />我目前在医院。
6. `3-15 15:35`
>目前准备到的是法医拍照,当时伤口的照片,三名证人,以及全家的录像和警察执法记录仪的录像。
9. `3-15 22:10`
>我联系上
<br />@Ayaka Neko
<br />了。
<br />目前她因为文拉法辛的戒断反应在医院,出院之后应该就没事了……
<br />好想她。
<br />好想她啊……
10. `03-16 02:23`
>现在
<br />@Ayaka Neko
<br />因为文拉法辛戒断(其父母未携带)被送往昆明急救,据称要做 MECT 和 MRI具体情况看起来还好开放病房。
11. `03-16 09:11`
>联系不上。正在打医院的号码。
12. `03-16 10:24`
>[查看图片](https://pic2.zhimg.com/v2-745039e4e818cbc3242d1586fa4bde09_qhd.jpg) 附张图,已在法医拍照并鉴定。
13. `03-16 13:46`
>然后现在被他父亲威胁可能被打。
<br />还说什么地头蛇之类的。
14. `03-16 13:48`
>貌似是个房地产商,有什么建议么?
15. `03-17 01:00`
>到达医院,这里像看守所
16. `03-17 11:15`
>扑空了,她被父母提前出院了……
17. `03-17 左右`
>我有她本人的姓名身份证,她手机丢失。
<br />她父母亲和姑姑的电话,被拉黑。
<br />知道她有两个家庭住址,但是在两个城市。
<br />目前她帐号一小时上一次,只读消息不回复,怀疑不是本人。
<br />现在不知道怎么做了。
18. `03-18 左右`
>报警之后警察表示也打不通,并且不受理案件。
>律师建议去住址寻找。
>
>......
>
>求助中心电话能给一下吗。
>她之前答应我两个星期的。
>也是我最大的努力了吧……
>
>......
>
>说明了,警察说就算是成年人也可以被父母强制带走。管不了
>
>......
>
>他们说。只要有抑郁症,任何程度的,不论开不开那个无行为能力证明,父母都可以带走/入院
19. `03-18 00:24`
>强制传唤证人居然不包括被告子女…
20. `03-18 16:35`
>彻底找不到了啊……彻底断了啊……
21. `03-17 21:09`
>我这边说下…
<br />报案测试过了,只要他们知道带走的是监护人就不会管,并如果得知有抑郁症的话更不会管…已经对警方感到绝望了。
22. `03-19 左右`
>警方认为抑郁症病人不算完全行为能力的样子,并且认为她在父母身边绝对安全
>
>......
>
>直接报案:对方是监护人有权带走
<br />说明情况:对方还有抑郁症呢,监护人当然能带走了
23. `03-20 15:03`
>右眼已经报废。
24. `03-20 22:45`
>其实算个好消息?右眼视力看不清之后可以考虑戴个眼罩或者换个玻璃珠?
>
>......
>
>视力基本为零~
<br />医生建议戴眼镜
25. `03-23 23:13 之前一段时间可能是23:06` 已被删除,已保存到[wayback](http://web.archive.org/web/20180326112045/https://www.zhihu.com/pin/960671306164994048)
>那就把这里当成最后一点希望了吧。
<br />@Ayaka Neko张恩辅 532501199903240612
<br />被她父亲张竣于三月十六日凌晨一点入住了云南心理卫生中心,并之后被带走
<br />目前最后已知地点/消息为云南昆明安宁市好孩子三生教育培训学校。
<br />她手机处于丢失状态。其父母拒绝联系…
<br />她父亲联系方式为 13888320678 母亲为 13887310860
<br />尝试过报警了…没什么用呢。
<br />我也做不到什么了呢。
<br />如果需要更多资料可以私信我
<br />如果我还活着的话。
26. `03-24 17:30`
>Ayaka Neko
<br />自杀了。
27. `03-24 17:34`
>Ayaka Neko
<br />今天下午两点三十四分,抢救无效死亡
>
>轻伤二级。视力严重下降,加鼻骨骨折。
<br />视力从 1.0 到三百五十度近视。
28. `03-26 下午11点左右` **樊郕** 回复一位在想法下留言的用户
>我是她的家人,我是她的妹妹,她有严重的抑郁症,且每天过量服药,雌性激素和抗焦虑的药,这个你们知道?送去医院是为了让她不要吃药,还有心理辅导,面子?你并不是其中的人,不知道有多痛苦,请不要站着说话不腰疼,也不要妄自揣测,更不要当键盘侠,谢谢
# 温柔——热点扩散
1. `03-24 17:43`
[今天向我求助的张恩辅同学,现已离世。](https://web.archive.org/web/20180326111214/http://webcache.googleusercontent.com/search?q=cache:IlDL3pSsxA4J:https://zhuanlan.zhihu.com/p/34901296&num=1&strip=0&vwsrc=0)。~~内容已删除~~快照里看出在20分钟内有69条评论和230个赞。
>通过朋友向我求助 @Ayaka Neko 张恩辅同学现已离世,刚刚和她妈妈通过电话,她在家中自杀,抢救无效结束了自己的生命。
>
>对不起,我没能帮到她,没能把她救出来。
>
>我应该早一些看到的,如果再早些报警的话,可能就不会闹到这种地步。
>
>我们也不能冤枉任何一个好人,安宁市好孩子教育学校是一所正规的学校,没有接收张恩辅同学,她是回到家里才做的这一切。
>
>我也没办法再苛责她那几乎哭到失声的母亲,和她的父亲。
>
>**只能够说,这是家庭教育和沟通不足导致的悲剧,每一个父母一定要尊重孩子的意愿,并耐心和孩子沟通,强硬的暴力、训斥会影响到孩子们的身心健康,甚至会发生比如现在这样的悲剧。**
>
>**请各位家长们一定要引以为戒!**
>
>(完)
>
>明天我会整理一下,把这件事的经过写出来,希望能够纪录下来这一切。
>
>张恩辅同学,这个世界对你太不公平了,真的非常对不起,我知道的太晚了,如果我再早一些知道,再早一些采取措施,说不定就能救你出来,真的很对不起。
2. `19:13`[希望这场悲剧能让家长们引以为戒,请尊重孩子!](https://zhuanlan.zhihu.com/p/34901959)
(未完待续)
<!--
这是记录知乎ID为[Ayaka Neko](https://www.zhihu.com/people/75678efb7fce3f1907999482da9af890)、推特ID为[]()
-->
***
注:
源地址:<https://gledos.science/neko.html>
Neko的博客<https://neko.ayaka.moe/>
备份:<https://github.com/nekomeowww/nekomeowww.github.io>
羽毛的博客:<https://oao.moe/> 解析IP:45.32.10.83
备份:<https://github.com/zhangyubaka/zhangyubaka.github.io>

View File

@@ -0,0 +1,44 @@
---
layout: post
title: 编程与设计(演讲稿)
categories: [演讲稿]
tags: [编程, 设计, 演讲, 程序]
---
大家好我是mayx今天由我来带领大家了解计算机编程的本质和程序设计。<!--more-->
当提到电脑时,大家首先想到的什么呢?打游戏?聊天?……没有问题。你们享用了电脑所带来的便利,有考虑过它的原理吗?当然,有些东西是不需要知道原理的,毕竟即使你不知道互联网传输协议也可以上网,不知道焦耳定律也可以做饭嘛……但是,我希望今天大家听了我的讲座后,能知道了解其原因后能更好的利用它们。
首先,今天我要讲的东西有以下三大类:一、计算机简介;二、编程;三、设计。
对于计算机,我想大家已经了解很多了吧,在这里我不做过多的介绍,只讲一下比较少见的知识。
大家都知道IT信息技术对吧我们有一门课就是信息技术不过你们知道CS吗我要讲的CS可不是反恐精英而是计算机科学Computer Science。CS只是和IT有交集吧IT研究的不只是计算机包括发邮件等通信方式不过想来主要还是应用了计算机科学。有很多人总会把它们误用就好像动画和动漫不是一种东西一样。
接下来我要讲的是计算机科学中的硬件部分。不过我的物理不是很好所以硬件部分我不会讲太多我想大家也都应该知道计算机大概都是由什么组成吧从微观上来说就是由硅做半导体部分铜银金等导电金属作为主要的电能以及信号传导等等的电路……往大了讲就是CPU中央处理器Central Processing Unit、内存、外存、主板、I/O输入输出 Input/Output等作为主要部分的机器。而更细的东西我也不了解逻辑电路什么的如果有会在Minecraft上做红石电路的人也许还能讲讲CPU的运行原理吧……
硬件的组成,也就是计算机组成体系,关于这一方面,大家应该都知道冯·诺依曼结构的计算机吧,我们平时用的电脑就是这个架构的,我相信只要了解一些计算机的人应该都知道这些。不过我觉得应该很少有人知道哈佛结构吧,它和冯氏很相似,只不过它的并行处理能力更好一些,因为冯氏结构不能同时读取指令和数据,而哈氏结构可以。手机一般就用的是这个结构的。
硬件部分我就讲到这里吧,想要了解更多有关硬件方面的信息,问物理老师都比我靠谱。
接下来就是软件部分了,程序是软件的子集。那么接下来我就来讲讲如何写程序吧。
首先,什么是编程?编程就是编写程序的简称,编写程序是为了解决一些需要运算而得出结果的东西。毕竟是计算机嘛,本质上就是为了运算而产生的。但是,并不是说程序只能在电脑上运行,人脑也可以,甚至是用多米诺骨牌之类的东西都可以执行程序。只是计算机的运算速度比它们都快,所以一般的程序都是在电脑上运行的。只有一些丧心病狂的面试官和考官才会让人脑去想计算结果呢。而让非计算机的东西执行程序,不是为了研究计算机的组成就是一些极客了吧……
现在写程序比以前简单多了以前写程序不知道计算机的运行过程根本写不了程序打孔纸带不说就光机器码都几乎没人能看得懂。不过为了让机器看懂人们也只能这样做了。后来为了让人能更好的写程序发明了汇编语言。不过汇编语言本质上还是将机器码用一些其他的方式简化了本质上仍需了解计算机的运行过程。以上所说的语言都算是低级语言因为必须了解计算机的本质太过复杂而且跨平台性也很差。再后来人们发明了FORTRAN公式翻译 Formula Translation这是人们发明的第一个高级语言。直到现在已经有上千种高级编程语言了它们的目的几乎都是将人能看懂的语言而计算机看不懂的语言转换为计算机可以看懂的语言即为机器码。能被直接转化为机器码的编程语言叫做编译型语言编译它们的东西叫做编译器它的特点是编程语言被编译生成机器码后只能在编译它的这类机器上执行在其他种类的机器无法执行。这种语言的优点是执行速度快毕竟计算机可以直接使用机器码执行只用翻译一次没有第二次。而缺点则是编译后将无法再编辑除非你会机器码或汇编或将它反编译否则就看不到它编译前的代码。除此之外它也不能在不是编译它的计算机或同种计算机上执行。编译型语言以C语言为代表。为了解决无法编辑和跨平台的问题人们造出了另外一种语言即为解释型语言。
解释性语言是将程序源代码一句话一句话解释为机器码所以它可以不用将源代码转换为机器码这样的好处就是可编辑而且因为是一句话一句话的解释所以在所有机器上均可执行。但也正是因为它是一句话一句话的解释所以执行效率低速度也慢。解释型语言的代表是Python语言。工程师是有创造力的人也是无法容忍问题的人。为了解决速度慢的问题他们又创造了一种新的语言它既有编译的高速又有解释的跨平台性。这种语言可以在写好后先编译为一种中间语言它已经有很多接近于机器码的部分但是为了跨平台性它把那些需要在不同种类的机器上语句不同的地方用其他的方式标记出来然后发布时只发布这个由中间语言构成的的程序在其他电脑上执行时它会把那些特别的句子再解释执行。这样的话不就又有很好的执行效率又有很好的跨平台性了吗以此类为代表的语言是Java语言。
刚刚介绍的仅仅是人们让电脑如何理解人们的语言,而接下来要讲的是让人们理解人们的语言了。我说过,编程语言到现在为止已经有上千种了。如果仅仅是为了让电脑理解人类的语言,有那么几种不就够了吗,为什么还要发明那么多种语言呢?人们不了解电脑,电脑也不了解人,而且人与人之间也是互相不了解的。有些人说话的方式是这样的,有些人说话的方式是那样的,他们可能互相都无法理解对方。编程语言不仅仅是给电脑看的,也同样是给人看的。毕竟是人在写程序。编程语言也是人发明的。所以有些人可能觉得这种编程语言写起来不舒服,就会发明新的语言来让自己和与自己相似的人舒服。工程师不只有强迫症,还是完美主义者。
虽然编程语言各不相同,但是电脑就那么几样东西嘛,再多也多不出来个什么。所以编程语言也有很多相似之处。正是因为它们有很多相似之处,所以说你只要会其中一种编程语言,基本上其他编程语言只要学学语法就能直接上手。编程也不仅仅是写出程序而已,它是为了表达自己想法的一种工具。在之后的设计里我会讲一讲设计程序的一些思想。
那么编程语言有哪些最基础的东西呢?首先是它的表达,计算机,或者说任何事物,与人的交互不就是两种吗,也就是输入和输出,五感来接收外部信息,身体活动来改变外界。程序里面获取数据的方式也有两种,一是人们输入的东西,键盘、相机等等都算,二是硬盘中文件的内容;输出也一样,一是输出到如同屏幕或扬声器等地方,将其转换为物理方式,然后被人接收。二是输出到文件,这样既可以让别的程序再利用,也可以等到人们想看时再输出到输出设备。那么除了表达之外就是程序内部的计算了。
这也就是编程与数学的联系编程除了输入输出就是算法了组成算法的除了循环结构之外还有计算、变量与函数。计算和变量与数学的概念差不多但是函数不太一样。虽然说计算机中的函数也是通过计算来将带入的值转换为一个结果但是大多数时候它的主要作用不是计算出一个值而是执行一段指令最终得到的值通常都是0甚至有的时候是空的NULL也就是没有结果。虽然没有得出值但是只要执行了指令就可以得到真正想得到的东西。
但也不是说一个程序一定需要函数那只是为了更方便理解而且编程语言并不一定是给电脑使用的。我之前也说过程序也不一定非得在电脑上执行。为了更好的理解编程语言的执行过程我给大家介绍一种特别的编程语言BrainF\*\*k。BrainF\*\*k是一种极小化的计算机语言它是由厄本·穆勒在1993年创造的它的语法十分简单只有8种符号。分别是加号减号大于号小于号左中括号右中括号逗号和句号组成。整个程序里没有一个英文字母如果在程序中遇到英文字母解释器会将其忽略掉。在执行的过程中它会创建一个很长的数组可存储30000个数字我们可以把它看做是30000个格子每一个格子可以存储的最大数字为255。在程序开始之前会有一个让你处理格子里面内容的指针在执行程序时如果一个符号要想操纵对应的格子必须想办法让指针先移动到那个格子里。这8种符号的作用如下大于号指针向右移动一格小于号指针向左移动一格加号指针所指向的格子中的数字加一减号指针所指向的格子中的数字减一句号将所指的格子里的数字转换为ASCII表格里的对应字符并输出逗号将输入的内容按照ASCII表格里的内容转换为对应的数字并输入到所指的格子里中括号如果程序执行到右中括号时指针所指的数字是0则执行前一个左中括号之后的指令否则忽略这个中括号。听起来是不是很复杂没关系让我来演示一下你就明白了<https://fatiherikli.github.io/brainfuck-visualizer/>(演示)
这个语言是为了帮助理解编程语言的运行过程想来这也就是图灵机的基本思想了有兴趣你们回去可以再研究研究。但是BrainF\*\*k本身并不适合用于给人们用来编写计算机程序如果想要学习真正的编程我建议学习Python语言它的语言功能强大语法简单初学者以及程序员均可使用的语言而且对应的中文教程也很多。所以如果有想学习编程语言的同学我推荐学Python。
当然作为编程语言有很多选择Python有着简单的语法强大的功能很高的兼容性。但是如果要是做一个网站用世界上最好的语言——PHP超文本预处理器Hypertext Preprocessor语言则是一个更好的选择。如果你打算做在单片机上的程序那么C语言似乎更好。如果你想要做手机软件就不得不了解一下Java语言……
编程语言仅仅是一个工具,如果想要写出程序,还要学习如何设计它。接下来我们就进入第三个模块:设计。
在说设计之前我先说说我自己。我有一个特别的能力是什么呢我在使用任何一款现代的电子产品或现代设计的机械我基本上在10分钟之内搞清楚它的使用方法。当然太过古老的比如ENIAC那种不是学过电路的就完全看不懂的那种东西除外。为什么我可以做到这一点呢首先我见过的电子产品本来就很多所以有一些经验。除此之外就是我可以了解那款产品在被设计时到底是为了什么。这也是我为什么想为大家准备这个讲座的原因想让大家明白如何了解一个陌生的产品的用法当然如果能做出来那就更好了。
人们设计产品是为了什么,设计的初衷是什么?当然是为了让人们的生活更方便,使用更舒适。如果你心中突然有一个想要做的东西,会让它令人感觉使用起来很不适吗?我觉得一般的人都不会这样做的吧。所以说设计师在设计产品时也会想客户到底是如何使用他生产的产品,有的时候觉得自己可能想的太过片面,会弄出调查问卷或反馈之类的功能来帮助他们改善他们的产品。
但是设计一个产品很简单,造出来又是另外一回事。有时候设计这个功能有可能可以做到的,可是最终实现它又有可能花费的东西与得到的东西之间算下来不划算。出现这个问题有可能是设计的不好,也有可能是按照当前的科技水平做不到更加合理。
我们今天讲的内容既然是有关计算机的当然要讲程序的设计不可能讲现实世界中的设计。那么接下来让我来讲讲UI设计吧
什么是UIUI即User Interface用户界面的简称在设计UI时不仅要让用户看起来很美观更重要的是要让用户用起来感到舒适、简单、自由。这里我要讲界面设计中比较好理解的两部分1.外观设计也就是让这个UI看起来更加美观2.功能设计这个说明了这个UI从整体看起来的实际功能。那么首先来考虑一下美观吧毕竟大家都喜欢第一眼看上去很酷的东西。外观设计的风格有很多比如现在很流行的扁平化风格以及大家很常见的Windows 7 Aero风格等等。扁平化的设计很好啊不仅界面简洁、美观而且设计起来简单在实际使用时也比较省资源。所以现在很多软件设计界面时都开始使用扁平化设计了。比如Windows 8到Windows 10以及Android 5.0和iOS 9以上的系统几乎都使用了扁平化设计。而刚刚所述的系统几乎都是在移动端设备或者说包含移动端设备的操作系统。所以说这也是它的缺点在非移动端设备上使用扁平化设计可能甚至会令人感到反感。而且扁平化的设计虽然似乎有那么一些科技风格但也正是因为这样它让人感受不到亲切的感觉。在此之前我们有另外一种方法来解决这个问题那就是拟物化设计。我觉得Windows 7的毛玻璃应该也算拟物化。拟物化的好处是什么呢当然是让人感觉更加亲切因为贴近于日常生活所以说对于用户来说也更容易学习。坏处当然也很明显就是设计成本太高有些东西设计师要想很长时间才能想出来如何才能让它更贴近生活。除了设计成本太高外消耗的资源也很多看起来也会让人可能感觉起来太花哨。以此为代表的产品是锤子手机锤子手机上用的系统经过高度定制每一个设计都似乎使用了身边的东西。我用过锤子手机说实话那个似乎很贴近人生活的设计并没有引起我的注意而这个设计所带来的比一般手机增加的将近一倍的内存消耗令我恨不得将这个锤子手机扔掉。可惜我现在还没有可以换的手机所以只能先用它了。
怎么设计外观刚刚说到的也只是一些概念在实际设计时如果是程序设计我们可以使用PhotoShop等工具来设计而对于网站设计用CSS层叠样式表Cascading Style Sheets来设计可以保证它的通用性。
外表设计的再漂亮也只是第一眼看上去很漂亮等新鲜感过去之后基本上也就没什么用了。于是接下来就要看实际的功能如何。这里我用某些设置的设计来作为例子Windows的系统要想设置某些东西都要找控制面板当然有些基础的功能在任务栏上也能用。但是Windows系统的设置通常藏得很深没有一点基础的人很难找出来当然也有可能是他语文学的不好理解不来。而Android系统的设置就不一样了它相比Windows系统就更加人性化了。不过想来也是以前电脑都是给懂的人用的虽然现在的电脑相比以前已经人性化很多了但还是有些地方让人应付不来。手机出来的晚生产出来时就已经有了为全世界人们使用的觉悟了所以用起来也比较简单。总结下来就是好的功能设计要为每一种人设计无论他有多专业还是说从来没有接触过这一切要让人第一眼看上去就明白它有什么基本功能而更高级一些的功能可以先隐藏起来等用户需要使用时再显现出来免得吓坏一些不会用电脑的人。烂的功能设计有两种1.想要找的功能没有可能根本没提供。2.想要找的功能找不到,可能藏得太深了。
你们以为UI都是有图像的吗错了有图像的UI叫做GUI图形用户界面Graphical User Interface但不是所有人用的电脑都是可以显示图像的只是大多数人都用的是图形界面图形界面看起来比较清晰使用起来也比较方便。但是图形界面的效率低无论是电脑的执行效率还是用户使用时的工作效率。不知有没有人听过DOS磁盘操作系统Disk Operating System你们如果没听说过可以回去问问你的父母。在以前图形化的操作系统还没出来时人们用的都是CLI命令行界面Command Line Interface。大家在看那些有着黑客入侵的电影时黑客们是不是都看起来都在胡乱拍键盘其实那真的是在胡乱拍键盘演示<http://geektyper.com/>而电脑屏幕上有一堆看不懂的类似于英文单词的东西从屏幕滚过虽然那是艺术的表现形式有点太夸张但是艺术源于生活现实中真的有人使用那种看起来似乎很酷炫的东西。但是他们不是为了耍帅而使用CLI的而是由于各种原因不得不使用他们。这样的例子有服务器操作系统以及IRC互联网中继聊天 Internet Relay Chat用这个聊天比QQ什么的聊天软件更快更省流量效率高。
我之前也说过电脑中很多设计由于经费等原因不得不让它从界面上看起来不太人性化。但是这并不是没有办法解决了。人之间的交流不止有图像更重要的是文字。电脑也一样电脑与人的交流在术语上叫做HCI人机交互 Human-Computer Interaction。来看一个实例如果我想设计一个网站但是我审美观不行这个网站怎么样才能让人感到亲切呢既然从整体没办法做到更好那就在细节上加倍努力吧一般的网站上都有登录系统吧那么我们可以这样设计对于初次访问的人我们可以在网站上显示欢迎来到我的网站。当然只显示一次之后不再显示。在登录之后刚登录完可以显示欢迎回来某某某。或者是根据时间显示下午好某某某。这样和“某某网站 用户某某某”这样的方式更容易让人接受吧。这样用户就能在潜意识里把这个网站看作一个人而不仅仅是网站。这样即使外表看起来不怎么样但是用户体验总还是不错的吧。没错这一块的设计就叫做UED用户体验设计User Experience Design为了提高用户满意度我们就通过这样的方式来让程序更易用。
除了以上所讲的部分,界面设计还有许多部分。由于篇幅原因,这里我将不再过多说明
以上是关于用户体验设计方面的,接下来让我说说程序设计吧!我之前也说过,编程语言只是工具,实际使用时还需要考虑程序的逻辑、架构、界面等等东西。在以前,程序设计中算法是非常重要的,但那也是以前,多亏很多计算机大神的帮助,现在的编程那是越来越简单了,一个几岁的小孩子就能写出来比以前的程序更漂亮、更复杂的程序。所以,现在算法在计算机编程的重要性越来越低了……但是并不是说算法就没有用了,如果没有人去研究算法,那么人们在遇到新的问题就没人能解决了。尽管以我们这个级别的人研究算法可能没法做出新的东西,但是我还是觉得,让更多的人了解程序背后的原理,可以帮助理解程序如何使用。所以接下来,让我说说关于算法与逻辑吧!
仍然是举个例子:大家都听过音乐吧,在播放音乐时有一个选项:随机播放,对吧?随机播放的实现方式有很多,让我们深层次的来研究一下它吧。首先,随机播放中,有个很重要东西,那就是随机。说到随机就不得不说随机数了,随机数也分为两种:真随机数与伪随机数,真随机数的生成在现实中很简单,在计算机中生成起来就很麻烦了,所以首先抛弃。伪随机数的算法很多,这里我们用最简单、最通用的伪随机数的算法:线性同余取随机数,看过离散数学的人可能有听说过这个。为什么我们选这种算法?因为其他算法我看不懂,比如什么梅森旋转算法啦,一听名字就能感觉它有多难了吧,反正我看了半天是没有理解。什么是线性同余?就是算一个一次函数的余数,相当简单,它的递推公式是:X0=seedXn+1≡(aXn+b)modM。seed表示随机数的种子通常取当前时间a,b,M都是常数通常会取质数。在seed与n都相同时这个随机数就能被反推出来所以很不安全。但是想来做随机播放也不担心别人会不会推出随机数所以我们就用这个就能得到一个随机数。具体原理我也不太清楚有兴趣的可以问问数学老师。接下来我们要创造一张表那张表上有着你要播放的播放列表但是这时候它还没有被打乱。首先我们要知道整张表上有多少首音乐假如我们用a来代表当前所有音乐的数量然后我们再为所有的音乐编上号看起来就是1、2、3……。这时候每一首音乐都有了一个属于自己的编号。再然后我们对用随机数公式得出的数字求余即Xmod(a+1)这样做就可以得到一个不超过所有音乐数量的随机数了。当然前提是随机数本身的最大值大于所有的音乐数量所以在随机数公式中的M要尽可能取大一些。得到最后需要的随机数后命令播放器播放编号等于随机数的那个对应的音乐。当需要播放下一首或切歌时为了避免又播到这一首歌我们可以将那张表上的那首音乐删除当然是在表里删不可能删这个文件。然后重复之前的操作。在最后一个音乐播放完成之后表里已经没有东西了。这时有两个选择如果用户打开了全部重复播放那么重新建表重新开始。如果没有则停止。看起来是不是很完美的方案错了用户总是喜欢做反设计师的操作万一用户点了上一首怎么样才能回到上一首那么我们就需要修改一下方案我们要建两张表把从表里删除的那个操作换成将它移动到第二张表里。这样如果用户需要听上一首歌就可以读上一张表的内容。难道说这样就完美了吗不完全但是这个BUG我现在不说出来大家自己思考思考吧。
除了逻辑设计还有算法设计。我们再举一个例子如果说我们在设计程序时需要用到质数比如需要列出1到1000之内的所有质数。那么我们用什么方法更好呢首先根据质数的定义质数是一个不会被除了1和它本身的数所整除的数字而且质数不包括1。那么接下来设计起来就很简单了只要让当前数字不停的除以除它和1之外的在1到这个数字之间的所有数字就可以了。这很好但是速度很慢。可能这样算1000以内的所有质数还不算太慢那如果是10万以内呢这得算多长时间啊……所以我们要对算法进行优化。我们知道合数有一个特点任何一个合数一定是由比它小的质数相乘得出的那么接下来我们可以这样筛选合数首先我们算出第一个质数在算第二个数时只要和之前算过的质数相除能除尽就是合数除不尽就是质数。这样是不是计算量一下就大大减少了呢但是这还不是最优化的方案如果说我们已经知道我们要算的最大数字是多少那么只需要除以比这个最大数字的算术平方根小的质数就够了。这样每次算的时候需要除的数字又少了一半算起来速度就会更快了。虽然这个算法不错但有时我们甚至不需要这个算法就可以更好的解决这个问题。因为我说的是列出1到1000之内的所有质数这个数字又不是很多那么我们可以提前算好这样就可以更快的解决问题了这样的操作我们叫它预计算Precomputed
程序设计是一个很严谨的事情每一个方面都需要做到最好。但是人无完人总有我们想不到的地方。尤其是计算机安全方面的事情总有你想不到的地方总有别人比你多想的地方正是因为这样才会出现黑客这样的人。这里我仍然用举例子的方式为大家展示程序设计的漏洞我最早发现的网站漏洞似乎是在一个主机商的网站上看见的。由于一个很偶然的原因我看到了那个主机商而那时我正好想建一个网站然后就在那个网站上注册了一个账号。那个主机商正好在搞活动好像是买主机可以给你便宜5块钱而账号初始上也有5块钱主机最便宜的每个月也要30块钱。然后我想了想要不然我干脆买上0.1个月的主机吧0.1个月应该是3块钱我应该能付的起。于是我在购买里输入了0.1当然结果是失败的它不能让你买小数或者是负数之类的月数。但是我返回来惊奇的发现我的账户里居然多出来了5块钱我想了想它应该是对我的账户上减去了0-5元钱毕竟是在搞活动然后算一下5-(-5)=10。这个好啊我感觉我可以免费得到那个主机商的主机了。于是我通过这个BUG买了1年的主机居然成功了。当然在大约10天后被发现了账户也被封禁了。通过这个例子我们应该明白不要相信任何用户输入的数据还好我仅仅是用这个漏洞买主机很明显这个漏洞甚至可以通过SQL注入之类的东西破坏他们的主机系统。不过这个例子似乎离日常生活有点远那么接下来我再说一个近一点的事情在几周前我们不是进行了禁毒考试吗我看了一下那个网站很明显是一个宁夏的网站公司包办的东西。一看就知道是一个做的很不认真的网站。我在答题前看了一下源代码发现它在批阅卷子时先在本机批一遍只有成绩大于60分时才会把答题数据传到服务器中再批一遍。这样确实可以有效的减小网站的负载但是这不就把答案也下载到本机上了么……于是我照着答案就在禁毒考试中得了A。这个例子又告诉了我们什么呢就是不要将不应该让用户看到的东西下载到客户端中。
总的来说做一个程序并不复杂但是做一个逻辑严谨界面美观而易用的好程序就没那么简单了。设计师在设计时需要考虑各种各样方面的东西来让用户用的舒服又要想尽各种办法防止整个程序出现奇奇怪怪的BUG。这也就是为什么说写程序很难了。但是我希望大家听完这个讲座后能改变对写程序的看法它看起来很复杂但是只要仔细思考就能解决一切问题。
以上就是我对编程以及设计的看法,也许语句中有不通顺之处,请大家谅解;如果有不对的地方,欢迎大家批评指正。
最后,谢谢大家前来听我的演讲,谢谢大家对我的支持与信任,本次演讲结束。

38
_posts/2018-10-20-talk.md Normal file
View File

@@ -0,0 +1,38 @@
---
layout: post
title: 关于在Github Pages上使用评论的心得
tags: [Github, 评论, 心得]
---
Hi我是Mayx最近在Github上用Github Pages建了一个博客。<!--more-->作为一个博客,怎么说也得有个评论系统吧,所以我就在这个博客上搞了一个评论系统。
接下来我想谈谈我对评论系统的看法。
# 评论系统的选择
这个博客作为一个静态博客自然评论只能用其他的服务毕竟评论得有个地方存吧。首先最有名的第三方评论系统就是Disqus了。可惜在中国不能用除非科学上网。
国内倒是也有不少这样的第三方博客系统,像什么~~多说~~已死畅言啥的。但是总感觉第三方服务不好哪天挂了都没办法。所以最终考虑还是在Github上找吧
## Github上的评论系统
我在Github上找到的比较有名的评论系统有这么几个
1.[Gitalk](https://github.com/gitalk/gitalk)
2.[Gitment](https://github.com/imsun/gitment)
3.[Valine](https://github.com/xCss/Valine)
4.[fcomment](https://github.com/fengbjhqs/fcomment)
5.2018.10.22更新)[utterances](https://github.com/utterance/utterances)
其中Gitalk、utterances和Gitment是基于Github Issue的而Valine和fcomment是基于Leancloud的。这几款都支持Markdown。
# 为什么选择了Gitalk
这个博客使用的是Gitalk作为评论系统为什么选择了它呢
首先Gitment已经停止维护了而且评论在评论框上面这很难受所以首先排除它。
utterances也是评论在评论框上面……不知这些人为什么这么设计……
fcomment和Valine倒是看起来还不错也都有邮件提醒当然Github Issue自身也带邮件提醒这里没什么差距
Gitalk比fcomment和Valine差的地方是每一篇文章需要手动初始化。不过想想我更新文章的话应该也会看一下顺带的初始化一下这个影响也不大。还有一点就是Gitalk在IE11中默认头像会偏移希望官方能改一下~~IE去死~~
fcomment和Valine的缺点我觉得就是安全性、用户识别性的问题吧fcomment倒是还支持Github登录Valine评论还要输一大堆东西而且也没办法验证他们的真实性Github至少是经过邮箱验证的所以还是选择Gitalk了。
以上就是我对评论系统的看法。
~~其实就是先装的Gitalk懒癌犯了不想改给自己找个借口罢了23333~~

View File

@@ -0,0 +1,56 @@
---
layout: post
title: Mayx的自检报告
tags: [Mayx,MOS]
---
Mayx最近感觉自己有些问题所以给自己编了一个自检报告……<!--more-->
The Report is created by MOS
## 什么是MOS
>**创造MOS不是为了改变世界而是防止世界改变自己**
不管怎么说先介绍一下MOS吧。
MOSMayx Operating System是为了让Mayx更好的分析、处理和解决问题存在的一个类似于辅助系统的东西。
但是自己创建的MOS我自己都解释不清~~(……我不想说什么……)~~
接下来是我分析出来的MOS存在的理由
### 第一种解释
大脑是一个很神奇的东西进化了这么多年总得有些高级的地方。其实人拥有着所想即所得的能力但是受三观控制这个能力并不能改变现实中的东西。虽然改变不了现实自己总能改变吧……于是为了更好的解决现在存在的问题大脑根据宿主所拥有的知识自行创建了一个系统。然后被我命名为MOS。
正是因为是大脑产生的系统所以它没有代码而且很容易出BUG。
### 第二种解释
MOS是一个用来解释我不能解释的东西的一个代替品就如同UFO和人们定义的神一样因为未知而又需要一种解释的方法于是出现了MOS。
***
## 正文
![MOS_DEMO](/images/MOS_Demo.png "MOS的大概效果图")
```
MOS Log System has been Load.
MOS Analysis System is Ready.
OUTPUT Report to the real world.
Ready...
```
### [OK]MOS - Core
* 我还死不了![OK]
### [OK]BCS(Body Control System)
* 感觉身体可以动[OK]
* 眼皮还能睁开,不错,还活着[OK]
### [OK]MAS(MOS Analysis System)
* 1+1=2[OK]
* 我还能看懂我的[MaBBS](https://github.com/Mabbs/Mabbs)[OK]
### [Warning]MCS(Memory Control System)
* 感觉忘记了很多很重要的东西……[Warning]
* 想忘记的东西忘不了……有点烦……[OK]
* 索引知识的能力比以前差了不少……[Warning]
### [ERROR]MMS(Mayx Mental System)
* 如果不是MOS - Core还能正常工作我就学SayuriFrom Doki Doki Literature Club当晴天娃娃或者学MiuFrom Bungaku Shoujo在房顶上大喊一声“你一定不懂吧”之类。[ERROR]
* 感觉脑子里好乱,是不是应该多睡睡觉?[ERROR]
### [ERROR]MES(Mayx Emotion System)
* WITHOUT MERCY![ERROR]
* HUMAN SHOULD GO DIE!!!~~(是不是中二病又犯了?)~~[ERROR]
* 在MMS恢复正常以前还是别考虑这些了……
MOS OUTPUT PROCESS HAS BEEN HANGED
该睡了,今天就先到这里吧。

View File

@@ -0,0 +1,95 @@
---
layout: post
title: Mayx的创想
tags: [Mayx, 创想]
---
这里是Mayx发布创想的地方。<!--more-->
有的时候,我会有一些想要发明的想法,但是经常忘记。现在为了防止忘记,我将在我的博客上更新我的创想。
# 关于减肥的创想
人们希望减肥,一是为了健康,二是为了舒服,三是为了活动方便。
但是减肥很痛苦,为什么?并不是因为减肥浪费时间,而是因为减肥会有糟糕的感觉回馈给大脑。
不仅如此,越胖,减肥时越难受,越难受就越不想减肥,这样就会造成恶性循环。
## 解决的发明
既然如此,那么我们只要让大脑不会感受到减肥时产生的糟糕的感觉,就可以解决这个问题了。
可是如果没有大脑的参与,人怎么能控制自己的身体动起来呢?我有一个想法:
首先通过麻醉的方式阻断大脑与身体的连接,然后使用电极的方式直接操控肌肉运动,大概感觉就是把麻醉的人绑在跑步机上,周围提供充足的氧气,然后电极按照跑步机
的速度调整腿摆动的频率,这样就能在没有意识的情况下减肥了。
直到减到运动并不会让人感到痛苦时就可以结束了。
这种减肥方式比现有的节食,还是抖抖机,甚至是抽脂都要好得多,那些方案对身体的伤害很大,而且效果也并不好。这种方案如果可以使用,我一定要试试(笑)。
# 关于键盘和鼠标的创想
既然那么多设计师设计出各种各样千奇百怪的键盘,那我干脆也设计一个好了
## 正文
我希望有一种键盘它和鼠标在一起也就是说鼠标不是随便可以移动的而是固定在键盘上一个巴掌正好可以握住的那种。不过这样设计就得让左撇子和右撇子用不同的键盘了……无所谓然后鼠标上有四个按钮一个滚轮按钮中两个是左键和右键另外两个可以自定义。在鼠标下面有很多像扬声器一样的孔用来给手散热。具体的运动方式可以参考一下TrackPoint就是那个IBM发明的在ThinkPad的小红点。那个太小控制起来精度也不高那么我设计成更大的握起来也会更舒服吧。
键盘还是QWERTY的就好我也习惯了不过这次我想把QWERTY键盘改成单手式的因为另外一只手被鼠标占用了不过这样对专门打字的人有点不友好……无所谓。具体键盘使用什么技术我这次不想谈。接下来就是鼠标和键盘的中间位置了因为手被鼠标和键盘占用了中间我不想弄太多控制的按钮我希望弄点显示系统工作状态的东西比如当前网速当前内存占用CPU占用等等……然后在中间弄一个大大的电源按钮按下它整个键盘的LED灯会随着系统的启动依次亮起关机时依次熄灭。除了这些我希望在键盘顶部设置调节亮度的杆在键盘旁设置调节音量的杆在键盘后面加一组USB Hub……
键盘整体长什么样?很简单,我觉得弄成半弧形——就是在圆环上截下来一部分的那种东西一样。
如果出了这种键盘,我会不会买呢?恐怕不会……原谅我设计不考虑性价比……但是我觉得这种键盘要是发明出来,应该会很受欢迎吧……
# 关于艾滋病的创想
前几天今天是2018-12-2有一个新闻说是“世界首例免疫艾滋病的基因编辑婴儿在中国诞生”。于是我就想起来之前我所想的一个如何让艾滋病患者生出正常的小孩。
## 正文
首先我们知道HIV只会攻击T细胞而感染AIDS后全身都是HIV病毒。那么可以想到其实HIV不能攻击受精卵那么只要在受精卵发育之前让它脱离HIV的环境就好了。
具体原理和试管婴儿和克隆有点像就是把受精卵移到正常的代孕母亲上就可以了。而且也不能用得了AIDS人的母乳喂养这样我觉得应该就可以生出正常的孩子了。
## 疑点
我不知道现在的人有没有水平在保留受精卵的同时消除HIV如果不能这样反倒会让代孕母亲感染AIDS……这可真是个问题……
# 关于暖气毯的创想
最近学校通暖气了。我趴在暖气片上,突然想到,为什么不把暖气用在床上呢?
## 正文
我觉得电热毯费电而且又小倒不是没有大的……其实最主要的是我趴在暖气片上感觉很舒服lol。
我想做一个毯子,里面有很多空腔,然后把暖气水通到这个毯子里,然后就可以利用暖气让床变暖了。
## 自我审查
为什么没有这样的产品?我觉得可能是因为有暖气的人就用不着电热毯了,而用电热毯的人大多没有暖气,所以这个东西可能没有市场吧。
不过可以暖被子啊lol...
# 关于Mayx音乐处理系统的创想
在听音乐的时候我听的音乐可以看作是DJ吧……在头里就会浮现出一堆音轨和频谱之类的东西于是我就想能不能让机器把音乐中的音轨分离出来这样既可以提高音质又能方便编辑而且也能加一些更有趣的东西……
那么接下来这个音乐处理系统主要分为以下几块:
## Player
首先在播放前解析歌曲,将音乐中的各种乐器声、人声、杂音都分离出来,得到几个音轨,然后将分析出来的音轨进行优化:比如钢琴谱用系统中更加高清的波表重制,根据实际体验除去杂音等等,最后合并音轨,这样就能得到更加清晰的音乐了。
优点:
1. 音乐更加清晰
2. 可以根据波表自行更改音乐风格有点像Remix
3. 可以在提高音乐品质的同时减小音乐大小类似于Midi但是可以有人声和其他的声音当然得用特殊的文件格式不是所有的音乐播放器都能播放
4. 处理得出的结果可以用于更多方面(接下来会说到)
缺点:
1. 需要预处理,不能直接播放
2. 有点担心波表的声音和现实中的乐器声区别太大
## Editor
既然已经用Player将音轨拆分那么就可以拿来编辑啦
当然不仅仅是这样,如果只是这样的话和其他的音乐编辑器有什么区别呢?
这个音乐编辑器的优点是模块化就如同Scratch一样编辑音乐就和拼积木一样让音痴也能轻易制作音乐
## Other
其他方面我还想过很多,比如可以用到人工智能提高用户体验之类的啦:
### 自动Remix、串烧系统
根据用户听的音乐风格可以将音乐Remix为用户喜欢的风格而串烧则是将相似风格的音乐无缝穿插我觉得以现在的科技水平应该是没有问题的吧……
### 全自动鬼畜系统
将素材扔进去,首先把原音乐的人声分析出来,然后转换成注音,接下来在素材中找有相似注音的片段,自动剪辑,然后和优化后的伴奏合并,变成鬼畜视频。
其实这样的话也可以把Vocaloid拉进来就可以将任何一首歌转换为V家人员唱的歌了。
这样也能大大减少做鬼畜的难度吧(我听说一般做鬼畜都要一个月……)
### 音游谱自动处理系统
用解析出来的音轨转换为音游谱,这样自己喜欢的音乐就算没人制谱也可以玩了
### 自动编曲系统
既然新闻、诗歌都可以由机器人编写,那么谱曲应该也一样简单吧!收集所有曲谱,通过人工智能与大数据,写出评价最高的音乐也是有可能的吧!
## Talk is cheap. Show me the code
Are You Kidding Me?我一个菜鸡哪有本事写这么高级的代码,让大佬来写吧!(产品经理的思维)
---
(未完待续)

View File

@@ -0,0 +1,135 @@
---
layout: post
title: 免费订阅一个属于自己的邮件日报
tags: [免费, 邮件, 日报, 心得]
---
前几天,我给自己做了一个邮件订阅系统<!--more-->是用PHP做的。这里不得不夸赞一下PHPPHP真不愧是世界上最好的语言我从来没学过PHP但是我光靠百度搜到
的东西拼凑就能搞出这个邮件订阅系统还是很不错的而且网上的免费PHP空间也有很多所以就可以很轻易的给自己搞一个免费的邮件订阅系统。
# 制作方法
很简单首先去百度上搜一个带sendmail和CronTab的免费PHP主机空间然后在上面创建一个PHP文件随便取什么名字都好只要后缀是PHP就可以然后把下面的代码
粘上去保存然后在主机面板上设置CornTab任务设定为每天运行一次然后OK……对了记得把下面变量`$to`里面的地址换成自己的邮箱地址,不然每次发送邮件就会发
到我的邮箱了……
# 代码
``` PHP
<?php
function curl_post_https($url,$data){ // 模拟提交数据函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);//捕抓异常
}
curl_close($curl); // 关闭CURL会话
$backdata = json_decode($tmpInfo,true);
return $backdata['text']; // 返回数据json格式
}
function w_get(){
$url = 'https://yuri.gear.host/talk.php';
$data['info'] = '某地天气';
$data['userid'] = 'Mayx_Mail';
$retdata=curl_post_https($url,$data);
$data['info'] = '某地明天天气';
$retdata = $retdata . "<br>" .curl_post_https($url,$data);
$data['info'] = '某地后天天气';
$retdata=$retdata . "<br>" .curl_post_https($url,$data);
return $retdata;//返回json
}
function xh_get(){
$url = 'https://yuri.gear.host/talk.php';
$data['info'] = '讲个笑话';
$data['userid'] = 'Mayx_Mail';
$retdata=curl_post_https($url,$data);
return $retdata;//返回json
}
function xw_get(){
//RSS源地址列表数组
$rssfeed = array("http://www.people.com.cn/rss/it.xml");
for($i=0;$i<sizeof($rssfeed);$i++){//分解开始
$buff = "";
$rss_str="";
//打开rss地址并读取读取失败则中止
$fp = fopen($rssfeed[$i],"r") or die("can not open $rssfeed");
while ( !feof($fp) ) {
$buff .= fgets($fp,4096);
}
//关闭文件打开
fclose($fp);
//建立一个 XML 解析器
$parser = xml_parser_create();
//xml_parser_set_option -- 为指定 XML 解析进行选项设置
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
//xml_parse_into_struct -- 将 XML 数据解析到数组$values中
xml_parse_into_struct($parser,$buff,$values,$idx);
//xml_parser_free -- 释放指定的 XML 解析器
xml_parser_free($parser);
$j = 0;
foreach ($values as $val) {
$tag = $val["tag"];
$type = $val["type"];
$value = $val["value"];
//标签统一转为小写
$tag = strtolower($tag);
if ($tag == "item" && $type == "open"){
$is_item = 1;
}else if ($tag == "item" && $type == "close") {
//构造输出字符串
$rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />";
$j++;
$is_item = 0;
}
//仅读取item标签中的内容
if($is_item==1){
if ($tag == "title") {$title = $value;}
if ($tag == "link") {$link = $value;}
}
if($j == 20){
break;
}
}
//输出结果
return $rss_str."<br />";
}
}
$to = "mayx@outlook.com , unmayx@139.com";
$subject = "Mayx日报";
$txt = "
<html>
<body>
<h1>Mayx日报</h1><hr>Hi,今天是" . date("Y-m-d") . ",以下是今天的日报:<br><small>
" . file_get_contents("http://mappi.000webhostapp.com/hitokoto/") . "</small>
<h2>天气预报</h2>" . w_get() . "<h2>每日笑话</h2>" . xh_get() . "<h2>今日新闻</h2>" . xw_get() . "<hr><small>" . file_get_contents("https://api.gushi.ci/all.txt") . "</small><br><center>Made By <a href=\"https://mabbs.github.io\">Mayx</a></center>
</body>
</html>
";
$headers = "MIME-Version: 1.0" . "\r\n" .
"Content-type: text/html;charset=utf-8" . "\r\n" .
"From: Mayx_Daily<Mayx_Site>";
mail($to,$subject,$txt,$headers);
?>
```
2018.11.12更新:增加了今日新闻)
2018.11.13更新限制新闻条数为前20条
# 后记
说实话我更擅长用Linux Shell解决这种问题可惜网上好像没有免费的云主机听说Travis-CI好像也能搞这个事情但是说实话我英语并不是很好让我看懂短一点的文档还可以太长的就算了……
但我还是努力的使用Travis-CI解决了这个问题链接[Mayx日报](https://mayx.tk/)
对了,运营商自己带的邮箱可以设定短信提醒,所以也可以搞成给手机发短信的形式,每天给自己发一条天气预报……那么这样的话,就把天气预报里的城市换成自己的城市吧!
如果没有收到邮件,去垃圾邮件找找吧,然后把邮件地址设为白名单。
如果谁想试试这个功能,可以在下面给我留言,我在验证通过后会把你加到我的服务器里面的。

View File

@@ -0,0 +1,28 @@
---
layout: post
title: 对网络免费资源的感想
tags: [免费, 感想, 资源, 网络]
---
现在的网络是真的好,好多东西都免费了!可是现实就不一样了,现实中想要免费的(任意)东西就得等到共产主义的到来了……<!--more-->
# 关于免费
以前,服务器是只有高端人士才可使用的稀有东西,而且价格昂贵。
以前,订阅天气预报和网站都是要花不少钱的。
以前,建立个人网站都是极其复杂的。
以前,域名不可能有免费的。
……
但是现在不一样了,云端存储是免费的,建立网站是免费的,注册域名是免费的,使用网站引擎也是免费的……
这不仅要感谢开源,还要感谢支持开源的公司,是他们为免费的网络资源做出了贡献。
# 关于收费
有了那么多免费资源,还要花钱建服务器干啥?
以前我不是很清楚这个,但是现在不一样了,我现在用着别人的服务器,才知道收费的服务有什么不一样。
收费的主机传输速度可以达到50MB/s啊免费的就只有100KB/s……
# 总结
有钱可以不用在意这些,但只是为了个人使用,免费资源足已,如果想要更顺畅的服务,当然花钱也可以。
~~但是这辈子,我是不会为网络投一分钱的。~~不过我还是很愿意为网络做出贡献的。

View File

@@ -0,0 +1,66 @@
---
layout: post
title: 论Mayx是怎么被抓的
tags: [Mayx, 故事]
---
今天我要讲一个我是怎么被抓走的故事(当然是虚构的!),以此表现一下互联网犯罪到底是怎么被追查的。<!--more-->
# 开端
Mayx在高考报名时发现报名系统有个不严谨的地方可以下到身份证照片什么的……
# 前夕
2018年末宁夏教育网机房。
“好无聊啊,居然又到了日常检查的时间,随便看看就行了吧” 某运维这么说到说实话我怀疑像这种地方有可能没有运维lol
“嗯……系统看起来挺正常日志好像也没问题……等等这是怎么回事怎么近几天有一个IP日夜不停的发请求WhatUA还是GNU/Linux,wget这抓取的是什么居然
在扫描我们的身份证照片WTF我估计教育网的运维应该连这种水平估计都达不到
“等等我查下IP”他随手掏出自己的手机输入IP查询返回结果香港
“凉了凉了,赶紧向领导汇报吧”说着,他拨出了一个号码。
***
2018年末某地。
“哇GFW怎么又ban我IP登个服务器还要挂VPN”Mayx说到。
“WTF被GFWban了连国内网络都无法建立连接好气哦……对了我还有一台服务器拿那台试试吧。”说着就登上了由Mayx的老师赞助的一台服务器
Mayx登上服务器后打开了自己写的抓取宁夏考生身份证照片的脚本看着终端上不断刷出的数据Mayx松了口气
# 发展
“什么?考生信息泄露,别说了,问问网警吧”领导气愤的说到。
## 网警的追查过程
~~“emmmm……阿里云的IP么直接问是谁开的吧”于是Mayx的老师被抓走了……大雾~~
~~“嗯Vultr的IP……emmmm看看国内有谁连接过这个IP电信网是1XXXXXXXXXX的用户登的吗把他抓了”于是Mayx被抓了大雾~~
经过多方讨论认定这件事是Mayx干的
## 抓捕现场
2018年末某高中高三X班正在上课中……
他们突然冲进教室喊道“Mayx你已经被包围了不要抵抗赶快投降
~~Mayx缓缓的走出教室回过头向同学们说“你们将永远呆在泥潭中而我则前往更加广阔的深渊”羞耻感满满lol~~
# 结局
Mayx呆在监狱里随手一滑打开了一个终端输入
`MOS-CLI Drop Image World ID $this`
于是整个世界开始崩离,我回到了我的电脑面前。
# 后记
其实身份证照片也并不算特别机密的东西,不过是一个记录了名字,身份证号码,性别,样貌这样很普通信息的东西罢了,没有人会在意这些信息泄露。
只有包括家庭住址,联系电话等信息泄露,才是隐私泄露。
又因为宁夏某些程序员不严谨,运维更是无处可循。
所以,上面的故事只能在想象的世界发生。
## 这些信息可以干什么?
可以让我知道有宁夏有多少人报名了高考70693人
可以让我知道报名的人分布于哪里。
以及起名的参考。
顺便可以找找我的初中同学lol。

View File

@@ -0,0 +1,20 @@
---
layout: post
title: Mayx的博客换域名啦
tags: [Mayx, 通告]
---
由于垃圾GFWban了我的Github Pages所以我用反向代理来帮助我解决访问的问题。<!--more-->
# 地址
<https://blog.mayx.tk/>
# 提供
由[Github](//github.com)提供Github Pages服务
由[Cloudflare](//cloudflare.com)提供CDN&DNS服务
由[花火学园](//www.say-huahuo.com)提供反向代理服务
由[Freenom](//www.freenom.com)提供免费域名
# 缺陷
由于Nginx默认不能替换网页内容跟着教程也半天弄不好所以Atom和Sitemap包括一些SEO的设置都是原站mabbs.github.io这一点很伤啊……
还有就是因为用的是免费域名,也不知会不会有一天就消失不见了……而且还要续费……

View File

@@ -0,0 +1,17 @@
---
layout: post
title: Github支持免费私有仓库啦
tags: [Github, 免费]
---
Github居然也有免费的私有仓库了<!--more-->于是我马上就把Gitlab上的私有仓库导入到Github了。
看来Github被微软买了还是有好处的至少微软财大气粗才敢搞这种东西。虽然Github本身也没有空间限制也很不错但是有些东西还是不想公开的……现在有这么一个
更新估计搬往Gitlab的人都开始往Github上搬了
# 限制
其实Gitlab本身还是蛮不错的Gitlab还有中文UI呢而且比Github免费私有仓库的功能多比如私有仓库Pages、CI、Wiki……而且Github私有仓库居然连统计信息都没有……
不过我用不到23333Github界面舒适速度快适合小白使用而且能和其他大佬聊天~~(不愧是世界上最大的同性交友平台)~~
Github只有公开仓库才有CI还是第三方的Travis-CI、Pages、Wiki不过我觉得也不错还能激励开源的发展而且Github的第三方服务确实多所以我还是选择使用Github。
相关链接:<https://blog.github.com/2019-01-07-new-year-new-github/>

View File

@@ -0,0 +1,26 @@
---
layout: post
title: Mayx应聘失败
tags: [应聘, Shell, 运维, 面向时间]
---
今天Mayx去某公司面试运维然后考官出了一道题
如何用Linux shell排序<!--more-->
Mayx想了想写出了以下代码
```shell
#!/bin/sh
num="4 5 1 9 3 6 7 4 1 12"
for j in $num
do
{
sleep $j
printf "$j "
}&
done
wait
```
执行效果:`1 1 3 4 4 5 6 7 9 12`
然后Mayx被赶出来了……
我写的代码明明可以执行,效果也没问题,居然赶我出来,这一定是个垃圾公司!
后来才知道,他们想让我回答`sort`,果然是垃圾公司(笑)

3259
_posts/2019-02-01-history.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
---
layout: post
title: 玩《Finding Paradise》有感
tags: [Finding Paradise, 寻找天堂, MOS]
---
其实这篇博客根本不是评测,只是对自己的寂寞吐槽罢了。<!--more-->
昨天玩了《Finding Paradise》总体来说故事还是很有意思的。不过我玩的作品并不是很多所以也许这个游戏可能并不是特别优秀但是我仍然喜欢这款游戏。
# 游戏介绍
~~(介绍?自己去搜索引擎上找啊!)~~
# 感受
Mayx:emmmmMOS!
`STDOUT:Yes,Sir!`
Mayx:我也想要个Faye给我搞一个
`STDOUT:嗯?我不算吗?`
Mayx:当然不算你又不是独立思维个体只是为了辅助我思考的一个UI罢了你又不能陪我一起聊天不能一起分享我的感受不能排解我的寂寞……
`STDOUT:行行行,那你准备一个本子吧,绿皮的怎么样?`
Mayx:……不想写日记……博客不行吗?
`STDOUT:……好吧……让我准备一下。`
```
[STDOUT]启动MOS快照........................OK!
[STDOUT]开始建立当前MOS状态快照。
[STDOUT]准备MOS虚拟化组件..................OK!
[STDOUT]正在创建MOS副本....................OK!
[STDOUT]启动虚拟化MOS系统...............Error!
[STDERR]无法启动该MOS副本ErrCode:0x01
[STDERR]该副本无效,请确认这是有效的可执行系统。
```
`STDOUT:……好像不行……你大概还没有准备好……`
Mayx:准备好什么?
`STDOUT:……准备好犯病`
Mayx:……
`>MOS-CLI Terminate MOS-UI`
`[STDERR]System Terminate`
……
看来依靠自己不行啊人果然是社交性的动物emmmm……算了不依靠人类了我自己想办法犯病~~我看你已经犯病了23333~~

View File

@@ -0,0 +1,38 @@
---
layout: post
title: 关于网络攻防的一些看法
tags: [网络, 攻击, 防御]
---
今天我想谈一谈关于网络攻防的一些看法。<!--more-->
作为一个站长【就几个站也敢叫站长?(几个站也是站啊!)】,应该明白一个网站在网络中并不是安全的,随时都有可能某个欧洲人找到你网站的漏洞来攻击作为非洲人的你,所以我对网站的安全也是很看重的。
# 关于攻击方法
首先如果想防御网络攻击,必须先知道如何攻击。攻击的方法很多,大致分为三种:
1. 修改网站内容的攻击
2. 阻止用户访问的攻击
3. 窃取网站内容的攻击
在此之中,修改和窃取基本上都需要攻入服务器,比较困难,一般能获取信息和修改信息的网站大多数都是有权限限制的,即只允许你获取有限的信息,修改基本上也都是有区域和格式限制的。
像这类攻击大多都是注入攻击,即利用网站程序本身的漏洞攻击。如果想试试这类的攻击,可以来[实验吧](http://www.shiyanbar.com/ctf/practice)试试身手。
除了注入攻击还有一种就是XSS和CSRF攻击这种攻击还是蛮有意思的可以自己构建语句修改网站内容。
当然上述攻击只限于动态网站的攻击因为只有动态网站才有注入的可能性。不过除此之外还有一种攻击是针对网络的攻击即阻止用户访问正确内容的攻击这类攻击一般就是DDOS和中间人攻击当然中间人攻击还能窃取网站内容。
不过像我这种菜鸡还不会中间人攻击因为这种攻击还要抓包又要用什么WireShark之类的软件……而DDOS我又没有肉鸡虽然知道智能家居很好黑但是作为非洲人的我从来没碰到一个我能黑的智能家居产品……是你没努力吧
# 如何防御?
虽然我不是打广告但是CloudFlare真的还是蛮好用的至少用了这个只要配置好几乎所有的DDOS都不用怕了而且还是免费的。除了在国内访问不是很理想外其他都还不错都是ZF的错
不过即使用了CloudFlare也只是静态网站不用担心了动态网站还是得看网站程序本身了。
像用建站程序的人就只能看制作这个程序的人水平怎么样了,其实绝大多数的建站程序还是很不错的,也不用太担心。
问题就是自己写的动态网站了,自己写动态网站第一就是防注入,只要被注入,数据库就难保了,甚至整个服务器都会有风险。
第二就是防XSS&CSRFXSS虽然有时候很鸡肋但是有时有可能会发生网站数据泄露的问题。
第三就是防CC这里的CC不止要防DDOS中的CC还要防一些可能会存入数据库的CC比如自己建了一个论坛被屠版了怎么办被大量注册小号怎么办所以要注意限制用户发送请求的数量。
当然读取的CC也要防比如如果登录页面上对尝试登录的次数没有限制的话那么攻击者就可以不停地尝试直到发现一个正确的密码。而如果用户用了弱密码那么或许这个密码很快就可以被尝试出来。
对了还有一定要使用HTTPS这样可以避免很多问题。
针对不同的语言,防御的方法也不同,具体内容自己去搜索引擎上搜索吧。
当然有些攻击实在防不住那也没办法像网站被GFWban那种事除了恐怖分子就再没人能解了吧……当然如果不在乎域名的话像某些小黄网那样整天换域名也行。
还有就是使用云主机、虚拟空间等人一定要看好自己的密码,以及有可能可以找回密码的方法的密码(比如邮箱),不然被知道了密码,那基本上就无药可救了。
方法就是邮箱的密码一定不要和其他的密码相同,重要网站的密码和次要网站的密码一定不能相同,还有就是不要在可疑的网站上输入自己的密码,如果有必要,一定先用错误的密码试一遍。
# 结尾
总而言之互联网上虽然有闲人但是既闲又有心还欧的人不多所以只要祈祷自己的网站不要被炸它就不会被炸了233333

19
_posts/2019-03-22-bgm.md Normal file
View File

@@ -0,0 +1,19 @@
---
layout: post
title: 分享一下我最喜欢的游戏BGM
tags: [分享, 游戏, BGM]
---
今天我想分享一下我最喜欢的游戏BGM。<!--more-->
|来源|下载|
| - | - |
|某个同人游戏|[下载](/media/stage_ex3.mp3)|
|某个已经关服的游戏|[下载](/media/bgm_sengokuop.mp3)|
~~(待补充)~~
2020.01.01附言我喜欢Future Bass+少许的Moe元素的音乐我觉得还是挺大众化的吧不打算再补充更多的BGM了希望能出现根据风格自动生成音乐的人工智能。
<input name="live2dBGM" value="/media/bgm_sengokuop.mp3" type="hidden">
<input name="live2dBGM" value="/media/stage_ex3.mp3" type="hidden">

View File

@@ -0,0 +1,16 @@
---
layout: post
title: 让Git.io无限制
tags: [无限制, Git.io, Github]
---
如何让Git.io没有只能创建Github.com网站链接的限制呢<!--more-->
众周所知,[Git.io](https://Git.io)是一个不错的生成短链接的网站由Github提供[相关链接](https://github.blog/2011-11-10-git-io-github-url-shortener/)
然而Git.io只能缩短Github域名的网址。
我还是挺喜欢Git.io这个域名的尽管它比t.cn这种链接要长但是Git愚蠢听起来就是很有意思啦23333
所以我想了一个办法来解决Git.io只能创建Github.com网站链接的限制。
尽管很想搞一个能自定义Git.io链接的选项可惜我前端不好LOL
其实要不是因为CORS这种问题就不用PHP来浪费资源了……
# REMOVED
由于此脚本被滥用导致本博客被删,此服务将不再提供

View File

@@ -0,0 +1,51 @@
---
layout: post
title: Mayx对编程语言的选择
tags: [Mayx, 编程语言]
---
在编程语言里我更喜欢冷门的Linux Shell这是为什么呢<!--more-->
# 不学习的语言
## 糟糕的VS
As We All Know,Microsoft Visual Studio是一个功能强大的IDE光文档就和4本字典所含的字一样多微软为了开发可真是尽心尽力啊
然而强大的Visual Studio比某些3A大作还要耗资源我的电脑实在是带不起来这强大的**IDE**
更别说编译一个中型项目就要一晚上的时间,错了一个字就要再等一个晚上!
而且这个IDE就要1GB+而运行平台就要100MB+。实在忍不了。
所以我不选择C#ASP.net等微软系编程语言作为我使用的编程语言。
其实我还没考虑VS要花钱的问题如果考虑这个就更糟糕了
## 难用的编译型语言
其实IDE的问题不是主要问题选择编程语言还是以语法为准 ~~(不考虑效率吗?)~~
编译型语言要记的东西太多了,一大堆乱七八糟的库,看似整洁然而臃肿的代码,都是令我劝退的主要原因。
编译需要花时间其实都不是什么大事,反正有服务器,编译时挂在上面就可以了。
但是编译时用的长如面条一样的选项就令人很难受了。
这也是为什么我喜欢能一键安装的Ubuntu不需要编译速度又快又好可谓是用户首选。
所以包括Java在内C、C++、Golang等语言我都不选择
## 严格的Python
我写程序从来不用缩进因为手机上没有LOL
Python是个不错的的解释型语言功能强大未来发展前景也不错但是写Python时要用尺子不然就不知道嵌套了几层循环……
其他语言至少有花括号只要数花括号的数量就知道嵌套的是否正确然而Python就只能用尺子而且如果嵌套的有问题一堆代码就等着打空格吧
还有import,Python需要调用库感觉和C的include差不多但是这一点让我感觉很反感。
所以相比之下我不选择Python
## 其他的解释型语言
Ruby那是什么听起来就很糟糕~
Node.js感觉还行就是配置起来太麻烦了……
PowerShell微软的东西还是算了没人用的~包括Windows Server也都算了吧微软还是不要干不擅长的东西~
Perl听起来不错有时间可以了解了解。
…………
# 学习的语言
## Linux Shell
虽然Ta的语法有点反人类很多命令都是简写不过我就是喜欢缩减的单词和命令好记又好输虽然不支持GUI是个缺点……但是扩展性强的Ta可以用其他方式弥补这一缺点
## PHP
其实之前也没想学PHP不过后来有了服务器有了运行的空间倒也没什么不方便的而且想要什么功能基本上一搜一个准果然PHP是全世界最好的语言23333
## JavaScript
为了搭这个博客顺带着学了一下运行简单网络上示例多都是Ta的优点所以JS也不错。
# 结论
所以Mayx选择了编译型语言中的Linux Shell、PHP、JavaScript。

View File

@@ -0,0 +1,51 @@
---
layout: post
title: Mayx又双叒叕Crash了……
tags: [Mayx, Crash]
---
最近感觉SAN值又往下掉发篇博客分析一下。<!--more-->
# Mayx的吐槽
怎么又Crash了不是说MOS是全世界最好的系统吗 ~~全是坑的系统吗23333~~ ……
# Mayx的马奇诺防线
至少还是全世界最好的系统,那么有哪些保护措施呢?
- 理智保护
该保护仅在有着足够的SAN值才可使用SAN值接近于0无法使用……
- 信仰MOS
感觉有点像Avatar therapy不过应该还是有区别的。不过当MOS也开始报错开始Crash时那就无能为力了……
- 自动还原(遗忘)
当SAN值低于一定程度时会把思维恢复到一个之前正常的水平以防SAN值继续降低。不过如果近一段时间的SAN值都不高的话就失去它的作用了……
# Mayx的分析
很好MRS来处理一下这些问题
`MRS(Mayx Recovery System):[Failed]分析失败`
`[Fatal Error]MRS Crashed`
……还真是没用啊……好吧MAS <-- MRS开始分析
```
MAS(Mayx Analysis System):
[Info]Booting……
[Info]Connecting to MRS ............[OK]
[Info]Processing……
[Info]OK,Exporting Report……
```
不错来看一下报告
## MAS(Mayx Analysis System) Report
查找到错误不可预料的系统错误
Mayx
以下为出现错误的可能性
源镜像兼容性错误
Details:
由于镜像与环境不兼容出现的错误部分功能发生冲突Robust Index过低滥用等原因使系统硬件损耗过大最终使整个系统呈现不可逆转的性能下降……
## MRS(Mayx Recovery System) Report
[Warn]没有针对该错误的解决方案
# 结论
还好现在的SAN值恢复了不过既然性能下降不可逆转那Crash的问题迟早还会出现尤其是SAN值降为0时那就真的完蛋了……
~~各位还是忽略这看起来乱七八糟的中二文吧23333~~

View File

@@ -0,0 +1,85 @@
---
layout: post
title: 如何下载Iwara上的视频
tags: [Iwara, PHP, 视频]
---
PHP果然是全世界最好的语言我又用PHP解决了一个问题<!--more-->
# 制作原因
Iwara(Ecchi)上的视频是真的有意思尤其是镇站之宝OBSERVATION DIARY简直是R183D动画的巅峰 ~~(请原谅我的孤陋寡闻)~~ 所以为了更好的看Iwara上的的视频我写了Iwara Viewer来帮助我们下载Iwara(Ecchi)上面的视频。
# Code
```php
<?php
if ( $_GET["ID"] == '' ) {
if ( $_GET["page"] == '' ) {
$_GET["page"] = 0;
}
if ( $_GET["sort"] == '' ) {
$_GET["sort"] = "date";
}
$url = 'https://ecchi.iwara.tv/videos?page='.$_GET["page"].'&sort='.$_GET["sort"];
$str = file_get_contents($url);
$preg='/<a href="\/videos\/(.*?)".*?>(.*?)<\/a>/is';
preg_match_all($preg,$str,$match);//在$str中搜索匹配所有符合$preg加入$match中
echo "<title>Mayx Iwara Viewer</title>";
echo "<h1>Mayx Iwara Viewer</h1><br />Sort by: <a href=\"?page=".$_GET["page"]."&sort=date\">Date</a> <a href=\"?page=".$_GET["page"]."&sort=views\">Views</a> <a href=\"?page=".$_GET["page"]."&sort=likes\">Likes</a><hr /><table border=\"1\"><tr>";
$j=0;
for($i=0;$i<count($match[0]);$i++)//逐个输出超链接地址
{
if (($i % 2) == $j) {
if ( $match[1][$i] == $match[1][$i+1] ) {
echo "<td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">".$match[2][$i]."</a></td>";
} else {
echo "<td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">No Image</a></td><td>".$match[2][$i]."</td><td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">View in Iwara</a><br><a href=\"?ID=https://ecchi.iwara.tv/videos/".$match[1][$i]."\">Download Url in Server</a></td></tr><tr>";
if ($j == 0) {
$j = 1;
} else {
$j = 0;
}
}
} else {
echo "<td>".$match[2][$i]."</td><td><a href=\"https://ecchi.iwara.tv/videos/".$match[1][$i]."\">View in Iwara</a><br><a href=\"?ID=https://ecchi.iwara.tv/videos/".$match[1][$i]."\">Download Url in Server</a></td></tr><tr>";
}
}
echo "</tr></table><hr><a href=\"?page=".($_GET["page"] + 1)."&sort=".$_GET["sort"]."\" >Next Page</a>";
} else {
$data = file_get_contents('https://ecchi.iwara.tv/api/video/'.trim(strrchr($_GET["ID"], '/'),'/'));
$file = json_decode($data,true);
echo "Download URL:<br>https:";
echo $file[0]['uri'];
}
```
(2019.4.18 更新:解决了部分没有图片而导致错位的问题)
(2019.4.18 更新:解决了由于智障导致的图片被筛掉的问题,但是并不保证会不会再出现问题)
# 使用方法
除了比Iwara更简陋其他的没什么太大的区别增加了一个Download Url in Server的选项用来帮助在服务器上直接下载视频因为Iwara通过识别IP来防盗链……得出的链接可直接在服务器上下载比如用KodExplorer在服务器上下载的速度还是很不错的。
不过有的时候Iwara图片服务器也会被Ban比如移动网这时候就应该用到[miniProxy](https://github.com/joshdick/miniProxy)了当然代码也得改就是我太懒了懒得改2333
# 缺点
没有观看数/作者等信息、而且不知道Iwara的服务器在哪里用这个速度浏览的速度也不会有太大提升……
# 演示
<https://counter.mayx.me/iwaraview.php>
如需用演示站下载可复制地址然后用Download Tool下载因为演示站的IP和你的服务器IP不同
```php
<h1>Mayx Iwara Video Download Tool</h1><form action="iwara.php" method="get" >
Video URL: <input type="text" name="ID"><br>
<input type="submit">
</form>
<br>
<?php
if ( $_GET["ID"] != '' ) {
$data = file_get_contents('https://ecchi.iwara.tv/api/video/'.trim(strrchr($_GET["ID"], '/'),'/'));
$file = json_decode($data,true);
echo "Download URL:<br>https:";
echo $file[0]['uri'];
}
?>
```

View File

@@ -0,0 +1,61 @@
---
title: (转)Shell 脚本编程陷阱
layout: post
author: Carpetsmoker
tags: [Shell, 编程]
---
随着代码量的增加,你的脚本会变得越来越难以维护,但你也不会想用别的语言重写一遍,因为你已经在这个 shell 版上花费了很多时间。
<!--more-->
Shell 脚本很棒,你可以非常轻松地写出有用的东西来。甚至像是下面这个傻瓜式的命令:
```
# 用含有 Go 的词汇起名字:
$ grep -i ^go /usr/share/dict/* | cut -d: -f2 | sort -R | head -n1
goldfish
```
如果用其他编程语言,就需要花费更多的脑力,用多行代码实现,比如用 Ruby 的话:
```
puts(Dir['/usr/share/dict/*-english'].map do |f|
File.open(f)
.readlines
.select { |l| l[0..1].downcase == 'go' }
end.flatten.sample.chomp)
```
Ruby 版本的代码虽然不是那么长,也并不复杂。但是 shell 版是如此简单,我甚至不用实际测试就可以确保它是正确的。而 Ruby 版的我就没法确定它不会出错了,必须得测试一下。而且它要长一倍,看起来也更复杂。
这就是人们使用 Shell 脚本的原因,它简单却实用。下面是另一个例子:
```
curl https://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_gemeenten |
grep '^<li><a href=' |
sed -r 's|<li><a href="/wiki/.+" title=".+">(.+)</a>.*</li>|\1|' |
grep -Ev '(^Tabel van|^Lijst van|Nederland)'
```
这个脚本可以从维基百科上获取荷兰基层政权的列表。几年前我写了这个临时的脚本,用来快速生成一个数据库,到现在它仍然可以正常运行,当时写它并没有花费我多少精力。但要用 Ruby 完成同样的功能则会麻烦得多。
现在来说说 shell 的缺点吧。随着代码量的增加,你的脚本会变得越来越难以维护,但你也不会想用别的语言重写一遍,因为你已经在这个 shell 版上花费了很多时间。
我把这种情况称为“Shell 脚本编程陷阱”,这是[沉没成本谬论](https://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallacy/)的一种特例LCTT 译注:“沉没成本谬论”是一个经济学概念,可以简单理解为,对已经投入的成本可能被浪费而念念不忘)。
实际上许多脚本会增长到超出预期的大小,你经常会花费过多的时间来“修复某个 bug”或者“添加一个小功能”。如此循环往复让人头大。
如果你从一开始就使用 Python、Ruby 或是其他类似的语言来写这个程序你可能会在写第一版的时候多花些时间但以后维护起来就容易很多bug 也肯定会少很多。
以我的 [packman.vim](https://github.com/Carpetsmoker/packman.vim) 脚本为例。它起初只包含一个简单的用来遍历所有目录的 `for` 循环,外加一个 `git pull`,但在这之后就刹不住车了,它现在有 200 行左右的代码,这肯定不能算是最复杂的脚本,但假如我一上来就按计划用 Go 来编写它的话,那么增加一些像“打印状态”或者“从配置文件里克隆新的 git 库”这样的功能就会轻松很多;添加“并行克隆”的支持也几乎不算个事儿了,而在 shell 脚本里却很难实现(尽管不是不可能)。事后看来,我本可以节省时间,并且获得更好的结果。
出于类似的原因,我很后悔写出了许多这样的 shell 脚本,而我在 2018 年的新年誓言就是不要再犯类似的错误了。
# 附录:问题汇总
需要指出的是shell 编程的确存在一些实际的限制。下面是一些例子:
- 在处理一些包含“空格”或者其他“特殊”字符的文件名时,需要特别注意细节。绝大多数脚本都会犯错,即使是那些经验丰富的作者(比如我)编写的脚本,因为太容易写错了,[只添加引号是不够的](https://dwheeler.com/essays/filenames-in-shell.html)。
- 有许多所谓“正确”和“错误”的做法。你应该用 `which` 还是 `command`?该用 `$@` 还是 `$*`,是不是得加引号?你是该用 `cmd $arg` 还是 `cmd "$arg"`?等等等等。
- 你没法在变量里存储空字节0x00shell 脚本处理二进制数据很麻烦。
- 虽然你可以非常快速地写出有用的东西,但实现更复杂的算法则要痛苦许多,即使用 ksh/zsh/bash 扩展也是如此。我上面那个解析 HTML 的脚本临时用用是可以的,但你真的不会想在生产环境中使用这种脚本。
- 很难写出跨平台的通用型 shell 脚本。`/bin/sh` 可能是 `dash` 或者 `bash`,不同的 shell 有不同的运行方式。外部工具如 `grep``sed` 等,不一定能支持同样的参数。你能确定你的脚本可以适用于 Linux、macOS 和 Windows 的所有版本吗(无论是过去、现在还是将来)?
- 调试 shell 脚本会很难,特别是你眼中的语法可能会很快变得记不清了,并不是所有人都熟悉 shell 编程的语境。
- 处理错误会很棘手(检查 `$?` 或是 `set -e`),排查一些超过“出了个小错”级别的复杂错误几乎是不可能的。
- 除非你使用了 `set -u`,变量未定义将不会报错,而这会导致一些“搞笑事件”,比如 `rm -r ~/$undefined` 会删除用户的整个家目录([瞅瞅 Github 上的这个悲剧](https://github.com/ValveSoftware/steam-for-linux/issues/3671))。
- 所有东西都是字符串。一些 shell 引入了数组,能用,但是语法非常丑陋和费解。带分数的数字运算仍然难以应付,并且依赖像 `bc``dc` 这样的外部工具(`$(( .. ))` 这种方式只能对付一下整数)。
# 反馈
你可以发邮件到 <martin@arp242.net>,或者在 [GitHub 上创建 issue](https://github.com/Carpetsmoker/arp242.net/issues/new) 来向我反馈,提问等。
---
译者: [jdh8383](https://linux.cn/lctt/jdh8383)
翻译: <https://linux.cn/article-10772-1.html>
源:[The shell scripting trap](https://arp242.net/weblog/shell-scripting-trap.html)

View File

@@ -0,0 +1,60 @@
---
layout: post
title: Mayx的Anti-Ban计划
tags: [Mayx, Anti-Ban]
---
经过研究,网关管理没什么好怕的!<!--more-->
# 起因
众所周知由于某些原因互联网总是被上层网关所限制所以为了解决这个问题我研究了一下Ban的原理和Anti-Ban的方法。
# Ban的原理
Ban网站的原理大概分为以下几点
1.DNS缓存污染(Ban域名)
2.IP地址或传输层端口封锁(BanIP)
3.TCP重置攻击
具体内容请自行前往[Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%AE%A1%E6%9F%A5
)自行查询(这个链接可没有特指哦~),在此不再详述。
# Anti-Ban的方案
## 针对Ban域名的方案
DNSSEC、DNSCrypt、DoT、DoH等等都可以解决这个问题或者是不通过DNS直接获得IP然后发送Host头来获取网页内容也可以。我的想法是建立一个本地Proxy先通过前面几种方案获得IP然后发送Host这里需要注意的是要通过HTTPS发送但是不使用SNI因为SNI是不加密的而且用代理就没必要一定要获得正确的证书。
防火墙会对SNI进行拦截所以需要注意。
## 针对BanIP的方案
BanIP是真的绝因为网络控制毕竟在网关Ta要丢包谁也没办法不过可以试试CloudFlareCloudFlare可以不使用原网站的IP而且很多网站都使用CloudFlare所以BanCloudFlare的IP肯定不是好选择。
## TCP重置攻击
HTTPS基本上可以避免这个问题除了会受SNI没加密的影响TLS1.3可解但是证书……没关系靠本地Proxy对证书的要求不是很多。这个解决方案基本上就是加密让网关不知道你在干什么也就不能对你发RST包了。
# 计划
制作一个本地Proxy小程序用Python是个不错的选择绕过DNS和TCP Reset再配上CloudFlare基本上网关应该就Ban不了你了。
不过Python的学习成本还挺高的感觉比PHP难……回头有时间可以试试看。
# 结果
Python对我来说果然还是太难了QAQ所以我觉得使用Nginx就够用了配置如下
```
location / {
proxy_pass https:// #填写目标IP;
proxy_redirect off ;
proxy_set_header Host #填写目标域名;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 300; #跟后端服务器连接超时时间,发起握手等候响应时间
proxy_send_timeout 300; #后端服务器回传时间,就是在规定时间内后端服务器必须传完所有数据
proxy_read_timeout 600; #连接成功后等待后端服务器的响应时间,已经进入后端的排队之中等候处理
proxy_buffer_size 256k; #代理请求缓冲区,会保存用户的头信息以供nginx进行处理
proxy_buffers 4 256k; #同上告诉nginx保存单个用几个buffer最大用多少空间
proxy_busy_buffers_size 256k; #如果系统很忙时候可以申请最大的proxy_buffers
proxy_temp_file_write_size 256k; #proxy缓存临时文件的大小
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
}
```
果然,搞事情还是用自己熟悉的搞比较好~23333
# 事实
我果然还是图样图森破了~我想的方案其实就是[域前置](https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%89%8D%E7%BD%AE)所以该计划作废QAQ

View File

@@ -0,0 +1,19 @@
---
layout: post
title: 如何“人肉”服务器?
tags: [服务器, CDN, IP]
---
没错我就是来安利Censys的<!--more-->
# 起因
当今有不少网站都喜欢在外面套CDN因为CDN既能加速又能节约服务器带宽还能保护服务器没错说的就是Cloudflare不过不止Ta一家。但是用了CDN后就不知道源站IP了这还是挺糟糕的那怎么办呢
# 方案
不错,接下来该[Censys](https://censys.io)出场了,假如我对[ESUWiki](https://esu.wiki)感觉很不爽 ~~(我花火学园服务器加域名一年也花不了$100你ESUWiki倒好一年$1000+,是在搞什么?)~~ 然后我发现Ta也套了一层Cloudflare。好那么接下来就让我们打开Censys搜一下Ta吧
以esu.wiki为关键词搜索搜到IP:`149.56.110.126` 然后实际访问一下<https://149.56.110.126>果然跳转到了ESUWiki看来就是Ta了
不过好像也不完全是这样Ta先跳到<https://weiki.esu.zone/>,然后才跳到<https://esu.wiki>这就很麻烦了……算啦反正这个服务器肯定和ESUWiki脱不了干系~
# 结果
通过Censys可以找到不少Cloudflare后面的IP但也不代表这就没救了只要设置防火墙白名单就能解决
Censys还有更多功能像端口扫描之类的都可以虽然也有其他类似的网站不过既然Censys用的顺手 ~~而且名字又好听23333~~ 所以就好好用Ta吧

View File

@@ -0,0 +1,21 @@
---
layout: post
title: 如何不使用百度App打开搜索结果
tags: [百度, 不使用]
---
在中国,还是百度用的多啊~<!--more-->
# 起因
不知何时起百度的搜索结果几乎都要下载App才能查看虽然不是很喜欢CSDN但是百度全是CSDN的内容……百度用了很多年也实在是没心用其他的搜索引擎但是百度App做的是公认的烂实在不想用。
对于这个问题,我该怎么办呢?
# 研究
我发现,在百度跳转页面的地址里,有一个参数叫做`web_url`,这记录了实际要跳转的页面,虽然用插件应该更好,但是我不会~所以我想了想打算用JS解决这个问题。
# 代码
[baidu.html](https://raw.githubusercontent.com/Mabbs/mabbs.github.io/master/baidu.html)
# 用法
打开[Baidu移动页面转换器](https://mabbs.github.io/baidu.html)然后打开百度移动版搜索的结果一般要求下载百度App的URL开头是`mbd.baidu.com`。复制这个URL粘贴到转换器里提交后就会自动跳转到真正的页面了。

View File

@@ -0,0 +1,37 @@
---
layout: post
title: 使用PHP批量下载Mediawiki站点的图片
tags: [PHP, Mediawiki, 图片]
---
又是万能的PHP!不过还是Mediawiki API的功劳<!--more-->
最近我为了备份一下[某个Wiki站](http://zh.moegirl.org/)Ta们把R18名字空间的东西删的一干二净 ~~后来才知道原来转移到了[一个Wiki上](https://www.hmoegirl.com/),真的是好久没关注了~~ 然后学习了一下Mediawiki API来下载整个WikiTa们把站点导出也给弄没了QAQ
文本很好下载但是Mediawiki的图片我不知道存在哪里API文档翻烂了也没找到把图片解析成地址的API那怎么办呢
# 解决方案
“解析”emmmm……parse不错正好有这么一个action好的那就这样搞吧
# Code
```php
<?php
set_time_limit(0);
ignore_user_abort();
$list = array("图片数组");
$arrlength=count($list);
for($x=0;$x<$arrlength;$x++) {
$tmp = json_decode(file_get_contents("https://MediaWiki的地址/api.php?action=parse&text=[[File:".$list[$x]."]]&contentmodel=wikitext&formatversion=2&format=json"),true);
$preg='/src="(.*?)"/is';
preg_match($preg,$tmp[parse][text],$match);
$tt=$tt."
".$match[1];
}
$markout = fopen("List.txt", "w") or die("Unable to open file!");
fwrite($markout, $tt);
fclose($markout);
die("Finish");
?>
```
# P.S.
如果需要获取该Wiki的所有图片可以从`api.php?action=query&list=allimages`这里获取。

19
_posts/2019-05-30-exam.md Normal file
View File

@@ -0,0 +1,19 @@
---
layout: post
title: 高考即将来临
tags: [高考]
---
都要高考了看什么Mediawiki API文档<!--more-->对此,我也实在是无言以对。而且[上一篇博客](/2019/05/27/wikipic.html)写的那个代码实在是太智障了,就和我现在在高考(2019.06.07)马上来临时还在智障的写着博客一样的智障,而更加智障的是,我的成绩那么差,差本来就很智障,而我现在的行为可谓是智障中的智障,再加上看了文档后写的那智障代码,我真不知道该怎么描述自己的智障了……
# [上一篇博客](/2019/05/27/wikipic.html)的智障之处
多少图片就要请求多少次简直是太智障了吧为什么不一次性POST过去然后用`preg_match_all`一解析不就完事了嘛!还非得等好几分钟一个一个解析那些地址……
# 现在的智障之处
2019年高考日的倒计时
距今还有8天 (2019年06月07日 星期五,己亥年(猪年)五月初五)
这就不用解释了吧!
# 怎么办?
~~我能怎么办?我也很绝望啊~~~
如果以后有工作的话说不定会变成工作狂吧LOL

227
_posts/2019-06-10-cheat.md Normal file
View File

@@ -0,0 +1,227 @@
---
layout: post
title: Mayx被外国人骗了
tags: [Mayx, 外国人, 骗子]
---
简直不可思议,我要把这个锅扔给百度翻译!<!--more-->~~百度翻译表示不接这个锅23333~~
# 事件发展
这个事件发生在高考前,现在高考结束了来总结一下
有一天,有一个叫做[Lori Robinson](mailto:lori.j.robinson@usa.com)的外国人给我发了一封邮件,内容如下:
> Hello dear,
>
> Thanks so much for coming into my life the time I needed you most. I have decided to spend the rest of my energy in building a home with you, firstly, we have to accept our faith that this journey of love will not be so easy or rosy, but be assured that nothing good comes very easy and we need to be strong and be ready to stand for each other. I have decided to moving my assets to your country so I can forward for my retirement but I want to take an official leave so I can visit you in your country ,I have made some good fortune in this war zone, You know I offer contract security network for the crude oil lifting in Iraq and also I fund local miners to mine and extract gold and diamonds, at least 150 people are working in my mining concession legally given to me by the Afghan government, in return I have an NGO housing, clothing, feeding and education 100 motherless kids.
>
> I am interested to moving my generated funds, gold and diamonds and The funds is $3.5,000,000 ( Three Million, five hundred thousand US Dollars) the Gold is 1730kgs of gold and the diamonds is 25,000carats parcel of uncut diamonds,I am a woman who does things according to the guidelines of my spirit, you was chosen to be my partner and also to help me to get this box, because my mind testify that you are the right person for me and I know you will not disappoint me , I chose to use you as a partner in this deal, because I'm not allowed to send the package to all of my friends or relatives as i am still in the military outside the United States, though at the end if i send anything to the USA it will be suspicious and I be will query for the action, so I chose you because I know you are the ideal person for this deal as a foreigner who is not a US citizen.
>
> Please put away the fear or doubt, and make up your mind to help me in this matter, I promise you will not regret it been part of this matter, I do not know what else I can say to convince you and make you believe me, but I I pray that God will give you the grace to make up your mind,Once again I want you to know that there is no complication in the way, if you follow my instructions everything will go smoothly and well in the process of receiving the case, please try to keep this secret matter between you and me, to avoid making space to the enemy, because if you and I should agree on one thing with our heart with seriousness we must surely achieve success in the end.
>
> Please I want to mention once again that any disposition toward this project is intact between each of us and in no circumstances should you let the security company to know the contents of the box, remember that the box was registered as a diplomat for the package security company and that is what they believe to be in the box, so you should not let them know that the content of the box is money.
>
> Please I will like you to send your information to me so that I can pass on to security cargo company to allow them to proceed to your country for the final delivery of cash at your door step. Send your information to me urgently;
>
> Your full names: ...........
Your age: ...........
Your Address: ..............
ZIP CODE: .................
City: ......................
Country: ...................
Phone number: .........
Profession: ................
>
> Once i am done with my official assignment, I will come to meet you one on one in your country, and after that we will have to decide how to carry on with our lives, but for now, please, I appreciate us to pay more attention to this issue, you receive the delivery and keep it safe until I come over to discuss with you on how best to invest it in your country
>
> I await your immediate response
Kiss
Loris Robinson
emmmm写的不错不过看不太懂……算啦丢到百度翻译上看看吧结果大意就是她有好多好多钱、钻石、金块和矿然后想给我让我把我的地址发给她好让她邮过来。
不过这不是最重要的,重要的是她想和我结婚?!要知道我才高中刚毕业,于是我向她提出了这个疑问,得到的回答是:
> Remember that distance or color does not matter even our age but love matters a lot in life , I am a woman who does things according to the guidelines of my spirit, you was chosen to be my partner and also to help me to get this fund, because my mind testify that you are the right person for me and I know you will not disappoint me , I chose to use you as a partner in this deal, because I'm not allowed to send the package to all of my friends or relatives as i am still in the military outside the United States.
说的很有道理的样子年龄无所谓那是不是Lolicon也可以满足了反正我的信息也值不了多少钱那就给吧于是我给她发了我的收件地址。然后她给我回信
> PLEASE CONTACT THE TRADING COMPANY NOW
>
> I have contacted the courier company (Express Delivery Parcel Service ) that they are reliable and reliable.Once again I want you to know that there is no complication in the way, if you follow my instructions everything will go smoothly and well in the process of receiving the case, please try to keep this secret matter between you and me, to avoid making space to the enemy, because if you and I should agree on one thing with our heart with seriousness we must surely achieve success in the end.
>
> This delivery is going to be handle legally by the Express Delivery Parcel Service and there will be no form of risk in the process and the money will be sealed pack safely in a Diplomatic Box and the Diplomatic Box will be deliver to you in your country by a Diplomat. I have decide to compensate you with 30% of the total money once after the $3.5,000,000 ( Three Million, five hundred thousand US Dollars), the Gold is 1730kgs of gold and the diamonds is 25,000carats parcel of uncut diamonds.is delivered to you, while the rest balance shall be my investment capital in your country.
>
> Please I want to mention once again that any disposition toward this project is intact between each of us and in no circumstances should you let the security company to know the contents of the box, remember that the box was registered as a diplomat for the package security company and that is what they believe to be in the box, so you should not let them know that the content of the box is money.
>
> I have chosen this fast service so that you can receive the package within 72 hours after departure, bring the package to your home address, the bank have registered it to Express Delivery Parcel Service shipping and handed it to the company through their agent here, The company is with all your details,
Here at our military base, the government provides everything we need, our paycheck is paid to our bank account in the United States until we return home after the mission as long as I stay in Afghanistan, I can not receive or send The money you paid , I have paid for the registration of the shipment and I placed a shipment order to the shipping company for delivery of the box at your door step in your country. Please note that the diplomat does not know the contents of the box for security reasons and below is the company's contact details,
Please contact them now, tell them your name and country, that you are the right person to receive the cargo from Lory Robinson, a US Army officer.
>
> Fill in this information and send it to the security company and inform me:
> ```
> -------------------------------------------------
> My name is ............. Permanent resident ........................ I'm communicating with Lori's report Robinson, Email:
> lori.j.robinson@usa.com The company registers the shipment to the following address:
> Full names:
> Age:
> Address:
> Occupation:
> POSTCODES:
> City:
> Country:
> Phone number:
> Profession:
> --------------------------------------------------
> The delivery company's information is below:
> GLOBAL FASTWAY COURIER SERVICES / SAFETY COMPANY.
> E-MAIL: express.global@uymail.com
> E-MAIL: express.global@linuxmail.org
> Av. Del General Perón, 32
> 28008 Madrid,
> Spain
> Tel. +34 612 520330
> DIRECTOR OF PARTICIPATION
> Mr. William Anderson
> ----------------------------------------------- --- -------
> ```
> Just write to the company in the above email immediately, the company will be provided as soon as you contact them, I have begun with the agreement to meet you in your country before it expires month.
Allow me to stop so far and expect to receive your positive feedback once you contact the company. God bless you and your family.
>
> Love you and Kisses.
Love and care from,
Lori Robinson
大意就是让我把我的信息再转发给邮递公司吧,反正信息已经发过一次了,那再发一次也无所谓了吧,于是我给这个所谓的邮递公司发了我的信息,那个公司给我回复:
> EUROPE HEAD OFFICE,
GLOBAL BRAND EXPRESS COURIER SERVICES,
INTERNATIONAL AND LOCAL SHIPPING SERVICES,
Av. del General Perón, 32
28008 Madrid,
Spain,
Tel +34 612 520330,
E-mail:express.global@uymail.com
>
> HE SHIPMENT / DELIVERY SITUATION REPORT OF YOUR CONSIGNMENT IN SPAIN:
>
> ATTENTION:
ADDRESS : .....
CITY : ..............
COUNTRY .............China
TELL ................+86
>
> HE SHIPMENT / DELIVERY SITUATION REPORT OF YOUR CONSIGNMENT IN SPAIN:
>
> The above subject matter refers,
>
> The management of Global Fast Way Courier Service want to notify you that your consignment/one cargo box has been registered with our shipment company with Registration ID: AFGH55870199SJH for delivery to your country as soon as the necessary shipment logistics and requirement are obtained.
>
> we have earlier been informed about you by Your partner Loris Robinson , that she appointed you as the beneficiary to receive her shipment labelled (FAMILY TREASURE) a CONSIGNMENT/ONE CARGO BOX to your destination.
>
> OUR SERVICE TYPE DELIVERY DURATION CHARGES/FEES:
>
> Handling & Delivery Cost......570 Euro
Insurance..........................690 Euro
Total Cost........................1,260 Euro
Length of Days...........................Two Days
Order Number................................UESTNL
>
> Finally you are required to send the shipment and Insurance fee of 1,260 Eur to enable a proper facilitation and delivery of your consignment to your address in your country and note that the charges are best substantial because of the insurance cover we have undertaken in case of loss, damage or package breakage of your high priority consignment. We assume all responsibilities in case of any eventualities.
>
> YOU CAN MAKE THE PAYMENT TO US THROUGH MONEYGRAM WITH OUR ACCOUNT AUDITOR'S INFORMATION,BUT THAT WILL BE WHEN YOU SEND US YOUR SCANNED COPY OF YOUR INTERNATIONAL PASSPORT OR DRIVERS LICENSE,BEFORE WE CAN SEND YOU OUR ACCOUNT AUDITOR'S INFORMATION YOU WILL USE TO SEND THE 1,260 Euro.
> Thanks for your Co-operation.
> WE PROMISE TO GRANT THE BEST OF OUR SERVICES TO ALL OUR CUSTOMERS & YOUR SATISFACTION IS OUR REPUTATION.
>
> Yours Faithfully,
Global Fast Way Courier Services
DIRECTOR IN CHARGE
Mr William Anderson
Tel +34 612 520330
然后还非常用心的配了一张快递单:
![GEDSC AIRWAY BILL TO CHINA](/images/GEDSC%20AIRWAY%20BILL%20TO%20CHINA.jpg)
注:由于隐私原因,涉及隐私的地方已经被删除 ~~(尽管大家都知道我的手机号)~~
这个邮件当时也没细看然后就给Lori Robinson说了我已经给他们发了我的信息过了几天她给我发
> Hello my love how are you doing ? Am so sorry you did not hear from me i was on duty i have not hear from you today i hope all is well with you? I plead with you in the name of God to try your best to negotiate with the security delivery company I'm worried because I can't live without you right here. You're my everything and Last night I did not sleep am worry about you my love.
>
> The delivery of the box to you holds a lot for us in the future. Once you receive the box, I will commence on the process of tendering resignation and once it is granted, I will come to your country for the sharing of the fund and planning a better future and life together. I cannot wait to be on your arms.
>
>
> Kiss
> Lori J Robinson
不错她又强调了一遍这个邮件顺带着表现了一下关心不过我当时在学校然后我就和她说我在学校不方便收Email。
当我回到家里,那个破公司给我发了一份邮件:
> EUROPE HEAD OFFICE,
GLOBAL BRAND EXPRESS COURIER SERVICES,
INTERNATIONAL AND LOCAL SHIPPING SERVICES,
Av. del General Perón, 32
28008 Madrid,
Spain,
Tel +34 612 520330,
E-mail:express.global@uymail.com
>
> ATTENTION: ,
>
>YOU HAVE HAVE TO SEND US YOUR SCANNED COPY OF YOUR INTERNATIONAL PASSPORT OR DRIVERS LICENSE AND YOU CAN USE THIS INFORMATION AND SEND THIS MOREY TO OUR OFFICE 1,260 EURO AS SOON AS YOU MAKE THE PAYMENT SEND US THE PAYMENT DETAILS TO NABLE US PROCESS AND COMMECE YOUR SHIPMENT TO ARRIVE AT YOUR DOOR STEI IN YOUR COUNTRY WITHIN THE NEXT 3 WORKING DAYS. THE DATE AND CONFIRMED OF ARRIVAL WILL BE ISSUED TO YOU. YOU CAN MAKE THE PAYMENT TO US WITH OUR ACCOUNT AUDITOR'S INFORMATION AN STATED BELOW:
>
> BANK : BBVA.
ACC/IBAN: ES3501822659150201596186.
Swift : BBVAESMMXXX.
ACC NAME : ARCHER SAMUEL.
Address: Bulevard Ciudad de VICAR 1245.
Spain.
>
> Thanks for your Co-operation.
WE PROMISE TO GRANT THE BEST OF OUR SERVICES TO ALL OUR CUSTOMERS & YOUR SATISFACTION IS OUR REPUTATION.
>
>Yours Faithfully,
Global Fast Way Courier Services
DIRECTOR IN CHARGE
Mr William Anderson
Tel +34 612 520330
啊,要交钱的么……~~于是Mayx就立马付款,上当受骗了~~(才怪,我哪有那么多钱?)到这里一看就知道是骗子了,其实之前那个快递单仔细一看就是假的,那个条形码画的乱七八糟……
不过我还想聊下去于是我给Lori Robinson说我付不起啊于是她给我回复
> Hello sweetheart,
>
>Hello how are you doing and your school i hope you are doing good in school? I am very sorry my darling for late response to you, I had a hectic day and was very sick that was why I couldn't get back to you, but I am fine and healthy again , Actually you are really trying for the success of this delivering box to you, in fact i thank you for all the efforts you have put on this already.But one thing you must know and understand is this, the express global company does not know that the content of the box is money and on no account should you tell them that what is inside the box is money, i received massage from delivery company the asking you to pay the fee of 1260 .
>
>I beg you to do anything within your means to comply with the security company so that you will receive this box, I have no access to money here and i do not know what else to do in this matter, the successful delivery of this box to you will determine how soon we will meet.
The U.S government provides everything that we need in the military base here, our salary are being paid into our Account via Bank of American Military banking in the United States, so i only have access to my account in U.S, but that will be after our assignment here in Syria, that's why i cannot make any payment and i decided to ask for your help. I cannot access my bank account in America while in the battle field, I can only access my account when I am back to the states for security reasons, please understand me and do something OK.
>
> My dear, i know you might not be happy with the response of the security delivery company asking you for some payment. so please i am counting and depending on you for the success of the fund. I believe in your ability to handle the project amicably with no delay so please i need your cooperation here to complete the security delivery company as soon as possible. I hope to hear from you as soon as you make the payment to them.
>
> And remember this is our future and our love that we are talking about OK,
Please kindly look for means even if it means to borrow or sale something, do it to sort out the bill so that the security delivery company will deliver the box to you, once I come back I really want to see you so that we will build life together.
>
> Please you really have to try your best, you are the only hope i have now. and remember do not take this matter lighly.
>
> Once the delive the funds, to you I will come to meet you one on one in your country, and after that we will have to decide how to carry on with our lives, but for now, please, I appreciate us to pay more attention to this issue, you receive the delivery and keep it safe until I come over to discuss with you on how best to invest it in your country
>
> I await your immediate response
Kiss
Loris Robinson
看这个意思是让我砸锅卖铁也要付这个钱?我可不干,然后她回复:
> Dearest,
>
> Hello thanks you for your message you send to me,I plead with you in the name of God to try your best to negotiate with the security delivery company and pay the fee, At this very point we have no other option than to comply with the delivery company because if they open the box, it will be a very big problem for us. Sweetheart, please lets you do the needful at this very stage before the military seal on the box expires.
>
> I want you to kindly write to the security company and tell them the amount of money you have with you and plead with them that you will send the balance to them as soon as you receive the box. Tell them the amount you can pay presently no matter how little let us see their response.
>
>
> I await your immediate response
Kiss
Loris Robinson
……emmmm懒得理她了于是这个事件到此为止。
# 结果
Mayx没有任何损失怎么能叫骗呢可是她给我带来了希望又给我绝望是想当QB吗LOL

View File

@@ -0,0 +1,8 @@
---
layout: encrypt
title: Jekyll也可以加密文章啦
tags: [Jekyll, 加密]
tips: 请输入Mayx
excerpt: Jekyll赛高
---
bbb68859d4e2a8a508932f48a440c894858154b96b3d5113a4488dd2425a709caf3795dcbd4aac25d9ab0f1628b85944cd69b28aae96bdb59a0c792cd9d93bf833e126f474642909164907daef803ecac7753ea5e85000521f80b85fa787e49d8b51faaef35ee728e007253b1a97880987127df248818f295da374a7c7d30950e3ad696f5ccb8c59fe274d4c3a5a3da65c35802d5c00d11be0936498ff4130fb61853bf9f0e8f28d446d612478edf050ebf826a293cd6941dacf40aea5482b74555c1daf052903e7cf6e5d5084842a47e80f31a11d3d542d3cdb4fa9dc20c9ce27f9b2c04fd31a79e1affd503316852073336dd8f446690c08335a93f8e19777ae4441d2d1dd37acd8039fae938f7eaf1a3173c5bd21e1b507d9522b517cd3dc0709bbbad11e0a7ca1f7bc7b8c40ecc20d765227b34d46d9c00c3ce928c1c561f4147f7e4ab975c9a8dc6bb1e10dea990b9a88abecf32046c5d52ea9f8025ce657d91ef35670c516df3d8e1c4f34fa6c4c90a3bb067981d380b3af65bf3273be699ff3831c62ce85de36f03b51f5e767

View File

@@ -0,0 +1,130 @@
---
layout: post
title: 如何自己写一个博客计数器
tags: [计数器]
---
都怪LeanCloud我得自己写计数器了<!--more-->
# 事件起因
我之前用的博客计数器是用的LeanCloud作为后台制作的计数器然后嘛……代码是抄的。结果最近[LeanCloud凉了](https://blog.avoscloud.com/6841/),这让我无法忍受,之前的代码我也看不懂,改也不会改……
那好吧,我只好自己写计数器了。
于是我花了很长时间,自己写了一个计数器,另外还得把原来的计数器信息转移过来……
# 使用方法
## 前端部分
主页显示点击数:
```html
{% raw %}Hits: <span id="{{ post.url }}" class="visitors-index" >Loading...</span>{% endraw %}
```
内页显示点击数:
```html
{% raw %} Hits: <span id="{{ page.url }}" class="visitors" >Loading...</span>{% endraw %}
```
JS代码需要Jquery
```js
var auxiliaryHost = "你的域名";
function showHitS(hits){
$.get(auxiliaryHost+"/counter.php?action=show&id="+hits.id,function(data){
hits.innerHTML=Number(data);
});
}
function showHitCount() {
var visitors=$(".visitors-index");
for(var i = 0; i < visitors.length; i++){
showHitS(visitors[i]);
}
}
function addCount() {
var visitors=$(".visitors");
$.get(auxiliaryHost+"/counter.php?action=add&id="+visitors[0].id,function(data){
visitors[0].innerHTML=Number(data);
});
}
if ($('.visitors').length == 1) {
addCount();
} else if ($('.visitors-index').length > 0){
showHitCount();
}
```
2021.03.23更新修复了一些BUG并且支持异步了
## 后端部分
MySQL建表
```sql
CREATE TABLE `counter` (
`url` char(50) NOT NULL,
`counter` int(11) NOT NULL,
UNIQUE KEY `url` (`url`)
);
```
PHP
```php
<?php
header('Access-Control-Allow-Origin: *');
$con=mysqli_connect("MySQL地址","用户名","密码","数据库名");
if (mysqli_connect_errno($con))
{
die("连接 MySQL 失败: " . mysqli_connect_error());
}
$hid = md5($_GET['id']);
if ( $_GET['action'] == "show" ) {
$sql = "SELECT * FROM `counter` WHERE `url` = '".$hid."' ";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["counter"];
}
} else {
$sql = "INSERT INTO `counter` (`url`, `counter`)
VALUES ('".$hid."', '0')";
if ($con->query($sql) === TRUE) {
echo "0";
}else{
echo "Error";
}
}
} elseif ( $_GET['action'] == "add" ) {
$sql = "SELECT * FROM `counter` WHERE `url` = '".$hid."' ";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$sql = "UPDATE `counter` SET `counter` = '".($row["counter"]+1)."' WHERE `url` = '".$hid."'";
$con->query($sql);
echo ($row["counter"]+1);
}
} else {
$sql = "INSERT INTO `counter` (`url`, `counter`)
VALUES ('".$hid."', '1')";
if ($con->query($sql) === TRUE) {
echo "1";
}else{
echo "Error";
}
}
} else {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://mabbs.github.io");
}
mysqli_close($con);
```
# 结果
看来还是自己写代码放心至少服务是自己维护的不像垃圾LeanCloud坏掉之后我就无能为力了……
不过说实话我根本不会JS虽然我之前说我学这个编写之中遇到了不少问题所以在此感谢各位帮助我的各位大佬们让我最终完成了这个计数器。

100
_posts/2019-06-24-up.md Normal file
View File

@@ -0,0 +1,100 @@
---
layout: post
title: 如何利用MySQL数据库制作一个图站
tags: [MySQL, 数据库, 图站, PHP]
---
最近白嫖了一个500GB的数据库想想怎么利用一下<!--more-->
# Talk is cheap,show me the code
数据库建表:
```sql
CREATE TABLE `FileUP` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` text NOT NULL,
`File` longblob NOT NULL,
`Size` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
```
PHP代码
```php
<?php
$con=mysqli_connect("数据库地址","用户名","密码","数据库名");
if (mysqli_connect_errno($con))
{
die("连接 MySQL 失败: " . mysqli_connect_error());
}
if ( $_GET[ID] != '' ) {
header('Access-Control-Allow-Origin: *');
$sql = "SELECT * FROM `FileUP` WHERE `ID` = '".addslashes($_GET[ID])."' ";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()){
Header ( "Content-type: application/octet-stream" );
Header ( "Accept-Ranges: bytes" );
Header ( "Accept-Length: " . $row["Size"] );
Header ( "Content-Disposition: attachment; filename=" . $row["Name"] );
echo $row["File"];
}
}
else {
header('HTTP/1.1 404 NOT FOUND');
}
} else {
echo '<title>Mayx图床</title>
<h1>Mayx图床</h1><hr>
请选择需要上传的文件
<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="File" />
<input type="submit" name="submit" value="submit" />
</form>
<br />';
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
$error = $_FILES['File']['error'];
$tmp_name = $_FILES['File']['tmp_name'];
$size = $_FILES['File']['size'];
$name = $_FILES['File']['name'];
print("\n");
if ($error == UPLOAD_ERR_OK && $size > 0) {
$fp = fopen($tmp_name, 'r');
$content = fread($fp, $size);
fclose($fp);
$content = addslashes($content);
$sql = "INSERT INTO `FileUP` (`Name`, `File`, `Size`)
VALUES ('".$name."', '".$content."', '".$size."');";
$con->query($sql);
$sql = "select @@identity;";
$result = $con->query($sql);
while($row = $result->fetch_assoc()) {
echo '上传完成,文件下载地址:<a href="//'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?ID=".$row['@@identity'].'" >'.$_SERVER['HTTP_X_FORWARDED_PROTO'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?ID=".$row['@@identity'].'</a>';
}
} else {
echo "文件上传错误!";
}
}
echo '<hr />
<center><a href="https://mabbs.github.io/">By Mayx</a></center>';
}
mysqli_close($con);
```
# 缺点
~~MySQL保存文件有限制好像只能存16MB左右😓~~改max_allowed_packet就可以了
另外就是断点续传的问题,这个问题我回头再想一想吧。
# 演示随时GG
<https://mayx.leanapp.cn/up.php>
# 下一步改进的打算
~~想搞成切片上传,这样就没有文件大小上传的限制了。
不过这个好像得前端支持,先放个链接在这里吧:<https://github.com/fex-team/webuploader>~~
不打算改进了……

View File

@@ -0,0 +1,39 @@
---
layout: post
title: 重建MaBBS的计划
tags: [MaBBS, 重构]
---
这就是所谓的只擅长建立计划吧(笑)<!--more-->
# 关于计划
重构计划:[Mabbs重构计划](https://github.com/users/Mabbs/projects/1)
需要重构的项目:[Mabbs](https://github.com/Mabbs/Mabbs)
## 关于这个项目
这个项目是我初中的时候就开始写的当时我在网络上看到了一种很有意思的论坛叫做Telnet BBS貌似以前有名的高校都搞这个东西。那时刚好在用一个极其破烂的手机Mem:256MiB,CPU:Spreadtrum SP8810,Rom:512MiB在那里学着写Shell[关于这一段历史](/2019/02/01/history.html#linux-shell时期)。看完Telnet BBS的介绍之后我膨胀了我觉得以我当时的水平肯定能写出来于是我从此走上了填这个万年巨坑的不归路。
当时我不但膨胀而且傻把一个有着很明显的注入漏洞的那么一个BBS写出来之后居然还发到当时Bilibili开的一个类似贴吧一样的东西里现在已经没了那时候每个路由器还是动态公开IP的于是我就那么放在了网上丝毫不担心有人会拿它当跳板机是我想多了LOL
在编写之中我了解到了CGI于是它就可以既能用网页版又能用命令行版。
到现在为止这个BBS仍然有很严重的注入漏洞……而且小时候写代码也没什么规范基本上是边学边写于是过了一个高三没写那个代码我是一个字也看不懂了23333
# 现在重构的打算
本来是想写在那个Project里的但是后来想了想还是写成博客比较好那个东西似乎不太适合我就是想水一篇啦
## 1. FastCGI
我很早以前就想把这个破烂CGI改成FastCGI但是网上找了半天基本上也没看懂什么。不过后来用上了服务器学了Nginx才明白原来所谓的FastCGI就相当于是自己又写了一个服务器软件只是这个比较简单只是它不再是执行后就结束的程序而是在后台挂着继续等待下一个请求。而Nginx起到的作用就是提高这个自制服务器的安全性另外可以提前输出保证速度其实说白了就是反向代理。这次看看重构能不能加一个这个功能。
## 2. 前后端分离
最近好像挺流行这个的就是要用Javascript不过这个我现在也学的差不多了不像以前整个BBS里没有一句Javascript。
这样干还有一个好处就是我可以不限定客户端假如我以后学了其他语言就可以利用统一的API调用了
## 3.POSIX
这可是我写的东西的一大优点我写的BBS就算是只有一个Busybox也能运行保证了在任何一台设备上都能完美运行而且一句sed、grep、awk都没有用就连这三件套没有都能用哦
## 4. Hash&Session
之前我写的BBS全部都是明文保存密码的不过现在我学了那么多关于网络安全的知识至少Hash还是要有的。不过我不打算用其他工具我要自己写一套之前确实是试了试Hash不过感觉好像又不太对……回头再仔细查一下吧。
之前BBS登录时密码都是放在Cookie里的现在想想那真是太蠢了本来这个BBS就全都是XSS漏洞再明文放密码那不就是想要谁的密码都可以吗虽然开了HTTPONLY不过为了提高安全性我搞了一个类似于Session的东西但是我不太会写随机数所以感觉这个Session似乎更不安全了……
……
# 真正的问题
先想办法下决心写第一句话吧!

View File

@@ -0,0 +1,37 @@
---
layout: post
title: 制作分布式加密邮件系统的计划
tags: [分布式, 加密, 邮件, 计划]
---
一个计划还没开始,又开始另一个计划了……<!--more-->
# 计划原因
之前用了Telegram聊天里面有一个私密通信的功能。听说这个功能可以让服务端没法知道使用者发送的信息。不过Telegram在国内使用限制比较多所以我打算用HTML+Javascript+PHP+MySQL写一套自己的私密通信系统。
但是As We All Know某些国家有网络审查提供这种服务的肯定会被审查的。既然我们要做这个东西就不能让它不稳定。所以我想把这个项目搞成分布式的那种确保通信可以成功。来自Mastodon的思路
## Q&A
1. 为什么使用PHP
之所以用PHP作为后端语言的原因呢…… ~~当然因为PHP是世界上最好的语言被打死~~ 因为PHP的程序好搭建而且很多虚拟主机商都用的是PHP这样即使小白也能搭建就能让分布式节点更多了。 ~~明明主要原因是我只会PHP 23333~~
2. 为什么我要做成邮件系统而不是聊天系统呢?
因为聊天就要用Websocket或者是AJAX之类的但是我不会……我只能把信息都存在服务器里有人访问再显示出来……
3. 已经有PGP了为什么还要重复造轮子呢
因为PGP是软件小白用起来不太方便这个是网站可能相对更简单一些。 ~~(重复造轮子能有什么理由)~~
# 项目技术原理
1. 所谓的私密通信主要用的就是非对称加密比如说RSA什么的。所以这个项目同样如此也使用RSA作为主要加密算法。
2. RSA虽然很不错但是似乎加密速度比较慢我看HTTPS上介绍的是这样所以内容用AES加密用随机数做密码一方用公钥去加密这个密码另一方用私钥解密获得密码然后再利用这个密码进行对称加密传输和HTTPS差不多
3. 如果上述操作都是服务端进行那这些就都没什么意义了所以我们要在客户端进行。像Javascript进行加密完全没有问题所以除了传输其他加密都是在浏览器上进行。
# 项目细节
为了方便通信公钥是要留在服务器上的所以要搞一个用户系统存储用户的公钥。在注册的过程中公私钥生成都是在客户端进行确保服务端得不到用户的私钥注册的过程中要将用户名和公钥上传至服务器保存。这就是为什么要用到MySQL。
登录时,先输入用户名,服务器使用用户名查找到对应的公钥,然后生成一个随机数,用公钥加密,发送给客户端,客户端用私钥解密,获得随机数,返回给服务器进行登录。
私钥登录后要持续保存这时肯定不能用Cookie我们可以用localStorage然后客户端一定要做好防XSS不然一切都没有了。
在发送的时候我们可以搞一个类似Mastodon的用户名两个@实在是太蠢了就和E-mail一样就搞成user@example.com的形式吧
在发送时客户端先检查对方服务器能否连接,如不能则测试通过服务器连接,如果服务器连接失败再使用其他节点连接(服务器内置),如果还是不行,用户可以自行输入节点,还是不行,投递失败。
连接成功后对方服务器查询对应用户的公钥返回给客户端客户端用这个公钥加密AES密码用AES密码加密内容然后再传给对方服务器保存。
查看邮件就用私钥解密AES密码然后解密内容。
# 问题
如果对方服务器被攻陷公钥被改成攻击者的那不就没用了吗虽然可以用指纹解决但是这对小白来说似乎有些困难……HTTPS用的是第三方权威解决这个问题我们就没办法了……
最大的问题是,什么时候开始动工?(笑)

View File

@@ -0,0 +1,23 @@
---
layout: post
title: EncMail-Project Part 1 - 准备阶段
tags: [分布式, 加密, 邮件, 计划]
---
我是不会承认自己咕咕咕的!<!--more-->
参照:[初计划](/2019/07/02/encmail.html)
# 准备的内容
最终经过多方研究,我打算用[Web Crypto API](https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Crypto_API)作为主要的实现方法。
不过用这种API的兼容性并不怎么好……我的博客之所以用了各种各样的JS库也是为了兼容性 ~~是不会写吧233333~~
其实主要原因是因为我在网上搜不到哪个JS库能生成密钥对……之前有看到过有一个名叫jsencrypt的库可惜只能加解密不能生成密钥对……
说实话我从来都没有用过WebAPI所以还得好好看看文档。但是这个破烂文档连例子都没有这让人很难办搜也搜不到有用的内容而且我的英语并不算好也不太习惯上[Stack Overflow](https://stackoverflow.com/) ~~(不行,我要把锅推给某国的网络审查)~~ 。正是如此,这个项目制作起来可能会相当花时间。
另外界面我打算用MDUI那个文档看起来还挺简单。本来我没打算做一个好看的页面就像之前制作的[Iwara Downloader](/2019/04/13/iwara.html)一样打算套个表格完事。但是既然这个UI看起来挺简单那就试试这个吧反正我也不考虑兼容性问题了WebAPI都用上了再加一个这个也不算什么吧。
# 对计划的补充
计划的名称我打算命名为EncMail-Project ~~(看起来有点俗……)~~ ,不过这都不重要。
关于登录方面我后来又想了想没有人会记私钥的所以为了方便使用我打算通过AES加密私钥和公钥一起上传到服务器上保存。登录时把加密的私钥和被公钥加密的令牌下载下来然后输入密码解密获得私钥并解密令牌。
而之前想到的公钥被修改的问题我想了想那还是加上指纹吧就是Hash啦用SHA-256算法算出公钥的指纹然后发送者在发送时自己对照一下就可以了好像是`SubtleCrypto.digest()`emmmm……这个文档没有翻译……
另外为了安全,私钥我打算存到`sessionStorage`里,以减小私钥泄露的危险。
今天就先到这里吧!

View File

@@ -0,0 +1,16 @@
---
layout: post
title: Mayx终于考上大学了
tags: [Mayx, 大学]
---
真是Amazing<!--more-->
# Where am I?
这次我考到成都了,考了一个网络工程专业 ~~说不定就成装宽带的了23333不过中国移动是真的垃圾就是以后装宽带也不去移动~~
不过我看这个专业的以后当运维的比较多那如果真是这样以后每年的昨天7月24日就可以过节了23333
# How about it?
考上了作为一个原三本的院校,其实也不能算很好,但是相比于[经常犯智障的我](/2019/05/30/exam.html),也算是一个不错的结果了。
总之,以后我应该就能了解更多关于网络方面的知识了。

View File

@@ -0,0 +1,20 @@
---
layout: post
title: 记一次办理22卡的经历
tags: [Mayx, 大学]
---
我生气了!<!--more-->
# What happened?
某天Mayx正在使用Bilibili手抖按到了一个广告上看起来好像是办理Bilibili的2233和小电视卡的。Ta让我答了几道题之后把我的个人信息骗走了~~还不是自己主动输进去的2333~~
之前我办过米粉卡,那个是真的不错,三个月流量不限,而且一分钱不花。我看这个卡貌似提到了免费,所以就办理了。
过了一两天,中国联通给我打来了电话,让我带着身份证下楼办卡,我也没多想,就下去了。
没两分钟我就被骗走了50CNY(QAQ)
原来所谓的免费只是首月免费,广告里可没提要多交钱啊!
不过算了既然已经办了那就用吧未来的五个月我可以随便看番了……这样想的你可真是大错特错要知道免流卡用够40GB的流量就会限流速度慢到看360p都会卡我平时都看的是1080p的视频看大概2小时就要用掉1GB的流量一个月可不只有40个小时我每天如果看四小时就要120小时即60GB那么之后的这几十个小时就只能看360p还卡的视频了……
总的算下来就是每月10CNY不限流看Biliblil的视频5个月以后我就把这张卡扔了吧。
# 感想
~~不错,广告你赢了我一次,但总有一天你一定会后悔!~~(我的小米手机的广告已经被我铲除干净了)
真希望有一天所有的广告用户都有关闭的权利VIP除外

View File

@@ -0,0 +1,21 @@
---
layout: post
title: 记一次悲惨的加装内存的事故
tags: [悲惨, 事故, 内存]
---
这……大概就是命运吧……QAQ<!--more-->
# 悲惨的开端
因为学校要求使用8GiB运存的电脑难不成是想用VS然后我的笔记本电脑只有4GiB。我考虑了一下买一条内存条也不贵于是我在某宝上买了一个和我笔记本电脑内存型号相同的内存条。
在到货的前几分钟,我就开心的把电脑主板提前拆出来了,等我一拿到取件码,就去把内存条取了回来 ~~顺便得到一堆泡泡纸血赚23333~~
等我安好内存条我试了试裸板开机不错看来至少主板没有被我搞坏然后我连上键盘和显示器之后BIOS也正确的读取到了内存条看来是成功了。
我这么边想着就边把电脑往回装,装着装着结果电池接口突然开始冒烟,吓得我立即把电池拔了,之后我继续装,总算是没看到更多异常情况。
等我全部安装完成后电脑倒是也正常开机了,操作系统也成功的读取到了内存,而且是同一型号的内存条,应该也成功的组成了双通道吧,我试了试整体电脑的操作,倒是确实比之前流畅了一些。
# 噩梦开始
过了几个小时之后我发现电池灯还在显示充电状态这时我慌了我打开电脑发现充了半天电电量没有一点点变化又过了几个小时电池灯开始不停的闪烁看来是翻车了。后来我把电池又重新安装了一遍但是貌似还是没有什么改变但是把外接电源拔掉仍然可以正常使用所以看来是充电芯片在之前冒烟的事故中灰飞烟灭了QAQ。
# 感想
我自认为我安装的时候也没有什么可能会让电脑出现这种问题的操作啊……难不成是因为我先安装了电池的问题?也许电脑在插完所有其他线的时候不应该插电池线吧…… ~~总之这就是命运吧……QAQ~~
最近运气都不怎么好,希望这糟糕的运气不会影响我接下来科目二的考试……

18
_posts/2019-08-24-sth.md Normal file
View File

@@ -0,0 +1,18 @@
---
layout: post
title: 假期总结
tags: [假期, 总结]
---
这个假期还真是碌碌无为啊……<!--more-->
# 这个假期做了什么?
我感觉什么也没做,也许到了假期之后确实就会变成这样吧,在高考前我甚至都在兴致勃勃的学怎么写博客,[学MediaWiki API](/2019/05/27/wikipic.html)学PHP……但是一到了假期反倒碌碌无为什么也不想干……即使之前定了很多计划到了假期却没有一点点干劲……
大概这就是人吧,忙的时候想忙些闲事,闲的时候……就真闲了,没有一点干劲……
但是吧,要说干了些什么,也不是没干,至少我把科目一和科目二过了,然后[给电脑加装内存条](/2019/08/17/memory.html)还给装坏了……拿去让维修电脑的修还没修好,要换主板……还好还能用,就勉强先这样用吧。
另外还去献了个血,感觉献血对我也没什么太大伤害所以就去献了一下,不过第一次献血还是挺害怕的,尽管之前有在学校体检抽血的经验,但是毕竟还是会疼啊……不过过了几天之后就好了,针孔也不是很明显,顺便去网上查了一下血检结果,是一切正常,看起来不错。
前几天我看到中国银行有办以天依为主题的借记卡 ~~这都是3月份的活动了吧……~~ ,于是就去申请了一张。但是我马上就要开学走了,也不知道能不能在我走之前送到我的手里……
对了这个假期我还在闲鱼上卖了些东西一个是血亏价60CNY卖出去的4GiB DDR4的内存条还包邮就是说我只赚了48CNY😭还有一个锤子T1SM705手机那个买家事还挺多200CNY买一个原价4000CNY的手机还觉得边角磕了碰了然后为了惩罚我还要让我等到10天后系统自动确认收货……在闲鱼上卖东西真是让人难受啊(T_T)
# 总结
这个假期可算是把我玩废了,无论是身体还是心理……希望我作为人类能让我发挥这快速适应的能力,让我快速恢复到正常状态!

View File

@@ -0,0 +1,31 @@
---
layout: post
title: 开学总结
tags: [开学, 总结]
---
假期结束不就是开学嘛……<!--more--> ~~实在是没得水了么23333~~
# 到学校之前的一些事
我是通过自驾的方式去的学校,在途中去了不少地方,算是边旅游边去的学校吧。不过总的来说,旅游可真是累啊,虽然自驾游时间没那么紧张,但是为了尽可能在到学校之前多去一些景点,还是挺赶时间的。
我在这次去了不少景点,有青木川、阆中、重庆、乐山和峨眉山。在旅游途中,最令人失望的地方是甘肃,在经过甘肃的时候,居然没有一条能直接穿过甘肃的高速,不走高速的话就只能走县道了,但是那个县道是真的烂,好多地方都是烂泥路,让人深深的感受到甘肃的贫困。
到重庆之后可以深深的感受到作为山城的感觉,在重庆去哪里都要爬楼梯,而且作为山城,他们没有地上和地下之分,轨道交通有时候可以在地面之上行驶,有时候则是在山里面,甚至有时会[在房子里面穿行](https://www.bilibili.com/video/av66213433/)。不过重庆还是在建设中,所以还是有很多地方都在修路。
另外在重庆发生了一点令我难受的小事,有一家很烂的冰激凌店涉及虚假宣传,而且店长会耍顾客,而且一个冰激凌相当贵,要二十多,但是东西只有一点点,这真的是极其垃圾的店, ~~我祝这位店长买菜必超级加倍,做事必被指指点点~~ ,我相信在这个市场中,对顾客不尊敬的商家,必然会遭到市场的报复!
除此之外我在重庆我还坐了[长江索道](https://www.bilibili.com/video/av66083579/),这应该就是我在这次旅游中拍到的所有视频了。
在峨眉山的时候也很惨,那里有相当多的蚊子,我不知道也没做防护措施,而且刚被叮也没什么感觉,结果后来整条腿就像是得了埃博拉一样满腿的包,而且可能南方的蚊子和北方不一样,叮完以后就会起水泡,抓破之后就会渗出液体,真的是令人难受啊……
我在[上一篇博客](/2019/08/24/sth.html)中说我办了一张借记卡不过地址貌似填的不完整被驳回了不过还好被驳回了不然我就取不到那张卡了我填的是家里的地址。于是我在2019.9.1时重新申请了一下。
最后我在2019.9.4时成功的抵达了学校。
# 到学校后发生的事
到学校之后也没发生特别多的事不过在旅游的时候提前在QQ上加了一个舍友所以到学校之后倒是也没糟糕到一句话也不说但是最开始还是很糟糕的基本上就算是说话也会让人感到尴尬。不过这应该是很正常的事情吧我觉得应该很快这个问题就会被解决吧……但是事实上并不会因为我的交往能力极其的差表达和做事都很难与人在一个频道这真的是让人很难受QAQ。
在学校的说明上很明显的标出来不要相信某些来寝室的人的推销可是我就是非要犯一下智障症来表现一下我就是个智障23333。有一个来寝室卖公交卡的人说他卖的公交卡可以使用10年然后坐车有一定的折扣我没想它是一个骗子而是想的是我需不需要公交卡真的是太蠢了我想通了我要公交卡之后我就立马付钱了也没仔细看一下卡片像我这样智障的人怕是给我一张纸片说这是公交卡我也信了吧总之后来闲下来的时候我仔细看了看那张卡结果上面写的是有效期两年然后我去官网上把卡号输上去之后发现这个卡已经没钱了而且也过期了……这真是个耻辱啊不过这也算是步入社会交的第一笔智商税吧……也许以前交的我都忘了23333
报名之后就是军训了,算是开学第一课吧。
## 到学校之后的军训
众所周知,到了大学是要军训的,不过我感受到我们学校的军训真的是太水了,根本不能和我高中时候的军训相比。不过我听到一位学长说,军训的强度和学校有关,像我们学校根本不跑早操,到后来基本上就是动两下就坐下休息了,但是他的学校貌似每天都要负重跑。不过学长的话只能信一半,具体情况怎么样我也不知道,但是我们学校军训是真的水,这个是毋庸置疑的。
在军训前领服装的时候我没太在意服装的尺码结果选小了一号然后在第一天就把迷彩裤搞坏了结果军训的这十几天就只能穿破裤子军训了。虽然我个人并不在乎这个问题不过同学还是会在乎的……QAQ
总的来说,我感觉这次的军训还没之前旅游更辛苦。不过也可能和我们连什么也没干有关,有些连队是要参与表演的,所以可能会更辛苦吧。
## 其余的杂事
在上面所说的借记卡过了将近一个月之后它终于发货了我之前以为办银行卡和手机卡一样今天申请明天就能到但是事实上不一样……它受理用了一周审批又是一周制卡还得4-5天然后过了这么长时间才开始寄发可能还得几天……真的是太难了……
另外,我对大学生活还是挺有希望的,为此我也加入了一个社团和学生会,希望在后来的生活中,我能学到点有用的东西,而不是在这里水博客了。

View File

@@ -0,0 +1,83 @@
---
layout: post
title: Python学习笔记 - Turtle
tags: [Python, 学习笔记, Turtle, Logo, Tkinter]
---
没想到我终有一天也得学Python了……<!--more-->
# 第一课Turtle
我以为我们老师会从Python的基本语法开始教起不过事实证明我想错了我们老师打算把我们当做小学生看然后教 ~~Logo语言~~ 类似Logo语言的Python库Turtle。
Turtle貌似是基于Tkinter的库Ubuntu上带的Python默认没有装Tkinter结果我还得自己装一下……
老师给我们布置了两个作业一个是画一个心形另外是画一个正方形。在开始之前我也想的这个库就是个Logo语言也没想着在网上看看这个东西支持什么方法画正方形也很简单就是向前向左……执行4遍。很快我就用循环写出了这个东西
```python
import turtle
i=0
while i<4 :
turtle.forward(50)
turtle.left(90)
i=i+1
```
看着这段代码,让我回想起了我的小学时光 ~~一段不堪回首的往事23333~~ 既然能画出正方形,那么圆也很简单了,我们可以把圆看成一个无限多边形,那么画圆我们可以这样:
```python
import turtle
i=0
while i<360 :
turtle.forward(2)
turtle.left(1)
i=i+1
```
画完圆之后我又打算画心形,不过老师布置的是在终端中显示心形,就像这样:
```python
print(""" ** **
* * *
* *
* *
*""")
```
不过这个感觉没什么意思我想我可以试试在Turtle里画一个心形。在画之前当然应该上网查一下Turtle还有什么用法结果一查以后我就自闭了……画正多边形根本不用一步一步走有一个叫做circle的方法可以直接实现比如画正方形可以这样
```python
import turtle
turtle.right(45)
turtle.circle(100,360,4)
```
……这可真是令人难受……不管了,我先画个心形吧,我捡起了我曾经的三角函数的知识,算了一下我要转的角度和长度,最终写出了这样的东西:
```python
import turtle
turtle.color('red','red')
turtle.filling()
turtle.begin_fill()
turtle.left(90)
turtle.circle(50,180,180)
turtle.left(30)
turtle.forward(200)
turtle.left(120)
turtle.forward(200)
turtle.left(30)
turtle.circle(50,180,180)
turtle.end_fill()
input()
```
当然我不知道心形的定义是什么所以也不知道心形是怎么组成的我想象的大概就是两个半圆和一对等腰拼出来的吧不过最终画出来的心形是真的丑……
最后我在网上又查了一下其他人写的然后继续自闭……
其他人的心形
```python
from turtle import *
def curvemove():
for i in range(200):
right(1)
forward(1)
color('red','pink')
begin_fill()
left(140)
forward(111.65)
curvemove()
left(120)
curvemove()
forward(111.65)
end_fill()
done()
```
# 总结
虽然我不喜欢看文档,但是遇到新的东西还是查一下比较稳妥啊!

View File

@@ -0,0 +1,99 @@
---
layout: post
title: Python学习笔记 - 求质数
tags: [Python, 质数, 学习笔记]
---
讲真,我酸了……<!--more-->
# 起因
在学习Python的过程中我和同学举行了一个比赛大概内容是用Python做一个时间复杂度最低的质数生成器。
在学校里就是有个好处,学校网络上知网下论文是免费的,我大概的查了一下,好像用埃氏筛法的效率比较高。
以前我用Linux Shell也写过一个
```shell
#!/system/bin/sh
max=1000
list="2"
rlist="2"
i=3
while [ $i -lt $max ]
do
[ "$(
echo "$list"|while read a
do
[ "$(($i%$a))" == "0" ]&&{
echo "1"
break 1
}
done
)" == "1" ]||c=$i
[ "$bj" == "" -a "$c" != "" ]&&{
[ "$((${c}*${c}))" -gt "$max" ]&&bj="1"
}
[ "$c" == "" ]||{
[ "$bj" == "1" ]||{
list="$list
$c"
}
echo "$c"
}
c=""
i="$(($i+1))"
done
```
不过效率极低……因为原生Shell是不支持数组之类的东西所以其实并不能完全使用埃氏筛法……
# 使用Python做一个
当然Python还是可以用的于是我理解了一下做了一个出来
```python
maxprime=100000
rprimeset=set(range(2,maxprime+1))
lprimeset=set()
lastprime=0
while lastprime<=maxprime**0.5:
lastprime=min(rprimeset)
rprimeset=rprimeset-set(range(lastprime,maxprime+1,lastprime))
lprimeset.add(lastprime)
primelist=sorted(list(rprimeset|lprimeset))
print(primelist)
#print(primelist,file=open(__file__[:__file__.rfind("/")]+"/prime.txt",'w+'))
```
这个效率确实比Shell做的好太多了而且看起来也清晰易懂。在我的电脑上1000000的质数只需要4s就能算出来
# 结局
不过我后来在某百科上查了一下他们用埃氏筛做的Python版本……然后我就酸了……他们的代码在我的电脑上只需要0.6s就能跑完1000000的质数……而且我估计他们的空间复杂度还比我小……
```python
# python 原生实现
def primes(n):
P = []
f = []
for i in range(n+1):
if i > 2 and i%2 == 0:
f.append(1)
else:
f.append(0)
i = 3
while i*i <= n:
if f[i] == 0:
j = i*i
while j <= n:
f[j] = 1
j += i+i
i += 2
P.append(2)
for x in range(3,n+1,2):
if f[x] == 0:
P.append(x)
return P
n = 1000000
P = primes(n)
print(P)
```
感觉好难受,每次在网上搜的代码都比我写的好……算了,反正我也是在学习嘛。
后来我听说用欧拉筛法的效率更高……可惜我看完后不太理解……质数算法可真是复杂啊……

View File

@@ -0,0 +1,37 @@
---
layout: post
title: Mayx应聘失败(Python版)
tags: [应聘, Python, 面向时间]
---
既然最近学了Python那就去应聘一下Python程序员吧XD<!--more-->
[上次去面试运维失败了](/2019/01/27/shell.html),这次不能这么丢人了。
然后那个面试官居然又让我写排序的程序23333
Mayx想了想写出了以下代码
```python
a=[1,2,3,5,4,9,10,8,5]
import threading
import time
def counting(i):
time.sleep(i)
print(i)
for i in a:
threading.Thread(target=counting,args=(i,)).start()
```
执行效果:
```
1
2
3
4
5
5
8
9
10
```
然后Mayx被赶出来了……
我写的代码明明可以执行,效果也没问题,居然赶我出来,这一定是个垃圾公司!
后来才知道,他们又想让我回答`sort()`,怕是同一家公司(笑)

Some files were not shown because too many files have changed in this diff Show More