GoldWave,音频编辑利器

GoldWave是一款集声音编辑、播放、录制、和转换于一体的软件,体积小巧,功能却不弱。可打开的音频文件相当多,包括WAV、OGG、VOC、IFF、AIF、MP3APE等音频文件格式。内含丰富的音频处理特效,从一般特效如多普勒、回声、混响、降噪到高级的公式计算。

软件处理音频还是相当不错的,常用的淡入淡出效果非常方便,不过官网已经打不开了,不知道是不是倒闭了。

可以从华军软件园下载,或者这里

Read More →

自曝一张玉照

慎入!

Read More →

curl groks URLs

一个不错的测试工具,字面解释是用来测试url了,但是也可以用来测试网络通信,先MARK一下:

curl is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other useful tricks.

链接地址:http://curl.haxx.se/

Read More →

猴子的故事

很久以前有两只猴,在摘桃的时候为了不被老虎吃掉,决定合作。有一只先上树吃桃,另外一只负责放哨。吃桃的要留一半给放哨的,而放哨的不能擅离岗位。这就要求两只猴子不能只想自己。于是,两只猴变成了猴群,猴群变成了人群。——《无人区》

本来是带着看喜剧的心情去看《无》,结果悲剧了,看成了悲情剧,也引发了对人性的思考,我咧了个去,太疼了。故事么,就是这么一个故事:

