/^1?$|^(11+?)\1+$/


音游狗、安全狗、攻城狮、业余设计师、段子手、苦学日语的少年。

Rex 的 2018 新年红包例行题解

今年又来出题凑热闹了。依旧是五道题,由于前面挂了一层 Cloudflare,并为这个域名开了浏览器检验,因此题目就直接用纯静态文件了。这次的界面比上次稍微好了一点,框的图片用的是我很久以前做的游戏中的窗口。具体的实现方法就请大家自行扒代码吧。下面说说题目。Level 1传送门:https://red-packet.rexskz.info/2018/?s=the_first_levelconst encrypted = 'gard dna kcilc'; const decrypted = reverse(encrypted); const { id } = new ComicCollec...

从连接器开始的一系列旅程

偶然认识的连接器最近有小伙伴在群里问一些关于 Underscore.js 中 fnull 函数的问题,我并没用过这个函数,于是就去翻文档,于是就发现了一个之前没见过的词:combinator。其实光看英文“连接器”大概能知道是带有“函数组合”的意思,并且文档里写到这个函数是个高阶函数,于是我就大概知道是怎么回事了。在我看来,combinator 其实跟之前见过的 decorator(装饰器)差不多。对装饰器的第一印象第一次见到装饰器,是在 Coding.net 的后端代码中,Spring 自带的 @RequestMapping 等一系列注解(Annotations)。@RequestMa...

对于不可变数据的思考

Redux 中的一个隐藏 BugBug 的成因我在 这篇文章 中曾经说了一句关于 Redux 的话:“就算程序员未经过专门的训练(例如掌握框架的 Best Practice),也可以显著降低 Bug 出现的概率。”然而最近同学遇到的一个 Bug 让我想把这句话改掉:只有当 Redux 配合 Immutable-js 的时候,才可以显著降低 Bug 出现的概率。我相信这个坑大部分人都踩过:// action function updateData(data) { // .... dispatch({ data }); // .... } // componenet...

2017 年的回顾和结论

写在前面的话当年身为信息特长生进了大学,学习一直不怎么好,也没想学的怎么好,不过还是最终顺利毕业了。这一年我最大的感触就是,大神们的事迹和经验,真的只是看看就好了,不要太往心里去。没有任何人的方法适合你,只能自己寻找适合自己的方法。回顾技术毕竟是技术博客,所以技术还是占重头戏的。在已经涉猎过的技术方向上,我都是有进步的,至少从之前的只会谷歌和必应,变成了现在的谷歌、必应、Issue、翻源码。给 Element UI、PhalApi、DPlayer、node-ffi 提过一些 Issue,不过好像从没贡献过代码的样子。唯一提过 PR 的 sound.js 作者一直没有合并,不过也没办法,毕...

使用函数式编程思想来优化代码

首先我作为一个普通的开发人员,肯定不是主攻函数式编程的,对它顶多算是浅显的了解,并没有深入去研究。但是目前的这些“了解”已经可以极大提高我的开发效率,因此就把我的经验写一写,方便一下那些跟我一样“不准备入坑函数式而只是观望一下”的开发者。先上一个非常简单的、大家已经习以为常的函数式编程的例子:function f(x) { return x <= 1 ? x : x * f(x - 1); } f(5); // => 120我与“函数式”一词的历史第一次听到“函数式编程”这个概念是高二,当时一个一起搞竞赛的大佬提到了 Haskell 是一门函数式编程语言。听他讲了很久,我现在...

在 Electron 下调用 Win32 API 的经历

写在最前面的话公司有个需求,就是在 Electron 运行的时候,调用系统的一部分 Win32 API。我的方向是前端,并不是很懂 Win32 API,因此只需要给出可以供其他同事使用的地方就行了。在 Windows 上搞 Node.js 开发,一定要装好各种构建工具。如果不想装那个巨大的 Visual Studio 的话,可以看一下 这里。但由于某些众所周知的原因,身在大陆的同学们会很不愉快:不管是文中的哪个选项,都会卡在 Visual C++ Build Tools 的安装上。主要是微软这智障不提供离线安装包了。我用 VisualCppBuildTools_Full.exe /lay...

