我这10来年(Tinyfool的程序人生)[转]

【科创人上海行】Tinyfool郝培强 :始于不惑的微服务式创业,背负身心病痛贴地飞行... 与上千位科技创业者共同关注科创人的成长心路。Intro科创人,分享技术创业者的成长与创业经验。何谓创业?勇于面对未知、肩负重任的人生抉择。何谓经验?沟沟坎坎、有笑有泪,各有其宝贵。科创人... 阅读详情
看了 火炬的这17年,很汗颜啊!说起来火炬比我还小,但是编程的时间比我长多了。我已经记不清到底是多少年了,基本上超过10年,所以,题目就是我这10来年,学习火炬,哈哈。

说不清楚什么时候对电脑开始感兴趣的,我小时候开始喜欢数学,后来喜欢物理和化学。小学的时候,最得意的就是学了物理,自己用漆包线和喇叭上的磁铁,做了 一个电动机模型。在大点,一天到晚把铁钉子烧红了淬火,或者电解水,电解食盐水什么的。真正有电脑的概念,可能是在看动画片《星球大战》的时候,那里有一 个大型电脑雨果,无所不知无所不能,让我很向往。

初中的时候(初一还是初二已经记不清楚了,91,91年的样子),软磨硬泡地让父母给我买了一个学习机,才算真的见了什么是电脑。所谓学习机就是一个任天 堂游戏机加上键盘,加上一些功能而已。我买的还不是当时最流行的小霸王学习机,是一个杂牌机器,居然连存储功能都没有,当时它已经是我的宝贝了。我写的第 一个程序,就是模仿学习机里面内置的打字练习游戏,用basic写的,有400多句吧!

后来,看到别人的学习机有logo语言,我又自己写了一个logo语言解释器,那是在课堂上写的,先写在一些小纸片上,然后放学回家输到学习机里面,测 试,然后修改了在继续在纸片上面。最后也没有完全的完成,但是logo语言的很多功能都做出来了。这是我这辈子写的最艰难的程序,因为每次调试他都要先把 它输入一遍。

那时候,我还很热衷于用学习机编游戏程序,那时候遍过类似马利奥的程序,编过类似于街霸的程序,当然都是很小的,而且很粗糙的。

1994年,到了高中,我们有了计算机课。一上来,我就做课代表,因为有同学反映一天到晚看我捧着计算机课本。那时候我们的计算机课教的是GW- Basic。学校大部分的电脑是8086,有两三台286已经是高档货了。那时候同学里面学过电脑的就很少。少数几个家里有电脑的最多也就是打字还算熟 练,班里面甚至年级里面编程最强的就是我了。每次快要教计算机作业的时候,到我那里问问题的同学都是门庭若市,相当有面子。

高二的暑假,学校找了人来课外培训windows。我都不知道windows是什么,但是我知道是学习电脑,于是我就去了。那是我第一次看到 windows3.1,第一次看到中文之星,第一次看到cced等等,第一次知道什么是ucdos。羞愧啊!高二的时候,我也参加过奥赛的选拔,但是只有 一个鼓励性的证书,那考题算法部分都是Pascal,但是我那时候都不知道是Pascal。

象着了魔一样,自从我上了高中以后,对物理化学兴趣越来越小,自己的小实验室,慢慢的只有电视机和学习机了。高一的时候买了本c语言的书,现在看起来是多 么浅显易懂啊!但是当时那就是天书,我的另一个同学买了一本borland c++ 3.0的中文手册,那更是一本天书。但是那是我们两个人的宝贝,每天都在抢。那时候,每天不管上什么课,我都在看那本厚厚的c++,但是我的学习记没有 c,没有c++,我也没有电脑。一切都是在脑子里面,我在脑子里面去想象c++是一个什么东西,c是什么东西。原因很简单,因为据说c/c++是最好的编 程语言。

高三临近高考之前的一个月,我父母居然给我买了一台电脑(说到这里,我觉得一直愧对父母。他们对我一直都是那么的呵护,但是我一直也没有给过他们什 么。),一台P133。我兴奋的连上电源线,按下power键,轰的一声,一股清烟,机器并没有点亮。吓坏了我,后来仔细检查了一下电源线,电源线,居然 烧穿了,但是机器有没有问题还不知道。我当时用一截电线接在一个插头上,另一边接了两个万用表的表笔,插到了电脑后面的插口上面,再一按power,机器 亮了。知道机器没有问题,找了两个铜柱,自己做了临时的插头,插在电脑上面,就这么用了一个晚上。第二天才去换了一个好的电源线。

