Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/blog/public_html/wp-includes/functions.php on line 6114
admin | 一缕阳光 | Page 2

RCalculator可能是全世界最好用的图片压缩工具

Author Archives: admin

首页 » Articles posted by admin (Page 2)

thunkli

Serif 和 Sans Serif 字体区别

Sans-serif字体的笔画宽度变化往往比Serif字体小。它们通常用于传达简单性,现代性或简约性。 某些字体的笔画结尾处的小特征称为“Serifs”。 Sans-serif font Serif font Serifs (coloured in red) 一些常见的Serif字体是Times New Roman,Georgia,Palatino和Garamond。 相反,常见的Sans Serif字体包括Arial,Helvetica和Tahoma。 在不同的设计中同时使用Serif和Sans Serif字体有很多优点。简单来说,Serif字体在小尺寸正文中易于阅读,而Sans Serif字体在大字体中确实脱颖而出 由于大多数显示器的分辨率不如印刷介质,因此Serif字体在小尺寸显示时可能效果不佳。随着视网膜显示器等技术的改进和4k屏幕的普及,这已不再是一个问题,但是与印刷相比,绝大多数显示器的分辨率仍然很低。因此,目前最好还是将大部分Sans Serif字体用于Web。

Posted in Memo |
thunkli

macOS中staff和wheel是什么?

