最近项目在做安全扫描,安全团队报过来了一个问题-没有满足CSP,如下图,错误提示已经很清晰了,但是源于我之前对此并有学习过,于是开始了调查学习

内容安全策略( CSP )

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。

阅读全文 »

最近在群里刷题看到这样一个问题 '✈️'.length,额,一脸懵逼,于是开始查找资料,系统了解,这里Mark下。

emoji是啥

emoji(英语:emoji,日语:絵文字/えもじ emoji),是使用在网页和聊天中的形意符号

  • 我们输入的表情,并不是图片,而是实实在在的字符
  • Twitter,iOS,Windows同一个表情,但是长的却不一样,因为字符只是规定了码点,码位,存储,但是具体展示的样子由各个平台-各个字体决定
阅读全文 »

最近因为折腾Alfred的热键绑定,了解到了一个术语modifier keys,查询了下才知道是什么按键。由此发现对于键盘的基本布局术语都没有系统认识,于是搜索查询,这里mark下。

modifier keys

modifier keys即修改键,也叫组合键,就是这些快捷键是为了结合其它键,起到不同的作用。

  • ⌥ Alt
  • ⌘ Windows
  • Fn
阅读全文 »

tslint已标注deprecated,根据公布的roadmap,2020年将逐步退出历史舞台。为什么要这么折腾,其实核心原因就是整合JS社区资源,tslint没有必要另起炉灶。从个人而言也是好事,至少你不需要记忆两套规则

借着周末时间,我将当前的项目做了下lint迁移。

tslint roadmap

个人看法,如果项目还要继续维护开发,迁移就必须做。这里贴下官方roadmap

阅读全文 »

背景

关注社区的应该知道babel 7支持了TypeScript的转译,也就是说我们并不一定非得用之前的方案ts-loader或awesome-typescript-loader。

最近想解决saga报错的易读性,发现官方给出了方案babel-plugin-redux-saga,是个babel插件。

TSlint已经给出了roadmap,2020年只解决修复的MR,以后将只有ESLint, eslint,tslint两个社区的资源正在整合中。TSLoader这块,我理解也类似,Babel丰富的插件机制,加上目前支持了TS的转译,所以大势所趋,合并再花费精力搞这些呢。

基于以上三点考虑,决定做下迁移

配置

阅读全文 »

Redux-Saga假如执行中报错,实际上是很难看懂的,这点官方也有提及,解决办法就是引入babel-plugin-redux-saga,来提升可读性。

直接开搞

插件安装

1
$ yarn add babel-plugin-redux-saga -D
阅读全文 »

国内我们常用的第三方支付是微信和支付宝,而国外比较流行的是PayPal.

之前是为了方便购买美区Apple Store的APP,所以注册了美区PayPal。这里简单总结下。

PayPal注册

  1. 招商Visa信用卡

    • 大多数服务是不支持银联的,所以Visa卡很重要

  2. Google Voice 淘宝

    • 有了GV,电报等国外的一些站点注册,你就可以有美国电话号码了,强烈推荐
  3. 美国地址信息等怎么办。有专门的虚拟身份生成服务,戳这里

PayPal提现?

因为个人有时候有些小钱,是在PayPal余额,曾尝试提现到国内银行的储值卡。但经过一番调查发现麻烦的要死,所以这个还是别想了。

阅读全文 »

有这样一个需求,我希望在finder中快速拷贝选中的文件或者文件夹路径。

不满意的方法

  1. 当然有第三方的APP比如Easy New File可以,但是为了一点需求,而安装一个臃肿的APP,实在不愿意
  2. Alfred解决也可以,选中文件,或者文件夹,一个热键触发,搞定路径。但Alfred是无法拓展右键菜单的,我需要记忆一个快捷键。

那么有没有办法可以自定义右键菜单,提供一个拷贝路径的操作呢。YES-Automator

Automator介绍

阅读全文 »

最近项目中用到了WebSocket,但个人对WS的认知太过空白,于是花了点时间阅读了相关书籍《WebSocket》。对于其中的一些收获,这里Mark下

WebSocket的使命

技术的推出一定是为解决一个问题,就类似于ES推出了promise,是为了解决回调问题,XHR为了提供异步交互。WebSocket伴随着HTML5的推出,是为了让WEB与后端具备双工通讯能力。在WS之前,我们只能通过轮询解决,并且发起方只能是客户端。

因为有了WebSocket,我们的WEB和后端,你可以主动给我发消息,我也可以主动给你发消息。这就是它的使命。

阅读全文 »

最近项目存在一个需求,就是用户从我们A系统中打开标签页操作B系统,在点击某个操作按钮时,回call我们系统的API,改变一些数据。而我们要做到在事件爆发时,执行一些列动作,比如–页面刷新。
这个需求的背后其实在告诉我们系统需要具备后端主动推送消息到前端的能力。如何做呢?WebSocket.

于是,开始搭建支持。

Tech Stack

首先,介绍下当前项目的技术栈

阅读全文 »
0%