atom、electron 和 gentoo

强烈建议用上ccache,不然崩了重开心态爆裂。

atom依赖electron,electron在gentoo里面是2.0.17-r2版本,但是问题多多。首先是pulseaudio它没办法支持(打补丁就可以,但是我还没有学会怎么用补丁),所以要把它的pulseaudio USE给去掉。这样就可以通过7000/16000的第一道坑了。

第二道坑是内置的chromium,源代码的/var/tmp/portage/dev-util/electron-2.0.17-r2/work/electron-2.0.17/chromium/third_party/WebKit/Source/core/dom/Document.cpp有问题,在5192行的结尾少了一个“;”号,要自己补上。这样就可以通过11000/16000的坑了。

这样electron就能编译成功了,atom也就是小case了。

今日小记

最近偷懒了,相片没有调色,饮料也因为肠胃不好没有继续评。明天先把相片调好色放上来。

今天早上因为晚上睡觉的时候睡一下就起床拉肚子,整晚没有休息好,又没有去上产业经济学。明明是自己最不擅长的数学类课程,态度却是最不认真的,恐怕这就是我心里不安的来源吧。同样的也有星期五晚上的固定收益证券。虽然很有自信能够自己学会之前的东西,把期末考试考过,但是总是有一种“今天好像又犯下了什么罪行”的感觉。可能在规则内行动的约束力之一就是违反规则的不安感吧。

今天还和好久没有说话的李奕慧聊了一下心情,被她疏导一下感觉轻松了很多。所以人还是需要朋友听自己说话的……或者说是我这种不能孤独的人十分需要这样的人吧。

今天还把毛概的文章基本写出来了,明天就把它抄到纸上吧。明天还要看一看校历,把放假时间告诉元创的那个女人。拖了这么久都没有做的事情,虽然人家也不怎么可能记得了。

Cloudflare CDN

因为各种原因要用到CDN,所以记下来步骤。

CDN用的是https://cloudflare.com,毕竟是免费的。注册一下,然后按照指示会自动扫描域名的dns记录,如果要让cloudflare作CDN就要把云的颜色按成橙色。然后按照提示,去域名提供商的管理界面把dns服务器改成cloudflare的。

也需要配置SSL,在Crypto里调整,把第一条改成full(strict),因为服务器已经有了Lets的证书。下面的HSTS之类的开关看情况开。

最后就是等了,等到cloudflare接管dns和ssl证书签完就可以了。再访问网站,所有的流量都会经过cloudflare的服务器了。

安全当然是安全了一点,但是效果就是网站的速度变慢了,毕竟cloudflare的服务器在国外。

log4j2 与 maven

参考

log4j 2 maven

在pom.xml里添加:

  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2</version>
  </dependency>

log4j2.xml

在src/main目录下新建一个文件夹resources,在里面新建一个log4j2.xml,并右键resources ➤ Mark Directory as ➤ Resources Root。由CSDN的参考链接添加以下配置到log4j2.xml:

<Configuration status="WARN" monitorInterval="300">
    <properties>
        <property name="LOG_HOME">/var/log</property>
        <property name="FILE_NAME">Thermal</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingRandomAccessFile name="MyFile"
                                 fileName="${LOG_HOME}/${FILE_NAME}.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log">
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <Logger name="mylog" level="trace" additivity="false">
            <AppenderRef ref="MyFile"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

注意更改"LOG_HOME"和"FILE_NAME"后面的内容来配置log文件的位置。

编译时带上log4j2.xml

需要在pom.xml拥有这么一段内容:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}/classes</targetPath>
            <includes>
                <include>**/log4j2.xml</include>
            </includes>
        </resource>
    </resources>
</build>

程序内使用log4j

private static Logger logger = LogManager.getLogger("mylog");

注意mylog是在log4j2.xml里面的Loggers标签定义的。

打包成一个可运行jar包

pom.xml里添加依赖:

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-assembly-plugin</artifactId>
			<version>2.5.5</version>
			<configuration>
				<archive>
					<manifest>
						<mainClass>com.xxg.Main</mainClass>
					</manifest>
				</archive>
				<descriptorRefs>
					<descriptorRef>jar-with-dependencies</descriptorRef>
				</descriptorRefs>
			</configuration>
		</plugin>

