Jetbrains 全家桶激活
Jetbrains 全家桶激活前言本文转载自 Jetbrains 全家桶激活。感谢作者 Zgao 的分享!
正文互联网上有很多公开的开放 Jetbrains 激活服务器。利用这些服务器就可以直接激活 Jetbrains 的所有产品。
Shodan 搜索语法 https://www.shodan.io/search?query=Location%3A+https%3A%2F%2Faccount.jetbrains.com%2Ffls-auth
激活 IDE 随便找一个 ip 测试激活。
也可以使用 shodan api 来批量获取。
1shodan search 'Location: https://account.jetbrains.com/fls-auth' --fields ip_str,port | awk '{if ($2==443){print "https://"$1} else {print "http://"$1":"$2}}'
sh ...
理解 WebView
理解 WebView
原文地址:Understanding WebViews 作者:kirupa
我们通常使用 Chrome, Firefox, Safari, Internet Explorer 和 Edge 等浏览器来浏览网页。你也许正在使用其中一种浏览器阅读本文!虽然浏览器对于访问互联网内容的任务来说非常流行,它们还有一些我们从未过多关注过的竞争对手。这些竞争对手以 WebView 的形式被我们所熟知。这片文章将讲解 WebView 的神秘之处以及为什么它这么棒。
WebView 入门知识让我们来点无聊的定义。WebView 是一种嵌入式浏览器,原生应用可以用它来展示网络内容。这句话有两部分要注意:
第一,原生应用(亦称 app)。原生应用由专门为特定平台设计的编程语言和 UI 框架编写:
换句话说,应用不是指在浏览器中运行的跨平台网络应用。相反,你的应用主要是用像 Swift、Objective-C、Java、C++、C# 语言来编写的。这种工作方式与系统更加贴近。在这样的背景下,你使用的大多数应用都应该是原生应用。许多流行的应用,比如你的台式机 / 笔记本上的 Microso ...
npm install 原理分析
npm install 原理分析
本文转载于公众号『code 秘密花园』
开门见山,npm install 大概会经过上面的几个流程,本篇文章来讲一讲各个流程的实现细节、发展以及为何要这样实现。
嵌套结构我们都知道,执行 npm install 后,依赖包被安装到了 node_modules ,下面我们来具体了解下,npm 将依赖包安装到 node_modules 的具体机制是什么。
在 npm 的早期版本, npm 处理依赖的方式简单粗暴,以递归的形式,严格按照 package.json 结构以及子依赖包的 package.json 结构将依赖安装到他们各自的 node_modules 中。直到有子依赖包不在依赖其他模块。
举个例子,我们的模块 my-app 现在依赖了两个模块:buffer、ignore:
1234567 { "name": "my-app", "dependencies": { "buffer": "^5.4.3", " ...
TypeScript 装饰器之依赖注入
TypeScript 装饰器之依赖注入
墙裂建议先看上一篇文章:TypeScript 装饰器完全指南
什么是依赖注入依赖注入是将一个对象所依赖的其他对象直接提供给这个对象,而不是在当前对象中直接实例化这些依赖的对象。
在 Dependency Injection Demystified 一文中的解释更是让人啧啧称赞:
Dependency injection means giving an object its instance variables. Really. That’s it.“Dependency Injection” is a 25-dollar term for a 5-cent concept. That’s not to say that it’s a bad term… and it’s a good tool. But the top articles on Google focus on bells and whistles at the expense of the basic concept. I figured I should say somethin ...
TypeScript 装饰器完全指南
TypeScript 装饰器完全指南
本文大多部分参考 A Complete Guide to TypeScript Decorators, 对作者表示感谢~
概览装饰器本质上是一种特殊的函数被应用于:
类
类属性
类方法
类访问器
类方法的参数
所以装饰器其实很像是在组合一系列函数,类似于高阶函数和类。通过装饰器我们可以轻松实现代理模式使代码更简洁以及实现一些更有趣的能力。
装饰器的语法十分简单,只需要在想使用的装饰器前面加上 @符号,装饰器就会被应用到目标上:
123456function decorator () { console.log ('I am a decorator');}@decoratorclass A {}
装饰器的类型一共可以分为:
类装饰器
属性装饰器
方法装饰器
访问器装饰器
参数装饰器
让我们快速认识一下这 5 种装饰器
1234567891011121314151617181920212223// 类装饰器 @classDecoratorclass Bird { // 属性装饰器 ...
What does the "as const" mean in TypeScript and what is its use case?
What does the “as const” mean in TypeScript and what is its use case? 在 stack overflow 上看到这样一个问题:What does the “as const” mean in TypeScript and what is its use case?,其中最高票的回答让人收获匪浅,于是转载至博客。
This is known as a const assertion. A const assertion tells the compiler to infer the narrowest** or most specific type it can for an expression. If you leave it off, the compiler will use its default type inference behavior, which will possibly result in a wider or more general* type.
Note that it is called ...
一道 3 层的 TypeScript 面试题,你能答到第几层?
一道 3 层的 TypeScript 面试题,你能答到第几层?前言本文转载自公众号神光的编程秘籍,对文章作者神说要有光表示感谢~
原文链接:https://mp.weixin.qq.com/s/wWqeF5JJO3WlmBpDIcSuiw
正文最近遇见一道不错的 TS 面试题,分享一下。
这道题有 3 个层次,我们一层层来看。
第一层的要求是这样的:
实现一个 zip 函数,对两个数组的元素按顺序两两合并,比如输入 [1,2,3], [4,5,6] 时,返回 [[1,4], [2,5],[3,6]]
这层就是每次各从两个数组取一个元素,合并之后放到数组里,然后继续处理下一个,递归进行这个流程,直到数组为空即可。
12345678function zip (target, source) { if (!target.length || !source.length) { return []; } const [firstTargetItem, ...restTarget] = target; const [firstSourceItem, .. ...
如何实现并发请求数量控制?
如何实现并发请求数量控制?
前言本文为转载文章,原文地址:关于前端:如何实现并发请求数量控制?
对文章作者表示感谢。
文章代码实现部分根据理解做了部分修改,整体效果无差异。
场景假设有这么一个场景:现在有 20 个异步请求需要发送,但是由于某些原因,要求我们必须将同一时刻的并发请求数量控制在 3 个以内,并且还要尽可能快速的拿到响应结果。其实这个场景在一些大厂的面试题中也有过提及,如下:
1234 实现一个并发请求函数 concurrencyRequest (urls, maxNum),要求如下:・要求最大并发数 maxNum・每当有一个请求返回,就留下一个空位,可以增加新的请求・所有请求完成后,结果按照 urls 里面的顺序依次打出(发送请求的函数可以直接使用 fetch 即可)
设计思路首先来看将上面的文字转化为图之后的效果:
这样就直观的看到,有一个最大并发数 maxNum,20 个异步请求的 urls 集合和并发返回之后的 results 集合。
下面就开始演示这个思路是如何开始的,如下:
首先按照每次只能并发 3 个请求的要求,这里就对应 A、B、C,当其中有一个请求完之后就会再从 urls 里面再 ...
使用 JS 生成 UUID 的常用方法
使用 JS 生成 UUID 的常用方法
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。
一、使用 Math.random () 1234567function getUuid () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace (/[xy]/g, function (c) { var r = (Math.random () * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8; return v.toString (16); });}
二、使用 crypto 提供的 randomUUID 方法
MDN Cropto API
1const UUID = crypto.randomUUID ();
三、使用 crypto 提供的 getRandomValues 方法 123functio ...
腾讯云服务器部署 code-server
腾讯云服务器部署 code-server 背景在 2021 年 12 月份,经历了人生第一次『毕业』,面临着马上要回家过年,希望在回家前可以把新工作确定下来,于是乎进入比较繁忙的准备面试和找工作的阶段,博客也就很少更新了。所幸在回家过年前找到了工作。
确定工作之后,计划写点什么,但是有不知道怎么去表达这个东西,所以就没了下文。后来有一天发现博客的图片全都成了裂图。后来才知道码云(Gitee)上托管的图片都加了防盗链;想起博客部署在 github-page 上打开速度又比较慢,因此在这种背景下决定自己重新搞一下博客,于是有了以下准备:
购买云服务器(腾讯云)
购买域名
申请七牛云图片存储空间(免费)
在工作之余慢慢的把博客做了迁移,之前的博客虽然没有下掉,但是也不再更新了。
之所以会部署 code-server 主要是之前就知道这个在线的 VScode 编辑器,但是苦于没有服务器一直没有搞(记得第一次在 B 站了解到这个东西的时候还想着可以用 ipad 写代码)。因此在博客迁移结束之后,就想着搞一把,爽一把。哈哈哈~(此处是杠铃般的笑声)
天也不早了,咱言归正传,说一下部署过程及遇到的问题和相应的解法。
冲冲 ...