<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[whosemario的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/whosemario</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; whosemario]]></copyright><item><title><![CDATA[Unix Domain Socket 内核数据结构整理]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/112486344</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/112486344</guid><author>whosemario</author><pubDate>Mon, 11 Jan 2021 20:09:42 +0800</pubDate><description><![CDATA[整理一波Unix Domain Socket在Linux内核（4.9）的数据结构， 接下来将简称为UDS。内核里面UDS的主要代码集中在af_unix.c文件内。首先，创建socket的时候要用到unix_family_ops这个数据结构：
static const struct net_proto_family unix_family_ops = {
	.family = PF_UNIX,
	.create = unix_create,
	.owner	= THIS_MODULE,
};

socket(]]></description><category></category></item><item><title><![CDATA[Python中的单例模式实现]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/50590553</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/50590553</guid><author>whosemario</author><pubDate>Tue, 26 Jan 2016 23:37:50 +0800</pubDate><description><![CDATA[使用Python来实现单例模式是一件很有意思的事情，在这个过程中我们会重新审视Python在创建类(Build Class)和构建实例时都调用了那些magic method。 
同时我也想说的是Python的单例模块实现多种多样，但有些实现是存在问题的，在某些情况下是不可用或者影响系统的某些功能的。]]></description><category></category></item><item><title><![CDATA[Python源码解析——PyType_GenericAlloc]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/50452923</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/50452923</guid><author>whosemario</author><pubDate>Sun, 03 Jan 2016 22:49:17 +0800</pubDate><description><![CDATA[为什么要写PyType_GenericAlloc函数，原因是本人想写一篇关于创建Class的源码解析的博文，发现内容比较多，因此就打算分开解析里面比较重要的内容。]]></description><category></category></item><item><title><![CDATA[Mangos Zero 编译安装]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/50189757</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/50189757</guid><author>whosemario</author><pubDate>Sat, 05 Dec 2015 23:23:03 +0800</pubDate><description><![CDATA[折腾了两天，终于将Mangos Zero在自己的Windows电脑上搭建起来了，下面总结一下安装Mangos Zero过程。网上也有很多安装Mangos Zero的教程，都比较老了，有些基本不能用了。]]></description><category></category></item><item><title><![CDATA[远程调试Python进程的小工具]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/50128179</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/50128179</guid><author>whosemario</author><pubDate>Tue, 01 Dec 2015 13:19:29 +0800</pubDate><description><![CDATA[使用pdb和有名管道实现远程Python调试]]></description><category></category></item><item><title><![CDATA[Python Coroutine 初探]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/49978505</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/49978505</guid><author>whosemario</author><pubDate>Sun, 22 Nov 2015 16:06:23 +0800</pubDate><description><![CDATA[Python Coroutine 初探]]></description><category></category></item><item><title><![CDATA[LeetCode所有题目的代码]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/10822959</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/10822959</guid><author>whosemario</author><pubDate>Sun, 01 Sep 2013 13:11:20 +0800</pubDate><description><![CDATA[把所有132题刷完了，放到github上了，但只有130题，貌似漏掉两题，找找看，再加上
https://github.com/Whosemario/LeetCodeSrc

开始找工作了，加油吧。。。]]></description><category></category></item><item><title><![CDATA[ZJU PAT的一些代码]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8892141</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8892141</guid><author>whosemario</author><pubDate>Mon, 06 May 2013 19:55:41 +0800</pubDate><description><![CDATA[最近为了找实习，开始刷ZJU PAT上的题目，还有8、9道题就快刷完了，现在把部分代码放到github上，由于时间原因，有些代码遗漏掉了，后续可能会补上。。。。
https://github.com/Whosemario/PatSourceCodes]]></description><category></category></item><item><title><![CDATA[ZJU PAT 1010]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8734508</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8734508</guid><author>whosemario</author><pubDate>Thu, 28 Mar 2013 23:43:43 +0800</pubDate><description><![CDATA[好久没写oj的题解了，今天做了pat 1010的题目，提交代码后才只有19分，最后在网上看到才发现radix的大小是long long级别的啊，那么我们就只能使用二分来查找结果了，那么剩下的就是理清思路了。


如果两个数字都是1，结果肯定是2如果两个数字相同，但不是1，结果肯定是题目输入的那个radix如果两个数字不相同，我们则有确定radix的范围呢？我们假设A的radix已经知道，那么]]></description><category></category></item><item><title><![CDATA[Vim Tutor 阅读手记]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8591483</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8591483</guid><author>whosemario</author><pubDate>Tue, 19 Feb 2013 15:52:32 +0800</pubDate><description><![CDATA[命令行下输入：vimtutor 可以查看一个vim教程，感觉还不错，这里总结一下


1 删除命令

在Normal模式下删除光标所在位置的字符，请按：x在Normal模式下，输入dw可以删除光标所在位置的单词在Normal模式下，输入d$可以删除光标所在位置到行尾

删除d的命令如下：
 [number] d object 或者 d [number] object


其中：]]></description><category></category></item><item><title><![CDATA[利用Xmarks进行Chrome和Safari书签的同步]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8575793</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8575793</guid><author>whosemario</author><pubDate>Thu, 07 Feb 2013 15:46:10 +0800</pubDate><description><![CDATA[Xmarks是一个浏览器的插件，它可以将你的chrome、safari、firefox和ie的书签进行同步。
下面说一下Chrome和Safari之间的同步方法：


先在Chrome上安装Xmarks插件，然后注册Xmarks的帐户利用Xmarks插件将Chrome上的书签同步到Xmarks的服务器上在Safari中安装Xmarks插件进行同步，同步的过程中Xmarks会询问你是将服务器]]></description><category></category></item><item><title><![CDATA[在Mac OS X 用C++编写OpenGL程序]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8574475</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8574475</guid><author>whosemario</author><pubDate>Wed, 06 Feb 2013 17:42:08 +0800</pubDate><description><![CDATA[Mac OS X中自带的OpenGL库和GLUT库，我们在编译自己的C++代码的时候，只需要将这两个框架加入进去就好。
命令的形式编译如下：
g++ -framework OpenGL -framework GLUT -o TestPrj main.cpp
那么上面的命令怎样在编译器中加入呢？
Eclipse加入OpenGL Framework


选中某个要编译的工程打开Prope]]></description><category></category></item><item><title><![CDATA[最大独立集问题]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8513836</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8513836</guid><author>whosemario</author><pubDate>Thu, 17 Jan 2013 15:50:23 +0800</pubDate><description><![CDATA[最大独立集问题


Given N sets of integers, remove some sets so that the remaining all sets are disjoint with one another. Find the optimal solution so that the number of sets remaining at the end is maxim]]></description><category></category></item><item><title><![CDATA[【OpenGL Tutorial】Lesson2 移动与旋转]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8469649</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8469649</guid><author>whosemario</author><pubDate>Tue, 08 Jan 2013 17:07:23 +0800</pubDate><description><![CDATA[移动和旋转
我们上一个程序有些简单，我们不是要学3D编程吗？上一个程序看起来完全是2D啊，现在就让我们做一些有意思的事情——让图形旋转起来。
为了做到这一点，我们要理解OpenGL里面的移动和旋转。我们想象有一只鸟在场景里面飞行。它从原点开始，沿着z轴的负方向飞行，它可以移动、旋转、长大和缩小。当我们用glVertex将点传输给OpenGL的时候，OpenGL就用它来将鸟进行关联起来。所以，如]]></description><category></category></item><item><title><![CDATA[【OpenGL Tutorial】Lesson1 基本图形]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8458943</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8458943</guid><author>whosemario</author><pubDate>Thu, 03 Jan 2013 22:58:25 +0800</pubDate><description><![CDATA[试一试
让我们先来看看我们的第一个OpenGL程序。下载“basic shapes”测试程序，编译并运行它（怎样用Visual Studio编译看第一节课程）。程序的运行样例如下图，点击ESC可以退出程序。




程序是怎样运行起来的
程序是怎样运行起来的呢？最基本的思想就是我们告知OpenGL每个图形顶点的3D坐标。OpenGL使用标准的x，y坐标系，x水平指向右方，y竖直指向上]]></description><category></category></item><item><title><![CDATA[【OpenGL Tutorial】Part0：搭建环境]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8457769</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8457769</guid><author>whosemario</author><pubDate>Tue, 01 Jan 2013 20:52:22 +0800</pubDate><description><![CDATA[最近想学学OpenGL处理3D方面的技术，在网上搜了一下，发现有个名叫OpenGL Video Tutorial的网站很有意思，网站的作者说道他自己是一个大学生，也刚刚开始学习OpenGL 3D，希望通过这个网站教一些OpenGL的初学者写一下3D方面的技术。我觉得这个网站还不错，打算最近就跟着这个网站的教程学习一下，顺便翻译一下里面的内容。
Lesson 0a：在Windows上搭建OpenG]]></description><category></category></item><item><title><![CDATA[编程之美4.4 扩展问题——判断点位于多边形内部]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8456793</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8456793</guid><author>whosemario</author><pubDate>Tue, 01 Jan 2013 09:52:03 +0800</pubDate><description><![CDATA[首先说明的是此多边形是任意多边形，包括凹多边形：
方法一：射线法
以此点为原点的向右水平射线如果相交于多边形的点的个数为奇数个，则此点在多边形内部，但需要注意几个trick：


有可能射线与某条边的端点相交，如果相交的端点的纵坐标是较大的那个，则记录，否则忽略有可能射线与某条边完全覆盖，忽略即可
用Java写了一个代码，没有测试，但基本思路是这样的：

public class]]></description><category></category></item><item><title><![CDATA[树形DP——POJ1947 and POJ2486]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8395896</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8395896</guid><author>whosemario</author><pubDate>Sun, 23 Dec 2012 23:07:32 +0800</pubDate><description><![CDATA[本文针对POJ上的2057、1947、2486、3140四道题目，谈一下个人对树形DP的理解，上面4题无法覆盖树形DP的所有形式，但也有一定的针对性，值得去做一做，思考一下：
树形DP中常常用到“背包思想”，1947和2486就是利用了“背包思想”，状态想好了，最后就是在填“背包”，某个节点的“背包”是用他们的子树的状态进行填充的。


POJ1947：状态dp[i][p]表示以节点i为根]]></description><category></category></item><item><title><![CDATA[POJ2057]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8272841</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8272841</guid><author>whosemario</author><pubDate>Sat, 08 Dec 2012 16:29:48 +0800</pubDate><description><![CDATA[题目的关键是达到某个节点的时候，以怎样的顺序去遍历它的子树呢？
我们假设某个节点有两个子树A和B，我们定义Pa是Snail的Home位于A子树中的叶节点上的概率，Pb是Snail的Home位于B子树中的叶节点上的概率；Sa是Home位于A子树上所要走的路程，Fa是Home不在A子树上所要走的路程，Sb和Fb同理。假设先走A树再走B树，所走的步数为：Sa*Pa+(Fa+Sb)*Pb；如果是先走B树]]></description><category></category></item><item><title><![CDATA[Nim理论初探——编程之美1.12]]></title><link>https://blog.youkuaiyun.com/whosemario/article/details/8231564</link><guid>https://blog.youkuaiyun.com/whosemario/article/details/8231564</guid><author>whosemario</author><pubDate>Tue, 27 Nov 2012 19:45:34 +0800</pubDate><description><![CDATA[Nim Game是非常著名的游戏，它的变体也很多，在《编程之美》上也用了三章讲解它。Wikipedia 上说的很详细，本文则是在对wiki上的内容阅读后的个人理解。
游戏概述：
有M堆石子，每堆石子的个数不一定相同，Bob和Alice交替取石子，只能在一堆石子上取，取的数目任意，但不能为0，也不能大于此堆石子的数目。获胜的判定有两种：一种是谁先把石子去完谁获胜，这种叫Normal Play；另]]></description><category></category></item></channel></rss>