自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云笔记

Carpe Diem, Seize the Day

  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 ClickHouse中使用UNION

在 ClickHouse 中,UNION用于合并两个或多个查询的结果集。ClickHouse 默认支持的是UNION ALL,即合并结果集时不去重。如果需要使用(即合并结果集时去重),可以显式地指定。

2024-07-18 14:32:36 604

转载 “ClickHouse” 有什么含义?

它是“点击流”和“数据仓库”的组合。它来自于Yandex最初的用例。在Metrica网站上,ClickHouse本应该保存人们在互联网上的所有点击记录,现在它仍然在做这项工作。你可以在ClickHouse history页面上阅读更多关于这个用例的信息。

2024-07-06 21:59:16 29

原创 适用ClickHouse的场景

很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用MongoDB或Redis去处理分析请求。

2024-07-06 21:56:25 152

原创 什么是ClickHouse?

常见的列式数据库有:Vertica、Paraccel (Actian Matrix,Amazon Redshift)、Sybase IQ、Exasol、Infobright、InfiniDB、MonetDB (VectorWise,Actian Vector)、LucidDB、SAP HANA、Google Dremel、Google PowerDrill、Druid、kdb+。不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例;是要平衡还是要效率?

2024-07-06 21:35:34 165

原创 ClickHouse中PRIMARY KEY和ORDER BY关键字的关系

在ClickHouse中,和ORDER BY关键字在表的创建过程中扮演着重要的角色,它们共同决定了数据在物理存储上的排序方式,这对查询性能有着直接的影响。理解它们之间的关系对于设计高效的ClickHouse表结构至关重要。

2024-07-06 21:00:08 491

原创 Golong中的http.Transport详解

你可以创建一个自定义的,以便更细粒度地控制HTTP请求的发送。例如,你可以设置代理服务器、修改拨号函数、限制空闲连接数和存活时间等。下面是一个创建自定义在这个例子中,我们创建了一个自定义的,并将其设置为的Transport字段。这样,当我们使用client.Get发送请求时,请求就会通过我们自定义的发送。总的来说,是Go语言HTTP客户端的核心组件,它提供了丰富的字段和方法,让我们可以灵活地控制HTTP请求的发送。理解的工作原理和用法,对于编写高效的HTTP客户端代码非常重要。

2024-05-13 10:26:21 581

原创 如何使用google.protobuf.Struct?

包提供了一种方式来创建和操作类型的数据。是一种灵活的数据类型,可以表示任何结构化数据。以下是如何使用structpbStructStruct注意:在从Struct读取数据时,需要进行类型断言,因为AsMap函数返回的是类型的数据。

2024-05-08 22:00:29 526

原创 如何在 Gin 框架中处理多个 websocket 连接?

在这个示例中,当一个客户端连接到"/ws"端点时,会创建一个新的WebSocket连接并注册到hub。hub跟踪所有活动的连接,并将收到的消息广播给所有客户端。在你的Gin路由处理器中,将HTTP连接升级为WebSocket连接,创建一个新的。实现运行,注册新客户端,注销客户端,以及向所有客户端广播消息的方法。结构体来保存WebSocket连接和发送通道。,并启动写入和读取的goroutines。结构体来保存客户端和广播通道。实现写入和读取消息的方法。对象,将新客户端注册到。首先,在你的终端运行。

2024-05-05 11:14:42 482

原创 如何在Gin框架中使用Websocket?

当客户端向这个路径发送GET请求时,我们的服务器就会将这个HTTP连接升级为一个Websocket连接。然后,我们进入一个无限循环,不断地从Websocket连接中读取消息,然后将这个消息原样写回。这就是一个最基本的Websocket回声服务器。函数,例如,你可以在接收到消息时调用你的业务逻辑函数,而不是简单地将消息原样写回。在Gin框架中使用Websocket,你需要使用一个第三方库,例如。在这个例子中,我们创建了一个新的Gin路由。你可以根据你的需求修改。

2024-05-05 11:13:30 376

原创 使用Nginx配置反向代理处理SSE请求

SSE(Server-Sent Events)是一种基于HTTP的服务器推送技术,它允许服务器将实时数据流式传输到客户端。与传统的轮询或长轮询相比,SSE提供了一种更高效的方式来实现实时数据更新。通过按照以上步骤配置Nginx反向代理处理SSE请求,你就可以实现在SSE中实时推送数据到客户端。确保在后端服务器编写SSE事件流的代码,并与Nginx配置文件中的路径相匹配。希望这篇文章对你理解和配置Nginx反向代理处理SSE请求有所帮助。

2023-07-18 18:29:16 10212 8

原创 批量生成ethereum私钥脚本

