<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>聽的资料</title>
    <link>https://sohunjug.com/</link>
    <description>Recent content on 聽的资料</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 13 Sep 2016 15:58:43 +0800</lastBuildDate><atom:link href="https://sohunjug.com/atom.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TypeScript: (Node.JS &#43; gulp &#43; express) 写RESTful API 做后端</title>
      <link>https://sohunjug.com/posts/nodejs-restful-gulp/</link>
      <pubDate>Tue, 13 Sep 2016 15:58:43 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/nodejs-restful-gulp/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;最近应公司项目要求，入坑Ionic，查了很多资料之后感觉还是使用TypeScript来写比较好，因本人本身的C++功底，TypeScript正好是类似面向对象形式的，这样接受新语言环境也比较快。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>PacketSender 发送接收socket macOS App</title>
      <link>https://sohunjug.com/posts/packetsender/</link>
      <pubDate>Thu, 18 Aug 2016 22:33:12 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/packetsender/</guid>
      <description>&lt;h4 id=&#34;更新&#34;&gt;更新&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;问题原因可能为 macOS 10.12 beta 系统问题，新更新为 10.12 beta 6 问题解决。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;目前版本已更新为 1.4.3，支持多窗口。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;起因&#34;&gt;起因&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;最近工作发现有时候需要测试发送 TCP 包，而目前 Mac 上又没有找到功能很好的软件，所以就自己开发了一个简单而实用的工具。&lt;a href=&#34;https://itunes.apple.com/us/app/packetsender/id906185173?l=zh&amp;amp;ls=1&amp;amp;mt=12&#34;&gt;PacketSender&lt;/a&gt;
因后来实用 ObjC 重写了的原因，所以开源旧版本的 Swift 版本吧。&lt;a href=&#34;https://gitlab.com/sohunjug/PacketSender-Swift.git&#34;&gt;GitLab&lt;/a&gt;、&lt;a href=&#34;https://github.com/sohunjug/PacketSender-Swift.git&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>自动登录ssh或telnet脚本</title>
      <link>https://sohunjug.com/posts/ssh-telnet/</link>
      <pubDate>Mon, 08 Aug 2016 17:31:53 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/ssh-telnet/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;闲来无事，正好更新下以前写的脚本，自动登录ssh或telnet。
而且也方便记录密码。&lt;a href=&#34;http://git.oschina.net/sohunjug/connect.sh&#34;&gt;Git-oschina&lt;/a&gt;、&lt;a href=&#34;https://github.com/sohunjug/connect.sh&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;使用connectsh自动连接ssh或者telnet&#34;&gt;使用connect.sh自动连接ssh或者telnet&lt;/h2&gt;</description>
    </item>
    
    <item>
      <title>Kafka、RocketMQ调研</title>
      <link>https://sohunjug.com/posts/kafka-rocketmq/</link>
      <pubDate>Mon, 08 Aug 2016 09:10:28 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/kafka-rocketmq/</guid>
      <description>&lt;h3 id=&#34;kafka是linkin开源的消息中间件&#34;&gt;Kafka是Linkin开源的消息中间件&lt;/h3&gt;
&lt;h4 id=&#34;kafka的设计目标是&#34;&gt;Kafka的设计目标是：&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;（1）以时间复杂度为O(1)的方式提供消息持久化能力，即使对TB级以上数据也能保证常数时间复杂度的访问性能。
（2）高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
（3）支持Kafka Server间的消息分区，及分布式消费，同时保证每个Partition内的消息顺序传输。
（4）同时支持离线数据处理和实时数据处理。
（5）Scale out：支持在线水平扩展。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;rocketmq是阿里开源的消息中间件&#34;&gt;RocketMQ是阿里开源的消息中间件&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;其最初也是基于Kafka发展而来。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>C/C&#43;&#43;中宏定义的用法</title>
      <link>https://sohunjug.com/posts/c-define/</link>
      <pubDate>Tue, 13 Jan 2015 15:59:59 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/c-define/</guid>
      <description>&lt;p&gt;无论是在网络上还是项目中，define的用法非常广泛，define是由预处理程序自动完成的，被成为宏定义。&lt;/p&gt;
