2009年3月12日星期四

横向->纵向

时间过得真是很快,没想到上次发日志都是两个月之前的事情了,还是当时凑出来的那个打印自己的程序

两个月之间发生了不少事,总之比较乱,不过还好现在逐渐走上正轨了,渐渐明白人的精力是有限的,要承认自己的局限性,或者说,有些事情,确实做不到~

感慨一下,也许自己的IQ高于平均值吧,但是EQ几乎为零,哈哈,看来还是专注于技术吧,感情这种烂糟东西,实在是不会玩啊,呵呵

这周的学习主题是Regex,谈到了学习主题,Topic或是Theme,这是之前没有的一个概念,也就是说,开始从以前的横向学习转为纵深学习了,hoho~

简单的说就是以前研究的东西太广了,语言从C到C#的实现,基础学科也不落下,外加经管类的图书,形成了一个尴尬的局面,就是什么都知道,但什么都知道的不多,有必要解决一下这个局面

就从Regex开始吧,这玩意还是挺有意思的,一个不点的式子,有时可以顶的上几百行代码,而且巨Beautiful,及其Graceful

资料是Jefferey E.F Friedl 的 Mastering Regex 3rd Edition,是我一年前买的书,汗一下,一年前仅仅是看过第一章而已~~

看到第五章后,MS作者对Perl也颇有研究,但这本书并没有对Regex背后的灵魂:NFA和DFA作过多的阐释,只是用了两个Metaphor,电车和机车,虽然个人感觉不是多好的比喻,不过也很不错了,毕竟要深究这两项东西就得看Compiler Principle了,那玩意就太扯了,一个SLR就有够折腾了

总之这本书写的还是很浅显的,虽然现在只看到第五章,不过估计看完前六章,再把.Net的Regex熟练,基本上就可以成为一个中级Regexer了,哈哈,毕竟在看这本书之前,我可是构造了一个自动检查Log语法的Regex Engine了呢

具体的书评等看完书之后再写

2009年1月7日星期三

14行 SelfPrinting

using System;
public class WriteMyself{static void Main(){string[] stat1=new string[8];string[] stat2=new string[8];char c=(char)34;string s=c.ToString();
stat1[0] = "using System;";
stat1[1] = "public class WriteMyself{static void Main(){string[] stat1=new string[8];string[] stat2=new string[8];char c=(char)34;string s=c.ToString();";
stat1[2] = "for (int i = 0; i < 2; i++) { Console.WriteLine(stat1[i]); }";
stat1[3] = "for (int i = 0; i < 7; i++) { stat2[i] = c + stat1[i] + c; }";
stat1[4] = "for (int i = 0; i < 7; i++) { ";
stat1[5] = "Console.WriteLine(stat1[{0}] = {1};, i, i==5?stat2[i].Insert(19, s).Insert(37, s): stat2[i]); ";
stat1[6] = "}for (int i = 2; i < 7; i++) {Console.WriteLine(i!=5?stat1[i]:stat1[i].Insert(18,s).Insert(36,s));}}}";
for (int i = 0; i < 2; i++) { Console.WriteLine(stat1[i]); }
for (int i = 0; i < 7; i++) { stat2[i] = c + stat1[i] + c;}
for (int i = 0; i < 7; i++) {
Console.WriteLine("stat1[{0}] = {1};", i, i==5?stat2[i].Insert(19, s).Insert(37, s): stat2[i]);
}for (int i = 2; i < 7; i++) {Console.WriteLine(i!=5?stat1[i]:stat1[i].Insert(18,s).Insert(36,s));}}}

2009年1月3日星期六

2009 Looking Forward

这些东西先放在这里了,自己是很不喜欢做计划的,不过还是写个目标之类的东西放在这里,等到09年末的时候再回头看看究竟完成度如何吧,哈哈。

我对书是非常看重的,所以这摊目标里的书的比重很大

需要反复看的书:
1, CLR via C# 2nd
2, The Practice of Programming
3, Data Structure and Algorithm Analysis in C/C++
4, Programming Pearls 2nd
5, Refactoring
6, Code Complete 2nd
7, The C++ Programming Language
8, How to solve it
9, Design Pattern Explained
10, Understanding .Net 2.0
11, Framework Design Guidelines

需要彻底看完的书:
1, Modern Operating System 2nd
2, Principle of Microeconomics
3, The Art Of Computer Programming Vol.1 (传说中的TAOCP,囧)
4, TOEFL Vocabulary
5, Computer Networks 4th
6, Agile Software Development C#
7, What is mathematics
8, C++ Primer Plus 5th
9, C Primer Plus 5th
10, Mastering Regex 3rd
11, C Programming Language 2nd

需要看一部分的书:
1, Introduction to Algorithms
2, Principle of Macroeconomics
3, Introduction to Psychology
4, C# Cookbook 2.0
5, Assembly Language
6, Programming Language Pragmatics
7, The Art Of Computer Programming Vol.3
8, Pro .Net 2.0 XML
9, Global History 3rd
10, Structured Computer Organization 5th

需要学的一些新技术:
1, ASP.Net
2, Javascript
3, Ajax

一些目标:
1, Exhaust Visual Studio 2005 Compiler
2, Mastering .Net via C#
3, Mastering Data Structure and Algorithms
4, Understanding Computer Organization
5, Understanding Operating System
6, Over 18000 English words
7, Fake 720