• 进击Drupal-1

    image

    环境准备

    首先我们需要有一台CentOS6.5以上的主机,如果你还没有使用过Linux的话,本教程就不太适用了。。

    使用Drupal需要Nginx PHP MySQL这些东西,如果觉得安装麻烦可以使用lnmp进行一键安装,

  • wysiwyg-rails-编辑器支援七牛云存储

    image
    wysiwyg-rails-qiniu 是基于 wysiwyg-rails制作, 上传的资源直接支持七牛云存储
    在使用该gem包前,你得会使用七牛云存储
    传送门: Rails 进阶—— 云存储实战

  • virtualbox ubuntu 下面安装 redmine

    安装 ubuntu配置网络然后在 vb 中配置安装 ubuntu ,这里需要注意的是,把网络类型改为 桥接。 配置静态IPsudo vi /etc/network/interfaces 原有内容只有如下两行: auto lo iface lo in...
  • Android SwipeRefreshLayout 下拉刷新组件的使用

    在极客学院的Android学习中,发现其下拉刷新组件用的是比较老的组件,现在Google官方出的是SwipeRefreshLayout,借此机会学习了一下。先附上图:

  • Android常用控件(下拉列表,日期时间选择器,多选单选框)

    忽然间就开学了,突然有些不知所措,刚开学的事情乱糟糟的堆在一块,也没有什么心思学习了。
    今天课比较少,看了些关于Android的常用控件的知识,整理下来。

    下拉列表

    在布局文件中使用Spinner控件

  • 【C】解析命令行参数--getopt和getopt_long

    前言

    在程序中一般都会用到命令行选项, 我们可以使用getopt 和getopt_long函数来解析命令行参数

    getopt

    getopt主要用来处理短命令行选项, 例如./test -v-v就是一个短选项. 使用该函数需要引入头文件<unistd.h>, 下面是该函数的定义

    1
    int getopt(int argc, char * const argv[], const char * optstring);
  • 【C】文件操作(二)

    前言

    这里主要记录一下C对二进制的读写操作, 包括随机读取文件和写入文件

    fseek 和 ftell

    fseek
    fseek主要用来移动文件指针, 它允许用户像对待数组那样对待一个文件, 可以直接将文件指针移动到任意字节处, 下面是它的函数原型:

    1
    int fseek ( FILE * stream, long int offset, int origin );

    下面是个参数的含义

    • stream - 打开的文件指针
    • offset - 偏移量, 表示从起始点开始要移动的距离(起始点的选择由origin指定), 可以为正(向前移)、负(往回移), 也可以为零(保持不动).
    • origin - 用来指定起始点的模式, 可以使用下面定义的几个模式常量:
      1. SEEK_SET : 以文件开始位置作为起始点
      2. SEEK_CUR : 以文件指针当前所在的位置作为起始点
      3. SEEK_END : 以文件结尾作为起始点
  • Android日志系统

    此文为个人学习记录所用

    使用日志API

    Java :

    • 错误日志-> System.err.println()
    • 普通日志-> System.out.println()
  • 2016年寒假总结

    转眼间将近40天的寒假已经接近尾声了,现在回想起来,虽不甚充实,但亦谈不上虚度。只能说达到了一个基本的目标吧。

    读书

    这个假期算是读了两本完整的书,<<追风筝的人>>和<<灿烂千阳>> (捂脸…)均是在我的kindle上读的。
    最近Amazon推出了一个kindle unlimited计划,每月12软币,其实说白了就是给办了一张借书证。仔细想想还是很不错的,如果真的想多读些书的话非常值得。

  • 【OpenMP学习笔记】更多指令和子句介绍

    指令

    flush

    flush指令主要用于处理内存一致性问题. 每个处理器(processor)都有自己的本地(local)存储单元:寄存器和缓存, 当一个线程更新了共享变量之后, 新的值会首先存储到寄存器中, 然后更新到本地缓存中. 这些更新并非立刻就可以被其他线程得知, 因此在其它处理器中运行的线程不能访问这些存储单元. 如果一个线程不知道这些更新而使用共享变量的旧值就行运算, 就可能会得到错误的结果.
    通过使用flush指令, 可以保证线程读取到的共享变量的最新值. 下面是语法形式:

    1
    #pragma omp flush[(list)]