<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gglinux的专栏]]></title><description><![CDATA[在路上]]></description><link>https://blog.youkuaiyun.com/gglinux</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gglinux]]></copyright><item><title><![CDATA[PHP读取Excel数据]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/89926864</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/89926864</guid><author>gglinux</author><pubDate>Tue, 07 May 2019 18:30:53 +0800</pubDate><description><![CDATA[承接上篇

处理中-内容的处理
设置reader和编码
$file_path = 'test.xls';
$excel5_reader = new PHPExcel_Reader_Excel5();
$excel5_reader-&gt;_defaultEncoding = $encoding;
$excel2007_reader = new PHPExcel_Reader_Excel2007(...]]></description><category></category></item><item><title><![CDATA[导出数据到Excel的实用方案]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/89408828</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/89408828</guid><author>gglinux</author><pubDate>Fri, 19 Apr 2019 21:57:07 +0800</pubDate><description><![CDATA[处理前-库的选择
实际工作场景中，经常需要将系统中数据导出为Excel，便于产品和运营查阅和二次处理。本文详细介绍了使用PHP导出数据的方法。
PHP操作Excel主要有两个第三方库，一个是PHPExcel，另外一个是PhpSpreadsheet。其中PhpSpreadsheet是PHPExcel的升级版本。
PHPExcel本身支持超链接、样式设置（字体、颜色、边框线、对齐等）、行高列宽设置、表...]]></description><category></category></item><item><title><![CDATA[前端和后端实现SVG转图片]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/87812389</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/87812389</guid><author>gglinux</author><pubDate>Wed, 20 Feb 2019 18:17:59 +0800</pubDate><description><![CDATA[前端方案
实时保存为Base64
用户通过界面操作SVG内容，当生成或者编辑SVG时，实时将SVG内容转换成Base64编码的img标签，塞回到原来的DOM节点中。此种方式在前端通过浏览器就可以完成，无须后端的参与。
方案原理是使用canvas做中转，将svg+xml转换成png。在无需后端参与做二次处理时，可以满足业务场景。
// 前端demo代码
function drawInlineSVG(...]]></description><category></category></item><item><title><![CDATA[老树发新芽-前后端分离实践]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/82625510</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/82625510</guid><author>gglinux</author><pubDate>Tue, 11 Sep 2018 14:36:52 +0800</pubDate><description><![CDATA[最早从Web2.0 Ajax技术开始兴起，就有提前后端分离了。从Gmail的单页应用，到现在的单页应用层出不穷。浏览器渲染引擎也一直在突破，越来越多的交互、计算放在了浏览器这一层。传统后端MVC架构，变成了前后端的MVC。后台的接口变成了模型层，逻辑处理层从CGI变成了JavaScript，展示层则还是标记语言HTML和CSS。





为什么要做前后端分离

当前项目从立项到2018年，已经有...]]></description><category></category></item><item><title><![CDATA[小萌新变身社会人]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/82054021</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/82054021</guid><author>gglinux</author><pubDate>Sat, 25 Aug 2018 18:26:02 +0800</pubDate><description><![CDATA[松浦弥太郎说过，所谓工作就是证明自己有用。很大白话的道理，深表赞同。劳动者付出了劳动，雇佣者给与其报酬。报酬的高低取决于劳动者证明自己有多有用。

工作所需要的技能包含两个层面，其一是专业技能，其二是通用技能。我们能独立完成这项工作，依赖的是专业技能，即工作的专业性。不管是厨师、医生、会计、程序员还是地铁司机，专业度不过关是最难逾越的发展瓶颈。

人和人之间是一个复杂的关系网络，个体的表现不仅需要...]]></description><category></category></item><item><title><![CDATA[TAPD和敏捷研发]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/79688426</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/79688426</guid><author>gglinux</author><pubDate>Sun, 25 Mar 2018 17:10:29 +0800</pubDate><description><![CDATA[这篇文章，原计划是去年9月份写的，一直拖到了现在。主要原因在于一直抽不出时间，其次对整个敏捷研发，包括现如今的devops也只是浅尝辄止，害怕误人子弟和广告嫌疑。笔者一方面作为敏捷研发的实践者，另一方面作为敏捷研发的受益者。站在这两层身份上，浅谈下TAPD和敏捷研发。



TAPD介绍

TAPD，是腾讯敏捷产品研发平台，强调敏捷迭代、小步快跑，使用范围包含腾讯和腾讯的合作伙伴。目前TAPD已开...]]></description><category></category></item><item><title><![CDATA[公司那些事]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/73660675</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/73660675</guid><author>gglinux</author><pubDate>Sat, 24 Jun 2017 11:20:33 +0800</pubDate><description><![CDATA[毕业一年了，上上下下经历了不少公司。自己创过业，也在B轮公司待过，也在D轮做过事，另外也在上市公司做过螺丝钉。林林总总算下来，也有五家公司了。也是挺折腾的。经常有人会觉得，这小伙沉不下来。其实对应聘者而言，反反复复更换工作，当然有其不好之处。但从另一方面考虑有些人为什么会频繁更换工作呢？人往往喜欢待在舒适区，待久了一个地方就懒的去更换巢穴。频繁的跳出舒适区，也是对自己发展现状不满意的宣泄。这也是对笔]]></description><category></category></item><item><title><![CDATA[yii2-plus]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/72829839</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/72829839</guid><author>gglinux</author><pubDate>Thu, 01 Jun 2017 11:43:21 +0800</pubDate><description><![CDATA[yii2-plus，是基于yii2.0的脚手架项目。支持restapi，Admin(管理后台)，Web（www服务），服务化。集成JWT、Hprose、推送、队列、Element UI。yii2-plus特点便于全站点开发
中小型独立的站点，使用yii2-app-basic或者yii2-app-advanced，采用lnmp架构即可。但对于支持多平台的站点而言，其不仅需要面对PC浏览器和移动设备的w]]></description><category></category></item><item><title><![CDATA[PHP C扩展开发]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/71128504</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/71128504</guid><author>gglinux</author><pubDate>Wed, 03 May 2017 17:24:08 +0800</pubDate><description><![CDATA[对PHP C扩展开发感兴趣的同学可以看下，项目包含8个demo，每个demo都可抽离出来独立运行。相比较使用ext_skel生成的骨架，demo会更好理解（只包含核心方法）。每个demo都有相应的测试文件和运行文档，另外代码中也会有较详细的注释。RequirementPHP 5.2 +InstallLinux 编译安装$ /$path/phpize
$ ./configure
$ make && m]]></description><category></category></item><item><title><![CDATA[书籍推荐]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/70247739</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/70247739</guid><author>gglinux</author><pubDate>Wed, 19 Apr 2017 23:12:03 +0800</pubDate><description><![CDATA[这几年，看了一些书。罗列出来，希望能给需要的人一些借鉴。正好在找工作，也能复习下。当然笔者是计科毕业的，专业书除外。后续的一些书籍信息，也会更新到这里。MySQL技术内幕-Innodb存储引擎豆瓣，主要讲述Innodb存储引擎的实现，写的也比较深入（索引实现，事务等）。但没讲具体的索引优化和注意的点。推荐阅读第五章和第七章。也可以结合看下mysql索引原理。Redis设计与实现豆瓣，主要讲述Redi]]></description><category></category></item><item><title><![CDATA[IM系统设计]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/70186001</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/70186001</guid><author>gglinux</author><pubDate>Sat, 15 Apr 2017 18:16:22 +0800</pubDate><description><![CDATA[即时通讯（Instant Messaging，简称IM）是一个实时通信系统，允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。实现方式有两种。 
第一种基于Server转发的，Client双方通信会经过Server转发来完成消息传递。例如QQ、微信。第二种是基于P2P(点对点)的。P2P的实现依赖于客户端之间的互联，但由于NAT与防火墙的存在，客户端无法直接互联，需要coturn服务器]]></description><category></category></item><item><title><![CDATA[如何高效率的学习新技术]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/69666785</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/69666785</guid><author>gglinux</author><pubDate>Sat, 08 Apr 2017 13:25:45 +0800</pubDate><description><![CDATA[除了拼搏和努力，成功也是有方法的。写这个话题，用以阐述下自己学习新技术的一套形而上学的东西，希望能给大家带来帮助。当然，每个人都有自己的方法论，适合自己的即是最好的。做好规划对笔者而言，在学校和工作中，经常会用一些空余时间学习新的技术或者框架。这个时候往往随性而为，看到感兴趣的或者热门的就去看下，没有约束。从人性出发，每个人都是有惰性的。看到好看的电影，便会去看。看到好友邀请打游戏，就会去打一盘游戏]]></description><category></category></item><item><title><![CDATA[PHP 7下安装Swoole和Yar、Yaf]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/68951381</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/68951381</guid><author>gglinux</author><pubDate>Sun, 02 Apr 2017 11:36:06 +0800</pubDate><description><![CDATA[笔者开发坏境：CentOS7，PHP 7.0.16安装PECL//php版本 > 7
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar//php版本 < 7
$ yum install php-pear
//否则会报错PHP Parse error:  syntax error, unexpected //'new' (T_NEW)]]></description><category></category></item><item><title><![CDATA[用户系统设计]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/68948901</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/68948901</guid><author>gglinux</author><pubDate>Sat, 01 Apr 2017 23:42:30 +0800</pubDate><description><![CDATA[用户系统，主要分为账号体系和用户信息两大类。账号体系包括，登陆验证、注册、第三方授权、以及权限管理。用户信息包括，用户地理位置、用户属性、用户设备信息、还有用户日志信息。本文会介绍用户系统的具体落地方案。登陆验证在一般项目账号体系中，一般会要求支持手机、邮箱、账号、QQ、微信、微博实现登陆。后面三种方式都是基于第三方授权后，完成的身份验证。手机、邮箱、账号则是相对传统的登录方式。用户身份与登录的授权]]></description><category></category></item><item><title><![CDATA[Feed设计与实现]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/60763159</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/60763159</guid><author>gglinux</author><pubDate>Tue, 07 Mar 2017 14:13:33 +0800</pubDate><description><![CDATA[Feed，在社交和信息推荐的App与网站中，基本都会用到的。例如常用的新浪微博，用户登录进入后，展现给我们的就是feed信息流。新浪微博的信息，来自于你关注人所发布的内容。还有微信的朋友圈，今日头条的信息流，好友发布的美拍等，这些都是Feed。玩过知乎的人应该知道，在知乎Feed中，会显示某某关注了某某话题，某某点赞或者赞同了某个回答。广义来讲，这些也算是一种Feed。本文会先介绍几种不同的Feed]]></description><category></category></item><item><title><![CDATA[App首屏接口性能优化]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/57415612</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/57415612</guid><author>gglinux</author><pubDate>Sun, 26 Feb 2017 15:37:00 +0800</pubDate><description><![CDATA[目前所在项目组开发的是一款母婴产品，集工具和社区属性。截止本文发布，注册用户接近7000万，首屏接口日访问量过百万。在首屏中，会给用户展现不同的数据，比如每日任务，宝宝（婴儿）每日概述，胎教音乐，运动视频，热帖等模块。首屏接口性能的好坏，将直接影响到app的使用体验。我们服务端RPC框架采用RESTful，其底层是curl实现的。curl采用http协议的，另外我们服务端的技术栈是PHP。我们都知道]]></description><category></category></item><item><title><![CDATA[InnoDB存储引擎（一）]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/54915385</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/54915385</guid><author>gglinux</author><pubDate>Tue, 07 Feb 2017 20:14:58 +0800</pubDate><description><![CDATA[InnoDB存储引擎（一）整体结构内存池
维护线程／进程内部数据结构
缓存磁盘文件（cache）
对数据的更新或者新增操作，避免直接刷新磁盘
重做日志缓冲（redo log） 后台线程
Master Hhread，将更新的数据（包括新增和被修改的数据）异步刷新到磁盘，维护内存池和磁盘中的数据的一致性。
IO Thread分为Insert buffer Thread,log thread,read t]]></description><category></category></item><item><title><![CDATA[2016年终总结]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/54238072</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/54238072</guid><author>gglinux</author><pubDate>Sun, 08 Jan 2017 23:15:01 +0800</pubDate><description><![CDATA[很久没安静下来写点什么了，太懶了。Review Plan学习去年计划看一些底层的书籍，基本都完成了。书单是 
1. redis设计与实现 100% 
2. mysql技术内幕 100% 
3. 深入理解nginx 11% 
4. nginx实战开发 100% 
5. 大型网站技术架构 100% 
6. Hadoop实战 70% 
7. 微服务设计 21% 
8. 激荡三十年 14% 
9. 利用py]]></description><category></category></item><item><title><![CDATA[Mysql 技术内幕（二）]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/51635943</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/51635943</guid><author>gglinux</author><pubDate>Sat, 11 Jun 2016 11:53:11 +0800</pubDate><description><![CDATA[MySQL技术内幕系列博客，是本人在阅读《MySQL技术内幕 InnoDB》存储引擎所做的整理总结。本节内容源于书中三、四章。MySQL 使用的文件文件类型分类InnoDB 数据表表空间文件数据页约束分区]]></description><category></category></item><item><title><![CDATA[Mysql 技术内幕（一）]]></title><link>https://blog.youkuaiyun.com/gglinux/article/details/51635891</link><guid>https://blog.youkuaiyun.com/gglinux/article/details/51635891</guid><author>gglinux</author><pubDate>Sat, 11 Jun 2016 11:36:08 +0800</pubDate><description><![CDATA[MySQL技术内幕系列博客，是本人在阅读《MySQL技术内幕 InnoDB》存储引擎所做的整理总结。本节内容来源于书中前两章。MySQL 体系结构MySQL结构模块图Innodb 存储引擎Innodb 体系结构图Innodb 内存池checkPointInnodb 关键特性]]></description><category></category></item></channel></rss>