罗泽轩

Results 142 issues of 罗泽轩

console面板是devtool中使用最多的三个面板之一(另外两个分别是Elements和Sources)。 这一章来介绍下console中的小技巧 :smile: 有一个快捷键可以直接打开console面板:``。 ## js上下文 console中运行的函数位于当前js上下文中。什么是js上下文呢?就是假如你现在正处于某个断点,这个断点所在的上下文中有一个变量a,那么在console中你也可以获取这个变量的值。 当然还可以运行上下文中的函数,包括jQuery函数和Underscore函数。以我的看法,插件中的js应该是跟页面共享一个上下文环境的。不过就算你用的插件中使用了jQuery,如果当前载入的页面没有用到jQuery,你还是没办法使用jQuery的。 ## command line api 下面列出些我觉得比较有用的命令行api。这些api可以直接在console面板中使用。 **$()** 等价于`document.querySelector()` **$$()** 等价于`document.querySelectorAll()` **monitor(function)** 监控给定函数的调用情况。当函数调用时输出函数调用提示和调用参数。使用**unmonitor(function)**来取消监控。 **monitorEvent(object, [events])** 监控发生在给定对象上的事件。给定对象可以是`window`,也可以是`$('.some')`这样的DOM对象。 给定的事件可以是单个事件,也可以是`['click', 'hover']`这样的列表。 简直就是神器。美中不足的是不支持`mouseenter`和`mouseleave`,不能监控hover事件了。 详细的事件支持列表见下: https://developer.chrome.com/devtools/docs/commandline-api#monitoreventsobject-events 同样是用**unmonitorEvent(object, [events])**解除绑定。 **debug(function)**...

小技巧

作为一个chrome用户 && 写前端的程式设计师, chrome开发者工具(chrome devtool)基本上几乎是每天都用到。 虽然之前已经掌握了devtool的基本用法,比如查看元素和设置js断点,在console中测试js代码之类。不过这些只是一些基本的技巧,只是devtool中常用的20%功能,还有80%的高级功能没有用到呢。而且,自身也没有系统去学习。 所以现在就打算挤出几天时间,把官方的文档浏览一遍,系统地学习下devtool的使用技巧。 这里是第一篇,**开篇**,陈述了我写下这个系列的由头,还有一些不适合放在独立的篇章的内容,比如下面的**一些快捷键**: ## 一些快捷键 `` : 在所有的文件中搜索 `` : 快速打开某个文件 ## 推荐一篇必看的文章 https://developer.chrome.com/devtools/docs/authoring-development-workflow 虽然未能覆盖devtool许多功能,而且某些我觉得重要的功能这里也没提,这篇文章还是相当值得一读。它覆盖了许多devtool使用中的要点。

小技巧

信号是Unix系统中报告各类事件的机制。在设计信号系统的时候,还没有线程这个东西。Unix默认总是有一个进程来响应某个信号。所以当线程被加入到Unix系统后,如何处理信号就成了标准迫需解决的问题。 APUE中也提到了多线程时代下的信号处理问题,但是讲得比较简略。有些问题我还是弄不明白,所以就写了下面几个实验来验证下。 > 注,以下实验中创建和取消线程的代码从略 ## 1. 同个signal是否发送到每一个线程 这部分代码很简单,就不贴出了。就是创建两个线程,然后在绑定的线程处理函数中输出tid。 测试结果,发现Linux对线程的处理是这样的,无论你创建了多少个线程,从头到尾都只有一个线程可以接收各种信号,其他线程都无法响应该信号。 只让某一个线程统一处理各种信号,这也正好是多线程程序处理信号的最佳方法。一般情况下,用户得使用sigaddser...等等来实现在别的线程中屏蔽所有信号,只让唯一的线程接收信号。 注意,即使在Linux下,总是只有一个线程可以处理所有的信号,我们也应该看到,这个线程的选择是随机的。所以,如果你不想某些工作线程受到打扰的话,你还是需要采用上面的“最佳实践”,在其他线程中屏蔽掉信号,只让选定的线程处理之。 ok,那么进一步说,假如我在某些线程中重绑定了信号处理程序,让它屏蔽掉某些信号,这时会发生什么事呢? ``` c void rebind_sig_handler(int signo) { printf("rebind %d in thread %lu\n", signo, pthread_self()); if (signal(signo, sig_usr) == SIG_ERR)...

映射功能是当下各大编辑器的标配,如果你想要熟悉所用的编辑器,必然不能缺少对它的映射机制的学习。对于vim亦是如此。 这里说到的映射功能,指的是编辑器会捕获用户的输入,并且按照事先的设置来执行某些动作。 ## 基础 在vim里面自定义一个映射,格式如下: ``` maptype key action ``` 如: ``` inoremap jk " 在insert模式下映射jk为Ctrl+[,也即进入normal模式 ``` maptype表示映射的类型,分为两大类,带`nore`的和不带`nore`的(具体意义稍后再谈)……每一类中,根据映射的可用范围再分成若干类,具体类型通过`:help map-overview`可以查到。这里列举下重要的几类: 1. map: 在所有模式下可用的映射 2. vmap:在visual和select模式下可用的映射 3. nmap:在normal模式下可用的映射 4. imap:在insert模式下可用的映射 5. omap:用于motion的一部分的映射。比如vw就是visual模式下选中一个词,可以用omap定义类似于w这样的动作操作符。...

