大数计算神器KCalc

最近闲来无事,研究了一下各个系统自带的计算器,测试了一下各个计算器能够运行的最大计算。

1、Windows 7

QQ图片20170818145810

运行阶乘,最大能到3248,大概就是科学计数法到了9999后面就溢出了。

2、Windows 10

QQ图片20170818150027

一样,可以认为就是换了一个皮肤。

3、Ubuntu

QQ图片20170818150712

颇有些意外,999!都无法计算。

4、ubuntu mate-calc

QQ图片20170818151100

这是99999!的结果,四五秒钟可以出结果,单线程。这个大数让人吃惊吧,赶紧研究一下他的源码。

https://github.com/mate-desktop/mate-calc

mate-calc基于Calctool,一位sun工程师的作品,经过不断改进,最后结合一位名叫Richard Brent的数学家的FORTRAN程序,用C语言完成。

$:time mate-calc -s 99999!
2.824229407×10⁴⁵⁶⁵⁶⁸

real 0m10.455s
user 0m10.415s
sys 0m0.029s

由于是在虚拟机里面测试的(物[……]

Read more

Grub2 挂载ISO文件安装新系统

现在安装新系统,很方便,Windows可以双击setup.exe文件直接升级,Linux可以软碟通写一个可引导u盘,通过u盘引导安装。

其实如果你有一个Linux系统或者一个U盘pe系统(大多是基于Linux的grub引导),大可通过修改grub2的配置文件,直接挂在U盘进行引导安装。

这几天把移动硬盘重新分区了,原来的系统只保留了Ubuntu和Gentoo,Lunar一直有些小问题,直接重新装一个算了。今天我要重新安装Lunar Linux,手头没有U盘,所以用grub2来引导Lunar的安装。

menuentry "Lunar.iso" {
    set isofile="/home/Lunar.iso"
    loopback loop (hd1,6)$isofile
    linux (loop)/boot/initrd archisolabel=Linux img_dev=/dev/sdb1 img_loop=$isofile
    initrd (loop)/boot/linux.img
}

重启,进入grub菜单。

Gentoog安装Sogoug拼音

前面折腾了几次sogou,好像都失败了,有几次是不能全局使用。

1、layman -a gentoo-zh

2、emerge -av kcm-fcitx sogoupinyin fcitx

3、fcitx-autostart

4、fcitx-configtool

 

这次应该是可以啦。

Linux内存机制以及手动释放swap和内存

一、什么是linux的内存机制?

我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。

物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。

作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。

Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。

要深入了解linux内存运行机制,需要知道下面提到的几个方面:

  1. Lin[……]

Read more

Git科普——Git操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。

Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。

  • git clone
  • git remote
  • git fetch
  • git pull
  • git push

本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。

git

一、git clone

远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。


$ git clone <版本库的网址>

比如,克隆jQuery的版本库。


$ git clone https://github.com/jquery/jquery.git

该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。[……]

Read more

人机大战第二季今日上演,柯洁大战阿尔法狗

从今天开始,著名的人工智能围棋程序AlphaGo(阿尔法狗)将与现世界排名第一的中国棋手柯洁九段展开三番棋决战,同时,中国5位世界冠军组成“最强大脑”团队和阿尔法狗进行合力对抗。人机大战第二季正式上演。

对于第二季人机大战,主办方设置的奖金是三番棋获胜方150万美元,而不论胜负,出场费也高达30万美元。在对抗时间上,这次也与第一季有所不同,当时李世石对阿尔法狗的用时是每方2小时,1分钟读秒5次,此次则是每方用时3小时,1分钟读秒5次。增加用时可以说适当地照顾了人类棋手,让棋手在反应神速的阿尔法狗面前能稍稍放量思考。

除了柯洁与阿尔法狗的重头戏,这次人机大战还有亮点,那就是中国5位世界冠军“合力打狗”,他们是时越、芈昱廷、唐韦星、陈耀烨和周睿羊,这5个人是当今世界棋坛翘楚,合力的目的是让人类棋手充分发挥集体智慧,规避单打独斗产生的失误,以相对成熟的招法对抗人工智能。

业内外对这次的人机大战不抱乐观态度,古力九段悲观地预测:“柯洁只有10%的取胜机会。

给用户添加sudo权限

linux给用户添加sudo权限:
有时候,linux下面运行sudo命令,会提示类似:
xxxis not in the sudoers file.  This incident will be reported.
这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决:
  1. 进入超级用户模式。也就是输入”su -“,系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
  2. 添加文件的写权限。也就是输入命令”chmod u+w /etc/sudoers“。
  3. 编辑/etc/sudoers文件。也就是输入命令”vim /etc/sudoers“,进入编辑模式,找到这一 行:”root ALL=(ALL) ALL“在起下面添加”xxx ALL=(ALL) ALL“(这里的xxx是你的用户名),然后保存退出。
  4. 撤销文件的写权限。也就是输入命令”chmod u-w /etc/sudoers“。
    然后就行了。

Ubuntu中root用户和user用户的相互切换

(1)从user用户切换到root用户

不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user

但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要用sudo授权,感觉很麻烦

此时我们可以切换到root用户,只需要简单的执行sudo su 即可

注意: 出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变

的,貌似是每5分钟改变一次,所以用su(switch user)是不可以的,因为我们不知道root的密码

 

(2)从root用户切回user用户

想从root用户切回user用户只需执行命令:su user (user是你自己安装时候的用户名),或是直接输入exit,也可Ctrl+D组合键推出

 

(3)给root设定一个密码

默认root用户是无固定密码的,并且是被锁定的,如果想给root设置一个密码

只需执行命令:sudo passwd root 然后根据提示一步一步来

这样皆可以向(1)[……]

Read more

Gentoo下的一些”垃圾”清理

1、清理distfiles,packages目录的工具eclean,包括eclean-dist,eclean-pkg,这两个工具包含在gentoolkit这个包中。


emerge gentoolkit

清除已经下载的软件包

rm -rf /usr/portage/distfiles/*

只删除过期的包

eclean distfiles (请先 emerge gentoolkit)

清除emerge过程中产生的临时文件

rm -rf /var/tmp/portage/*

2、清理world文件的工具dep,这个工具包含在udept议这个包中。这个工具的作用很简单,也很强大,它可以清除world文件中多余的包记录,以建立更加精简有效的world文件。

emerge udep

 
3. revdep-rebuild
它可以通过扫描你已经安装了的ebuild文件来了解软件包是否因为一次它们依赖的软件包的升级而被破坏。 它可以为你重新emerge这些软件包。但也可能是给定的软件包在当前的依赖环[......]

Read more

The following REQUIRED_USE flag constraints are unsatisfied: exactly-one-of ( nss gnutls )

lhw Chroot # emerge -av networkmanager

* IMPORTANT: 16 news items need reading for repository ‘gentoo’.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies /

!!! Problem resolving dependencies for net-misc/networkmanager
… done!

!!! The ebuild selected to satisfy “networkmanager” has unmet requirements.
– net-misc/networkmanager-1.4.4-r1::gentoo USE=”bluetooth consolekit dhclient gnutls introspection mod[……]

Read more