<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[哈哈的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hetoby</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hetoby]]></copyright><item><title><![CDATA[使用 go-wkhtmltopdf 将html转pdf]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/83382685</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/83382685</guid><author>hetoby</author><pubDate>Thu, 25 Oct 2018 17:05:28 +0800</pubDate><description><![CDATA[

GoLand IDE创建go项目
这里项目名称为 toPDF


添加main.go文件，添加main函数,
例子来自： https://github.com/adrg/go-wkhtmltopdf


package main

import (
	&amp;quot;fmt&amp;quot;
	&amp;quot;github.com/adrg/go-wkhtmltopdf&amp;quot;
	&amp;quot;log&amp;quot;
)

func main(){
	pdf.Init..]]></description><category></category></item><item><title><![CDATA[Hyper-v Ubuntu 设置分辨率]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/83377721</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/83377721</guid><author>hetoby</author><pubDate>Thu, 25 Oct 2018 12:29:05 +0800</pubDate><description><![CDATA[Hyper-v Ubuntu 设置分辨率Hyper-v Ubuntu root账号vim设置分辨率
Hyper-v Ubuntu root账号
安装完ubuntu desktop版本，默认情况下，root账号是关闭的。而要修改配置需要使用root账号，所以第一步就是开启root账号。
命令如下：
sudo passwd root
之后输入两次密码来设置
vim
ubuntu默认并没有安装vim编辑...]]></description><category></category></item><item><title><![CDATA[C#多线程整理]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80522478</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80522478</guid><author>hetoby</author><pubDate>Thu, 31 May 2018 12:50:17 +0800</pubDate><description><![CDATA[


1. 使用Delegate







只要有一个前台线程在运行，应用程序就在运行；如果有多个前台线程在运行，而Main()方法结束了，应用程序进程仍然时激活的，直到所有前台线程完成为止。

1. 使用Delegate

Delegate是通过线程池线程完成异步调用的，线程池线程总是后台线程。 
1）通过delegate.BeginInvoke方法启动线程，通过delegate.EndIn...]]></description><category></category></item><item><title><![CDATA[Linux tutorial 3 - centos Shell]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80384460</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80384460</guid><author>hetoby</author><pubDate>Sun, 20 May 2018 18:41:42 +0800</pubDate><description><![CDATA[


1. Shell的基本知识
1.1 Shell具有如下功能
1.2 Shell的元字符：
1.3 Shell命令一般格式
1.4 目录和文件名的命名规则
1.5 通配符


2 Linux下的文件类型
2.1 硬链接（ln file1 file2，建立文件file1的硬链接file2)
2.2 符号链接(又叫软链接，ln -s file1 file2，建立file1的符号链接文件file2)...]]></description><category></category></item><item><title><![CDATA[Linux tutorial 2 - centos 基本配置]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80384154</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80384154</guid><author>hetoby</author><pubDate>Sun, 20 May 2018 17:59:09 +0800</pubDate><description><![CDATA[


1. Linux常识
1.1 版本
1.2 帮助命令：
1.3 命令执行时的查找路径顺序


2. 配置语言环境
3. 配置时区
3.1 查看日期/时间/时区：timedatectl
3.2 设置日期和/或时间：timedatectl set-time
3.3 查看系统支持的时区：timedatectl list-timezones | grep Asia
3.4 设置时区(立即生效)：ti...]]></description><category></category></item><item><title><![CDATA[Linux tutorial 1 - 安装centos 7 in hyper-v step by step]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80382609</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80382609</guid><author>hetoby</author><pubDate>Sun, 20 May 2018 15:34:02 +0800</pubDate><description><![CDATA[


1.下载centos
2. 创建hyper-v virtual switch(虚拟交换机）
2.1 打开hyper-v管理器，右侧点“虚拟交换机管理器”
2.2 创建 外部 虚拟交换机
2.3 创建完成之后的效果图


3. 创建虚拟机
4. 安装配置虚拟机







最近在使用java开发一个web服务器端的项目，本人此前主要使用vc/mfc/c#开发，java不熟仅是了解而已，但语言...]]></description><category></category></item><item><title><![CDATA[spring mvc - tutorial 3: utf-8编码]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80265384</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80265384</guid><author>hetoby</author><pubDate>Thu, 10 May 2018 11:42:57 +0800</pubDate><description><![CDATA[






修改intellij IDEA的启动配置 
安装目录的idea64.exe.vmoptions配置文件最后加上：-Dfile.encoding=UTF-8
修改intellij IDEA编辑器的文件编码配置 
打开intellij idea在其Settings/Editor/File Encodings里面修改编码为utf-8
修改容器的编码配置 
容器比如tomcat，编码也修改为...]]></description><category></category></item><item><title><![CDATA[spring mvc - tutorial 2: spring + swagger]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80224623</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80224623</guid><author>hetoby</author><pubDate>Mon, 07 May 2018 13:44:06 +0800</pubDate><description><![CDATA[


1. Spring mvc + springfox swagger1
2. Spring mvc + springfox swagger2
2.1 新建一个简单的spring mvc restful web app
2.2 添加spring配置文件
2.3 配置web.xml
2.4 下载swagger-ui并把dist放到项目中
2.5 添加swagger configuration
2....]]></description><category></category></item><item><title><![CDATA[spring mvc - tutorial 1：实现简单的GET、POST接口并使用Postman测试]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/80216771</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/80216771</guid><author>hetoby</author><pubDate>Sun, 06 May 2018 18:29:25 +0800</pubDate><description><![CDATA[


1. intellij IDEA创建一个maven web app
1.1 POM添加依赖
1.2 添加spring和spring mvc配置文件
1.3 配置web.xml


2. 添加controller和model
3. 配置tomcat运行
3.1 GET方法测试
3.2 POST方法测试








本次尝试创建一个简单的spring mvc restful项目，尝试简单的接...]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 7, Spring RabbitMQ]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79878987</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79878987</guid><author>hetoby</author><pubDate>Tue, 10 Apr 2018 11:46:12 +0800</pubDate><description><![CDATA[


基本概念
tutorial 7 Spring RabbitMQ
(1) 项目依赖
(2) applicationContext.xml &amp;amp; spring-mvc.xml
(3) 配置web.xml 并确认是否配置成功
(4) 添加spring-rabbitmq.xml
(4) Producer实现
(5) Consumer实现
(6) Controller里面添加uri用于发送消息
...]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 6 RPC, Remote procedure call]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79878956</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79878956</guid><author>hetoby</author><pubDate>Tue, 10 Apr 2018 11:44:35 +0800</pubDate><description><![CDATA[待定]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 5 Topics, Receiving messages based on a pattern]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79877647</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79877647</guid><author>hetoby</author><pubDate>Tue, 10 Apr 2018 10:42:12 +0800</pubDate><description><![CDATA[前一个例子使用的routing key是固定的，这个例子则是非固定的routing key，而binding key则使用了通配符。




基本知识
Toturial 5
(1) Producer
(2) Consumer
(3) 运行结果








基本知识


topic exchange：和direct exchange相似，使用特定routing 
key发送的消息会被投递到具有与...]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 4 Routing, receiving messages selectively]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79873879</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79873879</guid><author>hetoby</author><pubDate>Mon, 09 Apr 2018 22:36:19 +0800</pubDate><description><![CDATA[本例在前一例的基础上，通过Routing过滤消息，只接收感兴趣的message。




基本概念
Tutorial 4 - 消息路由routing
(1) Producer
(2) Consumer
(3) 运行结果










基本概念


binding: A binding is a relationship between an exchange and a queue.
bin...]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 3 publish/subscribe, sending messages to many consumers at once]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79871054</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79871054</guid><author>hetoby</author><pubDate>Mon, 09 Apr 2018 19:07:59 +0800</pubDate><description><![CDATA[前面的两个例子，我们直接使用queue，实际上是通过默认的exchange来发送消息的。本例将演示使用exchange发布消息，并实现订阅。




基本概念
exchange分类
Tutorial 3 - log订阅
(1) Producer
(2) Consumer
(3) 运行结果











基本概念


queue: A queue is a buffer that store...]]></description><category></category></item><item><title><![CDATA[RabbitMQ - tutorial 2：task queue,distributing tasks among workers]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79833897</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79833897</guid><author>hetoby</author><pubDate>Fri, 06 Apr 2018 21:24:23 +0800</pubDate><description><![CDATA[本例说明RabbitMQ提高的处理以下3个问题的机制，并给出一个例子。


consumer奔溃，如何保证消息不丢失（比如消息处理到一半，异常退出）- message acknowledgment
RabbitMQ Server挂掉，如何保证消息以及消息队列不丢失 - message durability
消息处理任务繁重程度差异很大时，如何保证每个consumer均衡的承担任务而不会导致有的过重...]]></description><category></category></item><item><title><![CDATA[Rabbit MQ - tutorial 1：hello rabbit mq]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/79829705</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/79829705</guid><author>hetoby</author><pubDate>Fri, 06 Apr 2018 12:29:49 +0800</pubDate><description><![CDATA[Rabbit MQ

RabbitMQ是一个消息代理：它接受和转发消息。 你可以把它想象成一个邮局，RabbitMQ是邮箱，邮局和邮递员。



Rabbit MQ
Tutorial 1 - Hello Rabbit MQ
Rabbit MQ安装
Rabbit MQ Service运行
实现Publisher(Publisher往Broker发送消息)
实现Consumer(Consumer从Br...]]></description><category></category></item><item><title><![CDATA[WPF DateTimePicker]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/78341280</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/78341280</guid><author>hetoby</author><pubDate>Wed, 25 Oct 2017 14:38:43 +0800</pubDate><description><![CDATA[WPF没有DateTimePicker，自身的DatePicker不能选择时间。所以要自己实现。<DatePicker Height="25" Width="250" Text="2011/10/11 15:16:17"/>
使用WinForm的DateTimePicker
<Window x:Class="WinFormDateTimePicker.MainWindow"
...
xmlns:wf]]></description><category></category></item><item><title><![CDATA[WPF Style & Template]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/78062100</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/78062100</guid><author>hetoby</author><pubDate>Fri, 22 Sep 2017 13:46:59 +0800</pubDate><description><![CDATA[WPF元素可以使用一个样式，通过元素的Style属性设置(Style属性在FrameworkElement中定义) 
Setter是Style中最重要的属性，Setter只支持依赖属性； 
某些依赖属性无法使用简单的字符串设置值，这时使用嵌套元素的方法实现，比如ImageBrush;<Window.Resources>
<Style x:Key="bigFontButtonStyle">
    <]]></description><category></category></item><item><title><![CDATA[C#新特性]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/77897449</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/77897449</guid><author>hetoby</author><pubDate>Fri, 08 Sep 2017 18:25:36 +0800</pubDate><description><![CDATA[C#7.1C#7C#61.Read-only auto-properties 只读自动属性 
以前版本：类内部可以set这两个属性public string FirstName { get; private set; }
public string LastName { get; private set; }新版本：只有在构造函数里面可以设置这两个属性public string FirstName]]></description><category></category></item><item><title><![CDATA[Autofac tutorial 1]]></title><link>https://blog.youkuaiyun.com/hetoby/article/details/77839441</link><guid>https://blog.youkuaiyun.com/hetoby/article/details/77839441</guid><author>hetoby</author><pubDate>Mon, 04 Sep 2017 17:31:03 +0800</pubDate><description><![CDATA[Autofac使用方法1).在程序启动时，创建ContainerBuilder， 
2).用创建的builder注册组件(component) 
3).调用builder的Build方法，保存container后续用于resolve typeIContainer Container = builder.Build();4).使用container resolve type// Create the]]></description><category></category></item></channel></rss>