研究兴趣:
范型数据结构的在不同编程语言(C、C++、Java、Python)中的实现
经典UNIX系统的设计与实现、GNU/Linux对经典UNIX的增强和改进
在理工教育中使用Python语言(例如用SciPy等取代matlab、在网络编程实验、图形编程中使用Python取代或配合C/C++等)
在企业环境中使用GNU/Linux桌面,我目前认为有两大问题(不考虑历史因素):
1、用户习惯
Windows桌面:从Windows 95到Windows 7的界面布局,快捷键等没有本质的改变,旧Windows和新Windows的使用起来
没有太大差别。
但是GNU/Linux桌面呢,是GNOME(2还3)?还是KDE?还是XFCE?还是自己配置的超酷FVWM?还是……?
我们假设有一个人完全不懂电脑,同时假设他懂各种自然语言,给他全面培训一下Windows XP,他在世界任何地方碰到Windows桌面应该都会基
本用了,如果我们想给他培训GNU/Linux桌面呢?该培训什么?至少我没有想到很好的答案。
2、软件管理
对于新机器而言,Windows和GNU/Linux都可以装新版的,网络条件也往往较好,软件也需要保持较新(为了安全)。如果只部署同一种发行版的
话,GNU/Linux桌面的软件管理(通过apt、yum等包管理机制)应该比Windows桌面简单。
对于旧机器而言,Windows只能装旧版,而GNU/Linux可以装旧版、特殊版本、新版并特别配置。就我个人观察,旧版GNU/Linux得到的
支持(软件源停止更新甚至停止服务,新软件不易在旧系统上安装)可能还不及旧版的Windows,特殊版本可能不容易管理维护(可能没有一个比较全的软
件源),新版本特殊配置,怎么配置呢?研究吧!
BTW,我认为,对于个人用户而言,如果硬件都配置好了的话,GNU/Linux桌面相比Windows桌面的友好程度不相上下。主要困难就是不能运行
所有的Windows专属程序和游戏,而随着许多传统应用的网络化,如GMail、WebQQ等和网络新应用的流行,如人人(Facebook)和微薄
(Twitter)等,这种困难在缩小。我觉得真正要做的工作是改变公众对于电脑操作系统(的标准)就是Windows的错误观念,这方面的资料还很不
足。
其他兴趣:
数学,纯和应用都喜欢。准备有时间看一些数学大师的书,如Rudin的,钟开莱的,小平邦彥的等。
历史,一般说的那种历史太庞大了,中学时比较喜欢,现在不太看了。我现在主要感兴趣的是C和Java是怎么样取得现在这种如此广泛的使用的。
生活细节:
我两部机器的locale都是en_US.UTF-8,买书绝不买翻译版(不是中文也不是英文的书另外考虑),手边的书大都是英文的
我喜欢各种毛绒公仔,如加菲猫,机器猫,灰太狼等。
我喜欢各类山珍海味、琼浆玉液。
……
先写这么多吧……
在 11-7-5,Ma Xiaojun<damag...@gmail.com> 写道:
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
>
>
的确,不管一些企业的业务多么依赖 Linux ,员工在桌面上用 Linux 的还是凤毛麟角,虽然可能他们的计算机水平已经多高。
2011/7/5 cool roky <rok...@gmail.com>:
On Jul 5, 4:36 pm, Ma Xiaojun <damage3...@gmail.com> wrote:
> 基本情况:
> 我是一个男生。
> 中山大学,信息科学技术学院,电子2+2专业(今年9月份开始去香港中文大学念后面那个"2"),大二。
> 学校里两部机器(都AMD^_^),一部笔记本用Debian 6.0(stable)、一部台式机用Ubuntu 10.04 LTS
> 只保留了一个VirtualBox中的内存192MB的Windows XP用于工行网银等特殊应用
>
> 研究兴趣:
> 范型数据结构的在不同编程语言(C、C++、Java、Python)中的实现
> 经典UNIX系统的设计与实现、GNU/Linux对经典UNIX的增强和改进
> 在理工教育中使用Python语言(例如用SciPy等取代matlab、在网络编程实验、图形编程中使用Python取代或配合C/C++等)
> 在企业环境中使用GNU/Linux桌面,我目前认为有两大问题(不考虑历史因素):
> 1、用户习惯
> Windows桌面:从Windows 95到Windows 7的界面布局,快捷键等没有本质的改变,旧Windows和新Windows的使用起来
> 没有太大差别。
> 但是GNU/Linux桌面呢,是GNOME(2还3)?还是KDE?还是XFCE?还是自己配置的超酷FVWM?还是......?
> 我们假设有一个人完全不懂电脑,同时假设他懂各种自然语言,给他全面培训一下Windows XP,他在世界任何地方碰到Windows桌面应该都会基
> 本用了,如果我们想给他培训GNU/Linux桌面呢?该培训什么?至少我没有想到很好的答案。
> 2、软件管理
> 对于新机器而言,Windows和GNU/Linux都可以装新版的,网络条件也往往较好,软件也需要保持较新(为了安全)。如果只部署同一种发行版的
> 话,GNU/Linux桌面的软件管理(通过apt、yum等包管理机制)应该比Windows桌面简单。
> 对于旧机器而言,Windows只能装旧版,而GNU/Linux可以装旧版、特殊版本、新版并特别配置。就我个人观察,旧版GNU/Linux得到的
> 支持(软件源停止更新甚至停止服务,新软件不易在旧系统上安装)可能还不及旧版的Windows,特殊版本可能不容易管理维护(可能没有一个比较全的软
> 件源),新版本特殊配置,怎么配置呢?研究吧!
> BTW,我认为,对于个人用户而言,如果硬件都配置好了的话,GNU/Linux桌面相比Windows桌面的友好程度不相上下。主要困难就是不能运行
> 所有的Windows专属程序和游戏,而随着许多传统应用的网络化,如GMail、WebQQ等和网络新应用的流行,如人人(Facebook)和微薄
> (Twitter)等,这种困难在缩小。我觉得真正要做的工作是改变公众对于电脑操作系统(的标准)就是Windows的错误观念,这方面的资料还很不
> 足。
>
> 其他兴趣:
> 数学,纯和应用都喜欢。准备有时间看一些数学大师的书,如Rudin的,钟开莱的,小平邦彥的等。
> 历史,一般说的那种历史太庞大了,中学时比较喜欢,现在不太看了。我现在主要感兴趣的是C和Java是怎么样取得现在这种如此广泛的使用的。
>
> 生活细节:
> 我两部机器的locale都是en_US.UTF-8,买书绝不买翻译版(不是中文也不是英文的书另外考虑),手边的书大都是英文的
> 我喜欢各种毛绒公仔,如加菲猫,机器猫,灰太狼等。
> 我喜欢各类山珍海味、琼浆玉液。
> ......
>
> 先写这么多吧......
--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
欢迎欢迎~,同期待以后的讨论和交流在 2011年7月5日 下午4:36,Ma Xiaojun <damag...@gmail.com>写道:基本情况:
我是一个男生。
中山大学,信息科学技术学院,电子2+2专业(今年9月份开始去香港中文大学念后面那个“2”),大二。
学校里两部机器(都AMD^_^),一部笔记本用Debian 6.0(stable)、一部台式机用Ubuntu 10.04 LTS
只保留了一个VirtualBox中的内存192MB的Windows XP用于工行网银等特殊应用
研究兴趣:
范型数据结构的在不同编程语言(C、C++、Java、Python)中的实现
经典UNIX系统的设计与实现、GNU/Linux对经典UNIX的增强和改进
在理工教育中使用Python语言(例如用SciPy等取代matlab、在网络编程实验、图形编程中使用Python取代或配合C/C++等)
在企业环境中使用GNU/Linux桌面,我目前认为有两大问题(不考虑历史因素):
1、用户习惯
Windows桌面:从Windows 95到Windows 7的界面布局,快捷键等没有本质的改变,旧Windows和新Windows的使用起来
没有太大差别。
但是GNU/Linux桌面呢,是GNOME(2还3)?还是KDE?还是XFCE?还是自己配置的超酷FVWM?还是……?
我们假设有一个人完全不懂电脑,同时假设他懂各种自然语言,给他全面培训一下Windows XP,他在世界任何地方碰到Windows桌面应该都会基
本用了,如果我们想给他培训GNU/Linux桌面呢?该培训什么?至少我没有想到很好的答案。
在 Tue, 05 Jul 2011 23:40:44 +0800,刘滔 <mat.l...@gmail.com> 写道:
> 华农人民发来贺电,表示压力很大,貌似我对自己好像也没一时能想出这些来~
>
> 在 2011年7月5日 下午5:40,wang zelong <wangzel...@gmail.com>写道:
>
>> 鸭梨山大,+1
>> 在 2011-7-5,下午5:33, Kenny He 写道:
>>
>> 高龄校友表示鸭梨无比巨大~~~膜拜ing
>>
>> 2011/7/5 Lasntonpeng <lanst...@gmail.com>
>>
<省略部分>
我没有技术博客……
是”泛型“……打错了……我举例说明一下我想研究什么……想必大家都会STL……我也是我思考的起点
STL的威力:
比如说,一般认为图有邻接表和邻接矩阵两种表示方法。
其实可用哈希表或平衡BST来取代邻接表中的链表,如果用STL表示,就是vector< unordered_map<int,int> >或vector< map<int,int> >
我肤浅的结论就是,STL让数据结构可以套数据结构,很给力。它是怎么实现的?有没有它不如专门写的非泛型数据结构的时候?
BTW,STL之父Alexander Stepanov曾在莫斯科大学(你们懂的吧?)念数学,他在最近几年写了本书介绍STL背后的数学原理,国内也出版了影印版……我还没买没看……
泛型只属于C++吗?当然不是只属于C++
如果学C++不用读这么多书……如果不是看到Linus和其他无名的技术博主们批评、反对C++…
…那我们看看C语言……
最近了解到Linux内核和Glib都有实现一些C语言的泛型数据结构,且方法不同。至少可以提3个问题:
1、两种的优缺点分别是什么?
2、有没有其他可能?
3、和STL的关系,谁性能高?谁用起来方便?
Java如何?
J2SE1.5也说加入了泛型,这又是怎么实现的?
Python如何?
哇!动态语言,和静态语言有何区别?
工业化程度很高……没看懂是什么意思……
那个C&UNIX ritch...@qq.com也是我,QQ邮箱会话模式启用无效,所以那个退订了,只用这个GMail了……
--
Ma Xiaojun
SYSU+CUHK
damag...@gmail.com
--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
快大四的表示你说的我几乎都不会 哈哈 后生可畏
STL和泛型有什么关系?
C++那个不叫泛型,叫模板吧?在编译的时候,就替换为指定的数据类型,然后运行的时候就和具体的数据类型无异了。
Java那个才叫泛型。虽然,两者有类似。不过,Java的泛型其实比C++的模板强大。
最近了解到Linux内核和Glib都有实现一些C语言的泛型数据结构,且方法不同。至少可以提3个问题:
1、两种的优缺点分别是什么?
2、有没有其他可能?
3、和STL的关系,谁性能高?谁用起来方便?
#define min(x, y) ({ \
typeof(x) _min1 = (x); \
typeof(y) _min2 = (y); \
(void) (&_min1 == &_min2); \
_min1 < _min2 ? _min1 : _min2; })--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
����ë�²�д ���DZ��� linux �ں�Դ�����龰����������˵��2.4�İ汾�����Ǻ��а���ġ���linux�ں�����һ�����ĵ���ݽṹlist_head������һ��˫���?�ֵ�linux�ں���ݽṹ���ǻ��������ġ������һ���� ����ݽṹ������Ƕ���Զ���Ľṹ����~���з��ͺ꣺
#define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&_min1 == &_min2); \ _min1 < _min2 ? _min1 : _min2; })
ллhiphen������~��GP�����������Щ��
�� 2011-7-10 ����11:24 �r�� hiphen lee ������
�Һ�����Maple��blog���濴������C��ģ��ʵ��
�� 2011��7��7�� ����2:00��Xiaojun Ma <damag...@gmail.com>д ����
����˽Linux�ں˺�Glib����ʵ��һЩC���Եķ�����ݽṹ���ҷ�����ͬ�����ٿ� ����3�����⣺
1�����ֵ���ȱ��ֱ���ʲô��
2����û��������ܣ�
3����STL�Ĺ�ϵ��˭���ܸߣ�˭���������㣿
--
Hiphen
--
���յ����ʼ�����Ϊ������ Google ������̳�ġ����� GNU/Linux �û��顱��̳��
Ҫ���������̳�����뷢�͵����ʼ��� gz...@googlegroups.com��
Ҫȡ���Ĵ�������̳���뷢�͵����ʼ��� gzlug+un...@googlegroups.com��
���и�����⣬��ͨ�� http://groups.google.com/group/gzlug?hl=zh-CN ���ʴ�������̳��
--
���յ����ʼ�����Ϊ������ Google ������̳�ġ����� GNU/Linux �û��顱��̳��
Ҫ���������̳�����뷢�͵����ʼ��� gz...@googlegroups.com��
Ҫȡ���Ĵ�������̳���뷢�͵����ʼ��� gzlug+un...@googlegroups.com��
���и�����⣬��ͨ�� http://groups.google.com/group/gzlug?hl=zh-CN ���ʴ�������̳��
2011/7/11 James Deng <cnjam...@gmail.com>:
> Generic Programming范型编程是一个概念,有很多实现,主要分为四种:宏,模板,继承和类型系统。
> 1.宏
> C和lisp里面经常用宏来实现GP,特别是Lisp的宏非常强大,强大到可以在运行时改变程序自身(Lisp的程序也是数据,程序可以像操作数
> 据一样操作程序本身。Lisp程序就是一棵可变的语义树。
> 2.模板
> 将共同的代码片段变成代码模板来实现代码复用。C++的STL是一个很成功的例子。模板有个缺陷是难以对模板编程进行类型的推导和约束,出现错误
> 时提示不足。C++里的Concept(概念)就是想要解决这个问题。比如sort函数实例化类型参数时需要检测参数类型满足 Comparable
> concept,就是存在偏序关系。
> 3.虚拟类型
> OO一开始设计的目的是代码的复用,像Java里面传参数用Object对象和使用接口就是通过继承来实现范型编程。有个词虚拟类型 Virtual
> Type来指这种类型。我认为动态类型(Duck鸭子系统)也是类似的,不过它是在运行时确定它的类型和方法(一个对象走起来像鸭子,叫起来像鸭
> 子...,那么它就是鸭子)。
> 4.类型系统
> 这个方法的典型实例是Haskell的Type class。
> 如Eq是表示可以判断是否相同的类
> class Eq a where
> (==), (/=) :: a -> a -> Bool
>
> x /= y = not (x == y)
> x == y = not (x /= y)
>
> 上面的例子,只要定义出/=或者==任意一个函数,另一个函数就自动定义了。
>
> class Eq a => Ord a where
> compare :: a -> a -> Ordering
> (<) :: a -> a -> Bool
> (>=) :: a -> a -> Bool
> (>) :: a -> a -> Bool
> (<=) :: a -> a -> Bool
> max :: a -> a -> a
> min :: a -> a -> a
> 可比较的类型类如上定义,只要定义compare函数,其它函数就自动生成了。
> 有了Ord类的定义,sort函数可以表示如下:
> sort :: Ord a => [a] -> [a]
> Ord a对使用sort函数的列表的类型进行了约束,如果类型不满足,编译时就会出错。
>
> 上面的只是两个简单的例子,Haskell的类型系统非常强大。此外,Haskell也支持模板编程,有个拓展是Haskell template。
>
> On 07/11/2011 01:11 PM, wang zelong wrote:
>
> 读过毛德操写 的那本《 linux 内核源代码情景分析》,虽说是2.4的版本,还是很有帮助的。
> 在linux内核中有一个核心的数据结构list_head,它是一个双链表,大部分的linux内核数据结构都是基于它建立的。
> 这就是一个泛 型数据结构,可以嵌入自定义的结构重用~
> 还有泛型宏:
>
> #define min(x, y) ({ \
> typeof(x) _min1 = (x); \
> typeof(y) _min2 = (y); \
> (void) (&_min1 == &_min2); \
> _min1 < _min2 ? _min1 : _min2; })
>
> 谢谢hiphen的提醒~对GP的理解更深刻了些。
> 在 2011-7-10 下午11:24 時, hiphen lee 寫到:
>
> 我好象在Maple的blog里面看过他用C来模拟实现
>
> 在 2011年7月7日 上午2:00,Xiaojun Ma <damag...@gmail.com>写 道:
>>
>> 最近了解到Linux内核和Glib都有实现一些C语言的泛型数据结构,且方法不同。至少可 以提3个问题:
>> 1、两种的优缺点分别是什么?
>> 2、有没有其他可能?
>> 3、和STL的关系,谁性能高?谁用起来方便?
>
>
> --
> Hiphen
>
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
>
> Best regards!
> wang zelong
> wangzel...@gmail.com
>
>
>
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。
>
>
> --
> James Deng
> department of computer science
> school of information science & technology
> Sun-yat-sen University, Guangzhou, China
> http://cnjdeng.appspot.com
>