小技巧

最近惊奇地发现MySQL的默认编码方式居然是Latin1!而不是utf8! 于是即使我用的不是Windows,还是碰上了久违的编码问题…… 错误是传入utf8字符(这里特指中文字符)后,MySQL报错说“奇怪的字符串,\xAC\x12...,不认识啊”。利用Python的decode,可以把这串报错字符还原成原本的utf8字符串。可见应该是MySQL的问题。 上网搜一下,得出是character变量设置的问题。这时候的character相关变量设定如下: ``` mysql> show variables like 'character%'; +--------------------------+---------------------+ | Variable_name | Value | +--------------------------+---------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database |...

注意

Google终于~~彻底~~完蛋了……现在的问题是,即使在教育网下,GFW还是会干扰google.com.hk的连接。在Chrome下,会出现如下的SSL错误: > 您与 www.google.com.hk 之间的安全连接目前正受到干扰。 > > 请等待几分钟后再尝试重新加载网页,或在切换到其他网络后重新加载网页。如果您最近曾连接到新的 Wi-Fi 网络,请先登录再重新加载。 查了下,这就是所谓的“中间人攻击”,在GFW可能采取的手段中已经算轻了,不知将来会不会使用更那啥的方式。 不过通过google.com.de(德国~~骨科~~谷歌),还是可以访问Google的搜索服务。但是Chrome浏览器的搜索框会自动去使用google.com.hk的网址,即便你已经设定默认搜索引擎为google.com.de(真是不知为何) 这是在教育网中的情况。在外网里,自从6月以来,Google已经沦陷大约3个月了,这个纪录超过以往的任何一次封锁,甚至让人觉得Google已步Facebook等网址的后尘。 在外网里,我一直使用search.aol.com来作为替代,因为它是Google的马甲("enhanced by Google")。除了搜出来的内容是全英文,以及没有办法根据用户信息来个性化搜索结果以外,这个网站算是Google的完美替身。不过前几天会偶尔上不了。而且它的知名度越来越高,恐怕…… 如果这些网站都上不了,那我只好退而求其次,选择bing或者duckduckgo。 我为什么要千方百计去访问Google呢?因为其他的搜索引擎都不如它(如果不是远远不如的话)。 bing中太多无效的、肤浅的信息,而且对热词处理的不好,只要你的查询语句中存在那么一个热词,搜索出来的内容明显就是偏向这个热词的。然而,热词一般都不是我们想要的结果,只是无法准确表述遇到的问题时,一种笼统的陈述罢了。 duckduckgo会用你的查询语句到各个主流社交平台去搜索。但是它太看重社交平台了,因此得出的结果未免偏颇而狭隘。另外收录的内容过少,也是一个问题。如果搜索的内容不是错误描述或API之类,搜索出来的结果恐怕就如bing一样。 百度是用来搜索广告的。 只有Google,是现阶段唯一得我心思的搜索引擎。 **说回来,搜索引擎对于程序员,就像刀对于厨师。如果没有一把趁手的刀,厨艺难免会打上折扣,厨师本人亦会不甚愉快。** Google之于我,已经不是一个普通的搜索引擎那么简单,而是彻底融入我的生活,成为我的工具箱的一部分。可以这么说,上不了Google,就像不能使用Vim来编辑文本,不能使用命令行来自动化繁琐的任务,让人感到沮丧而无奈。 所以说,GFW禁掉了Google,但是我还是想方设法绕过去,去访问google,访问一流的搜索引擎。 这不仅是我个人的想法,试下在v2ex下搜索“我要上谷歌”,看看许多同行为了正常地访问一个搜索引擎所付出的种种努力。有时候不禁这么想,禁掉Google,就是让程序员的生活质量大打折扣。 我要上谷歌。我还是会绞尽脑汁发掘一条通往Google的道路。即使荒草遍地,我还是会走出一条路。

Signed-off-by: spacewander ### Description Fixes # (issue) ### Checklist - [ ] I have explained the need for this PR and the problem it solves - [x] I have explained...

### Description Let's remove the deprecated configuration in the APISIX v3, including: - [ ] health_check_retry option https://github.com/apache/apisix/blob/2385768cc004ee6ac9f6d50167d2eb671669f3c0/apisix/cli/etcd.lua#L201 - [ ] lua_shared_dicts https://github.com/apache/apisix/blob/2385768cc004ee6ac9f6d50167d2eb671669f3c0/apisix/cli/ops.lua#L654-L655 - [ ] `audience` in authz-keycloak https://github.com/apache/apisix/blob/2385768cc004ee6ac9f6d50167d2eb671669f3c0/apisix/plugins/authz-keycloak.lua#L123-L129...

### Current State We currently hardcore the APISIX version in the blog or doc, which has misled some newcomers when they read an old blog version. This also makes updating...

good first issue
doc

### Description Currently, there are two ways to configure APISIX's data source / enable Admin API or not: 1. via various configurations, like `enable_admin` \ `config_center` \ `etcd`. 2. via...