区块链的第一篇文章,今天就分享一个可以创建N个以太坊私钥的脚本吧。#!/bin/bash# helphelp() { echo "Usage: $0 [options]" echo "" echo &amp

2018-08-03 13:42:15 6232 3

原创 TensorFlow 教程 - 深入MNIST完整代码

这个是TensorFlow官方教程《深入MNIST》中的完整代码。完整教程在这里。 代码注释是本人结合教程和自己的理解加的,如有错误请指正。# -*- coding: utf-8 -*- import tensorflow as tf#导入input_data用于自动下载和安装MNIST数据集from tensorflow.examples.tutorials.mnist import inpu

2016-12-21 18:46:26 23505 19

原创 TensorFlow 教程 - MNIST机器学习入门完整代码

这个是TensorFlow官方文档中“MNIST机器学习入门”这部分的完整代码,并加入了部分注释。 原教程中详细地讲解了一下如何使用TensorFlow做一个最简单的模型来对MNIST数据集进行训练和预测。原文档地址在这里import tensorflow as tf#导入input_data用与自动下载和安装MNIST数据集from tensorflow.examples.tutorials.

2016-12-20 17:41:48 13350 8

原创 TensorFlow 教程 - 新手入门笔记

介绍TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。它是谷歌基于DistBelief进行研发的第二代人工智能学习系统。2015年11月9日,Go

2016-12-13 14:21:28 74229 13

原创 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow

最近在公司做深度学习相关的学习和实验,原来一直在自己的电脑上安装虚拟机跑,速度实在太慢,主机本身性能太弱,独显都没有,物理安装Ubuntu也没多大意义,所以考虑用公司性能最强悍的游戏主机(i7 6700+GTX 1070) 做实验,这台主机平时是用来跑HTC VIVE的,现在归我用了o(*≧▽≦)ツ。原本以为整个一套安装下来会很顺利,一路火花带闪电的就完成了,没想到刚开始就掉坑了,然而这仅仅是悲剧的

2016-10-23 21:09:22 12158 2

原创 locate 数据库权限分析

locate用到数据文件具有特殊的权限,普通用户不能直接修改或读取。下面简要分析一下它的特殊之处,以及给出想要修改或读取这个数据库是的几种方法。locate 使用到的数据库文件是/var/lib/mlocate/mlocate.db。这个文件的详细信息如下:root@ubuntu:/home/mml# ls -l /var/lib/mlocate/mlocate.db -rw-r----- 1 r

2016-04-12 22:24:48 2224

原创 locate 工作原理

locate是Linux下实现快速查找文件的工具。它的搜索速度要比find快很多,因为它在搜索时并没有去遍历文件系统查找,而是在一个索引数据库中进行查找。这个数据库文件在/var/lib/mlocate/mlocatedb(版本不同,会有所不同。有的版本位置是/var/lib/slocate/slocate.db,还有的是/var/cache/locate/locatedb)。

2016-03-27 21:11:46 4626

原创 syslog的使用

syslog是libc中自带的一套记录系统日志的接口,如果徒方便省事儿,不想借助其他额外的库来记日志,可以使用这一套接口。

2016-03-15 21:41:38 3561

原创 Everything For Linux

计划中的第二步也做出来一个雏形,基本可以使用,但需要改善的地方还有很多,以后再一点点去完善。代码已经上传github:https://github.com/ma3232335/EverythingForLinux.git1.与第一版的主要区别这一版还没有完全做好,但外观上在完成后基本与第一版preview类似,细节上有一些小变化,去掉了search按钮,去掉了前面编号的显示,...

2016-03-13 22:37:16 20747 9

原创 Obstacks的简单使用

Obstacks是GUN lib中实现的内存池,在基于GNU的系统中可以直接使用,想要深入了解GNU Obstacks的可以参阅参考资料。在阅读mlocate命令源码时接触到了Obstack,网上查找资料时没有找到中文版本的资料,只能根据上面的官方英文参考资料,整理记录一点笔记。  1. 创建obstacks操作obstacks的所有函数都在定义在头文件obstack.h中。...

2016-02-28 21:54:08 2571

原创 Everything for linux Preview

第一步总算做完了,现在来整理笔记,本想简单做一下,可以显示查找到的内容就行了,但想到有一些功能在下一个版本也会用到,干脆现在就把这些功能加上吧,所以做成了现在这样还算完整的一个小工具。下面来一点点介绍外观和功能。1. 外观参考Everything的外观,窗口做的尽量简洁。标题显示当前搜索内容+"Everything"。工作区分上下两部分,上面是搜索关键字...

2016-02-17 13:33:42 2555 6

原创 QTableView中根据文件类型显示图标