高考后,我天天玩电脑,编程序,机器上还是没有c和c++(当时没有网络啊,盗版盘我们那里也不好买)。买来的盘里面有VB3,有Delphi2,于是,我开始学VB和Delphi。一个假期过后,我又胖了30斤。

大学课程里面才有了c。我才真正的见到了Turbo C。后来在机房里面偶然发现了一个机器有Borland C++ 3.0,到那时候和我一眼看到Borland c++ 3.0的中文手册已经三年多了,恍如隔世,那是我就热泪盈眶。第一年我没有把电脑带到学校。那时候学校机房的主流机型是486,而且安装都是dos。很多 学校的同学都没有见过win95。学校里面有些人每天琢磨怎么把win95弄得更小,可以用更少的软件带到机房去。最早的时候是7张盘,最后是三张盘,不 能说是一种奇迹。那时候我更关心的是C,我开始了艰难的C/C++的学习。算起我91,92年接触basic,后来的GW-Basic,后来的VB,我已 经是一个Basic的绝对高手了。但是这些经历一开始对我学C都是阻碍,我一次又一次的发现我不能习惯每月后面加一个分号,我不习惯C里面变量要付初值等 等。那个时候,大家一天到晚编的程序都是一些仿Win95的三维界面等等,人人都觉得Win95是个好东西,但是人人都觉得能自己做出来。大一那一年,我 天天泡在学校机房里面,那时候学校高手不多,对我的水平提高不大,但是认识了很多朋友,这对我的一生都有影响。

大二的时候,我把电脑带到了学校,那时候宿舍不能放电脑。所有的学生的电脑都放在宿舍楼的一楼的一个大房间里面。我们把那里叫做7号楼机房,那里面出来的 人,有一个去了腾迅,其实他是学化工的,有一个去了用友,其实他是学机械的。我也是学机械的,但是从来没有从事过机械行业。我们都是在中国的大学,自学出 来的人。有时候真的有点讽刺,我们学校里面我熟知的高手多不是计科系的。

在7号楼机房,学化工的那个兄弟,因为给化工系做主页,得到了一个上网账号。所以7号楼的一帮子兄弟们第一次上网了。那个晚上,我们10来挤在一个小屋子 里面(大屋没有电话),一起看化工的那个兄弟上网告诉我们什么是电子邮件,什么是QQ。我的第一个邮箱,QQ号,ICQ号都是那个晚上得来的。我们一起用 ICQ和外国人聊天,一起商量怎么回复,怎么问问题。那一夜,我才知道了互联网到底是什么,虽然之前看过多少介绍的文章。

大二我参加了一个学校搞的网页设计大赛,得了技术类的一等奖。学校信息中心的主任刘老师很赏识我,所以邀请我到信息中心去玩。我们就聊互联网,聊技术。后 来我问刘老师能不能给学校的同学们一个地方可以做自己的网站,刘老师说很好,就让我来负责。于是,就有了飞扬。我找了几个玩得好的朋友,凯子,14, netfire,joan,搞起了学校的第一个学生网站,我心飞扬。那时候,我们在实验楼的2楼有一间20平米左右的办公室。我们每个成员都有自己的电 脑,大家的电脑都放到办公室里面,就成了我们的我心飞扬工作室。为了让学校更多的学生可以做自己的网站,我们第一个业务就是免费空间。我们设计了一个自动 申请自动开通的软件。后来我做了一个mp3下载系统,在后来我们做了一个免费图书,放了一个论坛。那时候在飞扬是我在学校最快乐的一段时间。虽然一开始没 有什么收入,也没有什么奖励。但是我觉得几个人在一起能做一些事情,本身就很有意思。后来我们还承接了学校的几个网站来做,挣了一些钱,现在看起来不多, 当时还是不少的。

那时候,在学校我的名气很大。还有一些专业搞培训把我叫去,让我给同学们做讲座。所以虽然成绩不好,但是从来没有被人看轻过。

