工作第一个十年如何结束

05安装一个Hadoop分布式集群

安装一个Hadoop分布式集群 最小化的Hadoop已经可以满足学习过程中大部分需求,但是为了研究Hadoop集群运行机制,部署一个类生产的环境还是有必要的。因为集群机器比较少,笔者没有配置ssh,所以就需要在每一台机器上手动启动服务。启动上相对繁琐一些,优点是可以高度自定义集群中的任务节点数量,从 ......
分布式 集群 Hadoop

.Net 7 高端玩法,自定义一个CLR运行时

前言: 曾几何时,一直想自己定制一个CLR运行时玩玩。本篇带你一步一步打造一个属于自己的.Net 7运行时。 概括 假设你的电脑已经安装了.Net,并且运行正常。在进行自定义运行时之前,首先需要准备三样东西。 其一: 找到你当前安装的.Net宿主目录,一般的默认目录都是: C:\Program Fi ......
玩法 高端 Net CLR

Java堆外缓存(一个很有意思的应用)

我们在开发过程中会遇到这样的场景:就是一个服务的各项 JVM 的配置都比较合理的情况下,它的 GC 情况还是不容乐观。分析之后发现有 2 个对象特别巨大,占了总存活堆内存的 90%以上。其中第 1 大对象是本地缓存, GC 之后对象一直存活。然后不久应用就会抛出OutOfMemoryError,那怎 ......
缓存 Java

通过一个示例形象地理解C# async await异步

前言 相信大家看过不少讲C# async await的文章,博客园就能搜到很多,但还是有很多C#程序员不明白。 如果搞不明白,其实也不影响使用。但有人就会疑惑,为什么要用异步?我感觉它更慢了,跟同步有啥区别? 有的人研究深入,比如去研究状态机,可能会明白其中的原理。但深入研究的毕竟少数。有的人写一些 ......
示例 形象 async await

通过一个示例形象地理解C# async await 非并行异步、并行异步、并行异步的并发量控制

前言 接上一篇 通过一个示例形象地理解C# async await异步 我在 .NET与大数据 中吐槽前同事在双层循环体中(肯定是单线程了)频繁请求es,导致接口的总耗时很长。这不能怪前同事,确实难写,会使代码复杂度增加。 评论区有人说他的理解是使用异步增加了系统吞吐能力,这个理解是正确的,但对于单 ......
示例 形象 async await

前端报表如何实现无预览打印解决方案或静默打印

在前端开发中,除了将数据呈现后,我们往往需要为用户提供,打印,导出等能力,导出是为了存档或是二次分析,而打印则因为很多单据需要打印出来作为主要的单据来进行下一环节的票据支撑, 而前端打印可以说是非常令人头疼的一件事。 为什么令大家头疼呢? 因为前端打印,要强依赖与浏览器的打印预览页面,会天然存在以下 ......
前端 报表 解决方案 方案

如何在 C# 项目中链接一个文件夹下的所有文件

在 C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息。但是如果我们想要链接一个文件夹下的所有文件,该怎么做呢?今天我们就来看看如何在 C# 项目中链接一个文件夹下的所有文件... ......
文件 文件夹 链接 项目

Android IO 框架 Okio 的实现原理,如何检测超时?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 前言 大家好,我是小彭。 在上一篇文章里,我们聊到了 Square 开源的 I/O 框架 Okio 的三个优势:精简且全面的 API、基于共享的缓冲区设计以及超时机制。前两个优势已经分析过了,今天我们来分析 ......
框架 原理 Android Okio IO

C# 如何部分加载“超大”解决方案中的部分项目

在有的特有的项目环境下,团队会将所有的项目使用同一个解决方案进行管理。这种方式方面了管理,但是却会导致解决方案变得非常庞大,导致加载时间过长。那么,如何部分加载解决方案中的部分项目呢? ......
部分 解决方案 方案 项目

My First Blog Ever——记我在交大ACM班的第一个学期

很巧的是,就在俞老师下发“学期小结”这一任务的前一天,我在跟朋友聊天时想到了要将自己这一学期的经历以文字的形式留存。毕竟,过去的一个学期实在有太多东西值得记述了:我离开了自己从童年到青春的十年间生活的上海市实验学校,到上海交通大学开启了一段崭新的旅程;在一个短暂的暑假的尾声,我收到了被ACM班录取的 ......
交大 学期 First Blog Ever

Quarkus入门体验,22ms启动一个Web服务

简介 Quarkus是类似于Spring Boot的框架,可以方便大家进行Java开发。利用GraalVM的魔力,能更好的适应云原生的场景,极快的启动速度。 创建项目 在IDEA就直接有创建Quarkus项目的初始化工具,直接根据自己需要填好即可,非常方便: 选择自己需要的一些组件和依赖,我这里只选 ......
Quarkus Web 22 ms

了解 Transformers 是如何“思考”的

Transformer 模型是 AI 系统的基础。已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表。 但是这些图表没有提供任何直观的计算该模型的框架表示。当研究者对于 Transformer 如何工作抱有兴趣时,直观的获取他运行的机制变得十分有用。 Thinking Lik ......
Transformers

实现一个简单的在浏览器运行Dotnet编辑器

之前已经实现过Blazor在线编译了,现在我们 实现一个简单的在浏览器运行的编辑器,并且让他可以编译我们的C#代码, 技术栈: Roslyn 用于编译c#代码 [monaco](microsoft/monaco-editor: A browser based code editor (github. ......
编辑器 浏览器 Dotnet

如何将WebAssembly优化到1MB?

