论自私

最近些琐事让我不得不思考自私这个词语,不得不言,自私是个很微妙的词。

打个比方,当别人集体在玩乐的时候打扰到了我的休息,我们往往会认为别人是自私的,若我们出来阻止别人来维护自己休息的权利,站在别人的角度,相反的,我们是自私的。这也便形成了一个矛盾体,即此时双方都彼此认为对方是自私的。

并且从大体上看,通常一方若占多数,另一方相对而言便是狭隘的。那么我们能以一方人数多少来断定对方是狭隘的吗?举个例子,我们都知道直接民主即公共意志并非完全正确,他们能以暴力的手段去扼杀对方的正当利益,从道德与当下社会主流价值观来看都是不合理的,那么从小的来看,当对方玩乐影响我们的休息也与此相当,他人有集体娱乐的权利,而休息的你不占上风,只能忍气吞声,因此以一方人数界定自私也具有不合理性。

可是这样的自私该怎么界定呢?我做了一定的思考后便在课余向政治老师请教,他认为之所以这个自私难以界定是因为它缺乏一定的条件。首先考虑地点,在做个举例,当我们在篮球场上看见别人在打球,我们认为对方很是嘈杂,我们上前去阻止,在球场的属性和道德上来看,显然我们是错误的。但在宿舍内,我们不仅得考虑地点还得考虑时间。如果此时非休息时间,我们去阻止别人集体玩乐,我们的行为便是对他人利益的损害,而在休息时间,他人仍集体玩乐,由休息时间即可界定对方是自私的。但休息时间还需要一个依据,由谁规定,其实不难想到是校规即制度(排除舍员们自己规定的休息时间的情况),校规此时起到了不但是象征性的作用还起来到树立准则的作用,即外界约束,原因在于其排斥每个人的合理性,来达到某种平衡。若对方打破外界约束以实现自己的利益,那么自私在以上论述中不难界定了吧?

自动排档期算法

博客已经遍地是草,今天来清一清。即将退出学生会,想给学校留下一个礼物,所以编写了一个学生的广播平台,方便学生互动,并提供一个师生交流的平台,预计校运会上线。

广播部OA系统的前端大部分自主开发,包括但不限于样式表、函数库;后端部分采用 Thinkphp 框架编写,因为学习成本低。

自动排档期的算法是整个程序略为复杂的一部分,我自己有两个方案。

CONFIG

先总的介绍这一模块的数据表结构和配置:

bcs_schedule 所有工作日
bcs_schedule_day 单日节目安排表
bcs_schedule_song 节目信息

NOON_TIME = 1800 中午工作时间
AFTERNOON_TIME = 1800 下午工作时间
ALLOW_EXCEED = 185 允许超过时间

配置以秒为单位;bcs_ 为表前缀,下文省略

0x01

我们的设定是最多安排到两周的节目,所以要设置 CRON 任务,每天凌晨一点自动创建第14天的工作日,以确保第14天的节目有工作日可安排。

当一个节目要进入单日安排表时,服务器首先计算节目的时间并转换为以秒为单位的时间量,其次在数据库查询最近一个工作日的安排情况 ( shedule_day ),若节目设置在中午播放,就计算该节目与当天中午其它节目的时间总和,若小于或等于 ( NOON_TIME + ALLOW_EXCEED )的和,则安排成功,否则安排失败,服务器将继续查询下一个工作日然后重复以上操作直至第 14 日。

0x02__

第二方案十月提出,与第一方案相比主要在于减少大量的数据库查询。

服务器按节目的需求进行安排,若安排在中午时段,就一次性查询近 14 个工作日中午节目的时间量。如果该节目时间量和近一个工作日中午节目的时间量之和小于或等于(NOON_TIME + ALLOW_EXCEED),则安排到这个工作日,否则该节目时间量与下一个工作日午间节目量相加,重复以上工作直至第十四个工作日。

妹blog 数据转换 Wordpres.php

使用说明:将 imouto_article 和 wp-post 数据表放在同一个数据库,并执行该脚本

 

/**
 * Created by PhpStorm.
 * User: Ylune
 * Date: 2017/10/6
 * Time: 12:09
 */

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);

define('MYSQL_HOST', 'localhost');
if(!defined('MYSQL_DATABASE'))
{
    define('MYSQL_USERNAME', 'root');
    define('MYSQL_DATABASE', 'convert');
    define('MYSQL_PASSWORD', 'root');
}

$fields = [
    'post_author',
    'post_date',
    'post_date_gmt',
    'post_content',
    'post_title',
    'post_name',
    'post_modified',
    'post_modified_gmt',
    'post_type',
];

$DB = @mysqli_connect(MYSQL_HOST, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE);

if (!$DB)
    exit('数据库连接失败');

$DB->set_charset('utf8');

$rs = $DB->query('SELECT * FROM `imouto_article`;');
$articles = $rs->fetch_all(MYSQLI_ASSOC);

for ($i = 0; $i < count($articles); $i++) {

    $field=[];
    $field['title']= $articles[$i]['title'];
    $field['date'] = date('Y-m-d H:i:s', $articles[$i]['created']);
    $field['modified_date'] = date('Y-m-d H:i:s', $articles[$i]['modified']);
    $field['text'] = $articles[$i]['text'];
    $field['post_name'] = urlencode($field['title']);

    $sql = 'INSERT INTO wp_posts ';
    $sql.= '('.implode(',',$fields).')';
    $sql.= ' VALUE(';
    $sql.= "1,";
    $sql.= "'".$field['date']."',";
    $sql.= "'".$field['date']."',";
    $sql.= "'".$field['text']."',";
    $sql.= "'".$field['title']."',";
    $sql.= "'".$field['post_name']."',";
    $sql.= "'".$field['modified_date']."',";
    $sql.= "'".$field['modified_date']."',";
    $sql.= "'post')";

    print_r($sql);

    var_dump($DB->query($sql));
    print mysqli_error($DB);

}