分类: 技术宅

  • 双系统下格式化ubuntu出现问题的解决方式

    是不是想让系统直接启动到Windows,不出现Linux的Grub(或LILO)引导界面,或者是在Windows中删除了Linux分区后无法正确启动Windows,而停留在“grub>”提示符处,怎么办? 请往下看,这里给你提供几种实用的方法:
    (更多…)

  • WordPress文章标题中文不正常显示问题

    很多博友对WordPress的一些国外收费主题不显示中文标题一直很困扰,很多功能强大且漂亮的主题对于国人来说都是美中不足的,鉴于此,在网上搜索了一下相关原因,发现这些主题都是用了Cufon这种网页文字渲染特效。首先来了解一下Cufon:
    根据百度百科的资料:

    什么是 Cufon:
    Cufon 是一个用来替代 sIFR 框架, 实现在网页中对文字字体进行渲染功能的纯 JavaScript 开源类库(cufon-yui.js)。
    为什么要使用 Cufon:
    在web开发中,经常面对的一种“冲突”,即“字体(Font Family)冲突”。
    通常的这一冲突总是爆发于 Web 页面的设计者(Designer)和开发者(Coder)之间。在很多场合下,Web 页面的设计者都会倾向于在他们的页面设计稿中,为文字附加使用一些“特殊”的字体和特效,以此来展示他们卓越的设计能力。比如设计一个公司的Logo,图片上的一些特殊字体是从ps字库中调出的,当然这些文字在图片上显示肯定是没有问题的,但是如果要在网页中用文本来显示这些效果,就是会让开发人员抓狂了,因为浏览器并不支持所有的字体,这种情况Cufon就会大显身手了。

    对我们而言,只要简单知道Cufon 是渲染网页字体的就行了,很多定义的字体里面没有中文,所以不显示中文标题,我觉得是这个原因,既然不支持,只要把cufon的js删除或者注释掉就可以。

    解决办法:

    找到cufon.js或cufon相关命名的文件,这个文件基本是在主题的js文件夹内,也许是在其他位置,仔细找找就能找到,找到后把这个文件名改成其他名字或者把这个文件删除,就可以了。
    也可以通过注释代码来实现,一般是在header.php文件里面,搜cufon就知道cufon.js是在那个文件了,直接把这句代码注释掉,或改改就行了。

    如果在header文件里面找不到cufon相关的内容,可以尝试一下在其他显示选项下面寻找是否包含一个cufon的文件,本博客就遇到这种问题,现用主题有一个叫做lightword的功能,cufon就集成在里面,所以只需要取消执行cufon就可以了。

  • 测试一下wordpress的新浪微博同步功能

    我正在测试一下wordpress的新浪微博同步功能,不知道效果如何。

  • WINDOWS装机必备软件

    由于每次重装都有一系列的软件需要装,而且每次装过以后都或多或少的忘记一些。所以将这些软件一一列下,可以帮助自己好好的收集这些好的软件。当然如果读者看到这些,也希望对大家有用。
    注:
    软件的版本没有特别注明的话,可以使用最新版本。
    装软件的时候,请注意所绑定安装的软件,如果不需要,可以不用安装。

    影音播放

    Windows 7 Codecs
    免费软件
    http://shark007.net/win7codecs.html
    WINDOWS 7自带的WINDOWS MEDIA PLAYER,我认为在美观上,微软团队一经做到很到位了,只是在视频格式解码上还是非常的缺乏。Windows 7 Codecs可以作为WMP的一个非常完整的解码器。
    所支持的格式:amr | mpc | ofr | divx | mka | ape | flac | evo | flv | m4b | mkv | ogg | ogv | ogm | rmvb | xvid

    文本编辑

    Notepad++
    免费软件
    http://notepad-plus-plus.org/
    Windows自带的“笔记本”(notepad)软件,仅仅只能作为一个简单的编辑器。而如果需要胜任诸如“程序编程”,“字符编码转换”等等,就非常的力不从心。而这个软件支持几乎所有的程序语言,html, xml, perl, python, java 等等。 在文字编码转换上,能力也不弱,而且界面非常友好。

    网页浏览器

    Mozilla Firefox
    免费
    http://www.mozilla.com/
    大名鼎鼎的火狐可谓无人不知无人不晓。作为一款有别于IE内核的浏览器,在诸如IE内核的浏览器完全奔溃的情况下,他还能稳健的奔跑,足见他的优势。虽然用这个还不够深入,但是即使在UBUNTU系统下,他也属于表配,可见,他可是程序员的浏览器首选。配合下面介绍的插件“google工具栏”,可谓是你走到哪里,都不用担心找不到你保存在家里网页。

    Google Toolbar
    免费
    http://www.google.com/intl/en/toolbar/ff/index.html
    一个火狐浏览器的插件,结合GOOGLE的帐户,将能体验到众多的功能。比如说同步书签,新邮件提醒,分享信息等等。

    Adobe Flash Player
    免费
    http://www.adobe.com/products/flashplayer/
    FLASH已经成为上网不可或缺的一个因素,看视频,网页游戏都需要FLASH,所以,Adobe的Flash必须得成为装机软件的一大必备。

    输入法软件

    搜狗云输入法
    免费
    http://pinyin.sogou.com/
    搜狗云输入法是搜狗研发的新一代中文输入法。它比搜狗拼音法拥有更优异的性能和操作体验,是中文输入史上的里程碑。搜狗云输入法是基于搜狗拼音输入法,依托云计算技术的一个概念性输入法产品。与一般输入法最明显的区别在于,完全靠服务器运算,具有更强大语言模型和词库,能大幅提升输入准确率,特别是长句输入准确率。找词的准确性确实高了,不用花时间去找字,打字速度自然就快了。

    文本阅读

    Adobe Reader
    免费
    http://get.adobe.com/reader/
    Adobe Reader,作为一款PDF的阅读软件,可谓是不可或缺的。

    下载软件

    迅雷
    免费
    http://www.xunlei.com/
    迅雷,国内太有名了,必须得用啊。

  • Bonne année. – Festivale Printemps du Lapin

    虎年刚刚过去,迎来了我们可爱的兔子。这是第四个春节我在外面过了,于是好好的准备了一顿丰盛的晚餐,邀上几位好友一块过。

  • JAVA – 数组 (Arrays, Dictionnaire)

    数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

    在JAVA中,当一个数组给创建,那么这个数组就有一个固定的长度。每一个在数组终的个体,我们称其为元素,每一个元素在数组中都有一个对应的索引号码。而这个索引号码,从0开始计数,也就是说第一个数组中的元素,他的索引号码是0. 如下面这个例子:

    我们创建了一个数长度为10的数组,那么10个元素对应的号码从0开始,一直到9结束。假设我们需要找第九个元素,那么我们因该用所以号码八去找这个元素。

    Illustration of an array as 10 boxes numbered 0 through 9; an index of 0 indicates the first element in the array

    下面这个例子是在JAVA变成中,创建一个整数型数组的全过程,当然这个在实际的变成环境下,我们更多用的是循环来自动创建一个数组,而不是一行一行的把数组的元素输入。

    class ArrayDemo {
         public static void main(String[] args) {
              int[] anArray;              // 声明一个整数型数组
              anArray = new int[10];      // 给10个整数分配内存
    
              anArray[0] = 100; // 初始化第一个元素
              anArray[1] = 200; // 初始化第二个元素
              anArray[2] = 300; // 同上。
              anArray[3] = 400;
              anArray[4] = 500;
              anArray[5] = 600;
              anArray[6] = 700;
              anArray[7] = 800;
              anArray[8] = 900;
              anArray[9] = 1000;
    
              System.out.println("Element at index 0: " + anArray[0]);
              System.out.println("Element at index 1: " + anArray[1]);
              System.out.println("Element at index 2: " + anArray[2]);
              System.out.println("Element at index 3: " + anArray[3]);
              System.out.println("Element at index 4: " + anArray[4]);
              System.out.println("Element at index 5: " + anArray[5]);
              System.out.println("Element at index 6: " + anArray[6]);
              System.out.println("Element at index 7: " + anArray[7]);
              System.out.println("Element at index 8: " + anArray[8]);
              System.out.println("Element at index 9: " + anArray[9]);
         }
    }

    程序输出结果为:

    Element at index 0: 100
    Element at index 1: 200
    Element at index 2: 300
    Element at index 3: 400
    Element at index 4: 500
    Element at index 5: 600
    Element at index 6: 700
    Element at index 7: 800
    Element at index 8: 900
    Element at index 9: 1000

    如何申明一个数组

    上面的例子向我们展示了申明一个整数型数组。而一个数组的声明,可以通过如下格式:

    int[] anArray;

    数组的类型跟一组空的终括号,最后加上数组的名字。还有另外一种方式用来声明数组,那就是把中括号放到数组名字的后面,而更改数组的类型,可以和定义变量的类型一样,如:

    float anArrayOfFloats[];

    下面这个列表是所有可创建的数组类型:

    byte[] anArrayOfBytes;
    short[] anArrayOfShorts;
    long[] anArrayOfLongs;
    foat[] anArrayOfFloats;
    double[] anArrayOfDoubles;
    boolean[] anArrayOfBooleans;
    char[] anArrayOfChars;
    String[] anArrayOfStrings;
    
    

    数组的创建,初始化以及访问

    数组的创建和初始化可以有两种方式,上面的例子是第一种方式:

    anArray = new int[10];  // create an array of integers

    通过new来新建一个数组,用int指出其包含的元素类型,以及后面终括号中的数字,限定了数组的长度。接下来在通过如下方式来给数组添加元素:

    anArray[0] = 100; // initialize first element
    anArray[1] = 200; // initialize second element
    anArray[2] = 300; // etc.

    这里可以发现,在数组名字后面的中括号中,我们加入了索引号码,也就是说,anArray[0]我们在第一个位置添加第一个元素。从读取或者说访问角度来说,我们也同样使用数组名加中括号和索引数字来读取相对的元素。

    而另一种建立数组的方式是:

    int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

    格式很简单,这个方法是直接把数组进行定义,并且直接给定数组长度和数组元素。我们在大括号中添加数组的元素,100,200,300等等都是数组的元素,而所有元素的个数就是这个数组的长度了。

    多层数组的建立

    在java编程语言中,我们可是定义一个多层数组。就是一个数组中有多个数组。如下:

    第一种方法:声明数组 int[][] anArrays

    第二种方法:int[][] anArrays = {{1,2,3,4,5,6,7},{2,1,3,4,5,6},{5,3,3,1,2,3,4,}}

    数组的拷贝:

    java语言提供了一个模块arraycopy来拷贝一个数组到另外一个数组。

    public static void arraycopy(Object src,
                                 int srcPos,
                                 Object dest,
                                 int destPos,
                                 int length)

    在上面的语法规则中,我们能看到2个Object,他们分别是:第一个Object是原始数组,第二个Object是对象数组。而里面有3个int,分别是:第一个int,原始数组的第几个位置;第二个int,对象数组的位置;第三个int,复制的元素个数。

  • R-project学习笔记五

    5. 数据类型转换和函数paste, nchar

    § paste可以使两个字符串相连,并且以空格隔开,例如

    > paste(“numéro”, “1”)
    [1] “numéro 1”

    我们也可以在用paste的函数sep=来改变分割符,例如

    > paste(“numéro”, “1”, “et”, “3”, sep=”_”)
    [1] “numéro_1_et_3”

    同时,还有几种不同的连接方式:

    > x <- c(“numéro”, “partie”, “sous-corpus”)
    > y <- c(“a”, “b”, “c”)
    > paste(x, y)
    [1] “numéro a” “partie b” “sous-corpus c”

    或者

    > y <- c(“a”, “b”, “c”)
    > paste(“numéro”, y)
    [1] “numéro a” “numéro b” “numéro c”

    § nchar以字符型向量为输入,并且数字型向量为输出,返回字符型向量中,每一个元素的字符数量。

    例如:

    > nchar(c(“un”, “deux”, “trois”))
    [1] 2 4 5

    § 数据类型的转换

    数据类型的转换,我们通过一下函数来进行:

    as.logical()                 转换为逻辑型
    as.numeric()              转换为数字型
    as.character()            转换为字符串型

    数据转换的规则:

  • R-project学习笔记四

    4.通过逻辑来抽需向量的值

    向量可以进行算术运算,但是2个向量的长度要相同,用逻辑来进行抽取也一样,需要等同的长度。

    例如:

    > x<- c(“Adv”, “N”, “V”, “D”)
    > i <- c(T, F, T, F)
    > x[i]
    [1] “Adv” “V”
    在逻辑的值是TRUE的时候,将会抽取向量中的值。

    同理,我们也可以用一些逻辑运算符来进行抽取

    § 逻辑运算符:

    大于                            >

    小于                           <

    等于                         ==

    大于等于                >=

    小于等于                <=

    不等与                    !=

    或                             |

    一定                         &

    用逻辑运算符的运算,例如

    > x <- c(1, 6, 2, 8, 3, 4, 9, 10)
    > x [x > 5]
    [1] 6 8 9 10

    还有

    > x <- c(T, F, T, F)
    > y <- c(T, T, F, F)
    > x & y
    [1] TRUE FALSE FALSE FALSE
    > x | y
    [1] TRUE TRUE TRUE FALSE

    § 对于一些返回结果的解释:NULL NA Inf 和 NaN

    NULL,如何我们需要提取一个向量中元素的名字,可是这些元素没有名字,因此返回结果是NULL

    NA,如果我们通过索引来抽取一个元素,可是这个索引的值大于向量的长度的时候得出NA,NA的类型是数字类型

    Inf,数学计算中,1/0的结果未定义,所以,用Inf

    NaN,而0/0是没有这种计算的,所以用NaN(Not a Number)

  • R-project学习笔记三

    3. 向量中元素的名字

    给向量中的元素命名,一个向量不单单只有索引,同时他还能拥有名字,那么如何来对这个向量命名呢?

    § 例如给向量x中的元素命名

    x <- 1:4             结果是1,2,3,4

    我们用命名函数names()加与x中同等数量的名称来命名, 如果少于这个数量,那么所却的名字,将自动由NA来代替,如果超过,就显示错误。

    names(x)=c(“one”,”two”,”three”,”four”)

    最后得出x的值是

    one  two  three  four

    1       2       3         4

    § 抽取一个名字的值

    如何得出上面例子终two的值,这里我们使用的方法和用索引一样

    x[“two”]得出结果

    two

    2

    并且这个抽取过程,可以重复进行,并且不许要按照顺序去抽取。

    也可以直接在建立一个向量的同时抽取结果

    > z <­ c(“le”, “la”, “les”)[c(2, 3)]
    > z
    [1] “la” “les”

  • R-project学习笔记二

    2。 向量的建立和提取

    变量是最简单的向量, 第一章笔记中,我们所说的都是长度为1的向量,但是着仅仅只是一个特殊情况。一个长度不等与1的向量,有多个元素,并且只有一个类型。而且,每一个向量都有一个索引。这里特别提出,竟然第一章中说的变量都是长度为1的向量,那么也应该有向量的特性,例如数字型 1, 他的特性是,长度为1,那么索引就是1,类型是数字型.

    § 建立一个多元素向量:为了建立一个多元素向量,我们需要的是函数c(),

    例如:x<-c(1,2,5,6),得出向量x,的值为1 2 5 6,长度为4,类型是数字型,并且每一个元素都一个其对应的索引,如5的索引是3,6的索引是4.

    § 统一的向量的类型:因为一个向量的类型只有一个,所以,如果在建立向量时,包含了多个类型的元素,那么这些元素将会自动转换为一个统一的向量。

    转换过程中的优先级:字符串>数字>逻辑(布尔)

    § 函数length(): 函数的用法很简单,就如同其他的一样在括号加入向量的变量名,将会自动输出向量的长度。

    § 一些其他的函数:seq(), rep().

    seq(),这个函数是一一列举两个参数为数字类型的向量,有2种方式,1是用逗号将这两个向量隔开,而是用冒号

    例如, seq(1,13)或者seq(1:13)得出的结果是一样,结果为, 1 2 3 4 5 6  7 8 9 10 11 12 13

    rep(),这个函数就是重复功能,使用2个基本的参数。第一个是所要重复的向量,第二个是重复的次数

    例如,rep(3,2),这里得出的结果是:3 3,向量3给重复了2次

    § 提取向量的值:因为每一个向量都有个索引, 所以根据这个索引,我们可以用来提取向量。

    例如:x<-c(1,5,2,3,4,7),x的值为 1,5,2,3,4,7,那么对应的索引为第一个位置值是1,第二个位置值是5,第三个位置值是2 … 到最后一位只是7.

    如何来提取这个向量的值呢?我们使用方括号,例如要提取向量中第二个值5,我们使用x[2],x[2]的结果就是5了。