-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
2 lines (2 loc) · 14 KB
/
index.html
1
2
<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>chuan6</title><link href="favicon.png" rel="icon"><link href="index.css" rel="stylesheet"><script src="main.js"></script></head><body><div id="entries-container"><div class="entry" id="ios-app-buzz-intro"><div class="title"><span><span lang="en"> iOS App </span>「<span lang="en"> Buzz </span>声声」</span></div><div><p><span lang="en"> Transparency mode, or live listen, for wired headphone users. Control the loudness of the surrounding sound by simply turning up and down the wheel. </span></p><p><span lang="en"> If used as a simple audio recorder, you will be able to hear the return in your wired headphones, with minimal latency, as professionals. </span></p><figure><a href="https://apps.apple.com/us/app/buzz-%E5%A3%B0%E5%A3%B0/id1619604686" target="_blank"><img alt="download" height="54" loading="lazy" src="download-ios-app-alternate_2x.png" width="160"></a></figure></div></div><div class="entry" id="ios-app-buzz-privacy"><div class="title"><span><span lang="en"> Privacy Policy </span>「<span lang="en"> Buzz </span>声声」</span></div><div><p><span lang="en"> The app does NOT collect any data off device. </span></p></div></div><div class="entry" id="ios-app-buzz"><div class="title"><span><span lang="en"> App Support </span>「<span lang="en"> Buzz </span>声声」</span></div><div><p><span lang="en"> Hi, </span></p><p><span lang="en"> If you have any questions about the iOS app, please email at: </span></p><p><span lang="en"> chuan6 DOT dev AT qq DOT com </span></p><p><span lang="en"> Thank you! </span></p><p><span lang="en"> Best regards </span></p></div></div><div class="entry" id="daughters-john-mayer-transcript"><div class="title"><span>歌词翻译:<span lang="en"> Daughters - John Mayer </span></span></div><div><p><span lang="en"> I know a girl </span></p><p>我认识的一个女孩</p><p><span lang="en"> She puts the color inside of my world </span></p><p>她让我的世界有了色彩</p><p><span lang="en"> But she's just like a maze </span></p><p>可她又像是迷宫</p><p><span lang="en"> Where all of the walls all continually change </span></p><p>一个所有隔墙都在不断挪动的迷宫</p><p><span lang="en"> And I've done all I can </span></p><p>我已经尽力</p><p><span lang="en"> To stand on her steps with my heart in my hand </span></p><p>提心吊胆摸索她给的暗示</p><p><span lang="en"> Now I'm starting to see </span></p><p>我开始想通</p><p><span lang="en"> Maybe it's got nothing at all to do with me </span></p><p>可能问题并不在自己身上</p><p><span lang="en"> Fathers be good to your daughters </span></p><p>当爸的 善待自己的女儿</p><p><span lang="en"> Daughters will love like you do </span></p><p>她们会模仿着你们的方式恋爱</p><p><span lang="en"> Girls become lovers who turn into mother </span></p><p>女孩恋爱了 会成为母亲</p><p><span lang="en"> So mothers be good to your daughters too </span></p><p>所以当妈的 也请善待你们的女儿</p><p><span lang="en"> Oh now I trust you've seen that skin </span></p><p>你看她</p><p><span lang="en"> It's the same she's been standing in </span></p><p>其实还是那个女孩</p><p><span lang="en"> Since the day she saw him walking away </span></p><p>那个眼睁睁 看着他抛下父亲角色 的女孩</p><p><span lang="en"> Now I'm left cleaning up the mess he made </span></p><p>现在轮到我 不得不填补他的缺失</p><p><span lang="en"> So fathers be good to your daughters </span></p><p>所以当爸的 善待自己的女儿吧</p><p><span lang="en"> Daughters will love like you do </span></p><p>她们会模仿着你们的方式恋爱</p><p><span lang="en"> Girls become lovers who turn into mothers </span></p><p>而女孩恋爱了 会成为母亲</p><p><span lang="en"> So mothers be good to your daughters, too </span></p><p>所以当妈的 也请善待你们的女儿</p><p><span lang="en"> Boys, you can break </span></p><p>对男孩们 你可以不一样</p><p><span lang="en"> You'll find out how much they can take </span></p><p>打击他们,能看他们能承受多少</p><p><span lang="en"> Boys will be strong </span></p><p>他们从中学会坚强</p><p><span lang="en"> they'll soldier on </span></p><p>不顾风雨</p><p><span lang="en"> But boys would be gone without warmth </span></p><p>但他们的童心</p><p><span lang="en"> From a woman, from a, from a woman </span></p><p>需要,需要由</p><p><span lang="en"> From a woman's good, good heart </span></p><p>一位善良的姑娘守卫</p><p><span lang="en"> On behalf of every man </span></p><p>就当是为了以后的每一个小伙</p><p><span lang="en"> Looking out for every girl </span></p><p>照顾现在的每一个女孩</p><p><span lang="en"> You are the God and the weight of her world </span></p><p>当爸的 你是她现在不可或缺的人</p><p><span lang="en"> On behalf of every man </span></p><p>为了以后的每一个小伙</p><p><span lang="en"> Looking out for every girl </span></p><p>照顾好现在的每一个女孩</p><p><span lang="en"> You are the God and the weight of her world </span></p><p>当妈的 你是她现在最重要的人</p><p><span lang="en"> So fathers be good to your daughters </span></p><p>所以当爸的 善待自己的女儿</p><p><span lang="en"> Daughters will love like you do </span></p><p>她们会模仿着你们的方式恋爱</p><p><span lang="en"> Girls become lovers who turn into mothers </span></p><p>而女孩恋爱了 会成为母亲</p><p><span lang="en"> So mothers be good to your daughters, too </span></p><p>所以当妈的 也请善待你们的女儿</p><p><span lang="en"> So mothers be good to your daughters, too </span></p><p>所以当妈的 也请善待你们的女儿</p><p><span lang="en"> So mothers be good to your daughters, too </span></p><p>所以当妈的 也请善待你们的女儿</p></div></div><div class="entry" id="integration-modularization-wondering"><div class="title"><span>一个话题:集成化与模块化</span></div><div><p>之前在<span lang="en"> Stratechery </span>上读到<span lang="en"> integration </span>(集成化)<span lang="en"> / modularization </span>(模块化)的介绍,印象很深——产品的性能和功能,随市场竞争和用户需求的刺激而提升,往往能观察到前后两个阶段:不够用、够用了。</p><p>在不够用的阶段,生产者需要拼命优化,将所有部分集成,方便自己灵活调整任何一个部分。而一旦够用了,用户则开始追求性能和功能之外的一些特性,比如:购买便捷、价格低廉、更新频繁、维修容易、替换简单等等。此时,模块化的行业形态往往更优。(类比到一个人自己做事的准则上就是,常有人说的,『要想做得快,自己做;要想做得久,一帮人做』。)</p><p>另一个观察是,一个在不够用的阶段优胜的生产者,很难在该类产品转变到够用了的过程中避免自己被边缘化,甚至淘汰。就如法拉利是汽车技术突飞猛进时代的优胜者,在勒芒这样考验汽车性能和耐力的极限竞赛下脱颖而出,整车从铝材铸造开始完全自己搭建;但在随后几十年汽车技术止步不前而销量大增的时代里,只能蜷缩于超跑的圈子,没有收获与当初地位相符的汽车市场份额。当然人家可能不屑于市场份额,从一而终追求极致性能;但这正说明,阻拦不够用阶段优胜者适应接下来够用阶段的,价值观、企业文化、组织结构等等,都是因素。</p><p>现在中国互联网大公司的追求基本上都是,无论市场和行业怎么变换,保持强大。这就要求,一方面不能在一个产品上吊死,另一方面,一个产品要能适应从不够用的阶段走进够用了的阶段,抓住原有的市场地位不放手。</p><p>从生产方式的角度,就有了一个问题——什么时候选择集中化,而什么时候要切换到模块化?</p><p>过早模块化而失败的例子,比如<span lang="en"> Google </span>的<span lang="en"> Project Ara </span>模块化手机。在集成狂魔<span lang="en"> iPhone </span>都还没有满足用户对性能、续航、轻薄的追求时候,模块化手机带来的布局设计局限、模块接口维护负担,以及没有任何现存的模块供应商,这一系列问题带来了巨大成本,却没有显著实际价值能为之买单。</p><p>作为一个工程师,能感知到自己每天倾心优化的产品,是处于哪个阶段吗?</p><p>当工期由客户说了算,项目负责人由产品经理包办,价值交付相比于功能更在乎概念、文案;是否能得出结论,产品的性能和功能已经到了够用的阶段,该从集成化走向模块化?</p></div></div><div class="entry" id="web-page-print-content"><div class="title"><a href="https://zhuanlan.zhihu.com/p/24398027">网页打印 :在文本左右放置内容编码</a></div></div><div class="entry" id="structured-law-document"><div class="title"><a href="https://github.com/chuan6/structured-law-document">法律文本富网页化</a></div><div><p>将纯文本的法律条文自动转化为易阅览、跳转、分享的网页文档。</p><p>已有的功能包括标记编、章、节、条、款、项、目,实现文本内精细跳转,以及方便的片段分享。并加入了完善的文档打印排版功能,生成网页可以轻松打印成册。</p><p>使用<span lang="en"> Clojure </span>语言以及前端相关的技术。</p></div><ul><li><a href="structured-law-document">页面展示</a></li></ul></div><div class="entry" id="tiger-compiler"><div class="title"><a href="https://github.com/chuan6/tiger-compiler"><span lang="en"> Tiger </span>语言的编译器前端</a></div><div><p>实现了<span lang="en"> Tiger </span>语言的编译器前端,包括词法器、<span lang="en"> simple LR </span>语法生成器、抽象语法树转化、类型系统,以及相关用于上下文无关文法的一些函数。</p><p>主要特点有,<span lang="en"> simple LR </span>语法生成器能为任何属于<span lang="en"> simple LR </span>的语法自动生成语法器(类似于<span lang="en"> yacc </span>的作用);完整实现了<span lang="en"> Tiger </span>语言特性,包括递归函数声明、递归类型声明等;使用<span lang="en"> Clojure </span>语言。</p></div></div><div class="entry" id="webXi"><div class="title"><a href="https://github.com/chuan6/webXi">把玩浏览历史的<span lang="en"> Chrome </span>插件:<span lang="en"> webXi </span></a></div><div><p>制作了一个<span lang="en"> Chrome </span>浏览器插件,<span lang="en"> webXi </span>。可以帮助<span lang="en"> Chrome </span>重度用户通过动态的操作流程,把玩、分析自己的网页浏览历史。</p></div></div><div class="entry" id="mmck-simul-lib"><div class="title"><a href="https://github.com/chuan6/mmck-simul-lib"><span lang="en"> M/M/c/K </span>队列系统模拟库</a></div><div><p>设计并实现了<span lang="en"> M/M/c/K </span>队列系统模拟器函数库。主要特点有,</p><p>可以灵活模拟非简单<span lang="en"> FIFO </span>的队列、非简单先空闲先上岗的服务单元,以及处理任务速率不同的服务单元;</p><p>用户只需提供满足简单接口的队列结构或服务单元结构,便能利用库里的模拟算法;</p><p>分别用<span lang="en"> Go </span>语言和<span lang="en"> C++11 </span>语言实现了两个符合各自语言特点的版本;<span lang="en"> Go </span>语言版本通过<span lang="en"> pprof </span>进行性能调优,将随机数生成之外的计算成本降到极低,测试中达到与<span lang="en"> C++11 </span>版本通过<span lang="en"> gcc -o2 </span>优化编译所得到的性能。</p></div></div><div class="entry" id="LC-3-assembler"><div class="title"><a href="https://github.com/chuan6/LC-3-assembler"><span lang="en"> LC-3 </span>的单文件汇编器</a></div><div><p>实现了<span lang="en"> LC-3 </span>汇编语言的单文件汇编器。主要特点有,为了适用于教育环境,提供充分的报错信息;使用<span lang="en"> Clojure </span>语言。</p></div></div><div class="entry" id="toyshell"><div class="title"><a href="https://github.com/chuan6/toyshell">一个基于<span lang="en"> Linux </span>系统的简单<span lang="en"> shell </span></a></div><div><p>实现了多管道式命令,输入输出重定向,以及<span lang="en"> aliasing </span>(命令别名定义机制)。</p></div></div><div class="entry" id="wusetu-bbs-regpage"><div class="title"><a href="https://github.com/chuan6/wusetu-bbs-regpage">中农大五色土<span lang="en"> BBS </span>注册页重构</a></div><div><p>重构的背景是在<span lang="en"> 2009 </span>年左右,同学中越来越多的人开始使用<span lang="en"> Firefox </span>和<span lang="en"> Chrome </span>作为主力浏览器,代替<span lang="en"> IE6 </span>。 而原页面存在着的一些与<span lang="en"> HTML </span>标准不太符合的实现,在当时刚开始学习网页技术的我看来,可以成为重构的对象。未上线。</p></div><ul><li><a href="wusetu-bbs-regpage">页面展示</a></li></ul></div><div class="entry" id="wusetu-bbs-mainpage"><div class="title"><a href="https://github.com/chuan6/wusetu-bbs-mainpage">中农大五色土<span lang="en"> BBS </span>主页重构</a></div><div><p>历时约四个月,重构的内容包括从技术(<span lang="en"> HTML&CSS+JS </span>),到排版布局,再到页面模块增删。期间,获得来自热心网友,<span lang="en"> Carol </span>、 爱琴海蓝、老猫、水晶男孩等,以及<span lang="en"> BBS </span>管理员,的持续反馈、帮助和建议。</p><p>重构的技术需求来自由当时逐渐流行的<span lang="en"> Firefox </span>和<span lang="en"> Chrome </span>浏览器推进的标准<span lang="en"> Web </span>技术逐步代替<span lang="en"> IE6 </span>的现实。未上线。</p></div><ul><li><a href="wusetu-bbs-mainpage">页面展示</a></li></ul></div></div></body></html>