DREAM MORE, DREAM BIG, DREAM COMES TRUE!
满嘴胡话的小狐狸,摸鱼一整天,变成大咸鱼,希望以后小狐狸休息好,天天做美梦,少点忧愁,少点疲惫,一切顺利坚持的都能实现
我爱你
开心!你好好看啊
很开心!希望你也开心!
今天很开心!
工艺研发能够产生颠覆性的结果
Day 1
儿童节快乐!
最近总会坐着发呆,一呆就呆几个小时
可以通过在华为云盘自动备份路径的文件夹内创建Windows Symbolic Link,指向所需要备份的文件夹即可 如在以管理员运行的CMD从输入: C:\WINDOWS\system32>mklink /D C:\Users\apoca.DESKTOP-7942SSF\华为云盘\TestFolder C:\Users\apoca.DESKTOP-7942SSF\Documents\TestFolder CMD返回: symbolic link created for C:\Users\apoca.DESKTOP-7942SSF\华为云盘\TestFolder <<===>> C:\Users\apoca.DESKTOP-7942SSF\Documents\TestFolder Windows快捷方式文件不可以(.lnk),快捷方式文件只是一个普通文件,是Windows Explorer来解析用的 Symbolic Link是文件系统层面的Link,在华为云的程序看来,这就是一个文件夹,而不是一个.lnk文件,因此会进行备份
Structure of MOSFET: Source Gate Drain -----------Base---------- Base is typically connected to source internally. PN junction: P stands for positive (positive charges are here) N stands for negative (negative electrons are here) Types of MOSFET: Enhancement MOSFET (used widely), off by default (when Vgs=0V) Depletion MOSFET (rarely used, except for IC), on by default (when Vgs=0V) Types of enhancement MOSFET: NMOS (used widely), Vth(threshold)>0, Vds>0, NPN PMOS (used less), Vth(threshold)<0, Vds<0, PNP
调试了一夜的CDN,终于给梯子把CDN成功配好了。事发原因:光速的KCP端口被防火墙干掉了,普通的HTTPS又太慢了,所以搞一个国内阿里云CDN,给我的梯子装上火箭。 遇到的两个错误: 400 bad request Mar 28 03:22:40 FurtherZone v2ray[207284]: 2021/03/28 03:22:40 [Info] v2ray.com/core/transport/internet/websocket: failed to convert to WebSocket connection > websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade' header 发生情况:CDN和源服务器,两个证书不一致,XRayManager(不是Nginx,也不是XRay)的access log里“非法访问,token检测不通过” 正确方法:CDN和源服务器需要配备完全相同的hostname(即便真正的域名解析到了CDN那里去),而且还需要配备完全相同的,而且有效的fullchain+privkey证书(如果CDN重新获取了证书,旧的貌似会失效?)。 原理:CDN需要用它来建立真正的HTTPS链接,源服务器需要用它来校验CDN对它访问的有效性(CDN自己先访问源服务器,用有效的HTTPS进行访问,同时通过“回源HOST”来让源服务器感觉自己受到了一次普通的访问;然后CDN拿到这个HTTP GET的内容之后,再回传给client。 502 bad gateway 错误原因有点忘了 CDN配置CheckList: 1.CNAME解析(把冲突的A类解析删掉,后面由CDN服务器代劳访问,client永远不用直接和源服务器打交道) 2.HTTPS开启:使用加速域名对应的fullchain+privkey(不要重新申请) 3.关掉HTTP/2(因为XRay好像默认配置的是HTTP/1.1) 4.打开TLS v1.3(这步我不确定是否必要) 5.回源HOST:配置成CNAME解析前的那个域名(加速域名,即client直接访问的那个域名)
2021年2月12日,农历大年初一。二〇二一已经走过了33/365,不到十分之一,现在计划,还来得及。滴答清单里的待办一项项得变多,每年12月31日,或者是1月的第一天,我总要填上新一年的目标——2017年度目标、2018!、2019 CHECK MARKS!、2020 会发生。2021来了,这一年会发生些什么呢? 在事业上,一定会有翻天覆地的变化,这不用说,只要是感受过这样的热情,窥见过一点对于位置的幻梦,便能够想象。 在生活上,又能够迎来怎样的精彩呢?为什么,写一个自己的博客,依旧要拐弯抹角,畏手畏脚的呢?也许不是所有的幻梦都应该在得逞之前公之于众,这样就打破了那种含蓄的美丽。那究竟什么样的表达,才能够做到优雅,点到为止,那种朦胧,隐隐约约? 朗姆+青柠,刚刚好,你喜欢鸡尾酒吗?甜甜的,尝试各种不同的基酒,配上不同的点缀,每次都能够尝试到,全新的体验。在一家从未去过的酒吧,点一杯从未听说过的鸡尾酒,with someone, maybe。这样的夜晚,可以称得上生活,peacefully, yet undiscovered unveiling every time. Or something beyond? Something greater than an ordinary evening after work? It might take something with it. Some proud, some fame, some dignity, something being hold back all the time. Can we take a step further? Or can I? 二〇二一,get beyond, into the further zone, build to build, create to create. Imagine unseen, explore unmet. Life, here I comes. 五年计划不是做一次计划管五年,而是每年来做五年的计划,2021-2026,会是怎样又一个五年呢?翌创上市——最年轻的科技教育公司,教育科技公司。绿洲建成——一个沙漠中的玻璃房子。乌托邦开始建立——从part time看星星俱乐部,到full time社区。 五年后,坐在翌创大楼的CEO办公室里,抬头,从玻璃穹顶仰望星空,倒上一杯Caipirinha,播放着post rock,等待着,流星从天边划过,许下新的一年,美丽的愿望。
最近,让自己着手的事情有些太多了,也许不应该让自己这么忙。引用Mr. Bank的话讲“The purpose of time management is not to do more things; it is to do things that you want to do”。我让自己处在了态度事情中间,去做每一件事情,才是放弃思考的表现。也许,我该为自己选择那些最有长远意义的事情。想要go offline,面去自己各种社会身份的打扰——需要上课的学生、自强创业班班长、鸿元AI业务部主管、地表团队队长、地表++小组组长、地表--的一份子、比赛队伍的决策者…… 最近真的是有些许疲惫了。规律一下生物钟,暂时先不接新的个人外包项目了,尽快赶一赶最初的计划,专注一些,不要再每天把50%的时间都用在微信、钉钉、QQ上面,辗转于各个团体之间。把管理日程化,每件事情都有他们的意义,但是不需要我无时无刻地关注他们,我应该把这些事情放到固定的时间去处理,而其他的时间,专注于我计划中的事情上去。而非让不断地变化,打乱着我的计划。 太忙了,也没有时间思考了,让自己越来越像是一个理性的机器一样运转。没有了时间去看一看书,没有了时间去看一看电影,甚至连音乐都只能在少数的时候,作为背景呈现。也许,应当慢一点,可我真的忍心减缓我对一个既定目标追求的脚步吗?一些目标太过明确,把另一些属于自己的东西就又全部抛弃了。步履匆匆,来不及停下来,看一看眼前的风景。说好的keep in touch,常常被一个突如其来的“必做”给打断,而再后来,渐渐地也没有了建立联系的必要条件。大部分的联络,都显得那么有“必要性”,似乎没有一个什么必不可少的理由,人与人之间就没必要再联系了一样。很想与朋友们catch up,但似乎又渐渐没有太多可聊的东西,大家似乎都在做一些必须要去做的事情罢了。 慢一点吧,如果生活的一切都那么可以预期,那也许也就没有了生活的乐趣。书还是要看的,已经很久没有给自己打过鸡血了,很久没有憧憬过未来了。世界也是要去看一看的,最近,地球又有什么新鲜事呢?
Microsoft Office当之无愧办公软件的冠军,然而跨国公司也抵不过万里长城,OneDrive被封禁,中国大陆使用比较蛋疼。而且Excel还不支持多人同时编辑,云协作能力有待考证。 Google Docs无疑是云文档的鼻祖,然而feature没有微软家的那么强大,界面有一种Office 2003的风格,不过云协作能力应该要强于微软家的。不过,比微软家更惨一点,被全面封禁,这就不用想了。 腾讯文档:微软文档导入之后丢格式。Excel支持多人同时编辑。 石墨文档:微软文档导入之后丢格式。 金山文档(WPS系,钉钉内嵌):兼容微软家产品兼容的还可以,兼容性比腾讯文档、石墨文档要好多了。
国内各路山寨的ST-Link,8RMB起,质量很差,很容易挂掉,慎用,用的话多买几个备份。 中国特色社会主义JLINK我用起来目前感觉还不错,17RMB。 ST的Nucleo开发板上好像自带ST-Link,但是最便宜的走私的也得80RMB。 SWD需要MCU监听SWDCLK和SWDIO的Pin,在程序执行的时候,MCU是否还在监听取决于程序是怎么写的。 STM32CubeMX中默认是不监听的,需要把SYS->Debug改成Serial Wire才可以在程序运行时进行监听。 万一程序运行了,但是没有监听SWD,怎么拯救连接失败? 方案1:把BOOT模式设置成SPI(BOOT0=1,BOOT1=0),然后用串口(3.3V的RS232)和单片机通讯。此时可以烧录新的程序,或者直接erase掉flash中的程序。 方案2:按住RST按键不放手,尝试用SWD连接,SWD不断地尝试连接(但这个时候显然连不上),这时候放开RST(因软件而异,有的软件可能尝试几次失败后就报错了,这种情况需要眼疾手快,鼠标一点击,RST就释放),SWD成功连接。
To be or not to be. That is the question. I've always been thinking about how to deal with the conflict between my productivity and my grade. It's also a conflict between possibility and risk. I definitely want a life that differ from the rest - a life of exploring, a journey of trying, a path that leads to unknown. But the fact is that I'm limited by the ancient legacy traditions which are imposing musts on me. How I wish that I can break the chain that bound me here. But with the heavy chain, there's known outcome that comes with it - a baseline that prevent the worst thing from happening. Put it in another way, the chain brings up known, relieving the fear toward unknown. I guess I'm always an optimist that believe there can be perfect happening in the future. But still, I'm hesitating all the time worrying about the price I must to pay to achieve it. No one can surely tell that my ambitious will be fulfilled, yet everyone can tell that if I do not go for it in the first place, a pleasant life can be guaranteed. No one is wrong. I wouldn't say that my dream is daydreaming. And the professor is just doing his duty. I want to be the one to break the rule but for him, he doesn't have to be an accomplice. What's wrong is with the legacy system that plays everyone inside like puppets. Time has changed, what tortures us is no longer poverty, but a dream unfulfilled, a desire to do but constrained. Hesitating won't make a difference. I have to pick a side. As the proverb goes, nothing is impossible to a willing mind. Where there is a will, there is a way. And I'm going to take this path. That is determined and that's going to come true. Let the wind blow and the mind grow.
Definition by examples: ====languages: java, C, C#, JS, Python ====bytecode: java bytecode (under Oracle java platform), Android java bytecode (dex file under Android system), common intermediate language (under .NET framework) ====assembly language & machine code: architecture dependent language ====runtime environment (frameworks, platforms): none, .NET (common language runtime), Oracle java EE (or SE, ME, etc. (they are a subset of EE)), Android (ART (Android runtime)), React Native, Chrome V8 (JS engine), Python interpreter ====OS: Android, IOS, Windows, Linux ====architectures: x86 (8086 (16-bit), IA-32 (386, 486), x64 (aliases: x86_64, AMD64, Intel64)), IA-64 (Intel Itanium), ARMv7, ARMv8, MIPS, powerPC ====microarchitectures (extensions): 8086, Pentium MMX, Intel Core (SSE), SSE2, SSE3, SSE4, AVX Software development-execution workflows: ====Native Android: java --developer's-computer-compile--> bytecode --installation-AOT-compile-by-ART--> machine code ====Oracle java platform: java --developer's-computer-compile--> bytecode --JVM-interprete-&-JIT-compile--> partly interpreted & partly run as machine code ====JS: JS --network--> JS --JS-engine-interprete-&-JIT-compile--> partly interpreted & partly run as machine code ====.NET: C# / VB / F# / C++ --developer's-computer-compile--> common intermediate language --CLR-(common-language-runtime)-interprete-&-JIT-compile--> partly interpreted & partly run as machine code ====C: C --compiler--> assembly language --assembler--> object file --linker--> executable file Protability (write once, run everywhere): ====assembly language & machine code: must be under the same architecture, and you have direct access (e.g. you cannot run machine code under Android) ====C: must use portable libraries (stdio.h, stdlib.h, etc. instead of unistd.h, sys/balabala.h) ====.NET: with the help of Mono, .NET application can run on Windows, macOS, Linux, Android, IOS ====java platform (Oracle): with java runtime environment (JRE) (note: JDK includes JRE), you can run bytecode on Windows, macOS, Linux, some embedded systems. But Android use a different set of libraries which isn't compatible with Oracles ====JS: who don't have a web browser? Even without a web browser, you can use a seperate JS engine to run JS (e.g. Node.js with V8 engine) Microarchitectures compatibility: ====Intel: x86 and IA-64 don't natively compatible with each other. IA-64 can implement a software emulator to run executable programs (machine code in essence) which is slow ====AMD and Intel: x86_64 can run IA-32 (32-bit x86) natively, but also can run 64-bit programs ====Intel extensions: newer versions of CPUs can run all legacy extensions programs. Newer programs can provide multiple branches in machine code (one to exploit the extention if it exsist and another to use tradition slow method) to decide which branch to take at runtime ====AMD extensions: Intel is the shotcaller, and AMD follows. Some AMD specific extensions (e.g. 3DNow!) are no longer supported by AMD
PART I - overview: System call is a kind of exception (exceptions also include arithmetic overflow, IO, etc). All exceptions save current PC to EPC and put cause of exception into "Cause Register" and then switch to kernel mode and jump to operating system code which handles exceptions. PART II - system call workflow: What to do before issue system call instruction: 1. put arguments needed for this system call into corresponding registers 2. put system call ID to $v0 GPR (general purpose register) 3. execute system call instruction What happens when executing system call instruction: 1. save PC to EPC register (Exception Program Counter register) 2. set kernel/user mode bit to kernel mode 3. jump to operating system kernel code which handles exception What happens when kernel take over to handle exception: 1. save state (including GPR, hi, lo, exception registers, set up sp) 2. enable nested exceptions 3. call exception handler (written mainly by C language. Here's where the OS really do the job) 4. restoring state 5. exception return ("erec" instruction (this instruction set user mode bit and jump to $ra)) PART III - system calls and C library (especially in linux): 1. System call it self includes a set of special instructions (in MIPS, "syscall" to switch to kernel mode and jump to kernel code and "erec" to return to user mode and jump back) 2. C library is a .h C header file associated with a .a assembly file which includes the special instructions mentioned above 3. Some C library may do a little bit more (discussed below) (the following part is quoted from Linux man intro(2)) A system call is an entry point into the Linux kernel. Usually, system calls are not invoked directly: instead, most system calls have corresponding C library wrapper functions which perform the steps required (e.g., trapping to kernel mode) in order to invoke the system call. Thus, making a system call looks the same as invoking a normal library function. In many cases, the C library wrapper function does nothing more than: * copying arguments and the unique system call number to the registers where the kernel expects them; * trapping to kernel mode, at which point the kernel does the real work of the system call; * setting errno if the system call returns an error number when the kernel returns the CPU to user mode. However, in a few cases, a wrapper function may do rather more than this, for example, performing some preprocessing of the arguments before trapping to kernel mode, or postprocessing of values returned by the system call. Part IV - User thread and kernel thread: Each user thread must map to a kernel thread in order to make a system call. Note that from a switch between user thread and kernel thread does not mean a process context switch (which costs a lot). To quote from Wikipedia: * Many-to-one model: All system calls from any user thread in a process are handled by a single kernel-level thread. This model has a serious drawback – any blocking system call (like awaiting input from user) can freeze all the other threads. Also, since only one thread can access the kernel at a time, this model cannot utilize multiple cores of processor. * One-to-one model: Every user thread gets attached to a distinct kernel-level thread during a system call. This model solves the above problem of blocking system calls. It is found in all major Linux distributions, macOS, iOS, recent Windows and Solaris versions. * Many-to-many model: In this model a pool of user threads is mapped to a pool of kernel threads. All system calls from a user thread pool are handled by the threads in their corresponding kernel thread pool. * Hybrid model: This model implements both many to many and one to one model depending upon choice made by the kernel. This is found in old versions of IRIX, HP-UX and Solaris.
ofo的APP近日更新,现在已经沦落为了又一个骗钱的电商平台。这绝对不是创始人戴威的最初的构想,甚至这一步的迈出也完全不是戴威的意愿。一个曾经影响着几亿人生活的独角兽陨落至今,沦为如此“童叟无欺”的骗钱平台,令人遗憾、痛心。 来也匆匆,去也匆匆。在资本的摆布当中,无人妥协的僵局之中,数十亿美元的资源躺在风里雨里沦为废铁,留下一身骂名,数十亿的供应商欠款与数千万用户的押金血本无归。 mobike、ofo裹着几十家投资巨头砸进50亿+美元,生产了数千万量单车,在天灾人祸之中被蚕食。有幸,大多数公司,连同摩拜在内最终都能够被以或高或低的价格收购,其几千万量单车也能够得以在运营团队的帮助下正常为这个社会提供服务。而最后一根稻草终于压倒了ofo,从最初的不肯妥协,到最后的无法妥协。令我无法理解的是为什么ofo至今仍然没有进行破产清算,如果ofo破产清算了,几千万量单车折价合法地卖给了还活着的共享单车巨头,这样不也能得到更好的利用,欠款也能或多或少还上一部分。难道说是因为破产清算之后全部的资产都变现还债之后,投资人依旧无法拿到本钱,所以股东最终也没有申请破产吗? ofo到引进滴滴的投资开始,大概事情就开始变得不对。戴威想要独立运营,而滴滴想要把ofo并入,两大股东产生分歧、对峙。后又引入阿里,半半拉拉挂,一只脚在里面,一只脚在外面。ofo内部三足鼎立,拖垮了整个公司。按照戴威的思路,保持独立运营,那就意味着要么拖垮了mobike,一家独大;要么和mobike同归于好,竞争,但又保持一个微妙的平衡。显然前者需要一轮又一轮的新资金注入,而独立运营的想法和滴滴、阿里都不相合,几大股东各持一票否决,无法融入新的资金,独立运营道路在滴滴和阿里的一票否决下走不通。而滴滴注入,就为了并入滴滴出行体系,滴滴有自己的青桔单车,而阿里又有自己的哈罗单车,两大股东互为竞争对手,谁也不能让谁全盘收走了ofo,相互僵持,拖垮了ofo。 在这一场大乱局中,滴滴、阿里、戴威、供应商、千万用户都是输家。戴威引入滴滴投资,滴滴入股ofo,没想到之后意见不合,互相用一票否决与对方抗衡,最终两败俱伤。阿里在ofo苟延残喘之际莫名进入,网上媒体说是为了抗衡腾讯,增加支付宝、芝麻信用流量,让我有些匪夷所思。骆驼最终被压倒,没有运营团队的继续支持,ofo死无葬身之地。 20个月过去了,ofo的价值几十亿美元的车设计寿命不到两年,现在也可以说是寿终正寝了。价值几十亿美元的车提供了几十亿次骑行服务,平均下来,每次的成本也不算低了,大概更多的价值都变成了缺乏管理后的私锁车,或在无人问津的单车坟墓里消逝了吧。 原本一个北大里面小而美的项目,一步步走成了今天这个不伦不类,苟延残喘,伤天害理的结局,令人扼腕。戴威是一个理想主义者,很想make a world of difference,凭借一己之力保持独立,保持独角兽的姿态。成为下一个google,而非成为滴滴手下的一个齿轮。 然而事实如此,在不断的妥协之中,大多都被拖垮了,成了四不像。没有人的理想得到了实现,在为内部斗争中被消磨殆尽。 都说Elon Musk是一个非常敢于承担风险的人,而我觉得,戴威有过之而无不及。如果还有如果,再给戴威一次机会,有着这样的起手,不如先存一个档,在2017年让ofo与摩拜合并,套现出局,东山再起。Step by step, make a world of difference.
1. CPU 1.1. Subword parallelism: SIMD (single instruction multiple data). One instruction that apply the same operation to a small amount (e.g. 4) of narrow width (e.g. 16-bits wide) data. 1.2. Vector / SSE (Streaming SIMD Extensions): Use multiple cycles in a deeply pipelined method to apply the same operation to a series (not too much, e.g. 8) of data. 1.3. Hardware multithreading 1.3.1. Coarse MT (context switching): 1.3.2. Fine MT (more often to be seen in GPU) 1.3.3. SMT (Simultaneous multithreading) (hyper threading in Intel I7 processor) 1.4. Multicore Multiprocessor: shared memory multiprocessor. 1.5. Clusters: Multiple computers (each with non-sharing processors and memory) interconnected with ethernet. 2. GPU 2.1. Multiple threads (fine grained multithreading) on a single SP (stream processor): many threads being issued (in parallel with other SPs in the same SM. This issue bundle is called a "warp") in turn on a SP. 2.2. Multiple SPs within a SM (stream multiprocessor): approximately 256 threads form a "thread block". 2.3. Multiple SMs within a GPU: both data level parallelism & task level parallelism. 2.4. Multiple GPUs work together. 2.+. Conceptually 2.+.1. SPMT (single program multiple threads): Running the same copies of a program on multiple threads. 2.+.2. MIMD (multiple instructions multiple data)
参考资料(是两个很短的YouTube视频,极力推荐观看,看后再看我的总结): 12分钟crash course: https://youtu.be/TEAtmCYYKZA 6分钟讲坐标变换:https://youtu.be/cvcAjgMUPUA 一、模型存储 1. 3D模型由很多的“面(face)”组成(一般情况下是三角形(四边形的也见过,但是似乎不如三角形的好)) 2. 每个三角形有3个顶点(vertex),每个顶点信息由xyz坐标存储 3. 每个面信息由3个顶点ID存储 二、坐标变换 1. 由模型内某顶点绝对坐标经过线性变换(一次矩阵乘法(矩阵为从模型在世界中的摆放位置(包含xyz偏移量、三个方向旋转量 信息)))得到顶点在世界坐标体系下的绝对坐标 2. 相机视角坐标变换(和上一步同理,相机和世界的坐标系有xyz偏移量、三个方向旋转量)【我感觉这步和上一步对应Vertex Shader】 3. 透视坐标变换(perspective projection),同时裁剪(clip)掉可显示区域以外的地方(后面的步骤中无需渲染)。我如果没有理解错的话,这一步结束之后原本顶点的三维坐标就变成二维坐标了。注意除了二维的屏幕位置坐标以外还有一个depth深度坐标(表示前后位置(前面的物体遮挡住后面的物体))【我感觉这步对应Geometry Shader】 4. window to view (projection):这步我没太理解,是使上一步得到的顶点坐标对应到具体显示的窗口区域吗?这样的话我觉得只需要2D的裁剪、缩放、平移? 三、光栅化(rasterization) 1. 先去掉视角之外的顶点和保守估计会被挡住的顶点【Setup】 2. 从三角形最上面的顶点所在屏幕上面二维坐标(x、y)的y开始,到最下面的顶点的二维坐标的y结束,逐行扫描 3. 防锯齿上色:对每一行画一条水平线,交三角形的边框于两点,对于完全在三角形内部的点完全上色,部分在三角形内的点上对应比例(alpha通道)的颜色(上什么颜色由下一步决定)【以上两步对应Rasterizer】 四、上图案纹理(texture mapping)、打光(lighting) 1. 三角形的平面对应一个2维图案文件,由上述的坐标变换之后,三角形的三个顶点都对应了各自在屏幕上的二维坐标,相对于原三角形的三个顶点的平面上的相对位置,有了一个2维到2维的矩阵乘法;对那个2维图像做同样的矩阵乘法,得出了对应的坐标位置上的图案的坐标位置(2维浮点数) 2. 由于2维浮点数坐标不对应具体的某个颜色,因此将周围的4个像素点的颜色加权平均(bi-linear interpolation),获得一个RGBA值(A:alpha,上面抗锯齿那步产生的) 3. 根据环境光和被渲染面的方向,计算出被渲染面的反光,调整RGBA值 【以上几步对应Pixel Shader】 五、合并 1. Painter's Algorithm:将以上每一个面渲染出来的数据合并,深度大的(离镜头远的,在后面的)先填充到display buffer里面,然后逐渐把深度小的依次填充。最终得出想要的结果【ROP(Raster Operations Processor)中执行】
先挖一个坑,也许稍后再填 2020年1月28日更新: 嘿嘿,一周之前挖了一个坑,这几天过来看,发现居然有17次阅读,远远超过其他的任何一篇“教主牢骚”的阅读量。既然如此,就不辜负分17次打开这个标签的朋友了。这一次,把这个坑填上吧。 期末考试结束已经过去18天了。最初的几天,先是和兰、雨婷、雨阳在武汉wondered around——在武汉空无一人的大街上开着“过山车”闲逛,伴着云雾背后的朝阳在凌波栈道上跳大神……然后开始了Mr. Leaf, Mr. Navon, Miss. Lotus, Mr. Cloud的自驾之旅,从感受Navon家族的生活气息,到在村子旁边的AirBNB里打地铺……都是一些蛮独特的经历,像酿酒一样,过得越久,越有味道吧。 也许是有一段时间过的太肤浅了,现在又找不到了那种晚上独有的状态。刚刚写下,又从博客中剔除了一大段很平常的计划,无非是分析过去的平平常常的几天发生了什么,未来一段时间要做一些什么。我觉得我当前很大程度上主动和其他人发起的聊天内容也逃不出这两个话题:过去一段时间发生了什么,未来一段时间是什么打算。甚至有时会很尴尬地为了创造些话题,我会反反复复把这个问题问好几遍。大概我需要再拓展一下我的涉猎面了,学习日语是一个不错的选择。除此之外,这个假期闲来无事,就闭关修炼,晚上享受一下世界美好,看一看书,看一看电影。 这篇博客本该是记录一些wonder around时的随感随想,而并非现在这样的一些流水账,再加上一些很理性常规的东西。哎,人还是很容易受环境所影响的——周围的人的心态、所做的事情,甚至就连屋子里的灯光等等,都很大程度在影响着我的心理状态。当种种因素不断打扰着我的心绪时,就很难去深入投入到一种情感当中,而把这种转瞬即逝的感受变成文字记录下来。有点希望拥有Jane的这种对于感受的敏感,这种入戏三分。 我的博客还是太“意识流”了,不得不说,其中的水分有些大。Navon说他的书,全部都是先构思好后再开始动笔,溧讲他的日记也都是思考后的汇总。 有太多事情,一直在反复喊着要去执行,反反复复的计划,也逃不过这几个关键词。同一句话说多了,又有些无聊了。现在就有些无病呻吟,无非是平平淡淡地又过了几天。我还要多去输入一些,再多一些去体验生活,或者通过电影书籍来感受生活。 真的算是牢骚了这么多,严重跑题。无论如何,寒假的第一个10天还是过得蛮愉快的,第二个10天平平淡淡,第三个10天希望可以专注高效又不乏味。不要再于种种想做的事情之间徘徊犹豫了,目前选定了这些方向就往前走吧,时间有限,make it count。
复习计组,我计组自学看的英文教材,考试题目里面好多中文的名词我都没见过,本来八百年不用百度的,现在搞得我只好百度一下,但是百度上面各种花里胡哨的东西真的看着碍眼,百度设计出来就是有点雅虎向,就是为了让你在这个站点上停留更久的时间,点击更多的广告,而不是作为一个工具类软件提高效率。 废话结束,以下正文: 1.先在浏览器上安装Tampermonkey: http://www.tampermonkey.net/ 2.然后安装我的4行代码的脚本: https://greasyfork.org/en/scripts/394788-kill-baidu-search-hotspot 3.打开电脑版百度,发现右边的搜索热点不见了,说明脚本运行有效
烤了好久了,一段时间不更新博客心里难受。 分享一个专辑,呐,就是这样。
本来是估计这篇博客会在1月1号的凌晨动笔,在破晓时po出来,但是这样显然效率是一种损失。我现在又开始看概率论,有些浮躁,有些静不下心,先随意写一写好了。 还是按照老套路来吧,先回首一年。 我大概是从2017年1月1号开始,每年给自己设立年度目标的,那一年,高二。想来,这应该也是第四年写年度计划了。每年都会把年度计划设置一个日程,在未来每年的12月31号,提醒我,检验自己一年来究竟实现了多少。但是在2019年1月1日凌晨,在我的Day 711的日记里,我表达了和我现在完全一样的惆怅:离群、怀揣梦想和极强的目的性。难道这就是我一年来的主旋律吗? 先来看看这一年有什么长进吧: 知识上学了三大数学课、几门专业开设的和未来要开设的专业核心课程。 工程上搭建了自己的第一个网站,短短运营了一个实打实的商业项目,暑假摸了摸各种开发板。 社交上认识了郑子杰、陈品翰,但也许与以前的一些朋友越走越远了。 功利上大一下GPA 3.89,成功转系,自强创业班申请第一名。 生活上头发变得更长了,脸上的痘变得更多了,对于情感的感受更迟钝了,前半年去了去健身房,后半年越来越宅;这一年也算是小小地出去玩了几次,不过也都只是局限于<24h的短时间出游。 其实吧,回顾2019年年初时给自己定下的计划,也算是比较接近了,只是商业知识没有学那么多,在人工智能方面的研究没有深入,不过倒是先学了学未来的专业核心课,搭了搭网站,也不算偏离太多吧。 一年来也看了64部电影、舞台剧,不过大多集中在上半年,远比我所期待的要少。而我自己的作品,勉强算是拍摄了0.1部电影。 日记还算是坚持了新的365 days,不过原本每天的高质量配图的摄影作品,现在逐渐也在消逝。 一段时期有一段时期的特点吧。 2017年,赵心铭和邓通给我带来了很多的改变。 2018年,高考和在建筑学的生活也很独特。 2019年,真的是还没有感觉做了些什么,就在不得不做中过去了。学海无涯,我大概还要再学上好一阵子,关键是这一个学期,我一直想要割舍GPA,去追求实力的培养,却在心里又不能完全放下,最后还是有不少精力都耗费在了GPA上面。我觉得还是要放手一搏了吧。做一个nerd,尤其是一个最平庸的nerd,绝对不是我所追求的。 前一段时间写的生日总结,看起来那一年虽然有些平淡,但还没有如此悲惨,而现在看来,去掉在建筑的那两个月,这一年,值得回忆的,可以说不算太多了。 随意记录一些还能被我想起的一些事件吧:和郑子杰夜游江汉路、陈雨婷的生日、我自己的生日烧烤、和赵溧在颐和园荡起双桨、雨夜走江滩。这些是比较快乐的回忆,不如2018、2017那样丰满,大概剩下的时间都拿去学习技术了吧。 2019,不愤怒,不悲伤,不开心,不兴奋,平平淡淡,无波无澜。一切都在计划之中,顺理成章。努力终会有回报,只是当一些都已经在预料之中了,对生活就越发麻木了。 1年365天8760个小时。3285个小时拿去睡觉,650个小时拿去处理日常之事,500个小时拿来记录生活,500个小时拿来应付考试,200个小时去拿去上一些中规中矩的课程,读了800个小时的教材,写了200个小时的代码,花了250个小时去享受生活,花了200个小时处理鸡毛蒜皮,120个小时与家人共度,看了200小时的传记,看了200小时的影视剧目、看了200小时的YouTube,在线沟通了100个小时,线下畅谈了100个小时,有80小时献给了运动,减下来,这一年还有1175个小时,它们都去哪了? 一年,可以成就很多,却又成就了太少。回首过往,看到的究竟是GPA又拿了多少多少,或是钱又挣了多少多少,知识又学了多少多少,项目又做了多少多少?还是过去的点滴感动,回忆中的那些现在想来仍会兴奋,或在一个适当的夜晚,依旧会为之落泪的事情?也许,都有。那些功利的东西是在为了一个更大的蓝图铺路,这张蓝图也许是让世界更大程度地互联,也许是让人工智能拥有人类的智慧,也许是让人类飞向火星,也许是让生命长驻。又或者,只是拥有一群好友常伴左右,拥有想做就做的自由,可以随时来一场无忧无虑说走就走的旅行,让生活拥有更多的精彩与可能。 一年,转眼间,就只剩下最后的26个小时了。当新年的钟声响起,迎来的又会是怎样的1年呢? 这会是跌宕起伏,充满无限未知与可能,充满快乐与惊喜的一年吗?又或者是日日夜夜的奋斗,平淡无奇,但又四平八稳地向目标迈进的一年?还是要抛弃一些,有失才有得。这一年,要尝试些更多的不同,要给life分出更多的空间,GPA再多放下一些,课内课外书再多读一些,电影再多看一些;早餐那个项目还要做,那可以是我的第二桶金,希望可以通过它能有一点点小小的个人积蓄,以后花钱时可以更少一些顾虑;与朋友keep in touch,在不同的朋友之间建立一些小小的圈子,说不定可以再走近一些,再近一点。 贰零,贰零。Keep the wheel rolling. Keep fighting. Keep exploring. Be bold. Be different. Make a life a life and make a life counts. If not me, who? If not now, when? Best wishes to me. Best wishes to you. Happy Christmas. And happy new year.
一个人躺在床上,千丝万缕。而真的决心打开电脑,要写点什么,那些多愁善感却烟飞云散了。在一片漆黑中自己能够沉浸在另一个世界里,而做到工作台前,敲击着键盘,却又回到了世俗的思维模式之中。 有着太多想去做的事情,而最终,大多都不了了之,时间最终只站在了最寻常的事情一边。而更多的憧憬与浪漫只是停留在了过去的想象之中。 二模左右,想要抢在高考前给11班的每一个同学拍一部只有一帧的电影,我知道那时是我最后的机会了,留住高中时一点点最真切的回忆,邀请函都已经打印好了,用的是小铁门打印店最好的铜版纸,正面有着写给每个人的话,背面是从翌创实验室望向高中楼;最后,还是没有迈出递送邀请函这一步,而把最后的高中时光留给了高考复习。曾经幻想过拍一系列《我们》,讲述那最好的三年;结果仅仅拍摄了一部10分钟的小短片,后来就再也没有推进过了。 圣诞夜,点起一只红色的蜡烛,却还是抵不过显示器有些刺眼的白光。 一年多以前,我写给半年后的自己“转系成功后,记住:我不只做技术”,然而现在,不在技术上做得出人头地,很难实现我创业的梦想;而专注技术,我又在生活上放弃了太多,为从斑斓的世界中匆匆走过感到遗憾,如此丰富的世界,我却只体验到了其中的最平凡的一点。在这里无病呻吟,明天起床,大概又会把这些暂且抛在脑后,去为了不得不做的事情搭上一天,一周,一月,一年。永远为了不得不做的事情挣扎,实在是过的有些太无趣了。休学一阵子这个想法一直在我心中徘徊,却又拿不定主意。虽说我这一学期也没去上过几次课,但是种种琐事还是把我缠在这里,动弹不得。或者也可以换一种思路呢?大学在这里,那就去享受大学生活?不知道,想不清。 感觉自己越来越把自己规划的明明白白,明白的有些无趣,没有了那种随性的洒脱,未知的浪漫。放眼望去,这个人的最理想的未来大抵如此:1年后学成开始着手做项目,2年后在翌创公司带领几个人的小团队尝试做出点名堂,3年后融资几千万,4年后融资几个亿,5年后融资几十亿,6年后公司上市,7年后,8年后,9年后……除了创业,生活上平淡无奇,为了一门心地创业,割舍了其他的一切。 以上不过是一个心怀梦想的少年的异想天开,实际却有可能是这个样子:1年后依旧在GPA与实力塑造之间挣扎徘徊,2年后忐忑不安地拿着平平简历四处求职,3年后在一个互联网公司做着最为平淡无奇的工作,4年后拿着三四十万的年薪重复着日复一日的routine,5年后也许跳槽到另一家互联网公司只为了每年多赚十万,6年后咬咬牙在北京郊区首付了一套高层,7年后,8年后,9年后…… 或者再不寻常一些呢?1年后流浪在欧洲的一个小镇,靠着workaway保持一个收支平衡;2年后漂到非洲,给自然保护区建立一套反盗猎系统;3年后靠着一些做项目的积蓄走一趟南极,跟一群像我一样的疯子享受长达几十天的夜晚;4年后回到中国,又捡起了那个电影梦,组起了一个草根剧组,去拍一些不为人知的纪录片;5年后离开了剧组,开始玩起了音乐,在北京后海的小酒馆里唱过,在去西藏的路上弹过,卖着自己出的CD,一路走走停停;6年后想起了当年建筑系的同学们,到处走走看看,卓兰和陈雨婷刚从马德里理工大学毕业,加入了一个小有名气的建筑设计事务所,刘奥龙在二三线城市的在线教育领域做出了些影响力,谭盾参与设计的一个项目已经在东京市郊破土;7年后,8年后,9年后……这样的几年,活得像电影一样,自由,别致,却又有些空虚,似乎又有些一事无成。 一直以来,我好像都只看到了10年后,创业有成的那个自己,而从来没有思考过其他的可能。创业这条路似乎已经如此清晰,虽然有着无数的不确定性,但是似乎总能或多或少的实现最初的愿景。10年后的毕成到底怎样了,我现在已经完全不记得了,但是10年后的自己,似乎从高三上学期期末考试到现在,一直都没有太多变化过,只不过可能爱好不再那么广泛,电影少拍了几部,原本的法拉利变成了roadster,搬进了自己设计的构筑物里。可是,10年后也可以是全然不同的另一副模样?或者又因为创业有成的图景如此生动,最后她就会是这个样子吗?好像是,又好像不是。好想是,却又好想不是。少放一点点技术,再多一勺想象,少放一点点世尘,再多一勺浪漫,扣上锅盖,小火慢炖,10年。
很久没有沉浸于任何一种所期待的体验中了,那大概是一种不急不躁,藏于幻想当中的千丝万缕。在朋友圈看到了任真分享的这位日本作曲家的一曲,听起来有些「你的名字」中插曲的一些感觉,很喜欢,也祝自己圣诞快乐。
划重点:速来来私戳我报名教主旅行团! 冒出一个念头:期末考完之后可以出去玩一小圈,就像是高考完那个样子,不过是一个缩小规模版本的。如果有>=两个人的话,形式可能会是自驾游吧;如果等到期末考试之后依然没有人想要跟我一块出去玩的话,那我大概就随机买附近城市的火车票/机票,然后兜兜转转一路回北京吧。 大概1月十几号从武汉出发,目的地随机(如果有同伙,也可以按照同伙意志行事),总时长<一周吧,如果玩爽了,多转几天也有可能。
刚刚去了研二学长在珞珈产业园的办公室,回图书馆之后思绪一直不能平复,于是先开个小差,写点什么。 感觉自己有太多想做的事情了。2019年度计划本来给自己规划是要学各种AI相关的东西,后来暑假觉得觉得先学好核心课程更重要(这个在现在看来也没有错),再后来参加了hackathon和自强创业班申请,又想着要掌握门手艺,可以快速将一些想法落实,于是自学了一些一些全栈开发,结果甚至把加强全栈开发的能力写到了寒假计划里,而原本的AI向的学习却不见了。想要做的事情真的太多了,选择起来有些无从下手。感觉网站、APP这些还就是个工具,真正核心的技术门槛肯定不在这里,我觉得做这些开发的同学也很多,我自己还是主攻核心技术吧,以后除了学习核心课程以外,其他的时间还是用来学AI相关的东西吧,对于网站开发,我觉得适可而止吧,在寒假顶多再花100h以内的时间学一个前端框架,打磨一下Django技术。至于微信小程序、安卓IOS APP开发,哎,真的不知道要不要学。有用,都有用,但不可能三百六十行样样精通。要摸一下吗?但全都涉猎,又耽误了在AI领域的深入研究。也许,我还是专注于一个领域比较好,做一个网站开发就够了吧。那些APP都是当红一时,而网站已经屹立了几十年了。如果以后需要做这些APP的开发,我还是请其他专长于此的同学来做吧。 未来,我还是先自学好核心课程,再去研究网站开发,再来深入研究AI吧。在掌握了一门技术之后,再来看要不要去实现各种各样的突发奇想吧。 感觉现在的各种各样的小公司如雨后春笋,我如何才能让自己成为一个独角兽呢?大概最主要的还是要有核心技术吧。开发周期超过一周的大项目短期内还是先不要做了,先专注于自己的技术学习吧。厚积薄发。
口口声声说着不要不要,但还是把音乐功能上线了…… 趁热打铁,分享一段音乐,文字有时间再写。
跟王铎淳和郑子杰出来走了走,给王铎淳庆生,也是给自己减减压。感觉自从决定暂停“一日之计”之后,已经给了自己蛮多的休息了。昨天又放纵自己,熬夜到四点,才开发出了这个教主小宇宙。男人的嘴,骗人的鬼:一直口口声声说要规律睡眠,却每次都不出一周就又肝到天明了;每次说要真的暂停engineering了,却又总是有一堆的奇奇怪怪的点子冒出来,想要去实现。而做起来之后,又发现自己并没有系统地掌握什么东西,做出来的都是连滚带爬的,算是以一种不是行业标准的方式实现了基本功能。 现在,我真的应该先专注于课内知识了,基础还是蛮有用的,即使他们的回报周期会更长一些。有了点子,先写下来,而不要去多想,往往一想就停不下来了,越想越激动,就做了,然后时间就没了。这段时间先学基础,寒假先学完操作系统,系统地学一下数据库系统,系统学网站开发(jQuery, React, Django等等等等,算是掌握门儿手艺),之后再去搞工程,或者去学学编译原理等等之后要学的课程。 另外,一个好消息:听说我可以搬到另一个房间去住了,明天去看看,如果不错的话就搬过去,这样就不用再忍受厕所反味的问题了。What a relief. 保持乐观,专注高效。
已经消极了太久了。感觉很长一段时间以来,都没有十分开心过了。大概是为了梦想拼搏,却把生活过的有些太过于功利化了。前段时间跟刘奥龙聊,我觉得他有一点讲得还是蛮有道理的:“对人不对事”——现在很多事情德影响力可能只有短短一阵子,然而如果能够交到一些朋友,或许以后可以组成一个更好的团队,做更大的事情,岂不美哉。我也想在这里跟李昊洋道一个歉:前段时间我为了carry项目的进度,很独裁,而且在沟通时为了时间效率,很少考虑你的心理感受,而且否定了你很多的想法。其实我是很佩服你的实力的,这也是我最初选择你作为“天选之组”一员的原因,你的很多想法其实都是很有意思的,而且你的工程能力也很强,在“一日之计”之后,也很期待未来一起进行更多更棒的项目。 其实我还是挺孤单的。自从大概一年前,我逐渐开始从“对人不对事”转移到了“对事不对人”,我感觉逐渐活得越来越功利,活得有些目标太过明确,除了实现目标路上的事情,似乎其他的似乎都是一种对于我达成目标的阻碍,变成了一种“多余”。我开始主动减少社交,甚至把这个书面地写进了我的TO-DO list里面。为了效率,主动把自己与世隔绝。现在看来,也许做得有些太绝了,大概需要将一些时间从“效率”转移到“生活”上,让自己的生活更有一些人情味。 不早了,今天先睡了,之后再继续写吧。 最后,欢迎大家拯救自闭儿童,常来约我~