<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lx1848的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lx1848</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lx1848]]></copyright><item><title><![CDATA[LLM并没有提高程序员的生产力]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/146034796</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/146034796</guid><author>lx1848</author><pubDate>Wed, 05 Mar 2025 10:07:34 +0800</pubDate><description><![CDATA[坎宁安定律]]></description><category></category></item><item><title><![CDATA[samba配置]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/121322882</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/121322882</guid><author>lx1848</author><pubDate>Sun, 14 Nov 2021 20:38:13 +0800</pubDate><description><![CDATA[初级配置
https://ubuntu.com/tutorials/install-and-configure-samba#4-setting-up-user-accounts-and-connecting-to-share
安装过程不赘述，参考以上文章或者其他博客。
创建要共享的目录：mkdir /home/sure/data/movie
备份初始配置：
# mv /etc/samba/smb.conf /etc/samba/smb.conf-bk

配置共享路径:
# vim /etc/samba/sm]]></description><category></category></item><item><title><![CDATA[Storm底层消息处理线程模型]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/118060531</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/118060531</guid><author>lx1848</author><pubDate>Sat, 19 Jun 2021 23:06:27 +0800</pubDate><description><![CDATA[util.clj
async-loop函数会创建一个线程，并后台循环执行传入的函数afn。afn返回值是一个整数，async-loop以该返回值为执行时间间隔。

disruptor.clj
consume-loop*函数（*表示有副作用）会不断从queue中取出消息，并回调handler去处理这些消息。由于async-loop接收的函数返回值为0，所以会无间隔持续执行。

线程模型图

在Storm中，一个Topology由Bolt和Spout组成，他们的实例叫做Task，是最小逻辑执行单元。调度也是以T]]></description><category></category></item><item><title><![CDATA[Storm流是什么，原理是怎样的？]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/118060436</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/118060436</guid><author>lx1848</author><pubDate>Sat, 19 Jun 2021 23:00:18 +0800</pubDate><description><![CDATA[storm中，各个组件通过OutputCollector发送tuple。通过这个类中的emit或者emitDirect方法，可以将指定的tuple发送给指定流。这个流在底层的实现是怎样的？多个Topology都使用默认流时，如何做到隔离？
看OutputCollector的代码，是一个代理类，实现了IOutputCollector接口，创建它的对象时会传入实际的委托类，那么这个OutputCollector委托类是是从哪里来的呢？从委托类的代码中，获取我们能解决最初的问题。
executor.clj


t]]></description><category></category></item><item><title><![CDATA[STORM事务框架模型 - TransactionTopology]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/118060206</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/118060206</guid><author>lx1848</author><pubDate>Sat, 19 Jun 2021 22:51:33 +0800</pubDate><description><![CDATA[1 TransactionTopology例子
MemoryTransactionalSpout spout = new MemoryTransactionalSpout(DATA, new Fields("word"), PARTITION_TAKE_PER_BATCH);
TransactionalTopologyBuilder builder = new TransactionalTopologyBuilder("global-count", "spout", spout, 2);
builder.s]]></description><category></category></item><item><title><![CDATA[zmq库、pyzmq的编译及安装]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/115608098</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/115608098</guid><author>lx1848</author><pubDate>Sun, 11 Apr 2021 22:39:20 +0800</pubDate><description><![CDATA[转载请注明来源: http://blog.youkuaiyun.com/lx1848/article/details/50393128
Centos下安装zmq库及pyzmq
1. ZeroMQ简介
ZMQ（ØMQ、ZeroMQ, 0MQ）看起来像是一个网络库，但它工作起来更像是一个并发框架。它可以提供线程间、进程间、TCP、广播等类型的Socket通信。你可。ZMQ的以构建多种通信模式，如Fanout、发布-订阅、任务分发、请求-应答等，它优异的性能足以应对集群应用的性能需求。它使用异步I/O机制，这让你能够轻松构建]]></description><category></category></item><item><title><![CDATA[TCP/IP的TCP调优优化]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/113820334</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/113820334</guid><author>lx1848</author><pubDate>Mon, 15 Feb 2021 22:35:44 +0800</pubDate><description><![CDATA[1 优化目标
降低网络拥塞。总是有效吗？并不是，它们有特定的使用场景。
2 Nagle算法和Delayed ACK算法
在TCP/IP协议中，每一个报文都是由报文头（header）和报文体（payload）组成。就像我们网上买的书到了，书是装在一个袋子里，然后会贴一个标签，上面包含了一些关键信息，比如：发件人姓名、发件人电话、发件人地址、收件人姓名、收件人电话、收件人地址、物品简介。这里书类似报文体，标签上的关键信息类似报文头。
如果一个报文的报文体尺寸非常小，甚至比报文头还小，没有有效利用带宽，在网络流量]]></description><category></category></item><item><title><![CDATA[12306抢票chrome插件介绍]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/113805251</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/113805251</guid><author>lx1848</author><pubDate>Sun, 14 Feb 2021 01:15:28 +0800</pubDate><description><![CDATA[项目地址：https://github.com/sniperLx/12306-ticket-tool
找黄牛太贵，所以自己抽空写了个小插件自己用。界面能用就行，比较简陋，见谅。

]]></description><category></category></item><item><title><![CDATA[akka http使用demo]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/113101336</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/113101336</guid><author>lx1848</author><pubDate>Mon, 25 Jan 2021 01:05:14 +0800</pubDate><description><![CDATA[基于HTTP的REST服务
一个REST HTTP服务由一系列REST API组成，每个API会包括以下两个要素：

API描述，比如：GET /usrs/，描述这个API使用GET方法查询指定用户的信息。
API处理器。包含了这个API具体的实现逻辑。

一个HTTP API的处理流程大概是，HTTP服务器收到HTTP请求，解析出HTTP中的URL，获取到URL中的API PATH及HTTP方法。然后将这个API路由到指定的API处理器，进而获取到响应值，然后HTTP服务器将响应封装为HTTP响应发回给客]]></description><category></category></item><item><title><![CDATA[mariadb登陆报错: 1698 - Access denied for user]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/106592967</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/106592967</guid><author>lx1848</author><pubDate>Sun, 24 Jan 2021 19:47:03 +0800</pubDate><description><![CDATA[通过shell终端中可以免密码登陆mysql -uroot，但是使用navicat for mariadb登陆报错：1698 - Access denied for user 'root'@'localhost'
Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8

MariaDB [mysql]&gt; select user,host,plugin from user where user='root'\G;
*********************]]></description><category></category></item><item><title><![CDATA[sql中 join 和 union区别]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/106121624</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/106121624</guid><author>lx1848</author><pubDate>Sat, 06 Jun 2020 18:18:01 +0800</pubDate><description><![CDATA[Joins and Unions can be used to combine data from one or more tables. The difference lies in how the data is combined.
In simple terms, joins combine data into new columns. If two tables are joined together, then the data from the first table is shown in o]]></description><category></category></item><item><title><![CDATA[shell - xargs用于字符串分割]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/106584851</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/106584851</guid><author>lx1848</author><pubDate>Sat, 06 Jun 2020 11:33:41 +0800</pubDate><description><![CDATA[today is sunny#Ted wanna
go outside 

to play 

上面这段话格式非常乱，单词分割有用到空格、换行符和#，如果我想统计里面的单词列表，该怎么做？
假设这句话放在文件word.txt中。
# cat words.txt | xargs -n1 -d"#"
today is sunny
Ted wanna
go outside 

to play 



这里用xargs来实现，xargs一般用来获取参数列表，默认会以空格、回车等不可见符号作为分隔符来获取参数列表，这]]></description><category></category></item><item><title><![CDATA[JDK8 ConcurrentHashMap的死锁bug]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/81256443</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/81256443</guid><author>lx1848</author><pubDate>Sat, 12 Jan 2019 22:33:17 +0800</pubDate><description><![CDATA[JDK1.8中，其内部实现发生了较大变化，内部不再使用Segment锁，而是使用synchronized + CAS（Unsafe类）方式来实现对map的每个Node的细粒度锁控制。

其computeIfAbsent存在一个问题：



       Map&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;String, Integer&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; map = new ConcurrentHash]]></description><category></category></item><item><title><![CDATA[java开发中处理null的烦恼]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/81256430</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/81256430</guid><author>lx1848</author><pubDate>Sat, 28 Jul 2018 01:26:26 +0800</pubDate><description><![CDATA[private String getDevId(String id){
    String ret = queryDevIdFromDB(id);
    if (Objects.isNull(ret)) {
        return null;
    }
    return ret;
} 

public long caller(String id) {
    //input che...]]></description><category></category></item><item><title><![CDATA[《浪潮之巅》学习笔记 - 谷歌2]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/78011569</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/78011569</guid><author>lx1848</author><pubDate>Sun, 17 Sep 2017 17:02:18 +0800</pubDate><description><![CDATA[不败的神话搜索引擎上的胜利
2000，创办不到两年，员工不足百人的Google击败了当时市值搞大百亿美元的第一大搜索引擎公司Inktomi，成为雅虎的搜索服务商。要知道，在此之前，除了AltaVista这个搜索引擎公司外，几乎所有的大网站，包括雅虎和微软的MSN的搜索服务都采用Inktomi的搜索引擎。  在2000年时，雅虎市值曾高达1280亿美元，在当时可谓微软之后，无出其右(微软在200年3月]]></description><category></category></item><item><title><![CDATA[mysql的slave服务器如何关闭]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/77619937</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/77619937</guid><author>lx1848</author><pubDate>Sun, 27 Aug 2017 13:25:13 +0800</pubDate><description><![CDATA[执行STOP SLAVE语句。
  使用SHOW STATUS检查slave_open_temp_tables变量的值。
  如果值为0，使用mysqladmin shutdown命令关闭从服务器。
  如果值不为0，用START SLAVE重启从服务器线程。
  后面再重复该程序看下次的运气是否好一些]]></description><category></category></item><item><title><![CDATA[mysql数据库崩溃，无法重启mysqld]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/77619935</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/77619935</guid><author>lx1848</author><pubDate>Sun, 27 Aug 2017 13:24:26 +0800</pubDate><description><![CDATA[查看/etc/log/mysqld.log 
  http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html 
  http://dev.mysql.com/doc/refman/5.7/en/crashing.html
此链接最终采用这种方式解决了问题
修改/etc/my.cfg中的配置]]></description><category></category></item><item><title><![CDATA[http/1.0、http/1.1、http/2区别？]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/77619901</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/77619901</guid><author>lx1848</author><pubDate>Sun, 27 Aug 2017 13:19:17 +0800</pubDate><description><![CDATA[http1.0 和 http1.1区别？a. 改进了性能
   HTTP1.0规定浏览器与服务器只保持短暂的连接，浏览器的每次请求都需要与服务器建立一个TCP连接，
服务器完成请求处理后立即断开TCP连接，服务器不跟踪每个客户也不记录过去的请求。
   HTTP1.1支持持久连接(KeepAlive)，在一个TCP连接上可以传送多个HTTP请求和响应，减少了建立和关
闭连接的消耗和延迟。一个包含有许]]></description><category></category></item><item><title><![CDATA[什么是函数式编程？ C语言为何不是函数式语言？]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/77619881</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/77619881</guid><author>lx1848</author><pubDate>Sun, 27 Aug 2017 13:14:07 +0800</pubDate><description><![CDATA[什么是函数式编程？ C语言为何不是函数式语言？ 函数式语言有两个个主要的特点：1. 函数是“头等公民”。2. 数据的“immutability”. 操作的“无副作用”， 
这规避了‘锁’。 
函数式编程的函数是指数学上的函数：给定输入固定的输出，没有副作用。任何语言都可以用函数式的风格， 
只是难易不同罢了。 
比如函数 y = f(x). 和 函数 t = g(z); 在数学上，当 t在f(x)的]]></description><category></category></item><item><title><![CDATA[Linux的stat命令的使用]]></title><link>https://blog.youkuaiyun.com/lx1848/article/details/77619840</link><guid>https://blog.youkuaiyun.com/lx1848/article/details/77619840</guid><author>lx1848</author><pubDate>Sun, 27 Aug 2017 13:04:09 +0800</pubDate><description><![CDATA[- Linux的stat命令的使用[root@node1 mysql]# stat relay-log.info 
  File: `relay-log.info'
  Size: 31              Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 15735788    Li]]></description><category></category></item></channel></rss>