1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#000000">
<title>Chrisoft::Blog</title>
<script type="text/javascript" src="/panel.js"></script>
<script type="text/javascript" src="/blog/footnoter.js"></script>
<script type="text/javascript" src="/blog/aes-js.js"></script>
<script type="text/javascript" src="/blog/scrypt.js"></script>
<script type="text/javascript" src="/blog/sha256.js"></script>
<script type="text/javascript" src="/blog/decryptor.js"></script>
<link rel="stylesheet" type="text/css" href="/common.css">
<link rel="stylesheet" type="text/css" href="/panel.css">
<link rel="stylesheet" type="text/css" href="/theme0a.css" id="theme0a">
<link rel="stylesheet" type="text/css" href="/theme0b.css" id="theme0b">
<link rel="stylesheet" type="text/css" href="/theme1a.css" id="theme1a">
<link rel="stylesheet" type="text/css" href="/theme1b.css" id="theme1b">
<link rel="stylesheet" type="text/css" href="/theme2a.css" id="theme2a">
<link rel="stylesheet" type="text/css" href="/theme2b.css" id="theme2b">
<link rel="stylesheet" type="text/css" href="/theme3a.css" id="theme3a">
<link rel="stylesheet" type="text/css" href="/theme3b.css" id="theme3b">
<link rel="stylesheet" type="text/css" href="/blog/blogext.css">
<script>
function ol()
{
window.onresize=function()
{
if(window.innerWidth<768)
setupevents();
else unsetevents();
}
window.onresize();
_decryptonload();
}
function loadTheme(){
var thm=document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)thm\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1");
if(thm.length<2||'0123z'.indexOf(thm[0])==-1||'abz'.indexOf(thm[1])==-1)thm='zz';
var ent="";
var d=new Date();
if(thm[0]=='z')
{
var m=d.getMonth()+1;
if(m>=3&&m<6)thm='0'+thm[1];
else if(m>=6&&m<9)thm='1'+thm[1];
else if(m>=9&&m<12)thm='2'+thm[1];
else thm='3'+thm[1];
}
if(thm[1]=='z')
{if(d.getHours()>=18||d.getHours()<6)thm=thm[0]+'b';else thm=thm[0]+'a';}
ent=`theme${thm}`;
var R=new RegExp('theme[0-4][ab]');
for(var i=0;i<document.styleSheets.length;++i)
{
if(R.exec(document.styleSheets[i].ownerNode.id)!==null&&document.styleSheets[i].ownerNode.id!=ent)
document.styleSheets[i].disabled=true;
else document.styleSheets[i].disabled=false;
}
var thmcolor="";
switch(thm[0])
{
case '0':thmcolor=thm[1]=='a'?'#f59dda':'#2f0933';break;
case '1':thmcolor=thm[1]=='a'?'#9df59d':'#090933';break;
case '2':thmcolor=thm[1]=='a'?'#edb47b':'#1f1205';break;
case '3':thmcolor=thm[1]=='a'?'#a0cdfa':'#051933';break;
}
document.querySelector("meta[name=theme-color]").setAttribute('content',thmcolor);
}
loadTheme();
</script>
</head>
<body onload="ol()" style="overflow-x:hidden;">
<div id="panel" class="TText">
<ul id="panellist">
<li><a href="/"><h1>Chrisoft</h1></a></li>
<li><a href="/blog"><h2>Blog</h2></a></li>
<li><a href="#"><h3 id="title">Hackathon 2015乱搞记</h3></a></li>
<li><span>Tags</span>
<ul id="tagslist">
<li><a href="/blog/list/random-xp/">random-xp</a></li></ul>
</li>
<li id="tocouter">
<span>Table of Contents</span>
<ul id="tocroot">
<li><a class="toctarg" href="#tocanch0">这是一次什么性质的比赛</a></li><li><a class="toctarg" href="#tocanch1">???</a></li><li><a class="toctarg" href="#tocanch2">后续</a></li></ul>
</li>
<li style="margin-left:-0.5em"><a id="prevp" href="2015-10-31.html">Prev post</a></li>
<li style="margin-left:-0.5em"><a id="nextp" href="2015-11-22.html">Next post</a></li>
</ul>
</div>
<div id="content">
<h2 id="titleh" class="TText" style="font-wight:normal;">Hackathon 2015乱搞记</h2>
<div id="datetags" class="TText" style="margin-bottom:1em;">2015-11-01<br>#random-xp</div>
<hr><div id="article" class="TText">
<article>
填坑日期:2015-11-22<br>
比赛日期:2015-10-24~2015-10-25(正好是我生日那天开始的……)<br>
<h2 id="tocanch0" class="tvis">这是一次什么性质的比赛</h2>
实话讲我是第一次参加这种类型的比赛。大概就是几个人一队,给一个泛泛的话题然后爱做什么就做什么那样的比赛……
这个比赛在全国有好几个赛区,济南大概是奖项最坑的一个……然后发现参赛的很多(~70%)都是SDU的学生……
另一些则是附近某些软件企业的员工。<a id="n1" href="#note1" class="note">[1]</a><br>
带我来参加这次比赛的是军训时带我的排长,「阳哥」。没有他的帮助我认为我……甚至连有这个比赛都不知道。
<h2 id="tocanch1" class="tvis">???</h2>
由于之前对这类比赛一无所知,所以比赛前感到很虚。本来打算找一找往年的题目的,结果又因为懒而取消了……<br>
比赛给的话题是「技术改变生活」。题目后面举了一些「改变了生活的技术」的例子,包括什么全系投影之类的。
这么高大上的东西我们怎么可能会啊。于是就开始「埋头苦想」做个什么好……<br>
就那么沉默了一段时间之后,阳哥问我之前有没有什么做完的东西。我说我最近做的东西不是完成度太低就是完全不符合题目要求。
然后我给他看了一眼BLR2。他认为这个可以交。(但是我不这么认为!)后来我又想了想……想到了WHG3D。<br>
WHG3D是一个我的早已停滞的工程。最早公开发布的版本是在2011年10月4日(4年了……)。这个工程大概活跃了1年多吧……
然后今年4月移动硬盘报废,所有WHG3D的源程序数据全部丢失了。再加上发布的版本里面都用了Hide script(当时我还不是
「开源的狂热追随者」),所以这个工程活过来的可能性已经是几乎没有了。然而最后一个发布出去的版本其实还是可以用的。
折腾了一番,把最后的版本从onedrive上拖了下来,稍微演示了一下。然后阳哥决定就交这个了……<br>
然而我想,就交这么一个之前的东西,不太好吧……于是就开始想再做个什么东西。结果在上厕所的时候想起了核逸飞<a id="n2" href="#note2" class="note">[2]</a><br>
写的metro版程序员老黄历丢了,我就打算用Qt重写一个……<br>
作品提交完毕之后据说会有一次初筛。出人意料的是我们提交的两个东西竟然都通过了……<a id="n3" href="#note3" class="note">[3]</a><br>
于是就得上去展示。WHG3D的展示基本都是阳哥一人包办的,我只是负责在旁边玩游戏(以及说这游戏坑)。老黄历的展示就是我自己了。
虽然没怎么感觉紧张,但是最后还是忘记了安利自己的github……(噗……)<br>
然后就是颁奖。当我们第一次听到我们队的名字的时候还没怎么感到惊讶(毕竟有我一个大一的,搞个最佳新人奖也不是什么出人意料的)。
但是第二次听到我们队的名字的时候就感觉有点可怕了。结果后来又第三次听到了我们队的名字。等我们领完第三个奖,主持人说「我觉得你们可以留步了,
因为下一个奖还是你们的」,跟你讲我当时就是这个表情:<br>
<div align="center"><img src="//filestorage.chrisoft.org/blog/img/e1.gif" decoding="async"></div>
于是最后我们就拿了四个奖:最佳新人奖,最佳创意奖,最佳技术奖,二等奖……<a id="n4" href="#note4" class="note">[4]</a><br>
有理由相信这四个奖除了第一个都是WHG3D赚到的。因为 1.WHG3D更吸引人(尤其是来自游戏厂商的评委)…… 2.展示做的相对比较好……<br>
奖发完之后有好多人来要我的联系方式的……由于才大一,不想被「那些」东西打搅太多,就统一只留了个gmail。后来甚至那个游戏厂商的评委来找我们聊天,
说「对游戏制作有热情很好」之类的话。<a id="n5" href="#note5" class="note">[5]</a><br>
我们的作品其实很渣……以下是给我留下深刻印象、感觉真正能拿奖的作品:
<ul>
<li>一个难以关掉的闹钟(对于我这种跟粘在床上的人可能比较有用)</li>
<li>一个分享旧书的系统(虽然好像已经有人做过了,但是感觉想法不错)</li>
<li>etc...</li>
</ul>
<h2 id="tocanch2" class="tvis">后续</h2>
我很清楚地知道<a id="n6" href="#note6" class="note">[6]</a>这些奖是公司试图得到廉价苦力的方式之一。过了几天我的gmail里果然
收到了「想跟你合作一个项目」这样的邮件。以下是我的回信:<br>
「抱歉,我现在还只是一名大一的本科新生,时间安排比较紧张,可能无法和您合作。非常抱歉。」<br>
在一个有deadline的环境下工作其实不是我理想的工作方式。我希望有一张更加「自由」的时间表,比如我甚至曾经yy过以后去当中小学老师(……),
然后空余事件写写代码这样的。这样似乎更接近我内在的风格。<br>
BLR工程结束之前我不会轻易开别的坑的。BLR会结束吗?(喂别这么早立flag啊……)<br>
</article>
</div><br><hr>
<div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: 这些人中有一部分来的目的是「为了找回自己想写什么就写什么的感觉」。<br></span><span class="TText"><a id="note2" href="#n2">[2]</a>: 化名。slyz核能的掌控者。<br></span><span class="TText"><a id="note3" href="#n3">[3]</a>: 后来发现所有提交的作品都通过了……<br></span><span class="TText"><a id="note4" href="#n4">[4]</a>: 一共拿了9k奖金……<br></span><span class="TText"><a id="note5" href="#n5">[5]</a>: 其实他不知道我现在的热情其实不在游戏制作上而是在……乱搞上。<br></span><span class="TText"><a id="note6" href="#n6">[6]</a>: "I know darn well"<br></span></div>
<div id="insanch" style="height:3em;"></div>
<div id="footer" style="">
<div id="pagesw" class="TText" style="width:100%;height:0.5em;"></div>
<div style="text-align:center;" class="TText">
Proudly powered by SSBS <reduced style="font-size:70%;">(the static stupid blogging system)</reduced> 2.5
<br>
Content licensed under CC BY-SA 4.0. <span id="purgep" style="display:none;font-size:70%;">This page has passphrase(s) stored. Click <a href="javascript:_purgep()">here</a> to purge.</span>
</div>
</div>
<div id="cmdbuf" class="TText" style="transition:500ms;padding:1em;font-size:2em;color:white;position:absolute;background-color:rgba(0,0,0,0.6);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;">
</div>
</div>
<div id="decryptui" style="display:none;opacity:0;color:white;z-index:1000;position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4);transition:opacity 0.5s;">
<div id="decryptdlg" class="TText" style="padding:10px 20px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:rgba(0,0,0,0.6);">
<div id="keyhint" style="margin-bottom:8px;"></div>
<div style="margin-bottom:8px;">Key: <input id="keyinp" type="text" style="color:#fff;"></div>
<div style="height:2.25em;">
<button id="btndecrypt" onclick="decryptor(decid,document.getElementById('keyinp').value);" style="position:absolute;left:20px;">Decrypt</button>
<button onclick="hidedecryptui();" style="position:absolute;right:20px;">Cancel</button>
</div>
</div>
</div></body></html>
|