这个问题其实需要分两部分1. QTableView中如何显示图标。2. 如何获取一个文件的显示图标。第一个部分,了解QT中Model/View框架的都知道,view中显示什么都是通过model的data函数获取的。在view中显示一个图标只需要在data函数中判断role == Qt::DecorationgRole并且列号等于要显示图标的列时返回一个QIcon即可。

2016-02-17 13:24:46 3906 2

转载 QT操作剪切板

剪切板应该都比较熟悉,平时使用到的复制粘贴功能其实就是在操作剪切板。可以把剪切板简单的理解成一个数据存储池,外面的数据可以存进去,里面数据也可以取出来。剪贴板是由操作系统维护的,所以这提供了跨应用程序的数据交互的一种方式。Qt 已经为我们封装好很多关于剪贴板的操作,我们可以在自己的应用中很容易实现对剪贴板的支持,代码实现起来也是很简单的QClipboard *board =

2016-02-17 12:54:31 6670

原创 QT Model/View框架中更新Model时View的显示问题

MVC模型是经典的三层结构,将数据、视图和逻辑分离。QT中的Model/View框架,实现了这个模式。在QT中这个模式涉及到3个类,model类、view类和delegate类。model类负责保存数据,view类负责显示,而delegate类负责协调model和view之间数据的编辑和渲染。 Qt中有已经提供了很多功能完善的类,可以根据需要直接拿来使用,比如:Model类:QStri...

2016-02-17 12:47:55 7111 1

原创 Linux下使用合适程序打开文件

Linux下编写界面程序时,有时候需要打开一个文件,并不是简单的二进制方式或文本方式打开,要用当前系统中合适的一个程序打开,比如图片文件使用图片查看工具;压缩包使用归档压缩包管理工具;文本文件使用gedit等等。下面介绍一个非常实用的工具: xdg-open这是一个Linux下的脚本程序,使用它打开一个文件时,它会首先分析这个文件的类型,然后使用系统中注册好的与这个文件类型相符合的

2016-02-17 10:46:17 2480

原创 QT右键菜单