&lt;p&gt;宏定义的作用范围仅限于当前文件(头文件除外，包含该头文件的源文件中都可使用)，一般define分为有参数和无参数两种。&lt;/p&gt;
&lt;h1 id=&#34;宏定义优点&#34;&gt;宏定义优点&lt;/h1&gt;</description>
    </item>
    
    <item>
      <title>个人搭建git服务器与webmail服务器</title>
      <link>https://sohunjug.com/posts/git-webmail/</link>
      <pubDate>Tue, 24 Jun 2014 20:15:57 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/git-webmail/</guid>
      <description>&lt;p&gt;最近看到一句令人很有感觉的一句话，&amp;ldquo;The best is yet to come&amp;hellip;&amp;quot;，而我本人也很相信这句话。&lt;/p&gt;
&lt;p&gt;在这个一天天各种新技术出生的年代，大家都想什么技术都熟悉一点，不至于让人说out了，而本人又是处女座的，有那么点强迫症，非常喜欢使用自己的东西，所以索性就搭建了自己的git服务器。而Apple新出的OSX10.10 DP2又依然没有解决邮件客户端的问题，感觉又很不爽，正好看到过一个RainLoop的帖子，所以也把WebMail捅咕上了。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>终于从wordpress转移到了octopress</title>
      <link>https://sohunjug.com/posts/octopress/</link>
      <pubDate>Sat, 19 Apr 2014 16:20:27 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/octopress/</guid>
      <description>&lt;p&gt;从大学开始就折腾过wordpress，工作后也确实一直用着wordpress。步入社会发现大学里面的都算不上皮毛，不懂的东西实在太多了，如饥似渴的小小学习2年，终于换了份工作。&lt;/p&gt;
&lt;p&gt;当日子一步步的步上正轨，我的学习热情也慢慢回升了。记得是半年前吧，突然听说了octopress这个博客，只看介绍(A blogging framework for hackers.)就给人一种高大上的感觉哈。当时就想折腾下，可惜因为工作也忙，也想换工作，一直拖到了现在。&lt;/p&gt;
&lt;p&gt;新工作依然还是程序员，比较热爱这个职业吧。当做出一个作品时那种快感，没做过的人是体验不到的。平时上班因为刚入职，还不忙，正好下班就可以捅咕自己的东西了。可能因为处女座的原因，尤其喜欢把这些东西搞到自己的服务器上。没事看看vps，发现阿里云现在很便宜嘛，一个月才55，而且还可以申请试用5天，想到就办，申请个试用的，搭建环境测试，满意之后买vps。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mac应用开发-启程</title>
      <link>https://sohunjug.com/posts/parld/</link>
      <pubDate>Thu, 27 Feb 2014 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/parld/</guid>
      <description>&lt;p&gt;最近和一些小伙伴一起合伙做了个小玩具，大家感觉还是满开心的，网站是&lt;a href=&#34;http://www.parld.com&#34;&gt;parld音乐聚汇&lt;/a&gt;(推广下哈)。其中Mac客户端&lt;a href=&#34;http://www.parld.com/api?act=download&amp;amp;type=mac&#34;&gt;下载地址&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目前的Mac客户端功能还很简单，但是已经不影响使用了，制作过程中遇到了各种问题，发现在网上找Mac开发的相关资源实在是太难，所以我也同步写一点吧，分享给大家&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>基于类成员函数回调的线程池-连接池-任务队列</title>
      <link>https://sohunjug.com/posts/task-with-thread/</link>
      <pubDate>Thu, 28 Nov 2013 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/task-with-thread/</guid>
      <description>&lt;p&gt;在现实生活中，经常会用到线程池与队列的应用，所以写了一套可复利用接口。&lt;/p&gt;