“staff”和“wheel”是“Groups”。 Unix权限分为User(Owner)、Groups、World(Other),并为每个用户类别分别设置了读取,写入和执行权限。 “staff”和“wheel”是标准Groups。 通常,向所有用户帐户授予“staff”成员身份。因此,如果您在系统上创建另一个用户帐户,则它们将具有唯一的用户ID,但也将被授予“staff”成员身份。可以分配权限,允许其他Staff成员访问您的文件,但拒绝World/Other访问(注意:World并不真正意味着地球上的所有成员,只是系统上不是您而且不是成员的其他进程;这些术语是在计算机没联网时发明的,他们是自己的小世界。 就像“大轮子“中的“wheel”一样,它是具有重要意义和权威的人,是一个针对管理员的团体。许多文件是wheel组的一部分,这些文件允许wheel组中的用户访问它们的权限,但不允许其他用户访问wheel组。 在macOS系统中,staff和wheel很常见。

Posted in Memo | |
thunkli

通过font-display控制字体行为

web font的生命周期 在讨论什么是font-display之前,让我们先讨论一下web font的生命周期。 在block期间,浏览器将以不可见的字体呈现文本。 这就是为什么在很多使用web font的网站上,在页面的第一次加载期间,您不会看到任何文字或更糟的幻影下划线的原因。 在swap期间,浏览器将以fallback字体呈现文本(在该图中的示例中,这将是默认的“serif”字体)。 failure期意味着未找到字体,在这种情况下,浏览器将使用fallback字体呈现文本,如上所述。 使用新的font-display属性,您可以控制每个周期的长度,以及其中一个周期失败时会发生的情况。 有4个不同的值:block,swap,fallback和optional。 还有auto,通常最终与block相同。 所有现代浏览器(不包括IE)都支持这些值,但是请仔细检查兼容性表以获取最新的信息! font-display用于@font-face内部, @font-face {   font-family: ‘Arvo’;   font-display: auto;   src: local(‘Arvo’), url(https://fonts.gstatic.com/s/arvo/v9/rC7kKhY-eUDY-ucISTIf5PesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’); } Google字体现在允许您使用display查询参数控制字体加载: <link href=”https://fonts.googleapis.com/css?family=Roboto&display=optional” rel=”stylesheet”> font-display参数 font-display接受以下值: auto:默认值。使用用​​户代理使用的任何字体显示策略。当前,大多数浏览器的默认策略都类似于block。 block:赋予字体较短的阻止时间(大多数情况下建议为3s)和无限的swap时间。 换句话说,如果未加载字体,浏览器将首先绘制“不可见”文本,但是在加载后立即swap字体。 为此,浏览器将创建一个匿名字体,其字体与所选字体相似,但所有字形均不包含“墨水”。 仅当需要使用特定字体呈现文本才能使页面可用时,才应使用此值。 swap:给font-face提供零秒的block周期和无限的swap周期。 这意味着如果未加载字体,浏览器会立即以备用字体绘制文本,但是在加载后立即swap字体。 与block相似,仅当以特定字体呈现的文本对页面很重要时才应使用此值,但是以任何字体呈现仍会得到正确的消息。 Logo文字是进行swap的理想选择,因为使用合理的fallback显示方式来显示公司名称会传达信息,但最终您将使用正式字体。 fallback:使font-face的block周期非常小(大多数情况下建议100ms或更短),而swap周期则很短(在大多数情况下建议三秒)。换句话说,如果未加载字体,字体会首先呈现fallback效果,但是一旦加载,字体就会被swap。但是,如果经过的时间过多,则会在整个页面的剩余生命周期中使用fallback。fallback是诸如正文文本之类的不错的选择,在这种情况下,您希望用户尽快开始阅读,并且不想在加载新字体时四处移动文本来打扰他们的体验。 optional:为字体提供了非常小的block周期(在大多数情况下,建议为100ms或更短)和零秒swap周期。与fallback类似,当下载字体更像是“不错”但对体验并不重要时,这是一个不错的选择。可选值由浏览器决定是否启动字体下载,它可以选择不执行字体下载,也可以将字体下载作为低优先级,这取决于它认为最适合用户的方式。在用户连接较弱并且拉下字体可能不是资源的最佳使用的情况下,这可能是有益的。 放到一起,看起来像这样: 一个简单的示例。 所以我该怎么做? 这在很大程度上取决于您使用Web字体的方式,以及使用fallback字体呈现文本是否有意义。 例如,如果要在网站上呈现主体文本,则应使用font-display:optional。 在实现它的浏览器上(2019年更新本文时所有现代浏览器),体验会好得多:您的用户将获得快速的内容,并且如果Web字体下载花费的时间太长,他们将不会获得页面在阅读您的文章时进行重排。 如果您使用web font作为图标,则没有可以使用的fallback字体可以渲染这些icons(除非您使用emoji或其他东西),因此唯一的选择是使用font-display:block完全阻止字体,直到字体准备好为止。 Controlling Font Performance with font-display Font-display

Posted in Memo |
thunkli

ES5中新增的方法

Array filter 对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。 //过滤掉小于 10 的数组元素: //代码: function isBigEnough(element, index, array) { return (element >= 10); } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // 12, 130, 44 map //将所有的数组元素转换为大写: var strings = [“hello”, “Array”, “WORLD”]; function makeUpperCase(v){ return v.toUpperCase(); } var uppers = strings.map(makeUpperCase); // uppers is now [“HELLO”, “ARRAY”, “WORLD”] // strings is unchanged some 对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。 //检查是否有数组元素大于等于10: function isBigEnough(element, index, array) { return (element >= 10); } var passed = [2, 5, 8, 1, 4].some(isBigEnough); // passed is false passed = [12, 5, 8, 1, 4].some(isBigEnough); // passed is true every 对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回 true ,every 将返回 true。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略 //测试是否所有数组元素都大于等于10: function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough); // passed is true forEach //打印数组内容: function printElt(element, index, array) { document.writeln(“[” + index + “] is ” + element + “<br />”); } [2, 5, 9].forEach(printElt); // Prints: // [0] is 2 // [1] is 5 // [2] is 9 lastIndexOf 语法 var index = array.lastIndexOf(searchElement[, fromIndex]); 参数说明 searchElement: 要搜索的元素 fromIndex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。 功能说明 比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。 //查找符合条件的元素: var array = [2, 5, 9, 2]; var index = array.lastIndexOf(2); // index is 3 index = array.lastIndexOf(7); // index is -1 index = array.lastIndexOf(2, 3); // index is 3 index = array.lastIndexOf(2, 2); // index is 0 index = array.lastIndexOf(2, -2); // index is 0 index = … Continue reading

Posted in JavaScript |
thunkli

干支历,八字排盘 – 钦天

钦天 iOS App

钦天主要功能包括阳历、农历、干支历、二十四节气、七十二候。可以用来指导农业生产,推测运程。 下载(APP Store)

Posted in 产品 |
thunkli

泰然金融CTO付银海是如何迫害员工的

泰然金融(小泰科技)CTO付银海,曾任职阿里巴巴、oracle,回流蚂蚁金服失败。 2017年中,付银海被王梅招聘入职,作为泰然金融董事长潘宝锋的幕僚,付银海通过卖弄爬虫技术(获取京东/微信/支付宝订单信息)、裁员、打散、架空、孤立、离职证明威胁、明升暗降、提拔前同事、鼓动上市套现等一些列操作,深得泰然金融董事长潘宝锋信任。 潘宝锋在员工大会上满心欢喜任命付银海为泰然金融CTO,将所有权利交给付银海,潘宝锋提到他想实现的付银海都可以帮他实现,潘宝锋信心百倍讲到小船哺育大船,泰然金融目前市值100亿,我们要将泰然金融打造成1000亿市值的公司。 2022年一审案中,潘宝锋被判无期徒刑,付银海将责任甩锅潘宝锋,在供词中讲到自己是被潘宝锋指使的。 我于2016年8月-2018年7月任职泰然金融旗下泰然鲸数云计算,付银海对新员工赔偿低的员工采取裁员,对老员工打散、孤立、边缘化,让他们自己离职。先后将我的同事打散,领导架空逼走。为逼迫我离职达到不赔偿的目的,在掌权的第一个工作日早上9点以前将我招聘的两名员工调走,孤立我。在2017年底绩效考核中将我叫至付银海的单独办公室,将我的工作总结全部否定,挑衅的强调:“我觉得你做的不怎么样,我可以明确的告诉你,以前的团队是不可能给你们恢复的!”。抑扬顿挫的重复4次80分是最低分我是80分,提醒我3次没有低于80分的。付银海接二连三提拔自己的前同事为负责人或项目经理,在半年左右的时间里将我的岗位调换5次,其中4次(米粒钱包、蜂贷前端组、数据盒子、丁亮ATS项目组)上级为其前同事。2018年中付银海伙同其前同事丁亮侮辱我骚扰女同事,我在丁亮挑衅眼光与无尽的悲愤中离职。在接下来的几年里我忍不住叹气,呼吸系统受损。 泰然金融-董事高管 泰然金融(小泰科技)CTO付银海 潘宝锋 泰然金融(小泰科技)CTO付银海 审判

Posted in 工作 | |
thunkli

我在深圳企业云科技有限公司试用期被开除

我于2016年7月入职深圳企业云科技有限公司,面试当天直接签合同开始上班,上班第7天,那位胖乎乎,大约40几岁的的项目经理对我进行劝退,对方讲到: 你和别人沟通的太少,你表现出来的能力不足,薪酬太高,学历不行,其他2位员工,一位工作很多年,另外一位是海龟,你是什么?你明天不用来上班了。 试用期违法解除合同需要2N赔偿,2N=1个月,即使能力不足也需要证明-培训-再证明,但是当时不懂劳动法,带着无尽的悲伤走人,事后很多年仍然很难受。 如果不赔偿我半个月薪酬,我会一直战斗至我气消为止。 深圳企业云科技有限公司薪酬待遇 深圳企业云科技有限公司怎么样? 深圳企业云科技有限公司工作环境 深圳企业云科技有限公司有坑吗? 深圳企业云科技有限公司工作经历

Posted in 工作 | |
thunkli

Sublime text中文字符与Unicode互相转换插件

Sublime text中文字符与Unicode互相转换插件,允许你转换.js、.json和 .css 文件。 功能 中文字符转Unicode Unicode转中文字符 安装 使用Package Control: 搜索ConvertChineseCharacters并install Open the command palette Win/Linux: ctrl+shift+p, Mac: cmd+shift+p Type Install Package Control, press enter 搜索ConvertChineseCharacters并install 或者将源码复制到 你的sublime text’s package目录 演示 使用Command Palette 使用右键菜单 选择一个或多个字符从上下文菜单运行convertChineseCharacters,每一个字符将会被替换。 Unicode编码/Unicode解码/Emoji编码/Emoji解码 Github

Posted in 产品 | |
thunkli

我在深圳京东一年绩效3次C

京东绩效分A、B、C,强制绩效分布,C占比10%,一个季度1次,一年5次,4次+年度=5次。 我于2014年从杭州入职深圳京东(原腾讯电商团队),深圳环境比北方干净,有大片的云朵很漂亮,我特意选择深圳大道的观光巴士,欣赏过几次改革开放的成就。 第一次绩效考核得C,一共15个人左右的团队,只有我一个人得C,对方讲到: 你原来在阿里上班,以为你会很厉害,结果并没有感觉到。 重构工作,15个人中除了1位员工的几个h5活动动画看起来有点炫外,其他人都是正常工作,没有特别的东西。我在阿里工作为外包员工,每个人都知道。 年度绩效系数是0.9,还是0.8我记不清了,为季度累计结果,相当于C。看到年度结果,以及根据半年左右的工作感受,我联系了以前联系过我的腾讯音乐员工A,结果A出于帮助我的目的将我的简历群发,有几个部门的员工没有联系我却直接找我目前的上级,询问离职原因(我离职的时候才知道)。 对方看我的眼神已经越来越轻蔑。 第12个月,绩效结果C,原因: 你已经入职1年,仍然没有影响力,没有让人感觉你很厉害,你还是C,你要反思你自己。 考核当前季度我与别人合作一个复杂的H5活动,我负责活动整体布局及脚本编写,同时我在做其他东西。对方全职负责翻书动画部分,耗时3周,动画很炫,结果一致好评。对方升职,我继续得C。轮到我开发H5活动的时候只有我一个人,动画部分逻辑相比翻书逻辑简低一个档次,为业务策划逻辑如此,时间只有3天。 离职,已经没有办法继续工作下去。 在深圳找找工作经常会被问到为何离职?你在京东这样的公司都干不长。在腾讯内部本来有几位联系人但是因为绩效结果,没人要我。 几个月没找到合适的工作。 在深圳游览过几次,想过定居,灰溜溜的离场。

Posted in 工作 | |
thunkli

JavaScript modules

现在,所有主流浏览器都支持JavaScript modules! 本文介绍了如何使用JS modules,如何负责任地部署它们以及Chrome团队如何努力使modules在将来变得更好。 什么是JS模块? JS模块(也称为“ES模块”或“ECMAScript模块”)是一项主要的新功能,或者是新功能的集合。 您过去可能使用过userland JavaScript模块系统。 也许您在Node.js中使用过CommonJS,或者在AMD中使用过,或者在其他方面使用过。 所有这些模块系统都有一个共同点:它们允许您导入和导出内容。 JavaScript现在已经为此提供了标准化语法。 在模块内,您可以使用export关键字导出几乎所有内容。 您可以export const,function或任何其他变量绑定或声明。 只要在变量语句或声明前加上export前缀,就可以设置好: // ? lib.mjs export const repeat = (string) => `${string} ${string}`; export function shout(string) { return `${string.toUpperCase()}!`; } 然后,您可以使用import关键字从另一个module导入module。在这里,我们从lib module导入repeat和shout功能,并在我们的main module中使用它: // ? main.mjs import {repeat, shout} from ‘./lib.mjs’; repeat(‘hello’); // → ‘hello hello’ shout(‘Modules in action’); // → ‘MODULES IN ACTION!’ 您还可以从module导出default值: // ? lib.mjs export default function(string) { return `${string.toUpperCase()}!`; } 可以使用任何名称导入此类default导出: // ? main.mjs import shout from ‘./lib.mjs’; // ^^^^^ Modules与classic scripts略有不同: 默认情况下,模块具有严格模式。 模块中不支持HTML样式的注释语法,尽管它可以在classic scripts中使用。 // Don’t use HTML-style comment syntax in JavaScript! const x = 42; <!– TODO: Rename x to y. // Use a regular single-line comment instead: const x = 42; // TODO: Rename x to y. Modules具有词汇top-level范围。 这意味着,例如,运行var foo = 42;尽管在classic scripts中就是这种情况,但在modules中创建一个名为foo的全局变量并不能通过浏览器中的window.foo进行访问。 同样,modules内的this不引用全局this,而是undefined。(如果需要访问全局this,请使用globalThis。) 新的静态import和export语法仅在modules内可用-在classic scripts中不起作用。 Top-level await在modules中可用,但在classic scripts中不可用。 相关地,尽管classic scripts中的变量可以在异步函数之外命名为await,但是await不能在Modules中的任何位置用作变量名。 由于存在这些差异,相同的JavaScript代码在作为module scripts与classic scripts时可能会表现出不同的行为。因此,JavaScript运行时需要知道哪些scripts是modules。 在浏览器中使用JS modules 在网络上,可以通过将type属性设置为module来告诉浏览器将<script>元素视为modules。 <script type=”module” src=”main.mjs”></script> <script nomodule src=”fallback.js”></script> 了解type=”module”的浏览器将忽略具有nomodule属性的脚本。 这意味着您可以为支持modules的浏览器提供基于modules的有效负载,同时为其他浏览器提供备用。 即使只是为了表现,这种区分的能力也是惊人的! 考虑一下:只有现代的浏览器才支持modules。 如果浏览器了解您的modules代码,则它还支持modules之前的功能,例如箭头函数或async-await。 您不再需要在modules捆绑包中转换这些功能! 您可以为现代浏览器提供较小的,且未移植的,基于modules的有效负载。 只有旧版浏览器才能获取nomodule有效负载。 由于默认情况下modules是延迟的,因此您可能还希望以延迟的方式加载nomodule脚本: <script type=”module” src=”main.mjs”></script> <script nomodule defer src=”fallback.js”></script> JavaScript modules

Posted in JavaScript |