<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linjinxing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linjinxing]]></copyright><item><title><![CDATA[Monad你我他]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/42119587</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/42119587</guid><author>linjinxing</author><pubDate>Wed, 24 Dec 2014 09:22:03 +0800</pubDate><description><![CDATA[目录(?)[+]




初识函数式编程的时候，Monad这个词就一直萦绕在我的耳边眼前和脑海中。这个在1991年由Eugenio Moggi从Category理论引进而来的概念，如同函数式编程中的许多其他概念一样有着深厚的数学背景。也许正是如此，Monad对于习惯了用传统命令式编程语言思考的人们可谓是一个难以理解的Monster。然而这个概念在越来越多的地方不断地出现，Haskell语]]></description><category></category></item><item><title><![CDATA[iOS 高大上函数响应式编程框架ReactiveCocoa学习笔记1 简介]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/42106223</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/42106223</guid><author>linjinxing</author><pubDate>Tue, 23 Dec 2014 18:42:01 +0800</pubDate><description><![CDATA[ReactiveCocoa（其简称为RAC）是函数响应式编程框架。RAC具有函数式编程和响应式编程的特性。它主要吸取了.Net的 Reactive Extensions的设计和实现。]]></description><category></category></item><item><title><![CDATA[高大上函数响应式编程框架ReactiveCocoa学习笔记1 简介]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/42106203</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/42106203</guid><author>linjinxing</author><pubDate>Tue, 23 Dec 2014 18:39:41 +0800</pubDate><description><![CDATA[ReactiveCocoa（其简称为RAC）是函数响应式编程框架。RAC具有函数式编程和响应式编程的特性。它主要吸取了.Net的 Reactive Extensions的设计和实现。]]></description><category></category></item><item><title><![CDATA[iOS开发中很重要，很常用，但却容易被忽略的知识点：id ,NSObject, id<NSObject>区别]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/9994903</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/9994903</guid><author>linjinxing</author><pubDate>Fri, 16 Aug 2013 07:26:41 +0800</pubDate><description><![CDATA[我们经常会混淆以下三种申明（我是没有留意过）：

1. id foo1;2. NSObject *foo2;3. id foo3;
    第一种是最常用，它简单地申明了指向对象的指针，没有给编译器任何类型信息，因此，编译器不会做类型检查。但也因为是这样，你可以发送任何信息给id类型的对象。这就是为什么+alloc返回id类型，但调用[[Foo alloc] init]不会产生编译错误。
]]></description><category></category></item><item><title><![CDATA[利用FFMpeg对视频截图]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6576687</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6576687</guid><author>linjinxing</author><pubDate>Thu, 30 Jun 2011 11:11:00 +0800</pubDate><description><![CDATA[// tutorial01.c// Code based on a tutorial by Martin Bohme (boehme@inb.uni-luebeckREMOVETHIS.de)// Tested on Gentoo, CVS version 5/01/07 compiled with GCC 4.1.1 // A small sample program tha]]></description><category></category></item><item><title><![CDATA[复用类——组合，代理，还是继承？]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6407156</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6407156</guid><author>linjinxing</author><pubDate>Mon, 09 May 2011 17:46:00 +0800</pubDate><description><![CDATA[<br /><br />      类的复用基本是三种方式，组合，代理，继承。为了同样的复用目的，都是想在构建一个新类的时候加入一个已有类的对象。使用组合是直接在一个新类中new一个对象，使用继承其实也是通过构造方法中调用父类构造方法隐式的加入一个已有类的对象，所不同的是，使用组合更具灵活性，可以自主的选择需要加入什么对象，而使用继承则是强迫必须加入一个父类的对象。另外还可以使用代理，通过在新类中创建一个对象，并在方法中调用这个对象的方法，从而达到包装一个新方法的目的。尽管面向对象编程对继承极力强的，但在设]]></description><category></category></item><item><title><![CDATA[iOS 视图控制器(UIViewController)剖析]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6407042</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6407042</guid><author>linjinxing</author><pubDate>Mon, 09 May 2011 17:15:00 +0800</pubDate><description><![CDATA[剖析了iOS中视图控制器的作用和原理。]]></description><category></category></item><item><title><![CDATA[再理解敏捷]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6406544</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6406544</guid><author>linjinxing</author><pubDate>Mon, 09 May 2011 14:51:00 +0800</pubDate><description><![CDATA[<br />产品设计体会（7008）再理解敏捷2009年1月24日阅读评论发表评论<br />2008年春，项目做的对敏捷有了点兴趣，花了两个晚上浏览了《敏捷迭代开发——管理者指南》，理念式的书，看起来比较轻松，摘录一些自己的体会。<br />有些需求在开始的时候是提不出来的，或者说没法细化的，强行的过渡需求分析是浪费时间的行为，到后来多半还是要改。<br />瀑布（其实Royce大大提出的瀑布模型初衷里也是有迭代思想的，不过被后人误读了）的问题是最后集中暴露矛盾，当然对需求固定的项目还是不错的。<br /]]></description><category></category></item><item><title><![CDATA[软件架构师应该知道的97件事]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6264214</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6264214</guid><author>linjinxing</author><pubDate>Mon, 21 Mar 2011 11:09:00 +0800</pubDate><description><![CDATA[<br />软件架构师是IT 行业里独一无二的职业，既要精通软件开发技术，又要掌握业务知识，还要周旋于公司不同部门之间，协调各种予盾。做到这些绝非易事。<br /><br />软件架构师应该知道的97件事：<br /><br />1．  客户需求重于个人简历 （ Nitin Borwankar ）<br /><br />客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉，往往事与愿违。<br /><br />2．  简化根本复杂性 ，消除偶发复杂性 （ Neal Ford ）<br /><br />分析]]></description><category></category></item><item><title><![CDATA[透过MVC 来看设计模式]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6259752</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6259752</guid><author>linjinxing</author><pubDate>Fri, 18 Mar 2011 18:17:00 +0800</pubDate><description><![CDATA[<br />2011-02-01 19:13<br />类的模型/视图/控制器（Model/View/Controller）三元组(MVC)被用来构建用户界面。透过MVC 来看设计模式将帮助我们理解“模式”这一术语的含义。<br />MVC包括三类对象。模型Model是应用对象，视图View是它在屏幕上的表示，控制器Controller定义用户界面对用户输入的响应方式。不使用MVC，用户界面设计往往将这些对象混在一起，而MVC则将它们分离以提高灵活性和复用性。<br />MVC通过建立一个“订购/通知”协议]]></description><category></category></item><item><title><![CDATA[透过MVC 来看设计模式]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6259751</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6259751</guid><author>linjinxing</author><pubDate>Fri, 18 Mar 2011 18:17:00 +0800</pubDate><description><![CDATA[<br />2011-02-01 19:13<br />类的模型/视图/控制器（Model/View/Controller）三元组(MVC)被用来构建用户界面。透过MVC 来看设计模式将帮助我们理解“模式”这一术语的含义。<br />MVC包括三类对象。模型Model是应用对象，视图View是它在屏幕上的表示，控制器Controller定义用户界面对用户输入的响应方式。不使用MVC，用户界面设计往往将这些对象混在一起，而MVC则将它们分离以提高灵活性和复用性。<br />MVC通过建立一个“订购/通知”协议]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档8]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243075</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243075</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 12:10:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档8
 (2008-08-28 09:43:45)转载标签： 
杂谈分类： 翻译文档<br />指导8：软件缩放<br /> <br />软件缩放库libswscale<br /> <br />近来ffmpeg添加了新的接口：libswscale来处理图像缩放。<br />但是在前面我们使用img_convert来把RGB转换成YUV12，我们现在使用新的接口。新接口更加标准和快速，而且我相信里面有了MMX优化代码。换句话说，它是做缩放更好的方式。<br />我们将]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档7]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243072</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243072</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 12:10:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档7
 (2008-08-28 09:41:24)转载标签： 
杂谈分类： 翻译文档<br />指导7：快进快退<br /> <br />处理快进快退命令<br /> <br />现在我们来为我们的播放器加入一些快进和快退的功能，因为如果你不能全局搜索一部电影是很让人讨厌的。同时，这将告诉你av_seek_frame函数是多么容易使用。<br />我们将在电影播放中使用左方向键和右方向键来表示向后和向前一小段，使用向上和向下键来表示向前和向后一大段。这里一小段是10]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档6]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243071</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243071</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 12:09:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档6
 (2008-08-27 18:44:22)转载标签： 
杂谈分类： 翻译文档<br />指导6：同步音频<br /> <br />同步音频<br /> <br />现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次，我们掩饰了一点同步问题，也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式：做一个内部视频时钟来记录视频线程播放了多久，然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档5]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243069</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243069</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 12:09:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档5
 (2008-08-26 23:21:41)转载标签： 
杂谈 <br />指导5：同步视频<br /> <br />如何同步视频<br /> <br />前面整个的一段时间，我们有了一个几乎无用的电影播放器。当然，它能播放视频，也能播放音频，但是它还不能被称为一部电影。那么我们还要做什么呢？<br /> <br />PTS和DTS<br /> <br />幸运的是，音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样，视频流有每秒]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档4  ]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243068</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243068</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 12:08:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档4
 (2008-08-26 23:18:50)转载标签： 