成功律师潘肖(徐峥 饰)刚刚出色地赢得了一场艰难的诉讼,离开城市初涉戈壁滩,驾车飞驰在西部公路上。一个神秘人挡在前方,一起车祸就这样发生……方圆六百里无人区,一切通信方式形同虚设。 数百公里外的城市里,一个能助他登上成功巅峰的机会在诱惑他;荒漠中央唯一的加油站里,一位善良的女孩在等待他;六百里之内唯一的公路上,两股凶神恶煞在追击他;潘肖跑在一条仿佛没有尽头的公路上,似乎已走投无路…… 这是一个“成功人士”走进无人区,在绝境之中力挽狂澜的故事……(摘自豆瓣

为数不多的国产优质剧情片,网友还有认为是离好莱坞最近的一次,我觉得过了吧,呵呵。

看完的第一反应是:不应该带着看喜剧的心情去看,失望了,不是因为电影不好,而是本想乐一乐的,结果剧情是犯罪,色调是大西北,灰灰的;第二反应是:这片子有什么问题?为什么被禁?被剪了哪段?看着还挺连贯的。后来在网上搜了一下这部片子为什么被禁,最后比较合理的解释应该是没有被禁,只是延期,相隔4年上映,大家自然以为是被禁了,其实事情没有想象的那么简单。延期的原因,和政治风头有关,与少数民族有关,与西北稳定有关,不多说了,总之上映了,算是无心做了一回电影期货,以4年前的电影成本,在今年抛售,票房收入绝对不菲!

说说这部片子带给我的思考。一名只为名利的律师,为奸人辩护,只为钱财,但他内心还是善良的,只是他太渴望成了,一直梦想着能“上头条”,进入无人区后,他以为自己撞死了人,自己又喝酒,想着自己一辈子就完了,他很害怕,害怕失去,对自己的人生绝望了,不论什么原因撞了人,酒后事故致人死亡,坐牢是一定的(PS:提醒一下自己,酒后驾车,害人害己!)。

 

Read More →

什么是扁平化?

“扁平化”这个词听过好几遍,一直没有深究是什么意思,好像知道,但是又不太清楚,字面意思是把界面设计成又扁又平的样子,而事实上,还真就的是这么一回事。看起来没什么技术含量,但事实并非如此,连苹果这么高傲的公司,在IOS7开始,也广泛使用扁平化设计,这就代表扁平化设计是当前设计的潮流,是能被广大用户所接受的设计方式。

在搜索“什么是扁平化设计?”时,会看到好多文章把它与拟物化设计扯在一起,知乎达人负二的回答,我更赞同:与“扁平化设计”相对应的是“浮雕效果”。

“扁平化设计”根本是种古老的UI,和“拟物化设计”、学习成本什么的根本扯不上关系好吗?BIOS设置界面就是典型的“扁平化设计”,这种表单的形式很美吗?我觉得很丑诶!但是它很难学吗?我觉得很清楚明了嘛!

“扁平化设计”之所以可以取代浮雕效果,成为一种趋势,基本就是触摸操控兴起和鼠标没落的结果——在用不到鼠标,而用手指的情况下,浮雕效果的必要性大大减弱了(因为手指面积很大,相应地按钮、图标等可点击元素的面积也会相应增大,并由于手指和界面的直接接触,相对于展现”按下/弹起“这个状态,展现出手指触摸到的面积更重要一点),它变成了一种偏重装饰性的多余的设计。

拿苹果的“拟物化设计”和“扁平化设计”来做对比分析真是牵强到死!“拟物化设计”的逻辑出发点是”学习成本“,“扁平化设计”的逻辑出发点是”为触摸优化“,把这二者硬扯到一起,各位不觉得有点关公战秦琼的意思吗?我不觉得“拟物化设计”和“扁平化设计”是矛盾的,一个闹钟图标,你可以做成立体的,也可以做成平面的,但不会因为你把它做成平面的,人们就认不出它是一个闹钟了!

又想起腾讯的产品,微信和QQ,每天都离不开,微信做得好看吗?我觉得大多数人都不会觉得好看吧?但是为什么还要用?只是我们离不开他罢了。下一个版本的微信和QQ,也许就是扁平化的,触控设备使用扁平化设计,正符合用户的口味,下面的这个广告,就说明了一切。

Read More →

C语言中的main函数参数及返回值

开发中遇到了需要传参数给main函数的问题,不常用,也就不记得了,特意查了一下,参考这里

一个简单的C语言例子,如下(例子来源于参考网站):

int main(int argc, char *argv[])
{
   int i;
   for (i = 1; i < argc; i++)
       printf("%s%s", argv[i], (i < argc-1) ? " " : "");
   printf("\n");
   return 0;
}

程序编译后,添加参加如:c:\demo.exe hello,world

程序就会运行出来结果:

hello,world

C语言约定:argv[0]的值是启动该程序的程序名,因此argc的值至少为1,如果argc的值是1,说明程序名后面没有命令行参数。

Read More →

BAT脚本获取批处理文件所在路径

参考:http://www.cnblogs.com/lm002003/archive/2012/05/15/2502365.html

BAT命令经常使用,有必要记住几个常命令,命令大全参考:http://blog.csdn.net/annhf/article/details/1842362

这里是MARK一个获取路径的小知识,开发时遇到一个小问题,获取可执行文件的当前路径,这样文件不论转移到哪儿,都可以运行,“write once, run anywhere!”的精髓啊。

在批处理开头加入cd /d %~dp0就可实现当前目录切换,%0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径。例如,你的bat文件在e:/mybat/test.bat,则%0就是e:/mybat/test.bat, %~dp0是e:/mybat/,例子来源参考网站。

更多有用的命令:

  • %~0: 取文件名(名+扩展名) 
  • %~f0:取全路径 
  • %~d0:取驱动器名 
  • %~p0:只取路径(不包驱动器) 
  • %~n0:只取文件名 
  • %~x0:只取文件扩展名 
  • %~s0:取缩写全路径名 
  • %~a0:取文件属性 
  • %~t0:取文件创建时间 
  • %~z0:取文件大小 

Read More →

关于 xxxx.exe 中的 0xxxxxxxx 处最可能的异常: 0xC0000005: 读取位置 0xxxxxxxx 时发生访问冲突

参考:http://www.cnblogs.com/lin1270/archive/2013/04/17/3025831.html

多线程调试直接崩溃,没有堆栈调用,很难查问题,只有一个错误提示框,类似于“关于 xxxx.exe 中的 0xxxxxxxx 处最可能的异常: 0xC0000005: 读取位置 0xxxxxxxx 时发生访问冲突”,参考上述站点,把堆栈调出来的方法,MARK:

工具栏上的【调试】->【异常】,把图上显示的【引发】勾上即可。

Read More →

数组名和数组名取地址的区别

一直困惑了很久的一个问题,今天终于解决了,参考:http://blog.csdn.net/daniel_ice/article/details/6857019

#include <stdio.h>

int a[2] = {1,2};
int main(){
        printf("a = %p\n", a); // I
        printf("&a = %p\n", &a); // II
        printf("a + 1 = %p\n", a + 1);// III
        printf("&a + 1 = %p\n", &a + 1);// IV

        return 0;
}
//结果如下(Windows):
//a = 01137034
//&a = 01137034
//a + 1 = 01137038
//&a + 1 = 0113703C

在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址。 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“。

看到这里我想应该就知道为什么 会有I 和 III式的结果了。

对于II 和 IV 则是特殊情况,在《C和指针》p142中说到,在以下两中场合下,数组名并不是用指针常量来表示,就是当数组名作为sizeof操作符和单目操作符&的操作数时。 sizeof返回整个数组的长度,而不是指向数组的指针的长度。 取一个数组名的地址所产生的是一个指向数组的指针,而不是一个指向某个指针常量的指针。

所以&a后返回的指针便是指向数组的指针,跟a(一个指向a[0]的指针)在指针的类型上是有区别的。

Read More →

字符串常量到底存放在哪个存储区

参见搜索做的总结,原文地址如下:http://blog.csdn.net/daiyutage/article/details/8605580

一直有一个疑惑,字符串常量放在哪个存储区呢?比如:

char *pstr = "hello world!";

这里,"hello world!"是一个字符串常量,pstr是在栈中的变量,字符串常量(hello world!),如何存储?举个例子,比较清晰。

//main.cpp
int a = 0; //全局初始化区
char *p1; //全局未初始化区
main()
{
    int b; //栈
    char s[] = "abc"; //栈
    char *p2; //栈
    char *p3 = "123456"; //123456\0在常量区,p3在栈上。
    static int c = 0; //全局(静态)初始化区
    p1 = (char *)malloc(10);
    p2 = (char *)malloc(20);
    //分配得来得10和20字节的区域就在堆区。
    strcpy(p1, "123456"); //123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。
}

上面例子说得比较全了,之前还以为char s[] = "abc"; 这里的abc也是在常量区,too young, too simple啊。

下面总结的一些常识,很形象,很生动,MARK一下。

Read More →
在线学习答案查询入口
微信扫一扫
微信扫码联系