0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <mpi.h>
#include <stdio.h>

int main(int argc, char** argv) {
// Initialize the MPI environment
MPI_Init(NULL, NULL);

// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);

// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);

// Print off a hello world message
printf("Hello world from processor %s, rank %d"
" out of %d processors\n",
processor_name, world_rank, world_size);

// Finalize the MPI environment.
MPI_Finalize();
}
阅读全文 »

使用pymysql替代MySQLdb

Django与mysql进行连接使用的是MySQLdb模块,但是该模块并不支持python3,需要使用别的库来替代MySQLdb,这里采用的是pymysql,可以使用pip来安装

1
pip3 install pymysql

之后在Django的站点文件夹中的__init__.py文件夹中添加如下代码即可

1
2
import pymysql
pymysql.install_as_MySQLdb()
阅读全文 »

配置pycharm

  1. 在pycharm上创建project之后,在Run->Edit Configurations->Environment variables中添加两个环境变量:
    PYTHONPATH = /opt/spark/spark1.6.2/python
    SPARK_HOME = /opt/spark/spark1.6.2
    阅读全文 »

在使用linux时,sudo指令是经常会用到的,但是这个加sudo之后经常需要输入密码十分不便,可以通过设置来使加sudo的指令不需要密码,编辑/etc/sudoer文件

1
sudo vim /etc/sudoers

在其中root ALL=(ALL:ALL) ALL后加一行 hadoop ALL=NOPASSWD:ALL,即可使hadoop用户sudo不需要密码,其他用户的设置类似

准备工作

1.下载mysql5.7源码进行编译安装: http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
2.安装必备的包和工具

1
2
3
4
sudo apt install build-essential
sudo apt install cmake
sudo apt install bison
sudo apt install libncurses5-dev

编译安装zlib(安装nginx时一般已经安装)
3.安装功能需要的包

1
2
sudo apt install libxml
sudo apt install openssl

4.下载Boost库
从mysql5.7.5开始Boost库是必须的,一般需要的版本为1_59_0,下载地址为: http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10.tar.gz
下载后解压到与mysql源码相同的目录处

阅读全文 »

  1. 下载smarty并解压复制libs文件夹到CI的applica/libraries文件夹中,将libs文件夹重命名为smarty
  2. 在application/libraries文件夹下新建Ci_smarty.php文件,在其中加入以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

if(!defined('BASEPATH')) exit('No direct script access allowed');

require(APPPATH.'libraries/smarty/Smarty.class.php');

class Ci_smarty extends Smarty
{
protected $ci;
public function __construct()
{
parent::__construct();
$this->ci = & get_instance();
$this->ci->load->config('smarty');//加载smarty的配置文件

//获取相关的配置项
$this->cache_lifetime = $this->ci->config->item('cache_lifetime');
$this->caching = $this->ci->config->item('caching');
$this->template_dir = $this->ci->config->item('template_dir');
$this->compile_dir = $this->ci->config->item('compile_dir');
$this->cache_dir = $this->ci->config->item('cache_dir');
$this->use_sub_dirs = $this->ci->config->item('use_sub_dirs');
$this->left_delimiter = $this->ci->config->item('left_delimiter');
$this->right_delimiter = $this->ci->config->item('right_delimiter');
}
}
阅读全文 »

在平时编程中经常会遇到对字符串进行拆分的情况,例如有些字符串代表了许多组数据,这些数据以‘,’进行分隔,需要将这些数据单独提取出来,以前总是自己去写拆分函数,十分不方便。最近发现java中有一个类叫StringTokenizer可以很轻松地解决这个问题。

先来看看官方API文档对StringTokenizer的解释:

1
The string tokenizer class allows an application to break a string into tokens.
阅读全文 »

在编写程序时经常会需要读取系统的时间,但是大多数语言获取的时间都是距1970年1月1日的毫秒数,十分不方便,在hadoop给出的计算π值的mapreduce例子中有一个millis2string函数能将毫秒数转化为年日小时分秒毫秒显示的String,书写十分简洁,值得学习借鉴。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/** Covert milliseconds to a String. */
public static String millis2String(long n) {
if (n < 0)
return "-" + millis2String(-n);
else if (n < 1000)
return n + "ms";

final StringBuilder b = new StringBuilder();
final int millis = (int)(n % 1000L);
if (millis != 0)
b.append(String.format(".%03d", millis));
if ((n /= 1000) < 60)
return b.insert(0, n).append("s").toString();

b.insert(0, String.format(":%02d", (int)(n % 60L)));
if ((n /= 60) < 60)
return b.insert(0, n).toString();

b.insert(0, String.format(":%02d", (int)(n % 60L)));
if ((n /= 60) < 24)
return b.insert(0, n).toString();

b.insert(0, n % 24L);
final int days = (int)((n /= 24) % 365L);
b.insert(0, days == 1? " day ": " days ").insert(0, days);
if ((n /= 365L) > 0)
b.insert(0, n == 1? " year ": " years ").insert(0, n);

return b.toString();
}

写一个函数输出现在与1970年1月1日的时间间隔,输出结果:

1
46 years 113 days 7:07:31.820

近期将操作系统重装之后需要重新部署hexo,安装maupassant主题时出了点问题,主题安装后所有网页输出均为空。报错为deploy方法git不存在和jade文件不能正常产生。解决该问题的方法如下:

  • 在hexo目录下运行
1
2
3
npm install hexo-deployer-git --save
npm install hexo-renderer-jade --save
npm install hexo-renderer-sass --save
阅读全文 »