注意把“<mainClass>”标签里的com.xxg.Main改成自己的有main函数的class的名字(全路径)。

然后用

mvn package assembly:single

就可以打包了。

nextcloud-snap转成from-source的nextcloud

参考:
* Migrating from nextcloud snap to Nextcloud server
* 每天一个linux命令(60):scp命令
* Setup NextCloud on Ubuntu 18.04 LTS with Apache2, MariaDB and PHP 7.1 Support

前提

一台装了nexcloud-snap的服务器A;一台有足够空间装下前者保存的所有文档的服务器B。

导出备份

导出数据库

在A上执行

nextcloud.mysqldump > my-old-nextcloud.sql

导出数据库。然后scp把这个文件发到B。

备份文件

nextcloud-snap的文件在

/var/snap/nextcloud/common/nextcloud/data/

里,所以用scp把这个文件夹传输到B。scp的语法:

scp -r local_folder remote_username@remote_ip:remote_folder  

装nextcloud

环境准备

重装A的系统,用lnmp一键包装lamp,数据库用MariaDB,PHP选7以上。然后lnmp vhost add添加原来的域名,但是不新建数据库。

接下来创建nextcloud用的数据库:

mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

然后从B把数据库备份scp回来,并且导入:

mysql -u root -p nextcloud < my-old-nextcloud.sql

部署nextcloud

nextcloud的最新release在这里看,一般来说下载链接应该是latest.zip。喜欢在哪个目录保存这个包没所谓,wget下来:

wget https://download.nextcloud.com/server/releases/latest.zip

unzip之后把nextcloud目录里的所有东西搬到/home/wwwroot/域名里面,记得把隐藏文件比如.htaccess带上。然后chown改一下wwwroot的所有者信息。

恢复备份

从B那里把备份的文件夹scp到网站域名下面,和nextcloud其他的文件同级,然后chown恢复一下所有者信息。

然后就可以输入网站域名打开了。一上来可能会让你新建一个管理员帐号,同时下面可以选用什么数据库,记得选MariaDB,输入对应的帐号密码和nextcloud数据库名字。管理员帐号的名字不能和迁移之前的那个一样。

因为之前导入了数据库的备份,所以可能会什么都输好了但是爆炸了,这样的话就要重新设置一次nextclouduser的密码了:

select host,user,password from mysql.user where user='nextclouduser'

set password for 'nextclouduser'@'localhost'=password('密码');

flush privileges;
exit;

就没问题了。

后遗症

  • 之前登录的所有客户端都要重新登录
  • nextcloud-snap上的app数据不会丢失但是需要从官方库重新安装一次
  • iOS、Android的客户端会疯狂尝试登录,然后被服务器屏蔽IP 30秒,所以先退出客户端的登录,然后等半分钟再重新授权就好了。

今日琐碎

今天早上的计量课因为想到会计学快要考试了,所以选择了在宿舍看书。就是翘课。所以会计学了收入和所有者权益两章,今晚可能看不完费用了。


出门的时候还有电,回来就停电了,还越来越过分。本来只是所有房间没电,后来连门禁和水泵都断电了。生活没有电真是很不方便呢。


下午的体育课直接考一千米。本来中午拿了咖啡粉准备泡咖啡,结果没电只能冲点速溶来替代了。上道之前就已经很紧张了,起跑的时候更是倒数。毕竟是考试,导致呼吸节奏已经非常难配合了。但是一开始跑得慢,到最后一百多米发现自己力气还够,所以开始加速冲刺,成功挽救到及格。

结果就是躺床上休息了一个小时才恢复过来。

醒过来之后宿舍来电了,刚好泡一壶咖啡,感觉和在家里喝的一样开心呢。

今日小记

今天跑去城里面购物,主要是为了不用看学校超市里那帮脸色不对劲的工作人员。昌平线中午依然非常拥挤,特别是沙河站超级多人上车。这次去的超市是上地站附近的沃尔玛。上地附近还是比较“郊区”的,楼房都比较矮,而且人行道也挺差的。这个地方的沃尔玛和北京其他的很像,都是分两层的,不像广州的都是一层的。逛超市超级开心,东西单件都便宜,但是最后就买了一百多块了——毕竟是为了一个星期都不用去超市,而且买够零食可以提升快乐。

阅读更多今日小记