Welcome to my blog. The English verison of posts are in En page.

JS-优化上传文件的样式

上传文件type=file真心丑,所以采用方法解决一下。

中心思想是隐藏input,然后利用css定位,使其仍然可以被点击(有点欺骗的性质)

text需要禁止点击(使用diabled='disabled')

源代码

archlinux-安装笔记

  • 本文出自<svtter.github.io>

花了一些时间安装arch,记录一下注意事项。

多重引导

  • 安装多重引导支持

    pacman -S os-prober

  • 更新grub

    grub-mkconfig -o /boot/grub/grub.cfg

  • 写入mbr

    grub-install --target=i386-pc --recheck /dev/sda

图形化的网络服务

systemctl enable NetWorkManager.service

wifi配置

  • 如果你想使用wifi(在图形界面下),首先你要停止dhcp服务systemctl stop dhcpcd.service
  • 开机停止运行systemctl disable dhcpcd.service
  • 我们之所以这样,是为了保证我们的NetWorkManager正常服务。

session控制器

我选择的是gdm,原因是slim我不太会配置。

pacman -S gdm

另外patheon在我书写这篇blog的时候,还是存在不少bug.官方的wiki在这个时候也不是很好用了。期待patheon!

添加了官方给的patheon库,会出现一个gnome-lib的冲突

输入法的注意事项

使用fcitx需要注意.xprofile的配置问题。

其他的安装情况可以看看官方的wiki

sudoer的配置

使用pacman安装sudoer

pacman -S sudo

编辑/etc/sudoers,取消wheel用户组的注释.

vim配置

gvim中,直接使用synatic on而不用判断,否则会造成代码高亮失效。

locate配置

安装以后发现locate命令无法使用,安装pacman -S mlocate

另外, mark一个项目:gitbook, 很好很强大

应该涵盖了所有的我安装时候遇到的问题,如果还有什么问题,我再后续添加。

Linux-进程间的通信

  • 本文出自<svtter.github.io>

实验内容

消息的创建,发送,和接收。

<任务>

使用系统调用 msgget( ), megsnd( ), msgrev( )及 msgctl()编制一长度为 1K 的消息发送和接收的程序 。

程序设计

  1. 为了便于操作和观察结, 用一个程序为引子 , 先后fork( )两个子进程 , SERVER 和 CLIENT,进行通信。
  2. SERVER 端建立一个 Key 为 75 的消息队列,等待其他进程发来的消息。当遇到类型为 1 的消息,
则作为结束信号,取消该队列,并退出 SERVER 。SERVER 每接收到一个消息后显示一句 “(server)received”。
  1. CLIENT 端使用 Key 为 75 的消息队列,先后发送类型从 10 到 1 的消息,然后退出。最后的一个
消息,既是 SERVER 端需要的结束信号。CLIENT 每发送一条消息后显示一句“(client)sent”。
  1. 父进程在 SERVER 和 CLIENT 均退出后结束。

使用的函数

并非每次创建消息队列都会成功,所以重新添加-1情况的判断。

可以使用ipcs -q命令查看

源代码

运行结果

ACM-zoj3789-排列利用


  • 本文出自<svtter.github.io>

利用排列找规律。

首先利用next_permutation函数进行求排列

代码如上。

可以观察出规律,然后即可AC。

详细代码下次再写= =

AC代码

规律在代码中,很明确。

C++学习必备


  • 本文出自<svtter.github.io>

  • (cplusplus)[http://www.cplusplus.com]

介绍三个头文件

在/usr/include/stdint.h中包含着各种关于C数据类型的定义,大小等。

  • unistd.h unix standard library header 这个函数库中包含read, write, gitpid等函数
  • stdlib.h standard library header
cpp 

vim的相关记录

  • 本文出自<svtter.github.io>

vim的部分插件记录

  • snipmate vim中的textmate
  • vimwiki
  • Vimpress : Manage wordpress blog posts from Vim
  • calendar
  • vimmailr.zip : Send (MAPI) mail from vim
  • VOom

关于今天的健身

今天下午去健身。

牛奶事件

先去了新世界陪睡在我下铺的兄弟买杯子。也是见识了伟大的坑爹商场——放了一个大大的10元标签,下面写了一个小小的某品牌牛奶。然后放在下面两种牛奶。

在下眼力尚可,拿了没有标签的15元一杯。结账的时候才发现,也是醉了。随后付钱的时候发现了这个机智的想法——我个人认为这样做生意不会长久,不知道诸位如何作想。

健身问题

不知罗伯特何处去也,只得我两个孤独的健身。但是今天练的着实不够理想——一方面,没有练肱二头;另一方面,感觉背部的重量太小了,不太合适。于是,决定下一次加大重量,顺便为我的健友鼓劲。

感谢王大哥的指导!

筛素数更正

  • 本文出自<svtter.github.io>

写在之前

maker关于线性筛素数的论文。

做到欧拉线性筛法再做补充。(当时还写了个这?)

关于线性筛素数

  • 之前一直没有正视线性筛素数的问题。今天特意来写一个伪证明。如果当前的i不是素数,那么必然被之前的某个素数筛掉了。i × prime[j]。

    一个合数必然可以写成几个素数的乘积,再或者就是p×i这种形式。如果能被i×p1筛掉之后则不需要i×p2继续筛了,i×p2可以写成p1×(i×p2)

例如12可以被6×2筛掉,之前4×3这种筛除就可以去掉。

  • 这种方法会不会存在没有筛掉的合数?

不可能:i会一直到n,也就是整个范围都会包含在内。

代码:

之前的错误在于筛素数的时候没有筛去2的倍数,所以出现后面的值错误。

使用cd快速在目录间移动

  • 本文出自<svtter.github.io>

难得看见一篇好文= =

操作方法

在此学习并且记录。

  • 标记一个书签: mark [书签]
  • 进入一个书签: g [书签]
  • 输出全部标签: gs

实现原理

sudo vim /etc/profile

也可以使用:w !sudo tee %这种方式来保存

shell