<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YearnWang的专栏]]></title><description><![CDATA[软件行业 职业经理人]]></description><link>https://blog.youkuaiyun.com/doubleuto</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; doubleuto]]></copyright><item><title><![CDATA[DoS攻击防范]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/79345004</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/79345004</guid><author>doubleuto</author><pubDate>Thu, 22 Feb 2018 01:43:09 +0800</pubDate><description><![CDATA[利用扩展模块limit，我们还可以配置iptables规则，实现DoS攻击防范：iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT--litmit 25/minute 指示每分钟限制最大连接数为25--litmit-burst 100 指示当总连接数超过100时，启动 ...]]></description><category></category></item><item><title><![CDATA[用代码实现截屏并保存为图片]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/78484636</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/78484636</guid><author>doubleuto</author><pubDate>Wed, 08 Nov 2017 23:26:33 +0800</pubDate><description><![CDATA[- (NSImage *)screenShot
{
    CFArrayRef windowsRef = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
    NSRect rect = [[NSScreen mainScreen] frame];
    CGImageRef imgRef = CGW]]></description><category></category></item><item><title><![CDATA[在macOS上使用网易mumu模拟器和触动精灵]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/74978130</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/74978130</guid><author>doubleuto</author><pubDate>Tue, 11 Jul 2017 15:34:00 +0800</pubDate><description><![CDATA[在macOS上使用网易mumu模拟器和触动精灵目的在MAC电脑上，测试触动精灵,可以调试手机应用APP我当前的操作系统需要准备的东西：
网易mumu for mac
触动精灵 apk
Charles 我在这里主要做端口转发用
TouchSpriteStudio 
给模拟器加入端口转发
  * 
  adb devicecs 
  adb forward tcp:50004 tcp:50005]]></description><category></category></item><item><title><![CDATA[与Weex2.x的一次亲密接触（Web和IOS平台上共用一套代码）]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/72854592</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/72854592</guid><author>doubleuto</author><pubDate>Sat, 03 Jun 2017 23:20:26 +0800</pubDate><description><![CDATA[全平台使用一套代码]]></description><category></category></item><item><title><![CDATA[架构思想]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/50622903</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/50622903</guid><author>doubleuto</author><pubDate>Tue, 02 Feb 2016 11:19:54 +0800</pubDate><description><![CDATA[0. 我前面所说的意思并不是DataCenter交由APIManager管辖。而是有一个业务Manager，这个业务Manager管辖APIManager和DataCenter。

1. 这里应该没Table什么事儿。

你通过reformer取出来的recordArray里面的所有record，都必须要符合CTPersistanceRecordProtocol。然后你会有一个DataCe]]></description><category></category></item><item><title><![CDATA[在IOS上集成VOIP功能能后，前后台切换时遇到的坑]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/50592201</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/50592201</guid><author>doubleuto</author><pubDate>Wed, 27 Jan 2016 10:14:45 +0800</pubDate><description><![CDATA[最近公司的设计APP中，集成进去了VOIP的功能，今天我就在IOS上集成VOIP功能，简单述说一下：
1、首先加入pushkit的功能包。
2、申请一个VOIPPush的证书，服务器要通过这个证书，才能给客户端推送VOIP消息，看官方解释，应该1s能到，具体参考官方的pushKit文档。
3、启动voip推送功能。
4、打开后台运行voip,
     


以上功能，只是做离线V]]></description><category></category></item><item><title><![CDATA[稳定流畅的APP编写时候的注意事项]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/50248669</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/50248669</guid><author>doubleuto</author><pubDate>Thu, 10 Dec 2015 13:40:36 +0800</pubDate><description><![CDATA[稳定流畅的APP编写时候的注意事项把一个客户端做得稳定、无奔溃、流畅，是写客户端朋友的梦想，今天我就来给大家提一些检点的建议，也是我自身的经历和建议:客户端的一些指标
运行多小小时，不崩溃
打开多少次页面，崩溃率控制到多少
让用户不急躁、不烦躁
一些关键词
服务器没有返回数据，导致奔溃了
网络不好，数据来的太慢，界面就不流畅了
这是从数据库读的数据，所以就慢
界面不应与协议相关
界面应该有自己的逻辑]]></description><category></category></item><item><title><![CDATA[粗略地在iOS中使用URLManager架构]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/47295027</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/47295027</guid><author>doubleuto</author><pubDate>Wed, 05 Aug 2015 11:56:08 +0800</pubDate><description><![CDATA[最近粗略的学习了一些iOS架构，本文算是对最近学习的一些总结，并希望能够帮助到一些初学者提升下架构程序时的思路。



1.URLManager

URLManager的架构最早出现Facebook的Three20框架中TTNavigator。是一个基于自定义URL协议安排ViewController的松耦合协议。

在传统ViewController中，从A push B, A与]]></description><category></category></item><item><title><![CDATA[NSCache在IOS中的使用]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/47294969</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/47294969</guid><author>doubleuto</author><pubDate>Wed, 05 Aug 2015 11:53:48 +0800</pubDate><description><![CDATA[NSCache一言蔽之是一个很傻瓜式的缓存控件，存取方式类似于NSDictionary，工作方式与苹果的内存管理体系相一致，在内存吃紧的时候，它会自动释放存储的对象。所以，你项目中任何你称之为缓存却不是 NSCache 对象的东西都应该被换成 NSCache。（在使用它之前，我自己写了很多带cache的NSArray
 或者 NSDictionary，现在想来，这些都是不合理的）]]></description><category></category></item><item><title><![CDATA[layoutSubviews总结]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/45155677</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/45155677</guid><author>doubleuto</author><pubDate>Mon, 20 Apr 2015 21:13:06 +0800</pubDate><description><![CDATA[ios layout机制相关方法

-
 (CGSize)sizeThatFits:(CGSize)size-
 (void)sizeToFit

——————-

-
 (void)layoutSubviews-
 (void)layoutIfNeeded-
 (void)setNeedsLayout

——————–

-
 (void)setNeedsDisp]]></description><category></category></item><item><title><![CDATA[架构、引擎与UI通用语言解释]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/42690765</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/42690765</guid><author>doubleuto</author><pubDate>Wed, 14 Jan 2015 00:08:49 +0800</pubDate><description><![CDATA[做项目的人，通常都懂得我说的这三个词，今天我用通用点的语言来解释一下：
其实，我们在做一个项目的时候，跟生产车是差不多的。


架构：整个车所有的东西，应该怎么放，放到哪个位置更合理，怎么才能让用户感觉到舒适。引擎：发动机、螺丝、布线，怎么能让车跑的更快。外观：当我们走到车的面前，能看到的部分，都叫外观。]]></description><category></category></item><item><title><![CDATA[IOS及时通讯中消息的处理方式]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/42170591</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/42170591</guid><author>doubleuto</author><pubDate>Fri, 26 Dec 2014 13:52:41 +0800</pubDate><description><![CDATA[通常我们做及时通讯的消息，都是使用socket，原因其实很多，其中最重要的一点就是socket可以由服务器主动推送消息到客户端。
我们都知道在IOS中，我们的APP可以被切换到后台，当我们APP被切换到后台的时候，官方的说法是说，可以给我们300秒的时间，处理一些从前台进入后台的事情，但不一定是300秒，如果内存吃紧的情况的时候，就会被操作系统无情的kill掉。


通常客户端与服务器保持]]></description><category></category></item><item><title><![CDATA[AFNetWork中使用https]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/42154109</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/42154109</guid><author>doubleuto</author><pubDate>Thu, 25 Dec 2014 21:54:18 +0800</pubDate><description><![CDATA[AFNetWork这个库，是现在大家使用比较用的库，我们在做即时通讯的时候，也会加入这个库，用起来还是比较爽的。
有时候我们会用到https,在AFNetwork这个库，其实已经很好的封装了https，是的我们很简单就能使用。]]></description><category></category></item><item><title><![CDATA[做即时通讯6年，准备陆续分享一些即时通讯解决方案。]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/42043105</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/42043105</guid><author>doubleuto</author><pubDate>Sat, 20 Dec 2014 15:43:29 +0800</pubDate><description><![CDATA[做即时通讯这一行已经有6年了，这过程中做过很多种模式、socket、xmpp、http、https多种模式，以后打算把一些即时通讯的解决方案分享出来，希望大家能支持。]]></description><category></category></item><item><title><![CDATA[objective-c  两个常用的判断NULL的用法]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/41594441</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/41594441</guid><author>doubleuto</author><pubDate>Sat, 29 Nov 2014 11:49:49 +0800</pubDate><description><![CDATA[判读NSString判读NSNumber

#define OBJ_IS_NIL(s) (s==nil || [s isKindOfClass:[NSNull class]])
#define Number_IS_NIL(s) (s==nil || [s isKindOfClass:[NSValue class]])]]></description><category></category></item><item><title><![CDATA[今天博客升级为专家级别，特此纪念]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/41593121</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/41593121</guid><author>doubleuto</author><pubDate>Sat, 29 Nov 2014 09:25:59 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[nginx map]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/40855491</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/40855491</guid><author>doubleuto</author><pubDate>Thu, 06 Nov 2014 09:07:10 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[基本概念和Dispatch Queue]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/40450181</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/40450181</guid><author>doubleuto</author><pubDate>Sat, 25 Oct 2014 09:48:57 +0800</pubDate><description><![CDATA[什么是GCD？

Grand Central Dispatch或者GCD，是一套低层API，提供了一种新的方法来进行并发程序编写。从基本功能上讲，GCD有点像NSOperationQueue，他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效，并且它不是Cocoa框架的一部分。

除了代码的平行执行能力，GC]]></description><category></category></item><item><title><![CDATA[如何理解 File's Owner 与 First Responder]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/40149575</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/40149575</guid><author>doubleuto</author><pubDate>Thu, 16 Oct 2014 15:41:47 +0800</pubDate><description><![CDATA[＊＊＊ xib 文件是什么的缩写？ 作用是什么？ ＊＊＊

.xib 文件存储 Interface Builder 布局。

 

NIB 和 XIB 都是 Interface Builder 的图形界面设计文档。引用《Cocoa Programming for Mac OSX》一书的说法，Interface Builder 把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 ]]></description><category></category></item><item><title><![CDATA[iOS技能树]]></title><link>https://blog.youkuaiyun.com/doubleuto/article/details/40106195</link><guid>https://blog.youkuaiyun.com/doubleuto/article/details/40106195</guid><author>doubleuto</author><pubDate>Wed, 15 Oct 2014 09:00:37 +0800</pubDate><description><![CDATA[]]></description><category></category></item></channel></rss>