&lt;p&gt;其中优先级队列的蓝本从stl中复制出来的，唯一修改的地方就是添加了一个写锁，当top时加锁，pop后才解锁，保证真正不重复取出或丢失数据。
因为使用模板来构造，所以目前只支持类成员函数的回调。
与线程池共同使用时，外部调用时，需要new一个任务类来添加到队列中，线程池主函数会调用完成后自动delete析构。&lt;/p&gt;
&lt;p&gt;此基于成员函数回调的线程池需要同优先级队列共同使用，原理是初始化一个初始为5个线程的线程池，并将自己的控制线程添加到最高优先级启动。控制线程的目的是当任务队列比较多时增加线程来增加效率，当任务队列少时减速线程来节约资源（目前未实现）&lt;/p&gt;
&lt;p&gt;连接池，需要同线程池与任务队列共同使用，同样为先初始化一定数量的连接，供多线程调度使用，其中包含一个控制线程，来控制连接池中的连接数量，当取出一个连接来用时，会给取出的连接加锁，所以使用完后需要调用返回函数，来归还使用完的连接。&lt;/p&gt;
&lt;p&gt;连接池的作用就是不必每次都创建连接使用完成后断开连接，而使用模板来构造扩展性更强，所以需要自己额外来写创建连接，与断开连接函数。&lt;/p&gt;
&lt;p&gt;&lt;!-- raw HTML omitted --&gt;需要注意连接池需要在线程之前析构。&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;任务队列文件代码：&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>MongoDB与OracleDB效率测试</title>
      <link>https://sohunjug.com/posts/mongodb-oracle/</link>
      <pubDate>Mon, 26 Aug 2013 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/mongodb-oracle/</guid>
      <description>&lt;p&gt;最近因为任务需要，专门调研了一下MongoDB数据库的效率。与常规的OracleDB做了一下对比。&lt;/p&gt;
&lt;p&gt;MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
他支持的数据结构非常松散，是类似json的bjson格式，因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大，其语法有点类似于面向对象的查询语言，几乎可以实现类似关系数据库单表查询的绝大部分功能，而且还支持对数据建立索引。
Mongodb的存储方式是文档式存储，并不是Key-Value形式。
Mongodb的主要的三种集群方式的搭建：Replica Set、 Sharding、 Master-Slaver。
其他大部分内容互联网上也有很多，我也就不再做介绍了。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>MacBook Pro – Fan Control</title>
      <link>https://sohunjug.com/posts/mac-fan-control/</link>
      <pubDate>Fri, 26 Jul 2013 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/mac-fan-control/</guid>
      <description>&lt;p&gt;这篇文章主要介绍了在Mac OS X 10.8.4、Ubuntu 13.04 x64和Windows 7 x64三个系统平台下对MacBook Pro（以下简称：MBP）的风扇控制，因为不知道为什么的原因，我个人和不少人的MBP都表现出风扇调速迟钝的问题，通常都是2000RPM左右，然后等到机器超过90摄氏度后风扇开始提速到6000RPM进行散热，但这个肯定不是我们需要的效果，我们要的是，要么自己控制，要么自动调整。&lt;/p&gt;
&lt;p&gt;目前，本人的电脑装的是三系统共存，就是Mac OS X 10.8.4、Ubuntu 13.04 x64和Windows 7 x64&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>简单的内存管理类（关于malloc与free）</title>
      <link>https://sohunjug.com/posts/memory/</link>
      <pubDate>Wed, 26 Jun 2013 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/memory/</guid>
      <description>&lt;p&gt;大家在写代码的时候是否有忘记free指针的时候呢？&lt;/p&gt;
&lt;p&gt;如果是大型项目肯定会用一些比较稳定的开源库一类的来解决。而如果是私人的小项目，或者是测试一类的代码遇到这类问题还需要各种检查，是否很浪费时间呢？&lt;/p&gt;
&lt;p&gt;给大家分享一个我个人使用的内存管理类哈~可以使用Create一块空间，之后可以不需要去管这块空间最后是否free掉，因为类析构时候会自动帮助free掉，而如果想要手动free也支持，直接传入申请空间时候取得的ID就可以指定析构了。这个还是比较适合私人用用哈~&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>关于makefile的通用方案（个人测试推荐方案）</title>
      <link>https://sohunjug.com/posts/makefile/</link>
      <pubDate>Sun, 23 Jun 2013 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/makefile/</guid>
      <description>&lt;p&gt;在使用linux或者mac时，有时大家会写一些自己测试功能一类的小程序，可是如果只有1个文件时候还可以，直接gcc就OK了。&lt;/p&gt;
&lt;p&gt;而一旦文件多了以后可能就会很麻烦。这个makefile可以作为一个解决方案。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>关于脏数据、脏数据块的正确定义，commit的内部机制</title>
      <link>https://sohunjug.com/posts/oracle-dirty/</link>
      <pubDate>Mon, 24 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/oracle-dirty/</guid>
      <description>&lt;p&gt;有人觉得脏数据是指错误的业务流程在系统中产生的无用异常数据。  产生这种数据的原因可能是因为错误的业务流程或者手动在数据库中制造。&lt;/p&gt;