那时候,主要都在用asp编网站方面的东西,很少做一般的应用程序。唯一就是学习tcp/ip,用vb写了一个pop3邮件服务器端。

再后来,我毕业了,两年以后,我心飞扬因为后继无人,无疾而终,让我很惋惜,但是也不能做些什么了。也许都怪我太理想主义了,理想主义不那么容易生存的。

毕业之后,我找了一个网管兼程序员的工作,什么样的程序都编,什么样的网络问题都管,非常郁闷,也经常感到疲倦。

两年之后,我换了工作到现在的公司,主要是做软件。

这10年来,几乎所有的流行技术,我都摸过,但是都不够精通。数据库,网站,网络,嵌入几乎所有的领域,我也都玩过,都算不上精通。现在仍就茫然不知道方 向,但是总是觉得自己还是喜欢这个职业的,所以即使有挫折,也不悔。即使以后仍旧找不到方向,我还是想去探寻一切我自己感兴趣的领域,无怨无悔。
Git系列(一)、Git基础教程【建议收藏】 Git一、Git简介1.1、什么是Git? 一、Git简介 1.1、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。 ......... 阅读详情

相关推荐

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 539

(转)在路上—Tinyfool的程序员生涯(职业生涯篇一)

BOPGroup的专栏 1767

时空图神经网络实战:T-GCN在交通流量预测中的深度解析

本文深度解析了时空图神经网络T-GCN在交通流量预测中的实战应用。通过结合图卷积网络(GCN)和门控循环单元(GRU),T-GCN有效捕捉交通数据的时空依赖性,相比传统方法降低30%以上预测误差。文章详细介绍了T-GCN的核心技术、工程实践和优化策略,为智能交通系统提供有力工具。

weixin_29038537的博客 267

读 《我为什么要逃离北上广了?》有感

见字如面,我是军哥!前几天看到一位老程序员(41 岁)Tinyfool写一篇,我为什么逃离北上广了《我为什么要逃离北上广了》。Tinyfool 老师的文章,核心原因是一线城市高房价,压力大...

chengjun_java的专栏 378

STM32 FOC半周期控制延时分析与硬件同步配置

在电机矢量控制(FOC)系统中,数字控制延时是影响电流环带宽、观测器收敛性与系统稳定性的核心瓶颈。其本质源于PWM更新、ADC采样与计算执行之间的时序错配,典型表现为1.5个PWM周期的相位滞后,导致滑模观测器(SMO)失效或高速振荡。通过零阶保持(ZOH)建模可量化该延时对系统相频特性的影响,并揭示其等效为0.5u(t)+0.5u(t−1)的平滑控制律。工程上突破的关键在于重构外设协同机制——以高级定时器重复计数器(RCR0)驱动中心对齐PWM的半周期更新事件,使控制量在0.5T_PWM内生效,同步触发多

flink9streamer的博客 1131

疾病负担研究(GBD)介绍

今天我们来聊一聊第一个公共数据库——GBD数据库,全称叫做global burden of disease(全球疾病负担),该数据库每年都会更新,目前已经更新到GBD2019。 这里直接给大家贴出网址:Global Burden of Disease Study 2019 (GBD 2019) Data Resources | GHDx 上图中红色圈圈标识的就是数据库的数据获取界面的链接,大家直接点击即可. 数据的检索十分方便: Context下拉菜单中可以选择不同的选项,默认是caus

weixin_44240228的博客 1万+

eMule协议专题 | Tinyfool的开发日记(blog)

导读: eMule协议专题eMule协议简要分析[一] eMule协议简要分析[二] eMule协议简要分析[三]eMule协议简要分析[一]最近我对P2p方面很有兴趣。实际上P2p并不仅仅能用于盗版的传播,在很多合理合法的需求中,P2p也有很广泛的前景,至少包括了信息的冗余存储,内容分发,突破信息监管等等方面。Google文件系统(Google File System)文档

xu的blog 1303

QT使用高精度定时器

精度相对第二种方法高许多。

ljjjjjjjjjjj的博客 4097

在路上—Tinyfool的程序员生涯(大学篇)

BOPGroup的专栏 1846

基于simulink 的不间断电源ups的项目实例