杂谈分类： 翻译文档<br />      } else {<br />    break;<br />      }<br />    }<br />    // Is this a packet from the video stream?<br />    if(packet->stream_index == is->videoStream) {<br />      packet_queue_p]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档1]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243036</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243036</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 11:55:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档1
 (2008-08-26 09:39:15)转载标签： 
杂谈分类： 翻译文档<br />指导1：制作屏幕录像<br />源代码：tutorial01.c<br /> <br />概要<br /> <br />电影文件有很多基本的组成部分。首先，文件本身被称为容器Container，容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着，你有一组流，例如，你经常有的是一个音频流和一个视频流。（一个流只是一种想像出来的词语，用来]]></description><category></category></item><item><title><![CDATA[［个人翻译］ffmpeg文档2]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243029</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243029</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 11:54:00 +0800</pubDate><description><![CDATA[［个人翻译］ffmpeg文档2
 (2008-08-26 09:41:29)转载标签： 
杂谈分类： 翻译文档指导2：输出到屏幕SDL和视频为了在屏幕上显示，我们将使用SDL.SDL是Simple Direct Layer的缩写。它是一个出色的多媒体库，适用于多平台，并且被用在许多工程中。你可以从它的官方网站的网址http://www.libsdl.org/上来得到这个库的源代码或者如果有可能的话你可以直接下载开发包到你的操作系统中。按照这个指导，你将需要编译这个库。（剩下的几个指导中也是一样）SDL库]]></description><category></category></item><item><title><![CDATA[ffmpeg文档3]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6243025</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6243025</guid><author>linjinxing</author><pubDate>Sat, 12 Mar 2011 11:52:00 +0800</pubDate><description><![CDATA[<br />［个人翻译］ffmpeg文档3
 (2008-08-26 09:42:37)转载标签： 
杂谈 <br />指导3：播放声音<br /> <br />现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数，这个结构体中包含了我们将要输出的音频的所有信息。<br />在我们展示如何建立之前，让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声]]></description><category></category></item><item><title><![CDATA[高效的程序员所必备的搜索技巧]]></title><link>https://blog.youkuaiyun.com/linjinxing/article/details/6096013</link><guid>https://blog.youkuaiyun.com/linjinxing/article/details/6096013</guid><author>linjinxing</author><pubDate>Fri, 24 Dec 2010 11:41:00 +0800</pubDate><description><![CDATA[<br />高效的程序员所必备的搜索技巧
借助搜索技术使用网络及集体智慧
nowamagic.net 发布于 2010-12-07 10:07:03      浏览数：79 views
对于缺乏编程知识的人来说，完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话，可以搜到现成的代码。即使是经验丰富的程序员，通常也会为了节省时间和精力而在网上搜索解决方案。如果不借助搜索技术、网络及集体智慧，现代化高效编程是难以想象的。因此，搜索技巧对高效程序员变得愈发重要。
现在，我们不需要了]]></description><category></category></item></channel></rss>