Blazor WebAssembly加载优化方案 对于Blazor WebAssembly加载方案的优化是针对于WebAssembly首次加载,由于BlazorWebAssembly是在首次加载的时候会将.NET Core的所有程序集都会加载到浏览器中,并且在使用的时候可能引用了很多第三方的dll, ......
WebAssembly 1MB MB

如何在es中查询null值

1、背景 在我们向es中写入数据时,有些时候数据写入到es中的是null,或者没有写入这个字段,那么这个时候在es中该如何查询出这种为null的数据呢? 2、需求 假设我们的mapping存在 如下2个字段name和address,其中 name是keyword类型且使用了null_value来处理 ......
null

NodeJS 实战系列:如何设计 try catch

本文将通过一个 NodeJS 程序里无效的错误捕获示例,来讲解错误捕获里常见的陷阱。错误捕获不是凭感觉添加 try catch 语句,它的首要目的是提供有效的错误排查信息,只有精心设计的错误捕获才有可能完成这个使命。针对哪些方面去精心设计就是本篇文章里想讨论的内容 ......
实战 NodeJS catch try

构建api gateway之 如何给openresty打patch

如何给openresty打patch 由于很多功能实现的限制,我们不得不修改openresty,但我们又不一定能持续维护一个 openresty 分支,所有有了patch 这一操作。 patch是怎么补“漏洞”的? patch 中文含义为补丁,给大家的感觉就像在原来的基础上修复漏洞,就像小时候旧衣服 ......
openresty gateway patch api

Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板,以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Explore 很适合这 ......
Grafana 仪表 文章 日志 Loki

针对一个数组的排序,面试官会这样问

问:你写一个排序算法吧,顺便说一下其他的方式,可以吧? 题目:对数组 {1,3,6,1,8,22,0,1}进行排序 答: public static void main(String[] args) { String[] arr = {"1", "1", "7", "3", "9", "11", " ......
数组

Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便

👉️URL: https://grafana.com/blog/2020/04/21/how-labels-in-loki-can-make-log-queries-faster-and-easier/ 📝Description: 关于标签在 Loki 中如何真正发挥作用,你需要知道的一切。它可 ......
更快 Grafana 标签 文章 日志

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(5)-Charles如何设置捕获Https会话

1.简介 在大数据时代,互联网时代,个人信息安全尤为重要,网络安全在近日多起电信诈骗事情发酵下的情况下,引起国家,企业,个人对于互联网安全进一步的重视。而之前很多以http协议传输的网站出现的网站信息泄露,个人信息裸露在大数据的泳池中,让我们在遇到一个陌生网站的时候,都会格外考虑其安全性。通过认证S ......
Charles 教程 神器 保姆 Https

如何提高前端性能——字体篇

前言 有时候前端开发需要使用到一些特殊字体,但宿主机上一般都没有安装相应的字体,所以需要将字体文件与前端代码一起打包以及用 CSS 定义使用。本文主要是想回答一个问题:在性能方面,我们可以怎么去优化前端需要加载的字体? 一般优化的思路主要是两方面: 缩小字体文件 优化字体加载的方式 缩小字体文件 字 ......
前端 字体 性能

Dubbo 入门系列之快速部署一个微服务应用

本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用。 背景 Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。 为了实现 ......
Dubbo

【大型软件开发】浅谈大型Qt软件开发(三)QtActive Server如何通过COM口传递自定义类型?如何通过一个COM口来获得所有COM接口?

前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考。 鉴于接下来的一年我要进行这个主框架的开发,本着精益求精的态度,加上之前维护前辈的产品代码确实给我这个刚毕业的社畜带来了不小的震撼 ......
软件开发 COM 软件 QtActive 接口

写完这款工作流组件,我的发际线又高了...

前段时间因业务需要完成了一个工作流组件的编码工作。借着这个机会跟大家分享一下整个创作过程,希望大家喜欢,组件暂且命名为"easyFlowable"。 接下来的文章我将从什么是工作流、为什么要自研这个工作流组件、架构设计三个维度跟大家来做个整体介绍。 ......
发际 工作流 组件

如何在WSL下交叉编译openwrt

首先我们需要准备一个大小写敏感的文件夹。 然后拉取代码,并且执行代码的先决条件脚本。 注意,如果过程中某项条件不符,你可能要临时修复。 假如下图的组件判定失败(即出现ok=>fail) 那么你就需要执行sudo apt install -y python3-distutils来修复。 然后执行mak ......
openwrt WSL

如何让Java编译器帮你写代码

本文结合京东监控埋点场景,对解决样板代码的技术选型方案进行分析,给出最终解决方案后,结合理论和实践进一步展开。通过关注文中的技术分析过程和技术场景,读者可收获一种样板代码思想过程和解决思路,并对Java编译器底层有初步了解。 ......
编译器 代码 Java

如何实现千万级优惠文章的优惠信息同步

金融社区优惠文章是基于京东商城优惠商品批量化自动生成的,每日通过不同的渠道获取到待生成的SKU列表,并根据条件生成优惠文章。 但是,生成优惠文章之后续衍生问题:该商品无优惠了,对应文章需要做取消推荐或下架处理,怎样能更快的知道该商品无优惠了呢? ......
文章 信息

如何修剪git reflog历史

背景: vscode插件git-graph可以方便查看git-commit-graph,效果很好,关键是交互性很好。点选任意commit即可预览提交内容,实在是太方便了,比我之前用命令行上git log --graph --oneline强太多了。但同时带来的困扰是能看到的信息(commit历史)太 ......
reflog 历史 git

百万级数据excel导出功能如何实现?

前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了。 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助。 原始需求:用户在UI界面上点击全部导出按钮,就能导出所有商品数据。 咋一看,这个需求挺简单的。 但如果我告诉你,导出的 ......
功能 数据 excel