&lt;p&gt;例如在百度百科中，对脏数据的定义是这样的，“脏数据是指源系统中的数据不在给定的范围内或对于实际业务毫无意义，或是数据格式非法，以及在源系统中存在不规范的编码和含糊的业务逻辑”。&lt;/p&gt;
&lt;p&gt;无论这种定义是否正确，在oracle中脏数据的定义不是这样的。在oracle中，脏数据是指在内存中而未写入硬盘的数据。脏数据块即为在内存中而未写入硬盘的数据块。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Linux脚本</title>
      <link>https://sohunjug.com/posts/linux-shell/</link>
      <pubDate>Sun, 23 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/linux-shell/</guid>
      <description>&lt;p&gt;Linux下开发人员时间长了会使用各种脚本，来增加开发效率，分享一个本人常使用的自动登录脚本。&lt;/p&gt;
&lt;p&gt;首先需要安装插件
{% codeblock lang:bash %}
ubuntu       apt-get install expect
fedora       yum install expect.x86_64
opensuse     zypper install expect
{% endcodeblock %}
之后就可以这么写脚本了，需要传参数 IP、用户名、密码、服务器的语言类型，可以使用locale命令查看。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>没有进行commit操作的数据是否能被查询到，关于oracle的脏读和隔离级别</title>
      <link>https://sohunjug.com/posts/oracle-commit/</link>
      <pubDate>Sun, 23 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/oracle-commit/</guid>
      <description>&lt;p&gt;以前在辽宁电信做数据转换的时候曾经问过别人一个问题，“修改的数据没有进行commit操作时，能否被其他用户查询到”，当时就被同事鄙视了，在大家眼里这个问题的结果是弱智和显而易见的，但是其实这是一个可以深入研究的问题。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>我的vim配置</title>
      <link>https://sohunjug.com/posts/vim-profile/</link>
      <pubDate>Sat, 22 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/vim-profile/</guid>
      <description>&lt;p&gt;我用vimrc，其中配置了函数列表，目录列表，函数跳转，定义跳转，xml排版，自动关联cscope和tags，快捷注释。&lt;/p&gt;
&lt;p&gt;其中需要下载一些插件才能用，比如我用的fedora，需要下载的列表为
{% codeblock %}
vim-X11.x86_64
vim-common.x86_64
vim-enhanced.x86_64
vim-filesystem.x86_64
vim-halibut.noarch
vim-minimal.x86_64
vim-perl-support.noarch
cscope.x86_64
ctags.x86_64
{% endcodeblock %}
之后配置$HOME目录下的.vimrc&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim的xml排版</title>
      <link>https://sohunjug.com/posts/vim-xml/</link>
      <pubDate>Fri, 21 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/vim-xml/</guid>
      <description>&lt;p&gt;如果你手中有一个xml，而这个xml显示的排版非常混乱，大家看的时候可能会很为难，其实vim也可以实现xml的排版。&lt;/p&gt;
&lt;p&gt;比如你的xml是这样：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://sohunjug.com/img/blog/xml-11.jpeg&#34; alt=&#34;未排版的xml&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>末日杂记</title>
      <link>https://sohunjug.com/posts/diary/</link>
      <pubDate>Fri, 21 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/diary/</guid>
      <description>&lt;p&gt;眨眼间半年就过去了，毕业后的日子终究没有上学时候自由，可是大家都希望毕业，有点纠结呀。&lt;/p&gt;
&lt;p&gt;工作的生活有点千篇一律，天天都是代码，bug，需求。不过初次步入社会，与学校中的生活还真是区别甚大。天天的生活仿佛回到了小学，每天盼着下班，周末，放假。&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>让wordpress支持自定义菜单</title>
      <link>https://sohunjug.com/posts/custom-wordpress-menu/</link>
      <pubDate>Wed, 19 Dec 2012 00:00:00 +0800</pubDate>
      
      <guid>https://sohunjug.com/posts/custom-wordpress-menu/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WORDPRESS博客有些主题不支持自定义菜单，只能够选择页面和所有的分页目录作为菜单，所以为了解决这一问题，找了一些资料&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