要在某一个窗体中添加右键菜单,比如在QTableView中添加,可以用两种方式。方式1:是使用它的signal函数customContextMenuRequested(QPoint pos),这个信号会在右键点击时发射,将这个信号连接到一个自定义的slot函数中,在这个函数中定义一个右键菜单QMenu,然后根据位置参数pos弹出这个菜单即可。方式2:重写contextMenuEvent(Q

2016-02-17 10:09:58 3427

原创 Qt中使用多线程

Qt中使用多线程Qt官方文档中介绍,Qt中实现多线程有两种方式。一种是类似Java中Thread类的方式,继承QThread,然后重载run函数,调用start函数可以开启线程,这种方式适合没有信号槽交互,像pthread一样的普通线程。另一种是work-object方式,适合想要槽在新线程中执行的情况。用法很简单,代码如下:QThread t;QObject

2016-02-17 09:44:18 1138

原创 Everything for linux前言

Everything 是windows下一款快速搜索工具,它可以瞬间搜索到电脑磁盘中的任何文件,不论这个文件正躲藏在哪个角落里吃灰。Everything凭借超快的搜索速度可以做到即时搜索的效果,每输入一个字符就进行一次搜索,搜索结果立即显示,几乎没有延时。Everything不仅支持普通字符搜索,而且可以使用通配符和正则表达式进行搜索,速度较一般搜索没有一点变化。一直对Everythi

2016-01-26 21:04:27 7010 1

原创 手把手带你自制Linux系统之六 编译内核及busybox完成系统定制

手把手带你自制Linux系统之六 编译内核及busybox完成系统定制重新看了一下前面的几章,发现其实前面的5章一直围绕一个话题讲解 — 如何利用CentOS现有资源组装一个Linux。这种方式十分拙劣,Linux内核是固化的、initrd没有充分精简、命令需要一个一个拷贝,最终做出来的Linux不能算是完全定制的。这一章就来自己编译Linux源码生成内核,使用bu

2016-01-08 10:23:59 8016

原创 手把手带你自制Linux系统之五 一些小细节的完善

手把手带你自制Linux系统之五 一些小细节的完善1. 设置主机名"hostname+主机名" 命令可以用来设置主机名。这样设置的hostname立即生效,但重启后还需要再次设置。想要主机名每次启动后自动生效可以在/etc/sysconfig/network文件中保存一个HOSTNAME变量。每次开机时读取这个文件,并使用hostname命令使HOSTNAM

2016-01-05 21:49:02 1685

原创 手把手带你自制Linux系统之四 添加网络功能

手把手带你自制Linux系统之四 添加网络功能1. 添加系统函数库/etc/rc.d/init.d/functions脚本文件中定义了许多功能函数,用于控制服务脚本的信息显示等。/etc/init.d下的绝大多数脚本或多或少都会使用这些功能。例如在CentOS开机启动时,会看到执行某项操作或启动某个服务是成功还是失败,在右侧会有一个用中括号括起来的单词表示,成功用绿

2015-12-16 14:08:51 2742

原创 Ubuntu14.04安装vncserver

Ubuntu14.04安装vncserver一直喜欢使用RealVNC或VNCViewer在Windows 下访问Linux桌面环境,Linux中需要安装一个vncserver,之前在Centos上安装,然后正确配置后使用都没问题。近来尝试了一下在Ubuntu 14.04上使用,没有成功,只能看到一个灰色的桌面,外加一个命令行终端,不能正常使用桌面。如下图:在网上搜

2015-11-17 09:46:03 19494 3

原创 手把手带你自制Linux系统之三 添加关机重启及用户登录功能

手把手带你自制Linux系统之三 添加关机重启及用户登录功能本章,我们要做的主要工作是为我们的Mini Linux添加关机、重启功能及用户登录功能。打开虚拟机中CentOS_5.5作为工作机,完成如下步骤:1. 精简initrd文件 上一章我们使用的initrd是直接从/boot/目录下拷贝的,没有做任何修改,这样做虽然比较简单,但会导致我们的MiniLinux体积

2015-11-09 08:18:27 2560 6

原创 Linux系统启动流程

Linux系统启动流程Linux系统从按下开机按钮到等待用户输入用户名、密码,这中间到底发生了什么,本文接下来将要简单讲解一下Linux系统的启动过程。Linux系统启动流程大致是这样的:BIOS(Boot Sequence) --> MBR(GRUB,446) --> Kernel --> initrd --> (ROOTFS)/sbin/init(/etc/

2015-08-24 20:57:15 4703 1

转载 第二十章、Linux进程管理

第二十章、Linux进程管理13_03_Linux进程管理之一学习进程及作业管理ppt :  network.pptVSZ: +共享库RSS: resident size Uninterruptible sleep: 不可中断的睡眠Interruptible sleep:可中断睡眠 13_04_Linux进程管理之二进制优先级(0-139)0-99:内核调整的100-139:用户可控制2.6内核选

2015-08-13 16:48:19 597

转载 第十九章、Linux软件管理

第十九章、Linux软件管理12_01_Linux软件管理之一 rpm 程序组成部分:         二进制程序         库         配置文件         帮助文件跟目录结构/boot/etc/usr/var/dev/lib/tmp/bin/sbin/proc/sys/mnt/media/home/root/misc/opt/srv  目录讲解:/usr/share/man:

2015-08-13 16:48:16 1241

原创 inittab文件格式

inittab文件格式    CentOS 5.5中使用的init程序是传统的sysinit,init的需要的大部分配置都在/etc/inittab文件中。CentOS 6.4中使用init程序变成了UpStart,名字依然是init,但是配置分散到/etc/init/*.conf 多个文件中。本文主要讲解CentOS 5.5中inittab文件的格式。    Linux内核在开机启动后加载的用户

2015-08-13 16:48:14 1690

原创 手把手带你自制Linux系统之二 简易Linux的制作

手把手带你自制Linux系统之二 简易Linux的制作 本文将会利用CentOS5.5自带内核制作一个可以正常启动的Mini Linux,开始前请将准备工作完成,详见 手把手带你自制Linux系统之一 准备工作 准备工作做完后,还需要简单了解一下Linux的启动过程,点击此处。 Linux的启动过程大致可分解为:BIOS(Boot Sequence) --> MB...

2015-08-13 16:48:11 10410 1

原创 如何将光盘作为yum源

首先,将光盘放入光驱,在linux下将光盘设备挂载到/media目录下。mount -o /dev/cdrom /media将/etc/yum.repos.d下的*.repo文件做备份mkdir /etc/yum.repos.d/bak/mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/使用vi在/etc/yum.repos.d/下新建一个repo文

2015-08-13 16:48:09 7690

原创 手把手带你自制Linux系统之一 准备工作

手把手带你自制Linux系统之一 准备工作 本系列教程参考马哥Linux视频(Linux内核编译及系统裁章节),所有操作都在VMware Workstation虚拟机中进行,理论上同样适合物理硬件平台。 本系列教程没有一步到位制作一个最标准的Linux,而是从最开始利用CentOS自带内核、initrd等制作一个最简单的Linux,到最终使用kernel内核源码+busybox源码...

2015-08-13 16:48:06 3553 1

ethkey二进制可执行程序

以太坊私钥生成工具,go-ethereum源码编译,源码地址:https://github.com/ethereum/go-ethereum

2018-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除