• [编程语言] Rust dyn 关键字 2021-06-25 14:17:54

    关键字 dyn dyn是trait对象类型的前缀。 use std::collections::HashMap; fn main() -> Result<(), Box<dyn std::error::Error>> { let resp = reqwest::blocking::get("https://httpbin.org/ip")? .json::<HashMap<String, String>>()?;

  • [编程语言] 谷歌为什么不把Golang捐献给开源基金会 2021-02-09 13:41:35

    Golang是我比较喜欢的一个编程语言,之一。我很好奇,为什么谷歌不成立一个开源基金会,或者把golang捐献给任何一个开源基金会。 于是我提出了issue问题: https://github.com/golang/go/issues/44184 我们看到Rust 基金会今天宣告成立,这是一个大事件,它可以让Rust发展的更好,不受控于任何一家公司,开发和维护会在基金会组织下面进行。 这样Rust会有一个明确,开放的未来。 希望看到Golang也有这样的待遇,也能有一个开放的组织,而不是谷

  • [编程语言] 锋哥学Rust,第二课:sqlite数据库操作 2021-02-04 10:29:57

    大家好,这里是锋哥学Rust,第二课:sqlite数据库操作。第一课是hello world。第二课我们来操作一下怎么连接数据库。 有的同学就慌了,锋哥,你怎么不按套路出牌啊。我们都不知道Rust有哪些数据结构,怎么就直接上车开起来了? 我还没学数据类型呢。 不要急,我们一步一步来讲解。 学完第二课,你会非常有成就感。数据库都能玩起来了。有点意思。比撸什么其他枯燥的代码有意思多了。 cargo你应该已经装了,先开一个shell,windows下面powershell, Linux mac下面开任何一

  • [编程语言] 锋哥学Rust,第一课Hello 2021-02-04 10:29:13

    今天跟大家分享学习Rust的笔记。网上很多教程,入门都不容易懂,我要写自己的,对新手友好一些的。 新学一门语言,困扰大家的是什么?是如何获得快乐,以及如何搞一点有用的东西出来,让自己有快乐的收获感,成就感。让自己可以坚持下去。 先订一个小目标,我要编写一段小程序,它有以下功能: 这是一个命令行工具它运行之后,显示一段文本:please type your name等待我的输入完成之后,按回车键。显示:hello [username]显示你所输入的名字   让我们开始吧。先看最基本的代

  • [编程语言] Kotin 不错,但它只不过是C#的模仿者 2020-12-27 12:59:04

    简介 kotlin 是不是最近很火热,有Google爸爸的加持之下, 感觉Kotlin如日中天? 很抱歉, 其实从一个开发人员的眼界里来看, Kotlin其实真的没有那么牛逼,可能是有一点过誉了. 它本质上,还是在模仿C#, 而C# 甚至还有LINQ这样牛逼的特性 . 更不用说现在.net已经开源, 免费使用. C#还有自己独立的VM, kotlin还没有自己的运行时, 它还只能依附于JVM生态上吸血. 我个人其实觉得Jetbrains公司, 没有自己的VM, 而又不积极去推进JVM生态体系建设

  • [编程语言] Scala 3 新特性:自傲的上下文抽象 2020-12-26 19:53:45

    翻译Scala 3 新特性系列文章, 这一篇是讲Scala 3 的 上下文抽象, 官方用了Opinionated的这个词, 文面上意思:自以为是, 我觉得翻译为 自傲 更合适, 一方面,很骄傲别人没有, 我有, 另外一方面, 我比以前更强大了, 所以翻译成: 自傲的上下文抽象 Scala的一个基本的核心概念是(现在在某种程度上仍然是)为用户提供一小套强大的功能,这些功能可以组合成巨大的(有时甚至是不可预见的)表现力。例如, implicits(隐式转换) 这个特性已经被用来模拟上下文抽象、表达类型级计

  • [编程语言] Scala 3新特性:新的流程控制格式 2020-12-26 19:53:04

    Scala 3 新特性之一,是带来了新 的流程控制格式 详细的规则是。 if表达式的条件可以不加括号,如果后面是then。 while-loop的条件,如果后面是do,可以不加括号。 如果for表达式的枚举符后面跟有yield或do,则可以不加括号或括号来书写。 for表达式中的do表示for-loop。 一个 catch 后面可以在同一行中跟一个case。如果有多个case,这些case必须出现在大括号中(就像Scala 2中一样)或缩进块中。 看代码

  • [编程语言] Oracle 宣布GraalVM 支持COBOL 编程语言 2020-12-26 19:52:32

    GraalVM引入了对COBOL的支持,扩大了支持范围,一个运行时可以支持多种可互操作的语言。这就把可以在多个平台上运行的Java(语言)的范围扩展到了可以在多个平台上运行多种语言的Java(虚拟机)。 这项工作是Christoph Schobesberger在10月份通过他在JKU Linz大学的研究工作介绍的。该技术的工作原理是通过GraalVM与LLVM位码的集成。通过LLVM的路径不同于HotSpot实现对替代语言如Nashorn(Java 8中的JavaScript,后来被废弃)和JRuby(一

  • [编程语言] Ruby 3.0.0 正式发布,性能提升3倍多? 2020-12-26 19:51:50

    今天是圣诞节,Ruby开发团队宣布正式发布Ruby 3.0.0, 并贴了一张图,显示性能比前一代提升至少3倍以上 Ruby 3.0.0 核心的新特性如下: 性能: MJIT 并发:Ractor / Fiber Scheduler 类型: (静态分析 ) RBS / TypeProf 将长代码粘贴到IRB比捆绑在Ruby 2.7.0上的速度快53倍。例如,粘贴这段示例代码所需的时间从11.7秒缩短到0.22秒。 其他的详情,可以参考官方发布声明,欢迎大家下载体验新版Ruby

  • [编程语言] Flutter Mac初体验,跨平台开发应用很简单 2020-12-26 19:46:35

    简介 一直想写一些在Mac 下面,体验Flutter开发的文章,终于,来了老弟. Flutter是一个谷歌开发的跨平台开发框架,免费,开源.越来越多的公司,开发者用Flutter来构建他们的应用. 相比于SwiftUi, Objective-C, Flutter更容易学习,语法接近Java,Javascript. 学起来不怎么费力. Swift语言一代比一代新,一代坑多过一代,学不动了. Objective-C 历史坑太多了.要不然苹果也不会发明Swift来尝试替代Objective-C. 不过苹果努

  • [编程语言] Windows 10玩转ipynb 2020-12-26 19:39:34

    本教程,讲解如何在windows 10下面使用jupyter 打开ipynb, 首先请安装Python 3.7. 接下来先装jupyter ,打开一个powershell命令行 pip install -U ipynb 下载你要查阅的ipynb文件,比如我的文件名为:personal.ipynb   然后在windows 文件管理器界面,选中这个ipynb文件,鼠标右键菜单,选择打开方式,选择浏览目录   C:\Users\netroby\AppData\Roa

  • [编程语言] Spring boot 按需启用组件Bean 2020-12-26 19:31:28

    ConditionalOnProperty 这个注解,可以用于控制某个业务组件,是否开启。 当我们在配置文件中加上enabled: true, 开启组件, 没有配置,默认关闭组件   这样我们可以定制化一个通用的模块,它是开,还是关,从而达到充分复用代码的目的。   比如我们封装好的一个核心Lib, 里面有各种MongoDB, Redis, Mysql ,还有各种外部服务,比如发邮件,发短信。   通常我们一个新业务来了,我总是希望能复用这些基础代码类库,但是

  • [编程语言] 功能强大的Markdown web编辑器Vditor 2020-12-26 19:28:30

    简介 今天跟大家分享的是一款Markdown web编辑器,Vditor,如果你的项目需要提供Markdown编辑能力,那请关注一下这款好用免费的开源编辑器吧。 功能 主要的功能,所见即所得,输入Markdown 标记,就可以实时渲染结果预览。其他功能,可以访问官方网站查询。   快速上手 我们新建一个index.html,输入内容如下   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vdi

  • [编程语言] golang 构建时写版本号和编译时间 2020-12-26 19:27:50

    项目用git管理源代码,版本号用git 的tag功能。 先看构建命令 # 默认使用goproxy.cn export GOPROXY=https://goproxy.cn export GONOSUMDB=* export GO111MODULE=on go env go version # input your command here go build -ldflags "-X 'gitee.com/leobbs/leobbs/pkg/version.Build

  • [编程语言] sqlite的json查询支持 2020-12-26 19:26:31

    本文介绍了如何在 sqlite 中使用json 查询, 目标是从保存的json array中,找到匹配的id。 这个使用场景,是为文章,增加标签,然后查询 所有包含某个标签的文章   先来看看数据表结构 -- auto-generated definition create table json_test_table (     id      int,     content jso

  • [编程语言] Spring boot 异步事件编程详解 2020-12-26 19:23:22

    简介 本文章详细介绍Spring Boot中如何利用Event 事件机制,编程实现异步 处理一些比较耗时间的操作。 预习知识 您需要熟悉Spring boot项目开发; 您需要了解lombok的简单使用; 项目目录结构     config 目录下面,存放了一个异步事件的配置,代码看下面 controller 下面是web api的相关源代码 event.listener目录下面,是异步执行器,用于监听事件publish, 然后执行任务 event.vo

  • [编程语言] Golang 策略设计模式 介绍 2020-12-26 19:20:20

    简介 本教程讲解Golang编程语言的策略设计模式 开始   策略模式是设计模式的一种。软件开发中,我们经常会遇到这样的场景,比如支付,用户支付,可以通过支付宝,微信,或者银联。 他们最终的目的都是完成付钱的动作。我们可以归纳抽象这些支付渠道为相同的流程;基本的支付动作都是相同的,只不过支付实现(策略)不一样。比如调用的api 不一样,参数不一样,签名不一样等。 我们可以定义基本的支付 interface,然后用不同的实现,完成 provider.DoPay 操作,完成支付。 这种就

  • [编程语言] msys2, windows下面最好的linux软件工具 2020-12-26 19:09:10

    简介 msys2是一个为windows提供linux下面各种软件工具的包管理器,相比传统的msys,经过优化的msys2提供了更强大的软件包管理功能,如果你用过archlinux,那么msys2也具有相同的pacman 安装 访问msys2官方网站,找到名为 msys2-<架构>-<日期>.exe 的文件(如 msys2-x86_64-20141113.exe),下载安装即可。 pacman 的配置 定位到安装目录,比如c:/msys2, 找到etc/pacma

  • [编程语言] Java开发Grpc,打印debug请求,响应信息 2020-12-26 19:07:08

    需求 在开发java项目,用到grpc的时候,我们发现调试grpc调用比较不方便,因为grpc基于http2协议封装了请求参数和响应结果,人眼一下子还是不能快速看到请求参数和响应结果的,所以我们需要掌握打印请求参数和响应信息的手段 原始代码   /** * Get topics (max 10) for our project ID: the topic list is logged to the logger. * * @param projectID the

  • [编程语言] qt for python3 初体验 2020-12-26 17:34:39

    简介 qt是linux下面最通用的gui 框架,可以用来开发各种GUI程序,Python, 宇宙第一动态语言,就没有干不了的活。他们相结合,会碰撞出什么样的火花呢? 我们来试试。 Python2 生命即将结束,就不再用Python2 来做教程了,推荐大家现在立刻马上开始学python3 开始 mkdir ~/tmp/demoqt cd ~/tmp/demoqt pipenv --three pipenv install PySide2 vi main.py # 下面是代码内容 impor