IT 创新区招新题部分题解

本文只会写我出的那些题,然而最终版笔试题把我一开始出的有点难度的题都给砍掉了,那些题也一起写进来吧。笔试部分Web 大前端1. 下面哪个标签表示该元素是一个超链接?(A) A. <a> B. <b> C. <i> D. <link>HTML 概念题。2. 目前在 HTML 中最新的 DOCTYPE 是什么?(A) A. <!DOCTYPE html> B. <!DOCTYPE html5> C. <!DOCTYPE HTML5> D. <!DOCTYPE HTML4.1>HTM...

Rex.sh:一个伪 Web terminal

之前写过一个“rexskz.info in terminal”,打算用伪 Web terminal 来展示自己的博客,但是后来发现简直是太简陋了,于是萌生了重写的念头。经过一段时间,居然写完了。这篇文章就是分析一下里面用到的一些技术。虽然这个终端还是很简陋,对命令的支持仅限于 command arg0 arg1 ... 的格式,但是它支持自动补全、颜色,也有文件系统和变量,所以还是比之前的稍微高级那么一点的。按照惯例,先上图:CSS 部分首先,一个 Web terminal 要长的像 Terminal 才行,因此写好 CSS 还是很重要的。这儿的 CSS 难点主要是输入的效果和选中文字的...

一个由全屏引发的问题

最近在搞一个跟全屏有关的东西,我知道 Fullscreen API 浏览器的支持很有限,于是在写的时候加足了浏览器的私有前缀,包括 CSS:.video-container-inner:-webkit-full-screen, .video-container-inner:-moz-full-screen, .video-container-inner:-ms-fullscreen, .video-container-inner:fullscreen { position: fixed; top: 0; left: 0; width: 100%; ...

world.execute(me); me.runSimulation(world);

网易云音乐突然给我推荐了这么一首歌,歌名叫“world.execute(me);”,没错,引号里面的都是歌名。第一次听觉得节奏和旋律都挺不错的,只是除了 execution 以外一个词都没听懂……于是就去看了一眼歌词,这一看不要紧,原来歌词是下面这段代码里面所有的行级注释。package goddrinksjava; /** * The program GodDrinksJava implements an application that * creates an empty simulated world with no meaning or purpose. * * @a...

从找数字的规律说起

本文可能过于主观,如有不同观点,欢迎回复。想看总结的可以直接跳到 这里。找规律看到了一道招聘的试题:-2/5,1/5,-8/750,()?不得不说,此生最痛恨的问题之一就是找规律。关于这类问题,有人认为有意义,有人认为耗时间,这两种意见知乎上都说了很多。认为有意义的人,一个观点是“历史上很多东西都是找规律找出来的,例如物理学”,或者“可以从众多答案中找出最好的那个也是一种能力”,认为耗时间的人,直接举出了拉格朗日插值这个大杀器(简单易懂的版本可以看 这里)。如果用这个大杀器,那么这道题的答案应该是 -129/125,具体步骤可以看下面。不得不说这种方法简直是作弊。然而就是很爽啊。此外有个...

翻一翻自己的黑历史——rscss、rsjs

惯例在写正文之前扯一堆没用的,想直接看正文的话可以点 这里。敢于自爆黑历史也是一种勇气。刚才无意间看到了 AmazeUI。没忍住于是发了条动态:现在再看 AmazeUI 感觉已经不是那么回事了,现在的几大前端框架以及各种工具改变了前端开发的几乎全部内容,除了基础语法以外都得重新学。。明明才过去几年啊。。想当年我还在纠结于写一个 CSS 库(类似于 <input> 等标签的样式库),某人问我:“你听说过可以点击链接不跳转页面,直接局部刷新的东西没?”我还觉得很不可思议,一个月后的寒假,我在家里一边看 Angular 一边写自己的用于局部刷新的 JS 库,同年暑假他说:“你们还在...

这是我们共同度过的

第 823 天