第一种方法 已知修改hosts后,https可以打开,http依然会被阻断,所以在浏览器强制https就可以了: 1、添加hosts: 23.52.74.146 steamcommunity.com 2、强制steam社区https打开 chrome浏览器打开:chrome://net-internals/#hsts 添加 steamcommunity.com 📷 firefox浏览器安装https-everywhere: https://www.eff.org/files/https-everywhere
随着各种知识付费的兴趣,国内各种鸡汤文章满天飞, 入门的,精通的,大神级别的,往往都是反复的加工,输出,而真正写的好文档,沉淀多年的好文章往往都有了自己的博客平台. 这里记录下个人感觉非常不错的博客/RSS订阅
电脑系统为 Ubuntu 18.04.6 LTS,在使用 Edge(Linux 版)时没有办法正常同步。曾按照Edge浏览器无法同步,正在设置同步进行设置,仍无法解决问题。后根据 Edge浏览器正在设置同步,无法同步进行修改,问题得到解决,故在此记录。
上一节我们学习了线程并发常见的安全性问题、锁的底层类型和对象结构的差异、锁升级相关知识。今天我们继续学习锁是如何升级的?
C语言作为最基础的编程语言,30年虚弱的患病率。 无论是准备做 PHP/Java/Python/Golang 开发学习。C语言都是基础的,我们非常多基础非常小的互联网执行的开源软件服务都是C语言构筑,所以,有个扎实的C语言基础,或者去学习C语言是非常有必要和帮助的。
pymysql 连接Inception ,在判断版本时会出现value error 问题。
用户在使用负载均衡时候反馈,后端挂载在CLB的CVM,无法Ping通CLB的VIP,希望了解原因。
Linux Mint + Apache2.2搭建SSL/HTTPS/SPDY服务器
Linux Foundation今天在KubeKon宣布将托管Servo Web引擎,这是一个开源的高性能浏览器引擎。 KubeKon是Cloud Native Computing Foundation的旗舰会议,面向领先的开源和云原生社区的采用者和技术人员。会议实际上在本周举行。 伺服设计用于应用程序和嵌入式应用。它是用Rust编程语言编写的。 Rust使浏览器内部具有闪电般的性能和内存安全性。对此行业的支持来自Futurewei,Let's Encrypt,Mozilla,Samsung和Three.js等。 Linux基金会高级副总裁兼项目总经理Mike Dolan表示:“ Servo是最有前途,最现代,最开放的Web引擎,用于使用Web技术构建应用程序和沉浸式体验。” 他在书面声明中对LinuxInsider表示:“这与Rust编程语言有很大关系。” “我们很高兴在未来几十年内支持并维持这项重要工作。”
org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for zhaochaotest-0: 30031 ms has passed since batch creation plus linger time at org.springframework.kafka.core.KafkaTemplate$1.onCompletion(KafkaTemplate.java:365) at org.apache.kafka.clients.producer.internals.ProducerBatch.completeFutureAndFireCallbacks(ProducerBatch.java:204) at org.apache.kafka.clients.producer.internals.ProducerBatch.done(ProducerBatch.java:187) at org.apache.kafka.clients.producer.internals.Sender.failBatch(Sender.java:627) at org.apache.kafka.clients.producer.internals.Sender.sendProducerData(Sender.java:287) at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:238) at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:163) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for zhaochaotest-0: 30031 ms has passed since batch creation plus linger time
应用程序开发过程中,开发占总时间一半的话,调试可能会占一小半。读书破万卷,下笔如有神,但是在编程领域似乎破万卷也得通过不断地调试,找出程序存在的问题,完善程序功能
该包可以了解代码是如何转换为字节码的, dis 表示 disassemble 反汇编
这里使用的是inner join,也有left join,也有outer join。如果要记录在时间窗口没有匹配上的记录,可以使用outer join,额外存储下来,然后再根据已经匹配的记录再过滤一次。
👆点击“博文视点Broadview”,获取更多书讯 iOS和macOS的系统原理与逆向基础,以及由此展开的漏洞分析挖掘与恶意代码分析检测,一直是安全技术里一个独特有魅力的领域,也是一个值得投入的领域。 不得不提,Jonathan Levin的中文版新书来了!这次是《最强iOS和macOS安全宝典》。 也就是*OS Internals, Volumn III这本书。 书名明显是致敬大名鼎鼎的Windows Internals系列,中规中矩的译法应该是《深入理解*OS操作系统》,在Jonathan Levi
这整个 repository 是关于分布式版本管理工具 Git 及托管商github 的使用,大部分都是网友写的内容,在这里只是做一个资源的汇总和合理的安排,希望能成为最好的学习 git 的资源,从开始入门使用,到慢慢的提高,再到理解各种原理,希望能够达成这个目标。
Linux 作为最大也是最成功的开源项目,吸引了全球程序员的贡献,到目前为止,共有两万多名开发者给 Linux Kernel 提交过代码。令人惊讶的是,在项目的前十年(1991 ~ 2002)中,Linus 作为项目管理员并没有借助任何配置管理工具,而是以手工方式通过 patch 来合并大家提交的代码。倒不是说 Linus 喜欢手工处理,而是因为他对于软件配置管理工具(SCM)非常挑剔,无论是商用的 clearcase 还是开源的 cvs、svn 等都不能入他的法眼。在他看来,一个能够满足 Linux 内核项目开发使用的版本控制系统需要满足几个条件:1) 快 2)支持多分支场景(几千个分支并行开发场景) 3) 分布式 4) 能够支持大型项目。直到2002年,Linus 终于找到了一款基本满足他要求的工具——BitKeeper, 而 BitKeeper 是商业工具,他们愿意给 Linux 社区免费使用,但是需要保证遵守不得进行反编译等条款。BitKeeper 提供的默认接口显然不能满足社区用户的全部需要,一位社区开发者反编译 BitKeeper 并利用了未公开接口,这让 BitKeeper 公司撤回了免费使用的 License。不得已,Linus 利用假期十天时间,实现一款 DVCS —— Git,并推送给社区开发者们使用。
一些实验性的功能,可能在未来保留成正式或者被移除,同时也可能会产生不可预期的影响,开发者鼓捣记得备份数据!
批量重偏向:当一个线程创建了大量对象并执行了初始的同步操作,后来另一个线程也来将这些对象作为锁对象进行操作,会导偏向锁重偏向的操作。 批量撤销:在多线程竞争剧烈的情况下,使用偏向锁将会降低效率,于是乎产生了批量撤销机制。 JVM的默认参数值: intx BiasedLockingBulkRebiasThreshold = 20 默认偏向锁批量重偏向阈值 intx BiasedLockingBulkRevokeThreshold = 40 默认偏向锁批量撤销阈值 批量重偏向 测试代码: pu
概述 最近要分享一个课件就重新把这块知识整理了一遍出来,篇幅有点长,想要理解的透彻还是要上机实践。 聚集索引 --创建测试数据库 CREATE DATABASE Ixdata GO USE [Ixdata] GO ---创建测试表 CREATE TABLE Orders (ID INT PRIMARY KEY IDENTITY(1,1), NAME CHAR(80)NOT NULL, IDATE DATETIME NOT NULL DEFAULT(GETDATE()) ); GO ---插入1000条测试
擅长Windows的技术人员没有不会Sysinternals的,会Sysinternals的没有不会Autoruns和Process Explorer的。我在云+社区写了100多篇文档,80%是Windows方面的。本文绝不是打广告,京东卖家跟我半分钱关系都没有。我是Windows发烧友,正好上周在挨个溜Sysinternals工具集里的工具,浪费了不少时间,要是有本书来导学,可以省不少时间。
在 Rust Internals 论坛上,有一个关于逐步废弃并最终移除 Rust 中 static mut 语法的提案(Pre—RFC),提议在 2024 年 Rust 版本中开始废弃 static mut 的使用,并在 2027 年版本中完全移除这个语法。(这个提案不涉及 &'static mut)。
概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非聚集键的顺序排序和存储。 非聚集索引的叶层是由索引页而不是由数据页组成。 既可以使用聚集索引来为表或视图定义非聚集索引,也可以根据堆来定义非聚集索引。非聚集索引中的每个索引行都包含非聚集键值和行定位符。此定位符指向聚集索引或堆中包含该键值的数据行。 非聚集索引行中的行定位器或是指向行的指针,或是行的聚集索引键,如下所述: 如果表是堆(意味着该表没有聚集索引),则行定位器是指向行的指针。该指针由文件标
上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 16 Release Notes,这里举几个例子。
随着 Rust 语言的发展,经常需要改进样式指南,例如支持新的语言结构(比如 let-chain / let-else 等新语法),像这样的新结构会被 rustfmt 忽略且不格式化,随后需要添加格式化。并且 rustfmt 的向后兼容性也阻碍了 Rust 代码风格的演变。
爱可生 DBA 团队成员,主要负责 MySQL 故障处理和 SQL 审核优化。对技术执着,为客户负责。
首先在需要在文件行数右侧点击打上断点(红色圆),然后点击下图绿色启动按钮即可开始调试,代码自动运行到断点所在行,此时鼠标移入变量可以看到每个变量的当前状态
Hosts 相关的小工具着实不少,大家需求最多的肯定是 hosts 切换工具了。SwitchHosts! 是一款可以方便你管理和一键切换多个 hosts 方案的免费开源工具,跨平台支持 Windows、macOS 和 Linux 系统。
不知道大家在用React开发时,有没有注意到react与react-dom这两个包中有个很奇葩的属性__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:
从reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态
我们一般认为 Java 中 new 的对象都是在堆上分配,这个说法不够准确,应该是大部分对象在堆上的 TLAB分配,还有一部分在 栈上分配 或者是 堆上直接分配,可能 Eden 区也可能年老代。同时,对于一些的 GC 算法,还可能直接在老年代上面分配,例如 G1 GC 中的 humongous allocations(大对象分配),就是对象在超过 Region 一半大小的时候,直接在老年代的连续空间分配。 这里,我们先只关心 TLAB 分配。 对于单线程应用,每次分配内存,会记录上次分配对象内存地址末尾的指针,之后分配对象会从这个指针开始检索分配。这个机制叫做 bump-the-pointer (撞针)。 对于多线程应用来说,内存分配需要考虑线程安全。最直接的想法就是通过全局锁,但是这个性能会很差。为了优化这个性能,我们考虑可以每个线程分配一个线程本地私有的内存池,然后采用 bump-the-pointer 机制进行内存分配。这个线程本地私有的内存池,就是 TLAB。只有 TLAB 满了,再去申请内存的时候,需要扩充 TLAB 或者使用新的 TLAB,这时候才需要锁。这样大大减少了锁使用。
知其然而知其所以然,优秀的工程师不仅要能熟练的使用框架,还要了解其底层是如何实现的。本文主要探究Vue3源码中内置TelePort组件实现原理。
继 打印Java对象头,我们再深入探索一下Java锁。无锁状态我们就不说了,下面我们一一打印偏向锁、轻量锁,重量锁的对象头。
synchronized关键字是java提供的互斥锁关键字,我们常说的互斥锁一般都是非自旋锁,即竞争不到锁的线程会进入阻塞状态知道被唤醒 今天我们来讲讲java中用来对synchronized进行优化的三种锁,同时会介绍markword对象头 目前我在网上搜到的十几篇博客讲的都有问题,可能有写对的我没搜到. 很多人不经过验证直接把markOop.hpp中的JavaThread*当成ThreadId这是错误的,实际是java线程在C语言的指针 并且未计算过hashCode和计算过hashCode的情况也是不一样的 本篇博客最后会展示使用jol工具,读取展示对象头的结果进行验证 附上openjdk的markOop.hpp链接
GC(Garbage Collection)是目前很多编程语言自带的特性,例如Java,Python;GC是一个很好的特性,能让使用这个语言编程的程序员不去关心内存回收,并且降低内存泄漏和内存溢出发生的概率。 我们以Java语言JVM为例,从其对象结构和JVM运行时内存结构出发,针对其GC算法思路和实现进行分析,同时类比其他GC算法。 首先,在Java 8中,Java对象在内存中结构包括: 1. 类型指针:一个指向类信息的指针,描述了对象的类型。 2. 标记字(Mark Word):一组标记,描述了对象的状态,包括对象散列码(如果有)、对象的形状(是否是数组)、锁状态、数组长度(如果标记显示这个对象是数组,描述了数组的长度) 3. 对齐性填充:所有对象都是8字节对齐的 -> 也就是说,所有对象的起始位置都是满足A(A%8==0),所以对于有的对象需要这个对齐性填充来满足这个规则。 4. 域变量区域:这个对象的域变量所占用的内存。Java域变量存在两类:原始类型(primitive type)和普通对象指针(ordinary object pointer)。
偏向锁就是在运行过程中,对象的锁偏向某个线程,即在开启偏向锁的情况下,某个线程获得锁,当该线程下次想要获得锁时,不需要再获取锁(忽略synchronized关键字),直接执行代码
我们使用Apache Flume来采集数据到Kafka中进行存储,最后在ELK中展示出来。到http://flume.apache.org/的地址下载Apache Flume,下载后部署在日志的服务器。下载后进行解压以及配置到环境变量中。整体思路是在拉勾网搜索“测试开发工程师”,把获取到的结果信息存储到Kafka的系统中,最后展示在ELK中。下面具体配置这些信息。在conf的目录下编辑文件,文件内容为:
一般情况下,最新版R的安装非常容易。但如果是在linux服务器上,而又恰好没有root权限,安装就比较麻烦了。最直接粗暴的方法是自己在有读写权限的个人目录中编译安装,但操作很繁琐,需要解决非常多依赖库,整个过程几乎会让人爆炸。还好,有一种简便很多的方法,通过Anaconda的虚拟环境安装。
本文介绍Flume、Kafka和Sparkstreaming的整合。代码流程是,我们通过shell脚本重播测试轨迹数据到指定轨迹文件中,使用Flume监听该轨迹数据文件,实时将轨迹数据发送到Kafka,然后使用SparkStreaming简单统计轨迹数据量。
PDM has released 2.0.0 recently, it is mostly complete feature-wise. This post lists and illustrates the important new features, and more details can be seen in the changelog.
通过上述测试已经实现了后台页面配置实时修改,客户端实时接收修改配置值,我们已经初步了解apollo的基本功能,接下来需要研究下客户端需要如何配置才能实现需求了,下章继续^_^
1983年,理查德·斯托曼(Richard Stallman)在MIT人工智能实验室(AI Lab)创立了GNU计划,目标是创建一个完全自由的Unix类操作系统。在这个计划中,斯托曼和其他志愿者开发了GNU工具链(GCC、GDB、GNU Make等),但操作系统内核一直没有完成。
GC(Garbage Collection) 是目前很多编程语言自带的特性,例如Java,Python;GC是一个很好的特性,能让使用这个语言编程的程序员不去关心内存回收,并且降低内存泄漏和内存溢出发生的概率。
字典的本质就是 hash 表,hash 表就是通过 key 找到其 value ,平均情况下你只需要花费 O(1) 的时间复杂度即可以完成对一个元素的查找,字典是否有序,并不是指字典能否按照键或者值进行排序,而是字典能否按照插入键值的顺序输出对应的键值。
1、Apollo客户端启动时,会启动异步线程,循环发起一个Http Long Polling请求到Config Service的notifications/v2接口(NotificationControllerV2),http请求超时默认90 秒(should be longer than server side's long polling timeout, which is now 60 seconds)。
KafkaProducer在发送消息的时候,需要指定发送到哪个分区, 那么这个分区策略都有哪些呢? 我们今天来看一下
项目链接:https://github.com/horance-liu/tensorflow-internals
上一篇中,涉及到了锁升级的过程,也对其锁的升级有了一个大概的了解:单线程持有,在jvm延迟偏向的时间内是轻量级锁,之后为偏向锁,出现多个线程交替执行,对同一资源加锁会升级为轻量级锁,多个线程竞争拿不到锁会升级为重量级锁。在上一篇的基础上再进一步的了解锁升级的过程。
[1] r3kapig HITCON CTF 2019 Writeup https://r3kapig.com/writeup/20191018-hitcon-quals/
领取专属 10元无门槛券
手把手带您无忧上云