UPS系统的核心组件包括整流器、逆变器、电池管理系统和控制系统。- **Three-Phase Controlled Rectifier**:设置触发角为0度,用于控制整流器的输出电压。- **Three-Phase Inverter**:设置逆变器的输出频率为60Hz,用于将直流电转换为交流电。- **Control System**:编写MATLAB函数,用于监测市电状态并控制各模块的工作模式。- **Step**:设置阶跃时间,例如0.05秒,阶跃前后的值分别为0和1,用于模拟市电中断。

xiaoheshang_123的博客 709

你知道吗?其实这些都是AI——农作物监控AI

随着全球人口的不断增长,粮食需求日益增加。为了应对这一挑战,现代农业正在迅速转型,引入了许多先进技术来提高生产效率和作物产量。在这些技术中,人工智能(AI)在农作物监控方面的应用显得尤为重要。通过利用AI技术,农民和农业专家可以更好地管理农作物的生长,预防病虫害,并优化灌溉和施肥方案,从而实现农业生产的智能化和精准化。

AI科研社 367

Tinyfool的2013年总结————在困惑和挣扎中试图前行

Tinyfool的2013年总结————在困惑和挣扎中试图前行 Tinyfool的2013年总结————在困惑和挣扎中试图前行 | Tinyfool的BlogTinyfool的2013年总结————在困惑和挣扎中试图前行 ...

120

190、LLC谐振变换器的样机调试实战(问题定位)

这篇实战笔记总结了LLC谐振变换器样机调试中的五大典型问题及解决方案:1)空载炸机源于谐振电容纹波电流能力不足;2)轻载啸叫因控制环路不稳定,需调整突发模式阈值;3)MOSFET过热由死区时间不当导致,需精确优化实现ZVS;4)输出纹波大由PCB布局耦合引起,需优化共模抑制;5)启动过冲需延长软启动时间。作者强调调试需结合示波器、热成像仪等工具,理论计算与实测并重,并详细记录每次参数调整。文章指出LLC调试是不断试错的过程,关键是通过现象分析本质原因。

Jack010169的博客 48

和程序员大叔谈恋爱的甜甜甜甜甜 | 程序员有话说

作者 |楠子 责编 | 伍杏玲 本文经授权转载自奔跑的楠子(ID:nanzimail) 【程序人生 编者按】文中的“龙猫”是一位程序员,女朋友视角讲述和程序员谈恋爱的甜甜甜甜甜!好吧,看完我酸了! 大叔比我大13岁,那年我23岁,他36岁。别人问我们是怎么认识的,我就骗他们说是跑步认识的,还编得像模像样,「龙猫他要减肥呀,刚好加入了我所在的跑团」。 其实我们是网恋。...

程序人生的博客 5489

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

郝培强专访:创业失败、抑郁症和自媒体爆款

万字长文,总结Tinyfool 10多年创业、自由职业生涯的经验和教训。

常政·视角 2684

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

程序员永远的鸡血:编程语言之争

最近微博上很热闹,各路大牛悉数出马,讨论大家都很鄙视却又时不时拿出来争个面红耳赤的“语言”问题。此番场景甚是熟悉,就如《西游记》隔那么一段时间就要拿出来翻拍一遍…… AD: 51CTO云计算架构师峰会 抢票进行中! 最近微博上很热闹,各路大牛悉数出马,讨论大家都很鄙视却又时不时拿出来争个面红耳赤的“语言”问题。此番场景甚是熟悉,就如《西游记》隔那么一

蓝斯的专栏 1442

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

UrlRewrite(地址变换)技术在IIS 5.0/ASP平台上面的应用[Come From Tinyfool的开发日记(blog)]

在聊这个技术问题前,我不由得想起一个可笑的故事。NetCraft曾经做了一个测评,这个测评根据比较大量网站页面的扩展名是ASP.NET的还是JSP/Servlet的,得到了一个结论,现在ASP.NET的应用超过了JSP/Servlet。这个测评引发了大量的讨论,很多用JSP的技术人员嘲笑这个测评。因为这个测评的结论忽略了一个很大的问题。那就是,JSP开发的网站的页面,一定是.jsp么?答案当然是否

sharpcn的专栏 2307

从进入会场见到的 Blogger

