- 博客(751)
- 资源 (38)
- 收藏
- 关注
原创 【Linux】遍历某一目录,判断文件与文件夹,main参数
LINUX下遍历目录的核心头文件是#include ,方法一般是这样的:打开目录->读取->关闭目录。相关函数有:DIR *opendir(const char *dirname);struct dirent *readdir(DIR *dirp);int closedir(DIR *dirp);注意到,在读取的时候,是返回一个叫dirent的结构体,其定义是这样的:struct dirent
2015-12-24 11:36:14 4240
原创 【php】win2003虚拟机中apache服务器的访问
虽然在win2003配置php有点非主流,但你还是要会怎么弄。你也可以将本文的虚拟机看成是服务器,宿主机看成是客户端。不像Linux系统,由于win2003有IIS的存在,占有了固有的80的端口,在win2003虚拟机中配置的apache服务器常常被迫改成其它端口,比如8081,有时候,如果你想在宿主机或者外网访问win2003下配置在apache下的php,可能会出现ping是能ping通,
2015-12-24 10:29:14 1132
原创 【Linux】用Winscp远程访问无图形界面的Linux系统
学会远程访问Linux系统很重要,尤其是无图形界面的服务器Linux系统,这一点尤为重要,只会利用《【Linux】在Ubuntu12.04安装VMware Tools》(点击打开链接)与《【Linux】在Debian安装VMware Tools》(点击打开链接),用VMware Tools在宿主机与虚拟机中传输文件远远不够,下面以Ubuntu为例,介绍一种在Windows下用Winscp远程访
2015-12-23 17:21:25 4564
原创 【Linux】纯C环境下字符串的处理
在LinuxC下,是没有string这个头文件的,比如如下代码:#include#includeint main(){ string A="aaa"; string B="bbb"; return 0;}由于纯C的环境下,连字符串的概念都没有,以上的代码是直接过不了编译的。而对于string.h这个头文件,虽然有,但同样是不带string字符串变量的声明,如下的代码
2015-12-23 11:45:55 3001 4
原创 【Linux】bool的使用
一些你认为理所当然的东西,在LinuxC中不是说用就用,例如bool布尔型由于其C语言标准古老,就像如下一段,利用函数返回值判断是否正数,很平常的代码:#includebool is_positive(int num){ if(num>0){ return true; } else{ return false; }}int main(){ int num=1; if(
2015-12-23 09:44:25 12514
原创 【Linux】利用C语言文件流复制单一文件
LinuxC下的复制单一文件与其它语言的没有区别,对于文件操作皆要用到文件流、文件流的缓冲区的概念,可能这就是操作系统中的共性吧!网上对于LinuxC如何复制文件,往往直接用到system("cp 源文件 目标文件"),如此“不负责任”的解决方案,要是别人规定不能用shell脚本呢,必须从C语言的根本解决问题呢?如下图,用过Linux下的人都知道如何用终端命令复制文件,这里答了等于没答:
2015-12-19 10:10:23 6074
原创 【jQuery】利用lazyload.js延迟加载技术应对多图杀猫的单一页面
有时候不可避免地在某一页面摆上大量图片,众所周知,一张网页如果上面的元素超过100KB,那么,你的网页会加载得很慢,纵使现在的网络已经不是当年的猫,然而,你也应该尽可能地提高你的网页加载速度。对于多图杀猫的单一页面可以利用到lazyload.js延迟加载技术,也可以直译为懒加载。如下图,比如我这个页面是一个以图片为主的网站,就是要在上面同时摆上下面的15张大图。即使你摆个缩略图上去
2015-12-18 11:37:33 3702 1
原创 【Linux】线程互斥
线程最大的特性就是可以一个代码,多个线程同时执行,从而极大地提升程序的运行速度。然而,在线程并发的同时要注意,互斥的情况,比如如下的一个模拟一个最近话题的抢票程序,显然设定的三个线程仅能有一个线程得到票,否则票会撕烂,其实,这个程序在《【Java】利用synchronized(this)完成线程的临界区》(点击打开链接)已经详细说过了,只是这次的编程环境编程了LinuxC。如下的线程互斥的程序
2015-12-17 17:05:51 1340
原创 【Linux】线程
LinuxC的线程与WindowsC的线程有一点的区别,由于线程涉及到操作系统,因此,所调用的库与部分语法有所不同,是很正常的。不过思想是一样的,什么是线程,我在很久之前的文章《【Java】线程并发、互斥与同步》(点击打开链接)已经写过。下面主要用一个小例子,来说明Linux中线程的使用,如下图,就是一个简单的3,2,1倒数,每隔一秒i自减,输出i就这么简单。具体程序如下:#i
2015-12-17 11:03:11 689
原创 【Linux】vi/vim的使用
vi/vim这个代码编辑器得到很多Linux程序猿的推送,自Linux/Unix出现以来,一直得到部分程序猿的推送。如果你用惯各类IDE,或者windows下的编辑器,将会非常不习惯这个东东,然而你也必须要懂,因为遇到一些无图形界面的服务器,你不得不利用vi/vim去编辑Linux的部分文件,下面说说vi/vim的使用。首先呢,如果这个Linux有图形界面,比如Ubuntu12.04,按Ctr
2015-12-16 11:47:00 5105
原创 【C#】提示文本
在C#窗体中不宜采取如下图,以类似网页的placeholder形式展示提示文字实在不可取:C#窗体中没有像HTML5中封装有placeholder的属性。如果要整这个替换文本,难免在这个窗体的代码,每次涉及这个输入框,都要判断当前这个对话框存放的是否是替换文本,这样会对以后的编程造成很大的负担。其实对于窗体的提示,更多应该采用,类似于HTML中alt="",title=""这种
2015-12-15 20:56:18 3009 1
原创 【C#】菜单
菜单栏是窗体程序中,一个很重要的组件,下面就利用一个小程序,说明C#窗体程序中如何使用菜单。如下图,实现一个很简单的,在各类文本编辑器中都很常见的替换功能。注意到,无论是菜单栏的工具 或者是 替换功能,都是配有快捷键的。选择 替换功能弹出一个新的模态对话框,让用户输入东西。具体制作过程如下:1、首先贴上本解决方案的文件组织树,其中Intent.cs是用来在窗体与窗体之间
2015-12-15 11:12:51 4755
原创 【Python】利用count函数求list中每个元素出现的次数,求众数的改进
在《【Python】利用setdefault函数实现dict的转置(key与value对互换),统计value出现的次数》(点击打开链接)中介绍过,如何统计dict中相同value的key的出现次数。本文介绍如何利用list自带的count函数,来统计list中每个元素出现的次数。具体代码如下:arr_appear=dict((a,arr.count(a)) for a in arr);
2015-12-14 16:45:32 30432 3
原创 【Python】利用setdefault函数实现dict的转置(key与value对互换),统计value出现的次数
所谓dict的转置也就是key与value对的互换。这里唯一的问题是,Python要求dict中一个key仅能对应一个value而不能对应多个。因此,如果对于dic = {"a":2, "b":1, "c":2, "d":2, "e":1};这样一个dict,单纯地交互key与value的位置,# -*-coding:utf-8-*-dic = {"a":2, "b":1, "c":2,
2015-12-13 17:25:21 5462
原创 【Python】无须numpy,利用map函数与zip(*)函数对数组转置
在Python的numpy中,对类似array=[[1,2,3],[4,5,6],[7,8,9]];的二维数组的转置,就一句话array.T。其实不使用numpy,单纯使用Python,代码也不长,同样也是一行。不过在此之前,先说明Python中map函数与zip(*)的使用。一、map函数首先Python中的map函数是很简单的。意为将第二个参数(一般是数组)中的每一个项,处理为第一个参
2015-12-13 16:19:41 19090
原创 【Python】Mysql中文乱码问题与MySQLdb对Mysql操作类的改进
Python的MySQLdb对Mysql的字符串字段的中文查询出现问题,主要原因是在MySQLdb.connect中缺少一个charset="utf8"参数。与那个在PyDev还报错的sys.setdefaultencoding("utf-8")无关。保证表是utf-8编码就可以了。同时如果MySQLdb只是单纯对Mysql作单纯查询,并不用像《【Python】Mysql数据库操作类》
2015-12-13 15:15:12 1032
原创 【php】获取路径(目录)
在php的编程中时常要获取各种目录,尤其在下载,引用相关php文件的时候。虽说include、require等方法引用文件,同样可以像html写目录那样利用../上级目录,aa/bb当前目录下aa文件夹下的bb,然而随着网站的不停地开发,所建的文件夹,站点的目录越来越多,不宜通过不停取上级目录的方式来找到一个文件或文件夹的位置,更实际的做法上取站点的根目录,之后再一级一级地取下来,这样,无论项目怎
2015-12-10 17:17:51 12603
原创 【Smarty】缓存技术
Smarty除了让php与html代码分离的特性外,还有一个缓存功能,它能够极大提高用户的访问速度,但是一些数据是不能够被缓存的,如用户的状态、网页的统计数据、时间等等,这需要控制好。缓存技术之所以能够提升访问速度,是因为它直接把一个渲染好的html呈现给用户看,无须每次访问都要再查一次数据表,执行一次php代码等等,既减少了数据库的读写、减少服务器负担,也提升用户访问速度。下面用一个例子说明
2015-12-10 16:47:30 1019
原创 【Smarty】利用Smarty编写一个VC分离的php网站
其实一般情况下没有人这样搞,如果这样搞还不如直接写框架。虽然Smarty已经被推到一个两头不到岸的尴尬地位,单纯用Smarty对下不如php与html开发快好理解,对上不如直接上ThinkPHP等框架清晰,但是现在许许多多的php开源项目Discuz!、Wordpress、ThinkPHP或多或少包含着Smarty的影子,毕竟当年Smarty的霸主地位不是吹出来的,正如VC6的MFC。下面利用Sm
2015-12-10 11:37:27 1276
原创 【php】利用.htaccess文件使网站静态化,将php页面伪装成html
其实这部分内容在《【ThinkPHP】ThinkPHP下载、部署,Helloworld,消除难看的index.php》(点击打开链接)已经实现了,只是当时没有意识到其实对于网站下的所有php,都是可以将原本是http://xxx.com/1.php搞成http://xxx.com/1.html,这样一来便于搜索引擎的收录,二来别人不知道你的网站是用什么语言写的。这部分也是php静态化、URL重
2015-12-09 19:57:12 5808 4
原创 【Smarty】Smarty引用、常用内置变量、判断、循环、JavaScript脚本
在《【Smarty】Smarty的下载、配置与Helloworld》(点击打开链接)说明了Smarty的基本运行方式,这里再进一步说明,Smarty的条件结构、循环结构怎么使用、Session怎么取还有一些常用的小问题之类的。用一个例子来说明问题,比如Smarty中有一个c.php,其代码如下:<?phpinclude "Smarty.inc.php";//使用Smarty特性$_SE
2015-12-09 16:39:31 1276
原创 【Smarty】Smarty的下载、配置与Helloworld
Smarty不是一种像ThinkPHP那样的大型框架,只是一个php类库,说白了就是一个写满了函数、类供调用的php文件,类似于jar包。其作用很简单,所谓的模板引擎,就是将一些php语句转化为诸如jstl等c标签表达式的{$xx}取值等,以致于避免php与html混写的情况。部分php公司招工明确规定要会Smarty,看起来好像很高大上的样子,其实是妖魔化了,其下载、配置与使用简单得很,下面就来
2015-12-09 09:42:51 3518
原创 【C#】窗体间互相传值
网上关于C#之间的窗体之间互相传值其实很坑的。主要有修改要被传递数值的窗体的构造函数,然而这种方法,如果你要做打开一个窗体,然后这个窗体输入完东西之后传递回去,根本就是不知道怎么实现。之后还有什么委托delegate事件event大法,这个虽然能够实现,但我表示自己看了老半天都没看懂这个C#神特性。比如如下的例子,在Form1点击“修改”按钮,将打开Form2,Form2中有一个文本框,输入完
2015-12-03 17:33:33 12768
原创 【Python】用zip函数求欧氏距离、余弦相似度
首先欧氏距离,如此高大上的名称,其实大家都学过的也就是坐标系,或者说是N维向量坐标系的两点之间的距离^_^。也被称作“欧几里得度量”。在二维坐标系,公式是这样:在N维坐标是,公式就是:而余弦相似度,就是两个向量的夹角余弦值,这个数值常用来评估他们的相似度,具体的公式如下:,换算成具体的数值就是:也就是说具体为两个向量的点乘积(数量积、内积)除于各自的模之积当然,本文不是来介
2015-12-02 20:46:45 21733
原创 【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印到控制台
python作为数据分析的利器,求极差、平均数、中位数、众数与方差是很常用的,然而,在python进行统计往往要使用外部的python库numpy,这个库不难装,然而,如果单纯只是求极差、平均数、中位数、众数与方差,还是自己写比较好,因为,给一个.py程序别人的机器,别人的机器上没有python库numpy,又要别人折腾一番,这很不好。不过看情况咯,如果你要处理上亿级的数据,还是配置一下外部的py
2015-12-02 17:07:35 42995 5
原创 【C#】按钮长按
如果在C#窗体,单纯点击按钮,之后将鼠标长时间放在这个按钮上,不放开,双击按钮默认产生的click事件是不会出现多次相应的。双击按钮默认产生的click事件只会在鼠标点击按钮,再松开按钮,这样才会执行其中的代码一次,无论你将点击之后,鼠标在按钮悬停多久,都不会相应的,会直到你松开未知。因此类此如下的按钮长按效果:你需要自己改写按钮本身具有的按下按钮与松开按钮事件,同时拉入C#的
2015-12-01 20:28:51 12279 1
原创 【C#】Timer、窗体大小和屏幕大小
这也是很简单的事情,窗体大小能取就能用,屏幕大小用Screen.PrimaryScreen.Bounds.Width/Height;。在C#中的Timer其实与VB.NET的Timer差不多,《【Visual Basic】计时器与窗体屏幕尺寸的取法》(点击打开链接),下面用一个小例子还说明这个问题:如图,在一个窗体中有两个按钮,点击可以之后,窗体就开始横向增加大小,增大到当前屏幕大小的
2015-12-01 17:09:06 2436
原创 【C#】窗体透明度、ListBox的增删改查
这两个都是C#窗体的基础内容,下面用一个简单的例子说明这个问题,注意ListBox不是ListView就好。如下图:有两个按钮可以调节窗体的透明度,而在上方,如果ListBox的项被选中,则会呈现在文本框之中,可供修改,没有选中ListBox的项,或者选中之后,点击ListBox的空白处,则是为ListBox添加项的状态,同时可以删除相应的项。并且无论是在添加还是在删除状态,都是要
2015-11-30 21:01:37 4176
原创 【C#】用组件的Anchor属性解决最大化组件的缩放问题
如果不对组件进行任何设置,同时也不禁用C#窗体的最大化按钮,设置Form1不可调整,在Form1最大化之后,默认是如下图的效果:这显然不符合大多数的审美,其实只要全选所有组件,不包含窗体,设置其所有组件的Anchor属性就好。将Top,Left改成Top,Left,Right就好,就是点一点下图的右端的长方形就好。这样设置的话得到的效果如下图:其实这已经足够
2015-11-29 11:46:47 11671
原创 【C#】文件选择对话框OpenFileDialog与下列列表ComboBox
主要用如下的一个小例子,说明C#窗体中文件选择对话框OpenFileDialog与下列列表ComboBox的应用,点击“选择文件”按钮,就可以打开文件选择对话框OpenFileDialog,无论是多选文件与单选文件,都能够将选择的内容添加到下列列表ComboBox之中。同时,一开始,下列列表ComboBox是“无”的状态,在文件选择对话框OpenFileDialog选择的文件夹由于Windows本
2015-11-29 10:47:24 4806
原创 【Python】Mysql数据库操作类
在《【Python】Windows平台下Python、Pydev连接Mysql数据库》(点击打开链接)中介绍了如何为Python与Eclipse中的Pydev环境增加Mysql的操作能力。下面为Python的Mysql数据库操作设置一个类,以后每次使用就不会将代码写得七零八落了,尽管Python是简直有爱的脚本语言,但还是要将代码写得尽可能好看。还是完成《【Java】利用单例模式、可变参数
2015-11-27 20:56:41 6584
原创 【Python】构造函数、析构函数与可变参数传递
在《【Python】Windows版本的Python开发环境的配置,Helloworld,Python中文问题,输入输出、条件、循环、数组、类》(点击打开链接)虽然一定程度上介绍了Python中类的用法,然而并没有涉及到类中最重要的两个东西,一个是构造函数,另一个是析构函数。构造函数的作用是保证每个对象的数据成员都有何时的初始值。析构函数的作用是回收内存和资源,通常用于释放在构造函数或对象
2015-11-27 17:13:03 5697
原创 【Java】利用单例模式、可变参数优化Java操作Mysql数据库、JDBC代码的写作
本文没有任何新的内容,只是设置一个Java操作Mysql数据库,让代码写得更好而已。如同《【Java】Java中对Mysql数据库的增删改查、Java的System类》(点击打开链接)一样,工程极其简单,引入操作Mysql数据库相应的jar之后就一个DB类,下文将对test数据库中的一张usertable表进行操作,usertable表的结构如下:这张表用来做例子都用烂
2015-11-27 15:09:48 3945 2
原创 【Java】try中有return,finally块执行问题
对于如下的一段程序:package try_catch_finally_return;public class TCFRtest { private static void Test1(){ try{ System.out.println("try1"); return; }catch(Exception e){ }finally{ System.out.
2015-11-26 17:03:26 5545 2
原创 【Android】计算器
其实这个安卓计算机,所有的后台思想与《【C#】计算器》(点击打开链接)是一模一样的。Win窗体程序移植到安卓,从C#到Java其实很简单的,因为两者的基本语法都很相像,唯一的难点是安卓的xml布局部分,不像C#窗体能够直接拖。还是如下图一个能够完成基本四则运算的计算器:先在res\values\strings.xml设置按钮相应的字体,以免布局文件警告满天飞: 计算
2015-11-24 09:38:24 1707 1
原创 【Android】关于百分比布局多个LinearLayout嵌套时出现的问题与解决方案
在《【Android】利用相对布局布置更新软件的style为主题对话框的Activity,利用layout_weight属性对表格布局的行划分》(点击打开链接)一文中介绍过如何在安卓的Activity中进行百分比布局。本来,在安卓的res\layout相关的xml布局文件进行百分比布局很简单的,比如如下代码则完成两个Button在一个父LinearLayout中进行7:3划分的横向并排的布局。
2015-11-23 11:34:32 5084 2
原创 【C#】计算器
利用C#编写一个计算器。如下图,能够完成基本的四则运算。当然这个程序甚至还不上Windows附件那个自带的多功能计算器。不过这个程序的逻辑还是非常值得思考的,首先你要考虑好用户按+ - * / =等运算符号、数字键之后计算器的状态记录问题。然后要防止多次按某一个键的问题。比如小数点.就不应该让用户在输入一个数的时候键入两次。最后,还要弄两个数组,一个存放用户在输入的数字,另
2015-11-22 11:44:13 31733 13
原创 【Java】求ArrayList中的TopK,不递归
本文是《【Python】求数组(list)中最大的X个数,不递归,尽可能减少代码量》(点击打开链接)的姊妹篇,思想是一模一样的,只是这次是求解一个存放类ArrayList的TopK。比如有一个存放学生(学号,姓名,分数)实体的ArrayList,里面的学生就乱序的。我们要找出其中成绩最高的10位学生。具体请看如下代码,我们先假设这个ArrayList有100个学生,里面的学生的学号分别
2015-11-21 19:32:30 1209
原创 【Python】求数组(list)中最大的X个数,不递归,尽可能减少代码量
在Python中求数组中最大值、最小值直接有max(list),min(list)这个没什么好说的, 就算不知道有这个封装好的方法,直接用C语言那种求一个数组的最大值、最小值也是没问题的。然而,求数组(list)中最大的X个数,这就麻烦大了,这涉及了所谓的TOP-K算法。网上对于TOP-K算法的解决主要有快速排序与堆的处理,个人认为这都不是好方法。这两个方法,时间复杂度、空间复杂度绝对是传世经典,
2015-11-21 16:47:54 7117 2
原创 【C#】利用System.IO中的File类中的ReadAllText与WriteAllText输入输出小文件
当然对于一些大文件的读写还是建议用回传统的文件输入输出流,但是对于一些简单的小文件输入输出直接利用ReadAllText与WriteAllText能够省下不少的代码。你不用判断这个文件是否存在,不用在输入输出完毕处理文件输入输出流,一句代码就能够完事。下面用一个小程序来说明这个例子。如下图,在FileReadWrite.exe中有一个文本框,用户可以在其中输入内容,如果输入内容有所改变,则在关
2015-11-19 16:45:49 21036 2
Unity3D角色FBX模型带动作动画
2017-06-11
Fracturing & Destruction 1.11.unitypackage
2017-05-18
Struts2 Spring3 Hibertnate3核心包
2015-05-11
hibernate-distribution-3.6.10.Final-dist.zip
2015-05-11
jspsmartupload 支持中文
2014-12-15
已配置好Struts2.2.1GA的WEB-INF
2014-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人