&#13; 先后看到了 Tinyfool(有我两个体积大), Virushuo(和网上不太像), 极有个性的Zola, 车东, 雅虎的其他几位5位同事,知名 Blogger Keso , 吕欣欣, Yupoo 的刘平阳, 豆瓣阿北, 詹斌,还有一位”泥巴网”的朋友。 Keso 的演讲还在继续,不过话筒时断时续,台下果然”咳嗽”声不断。Blog 改变生活。 Keso 说到关于公...

Fenng's Blog 196

【转】为什么我认为每个程序员都应该用Mac OS X?

原文:http://tiny4.org/blog/2010/02/why-programmers-should-use-mac-os-x/ 查尔斯·狄更斯老师的《双城记》里有句非常著名的话,我每次看到都心潮澎湃,所以看了无数次《双城记》总是在那两句话前后打转。心说,开头就这么 好,正文无论如何也无法让你觉得精彩了吧? 原文是,“It was the best of times, it was...

webcenterol 187

任何事都不是简单得如你所想

    昨天看到TinyFool 的文章,发现我每天经常使用的Notepad还有如此功能:在文件的头部加上“.LOG”,这样每次打开文件时,焦点都会自动定位到文件结尾,并加注当前日期。    看来任何一件事情,你认为是简单的,其实还有许多你没有挖掘的。任何事都不是简单得如你所想。这里我要感谢TinyFool,是他让我对bloger有了清晰的认识。这个世界果然不同Happy Accident ?!

打印/传真嵌入式开发--张志龙的专栏 2799

工作是容易的,赚钱是困难的(转)

李宗盛有首歌的歌词里写到:「工作是容易的,赚钱是困难的」。乍一听感觉有点矛盾,工作的一个重要结果不就是赚钱么,为什么工作容易赚钱却难?但仔细一想就恍然其中想表达的意思了。 工作的本质是出售劳动价值,通过工作赚到的钱是对劳动价值的价格度量,也即劳动的市场价格。而劳动的市场价格总是围绕价值上下波动,有可能折价也可能溢价,但总不会偏离价值本身太远。所以歌词里的...

weixin_34354945的博客 193

录制优快云 Live视频节目的体会

昨天和今天连续录制了两期优快云的视频节目优快云 Live,感觉非常爽。昨天的一期的话题是“写blog的程序员”,我邀请到了两位在网络上比较有名的两位bloogger--virushuo和Tinyfool。一位现在刚刚加盟了donews,一位是265的员工。他们分别写了大概有二三年的blog了。其实,最初做这个视频节目,还是很担心的,因为这毕竟是视频的内容,面对镜头很可能会紧张。不过经过

创业算法 3783

感受情怀

关于老罗和王自如事情要从long long ago说起。话说十几年前老罗语录走红的时候,我就是他粉丝了。不过后来他开始写BLOG,我就粉转路人了,虽然那时也常去牛博,但对老罗的很多观点都不赞同。等他再去开英语学校的时候,基本已经淡出我的视线。直到锤子ROM出来,我才重新注意到他。虽然锤子ROM的确有一些亮点,但真谈不上什么革命性——基本上所有的Android第三方ROM在我看来都差不多:比较好的就

猛禽的编程艺术 3118

VideoRemoveBackground 使用指南

本教程基于 GitHub 开源项目 [tinyfool/VideoRemoveBackground](https://github.com/tinyfool/VideoRemoveBackground),该项目旨在提供一个视频背景移除的解决方案。接下来,我们将深入探讨其目录结构、启动文件以及配置文件,帮助您快速上手并利用该工具。 ## 1. 项目目录结构及介绍 ```markdown Vide

gitblog_00188的博客 744

程序猿,你是否知道这些网站

原文: http://www.note4u.info/blog/2011/11/develop_web_site/ 以下这些网站有的是独立的技术博客,有的是网站的某个模块,有的是纯粹的将技术,提供代码和文档,也有想51cto这样,即涉及技术又关注咨询的网站。因为英语不好,很少关注英文的技术网站。 1、IBM开发社区(http://www.ibm.com/devel

any 947
上一篇: [火炬]的这17年
下一篇: 我的出国留学之路,献给大家[转]
dobly
博客等级 码龄24年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值