分类 计算软件 下的文章

[笔记]视频格式转码

个人笔记,如有转载,请注明作者和出处。
——by realasking

前几天去某单位作了个关于自己工作的报告,结果嵌入到ppt中的用kdenlive压的mp4视频无法在使用WinXP的讲台上播放,比较尴尬,这两天摸索了一下,发现用msmpeg4编码就好了。写了个脚本,如下:

#!/bin/bash
for i in *_fixed.mp4
do
  ffmpeg -i $i -b:v 10M -vcodec msmpeg4 -acodec wmav2 ${i}.wmv
done

这么设置,清晰度和原来差不多,且没色块。

[笔记]中国移动光宽带用户下载Github项目中releases压缩包的办法

个人笔记,如有转载,请注明出处。

——by realasking

我家用的中国移动送的移动光宽带,以前在家干活儿时间少,没有觉得有啥不便,最近因为疫情问题,没有出家门,终于觉得移动光宽带上某些站点实在难以忍受了。

最近一段时间,用移动光宽带下载Github上的项目的releases包和更新AUR里的很多包,速度都慢到令人发指。上午8点到10点,下午2点到4点稍快,能达到50KiB/s,其它时候都在7~8KiB/s,而且关键是,如果挂在那里不管,下载一段时间后就会中断。Github的东西又不能续传,更新几次VTKLAMMPS等等简直要了老命了。百度网盘的离线下载就是废物,技术水平可能太水了,尽管买了超级会员,离线下载的时候总是资源不存在。

好在经过一番搜索,找到了解决的办法,直接用微软账号登录offcloud.com,然后把链接拷贝到页面上的对话框,什么都不用再改,直接回车,就能开始顺利下载了,下载速度基本上保持在120KiB/s~2MiB/s,也没中断,很好了。只是AUR的更新就得手动完成,不过这也不算麻烦,可以将就用着了。

【原创】在Manjaro Linux上安装和配置Gnome纪实

个人笔记,如有转载,请注明出处。

——by realasking

最近更新系统后遇到一些问题,修复过程中,损坏了KDE的一些配置,有些毛病排查起来比较麻烦,鉴于我在Linux下主要的编程、阅读和文本编辑环境已经基本迁移到Emacs上,桌面环境的更迭对我的使用习惯影响应当不大,所以打算先重新安装一个新的桌面环境,快速开始工作,今后有时间再恢复原来的KDE,最终再次安装了Gnome桌面。相对于KDE而言,Gnome仍然是很不完善的,表现在缺乏配置工具、缺乏某些必要的功能,以及一些桌面小工具使用不正常,要让其正常使用,还是需要一定的安装和调整。而我多年未主要使用Gnome,对它的发展已经不够清楚,配置过程中走过了一些弯路,这里作个记录。

安装Gnome

[[email protected] ~]$ sudo pacman -S gnome-shell-extension-appfolders-manager gnome-shell-extension-appindicator gnome-shell-extension-dash-to-dock gnome-shell-extension-desktop-icons gnome-shell-extension-unite gnome-software-packagekit-plugin gnome-themes-maia gnome gnome-extra gnome-mplayer gnome-layout-switcher manjaro-gnome-extension-settings-19.0 manjaro-gnome-settings-19.0 polkit-gnome gnome-subtitles libnautilus-extension eog-plugins guake gnome-icon-theme-extras gdm fprintd gnome-tweaks
[[email protected] ~]$ sudo systemctl disable sddm
[[email protected] ~]$ sudo systemctl enable gdm
[[email protected] ~]$ reboot

配置GDM

[[email protected] ~]$ yaourt -S loginized 

然后进入菜单,找到loginized,进行gdm的自定义

禁用tracker

[[email protected] ~]$ systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
[[email protected] ~]$ tracker reset --hard

然后重启

更换壁纸、主题,防止眼瞎

自动更换壁纸

在搜索栏中搜索bing,然后在扩展安装工具中安装Bing Wallpaper changer,再在gnome-tweaks扩展中打开

更换主题

gnome-tweaks中打开user-themes

gnome-look下载MilkyChromeOS-dark-compact两个主题,放入.themes下。

配置应用程序背景色

Milky/gtk-3.0/gtk.css第20行改为

@define-color bg_color #ebf0f4;

配置输入框

ChromeOS-dark-compact/gnome-shell/gnome-shell.css第2730行改为:

background-color: #16a085;

配置顶栏字号

将第27行改为:

 font-size: 12pt;

然后打开gnome-tweaks,在外观下,将应用程序设置为Milky,将Shell设置为ChromeOS-dark-compact

配置时钟显示

在搜索栏中搜索panel-date-format,安装后打开,然后执行:

dconf write /org/gnome/shell/extensions/panel-date-format/format "'%Y年%m月%d日 %H时%M分'"

配置扩展

在搜索栏中搜索、并用扩展管理工具安装以下扩展,然后在gnome-tweaks中打开:

application menu

cpumeminfo

Dash to dock

Lunar calendar

Openweather

Removable drive menu

Simple net speed

文件关联

gnome没有提供文件关联设置,然而一些自定义的desktop文件在nautilus中常常无法识别,表现为右键打开的时候,找不到自定义的工具,解决办法是启动kdesystemsettings5来设置文件关联。

禁用桌面效果

打开dconf-editor,搜索/org/gnome/desktop/interface/enable-animations,关闭它。

故障排除

启动时,有些开机启动程序不能最小化

安装tray icon扩展,并启用

guake启动时提示F12无法绑定

先删除guake,重启后重装,然后在gnome-tweaks中加入开机启动

坚果云安装后在nautilus的菜单中看不到选项

在安装坚果云之后,再安装aur中的nautilus-nutstore

ibus输入栏字体太小

安装扩展ibus font setting,然后用它来设置

更新系统后重启无法进入gdm,引导结束后屏幕上方有一个光标始终闪烁

编辑/etc/gdm/custom.conf,去除WaylandEnable=false前的注释符号,然后重启。
登录时选择gnome on xorg

自动挂载移动硬盘后只能卸载,不能断电

执行:

sudo pacman -S manjaro-gnome-settings-19.0 manjaro-gnome-extension-settings-19.0

然后重启

topbarDash to Dock上的drive indicator只能卸载移动硬盘,不能断电

这两个就是残次品,没有断电功能,只能在gnome-tweaks中将它们禁用,然后按照上面所说的方法在nautilus中卸载移动硬盘

各种拾色器不能使用

登录时选择gnome on xorg
然后使用用gtk开发的程序,尽量不要用其它图形库的程序。

使用中鼠标突然失灵,无反应

实际上是桌面问题,重新插拔鼠标即可,有时一天会发生多次,要用gnome的话,忍忍就好。

geocluegeoclue2服务导致开机时进入gdm花费很长时间

先卸载掉geoclue2和所有相关的包,重启后重新安装

使用中遇到的未解决的BUG

移动硬盘问题

如果移动硬盘在进入系统桌面前插入电脑,在Gnome中无法被安全移除,只能卸载,即使按照之前的进行过设置

有些情况下Dash to dock不能自动隐藏

设置智能隐藏的情况下自动启动guake,如果在启用其它任何gui程序之前,按F12弹出guake,会发现dock不会隐藏,会遮挡guake弹出窗口的最下方几行。但如果有比如google-chrome-stable之类的程序先被打开,再呼出guake,则一切正常。

gdm引导其它桌面环境的问题

目前只遇到引导deepin桌面有问题。在manjaro上使用gdm引导deepin桌面后,会遇到两个问题:

一是系统无法从deepin环境关机/重启/休眠/注销,只要执行这些命令之一,deepin桌面会快速退出到plymouth的界面,然后无法进行下一步动作,注销时无法退回到gdm界面。

二是ibus不会启动panel,导致deepin中无法启动输入栏,需要每次进入deepin后以root权限killibus的进程,然后以如下命令重新启动ibus

ibus-daemon -xdr --panel=/usr/lib/ibus/ibus-ui-gtk3

nautilus中使用扩展造成和输入法热键冲突

最典型的就是使用nautilus-terminal时可以用F4呼出Terminal,但是要关闭时却和ibus-rime的热键发生冲突,变成了选择英文、简繁体的功能。

【笔记】对python的最佳优化:换用C++

之前写了个处理计算数据的脚本,图方便,直接用python做的,结果哪想到后来要反复使用这个脚本,就觉得慢了,于是进行了一系列优化。
最初这个脚本运行时间是270秒左右;
使用numpy替换部分列表之后,运行时间缩短到220~240秒;
numpy对部分矩阵赋值改成整行赋值,运行时间缩短到202秒;
将部分内容函数化,然后把外层循环用迭代器替换,运行时间缩短到184秒;
嗯,成效显著。突发奇想,要是换成c++来实现一下怎么样?
于是花了两个小时coding,运行之后......
耗时5秒。
嗯,看到这个结果......
今后需要多次使用的脚本,不太复杂的还是用c++吧......

【原创】2019年使用Intel编译器和CMake编译支持CUDA、python的lammps

个人笔记,如有转载,请注明出处。

--by realasking

这几年来,lammps的程序变得规范了许多,自从其github上发布的版本支持cmake之后,编译也变得简单了不少。去年8月曾经尝试在自己笔记本的win10下的WSL环境用cmake编译过一个简单的版本,并将方法发布在百度lammps吧:win10下安装lammps不完全教程,现在发现它已经更加完善,于是就在实验室服务器上用此方法重新编译了一个更新版本。

系统环境

我们实验室的服务器有P100显卡,安装有intel编译器和mkl数学库,之前已经安装了virtualenv,vtk,voro++,jpeg,png等库及开发包。

系统环境变量采用env-modules来管理。

安装mpi4py

pip3 install mpi4py

安装cmake 3.1

要支持GPU组件和识别MKL数学库,必须使用cmake3.1。

yum install cmake3*

获取lammps

git clone https://github.com/lammps/lammps.git

编译Cuda版

[[email protected]]$mkdir build; cd build
[[email protected]]$cmake3 .. -DCMAKE_INSTALL_PREFIX=~/lammps -DCMAKE_BUILD_TYPE=Release -DPKG_CORESHELL=ON -DPKG_DIPOLE=ON -DPKG_GRANULAR=ON -DPKG_MOLECULE=ON -DPKG_PERI=ON -DPKG_MC=ON  -DPKG_MISC=ON -DPKG_USER-MEAMC=ON -DPKG_USER-REAXC=ON -DPKG_REPLICA=ON -DPKG_KSPACE=ON -DPKG_PYTHON=ON -DPKG_POEMS=ON -DPKG_MANYBODY=ON -DPKG_USER-ATC=ON -DPKG_USER-AWPMD=ON -DPKG_USER-DIFFRACTION=ON -DPKG_USER-FEP=ON -DPKG_USER-MEAMC=ON -DPKG_USER-MOLFILE=ON -DPKG_USER-PHONON=ON -DPKG_USER-REAXC=OFF -DPKG_USER-VTK=ON -DPKG_VORONOI=ON -DDOWNLOAD_VORO=OFF -DPKG_USER-FEP=ON -DPKG_USER-MEAMC=ON -DPKG_USER-MOLFILE=ON -DPKG_USER-PHONON=ON -DPKG_USER-VTK=ON -DBUILD_OMP=ON -DPKG_OPT=ON -DPKG_USER-OMP=ON -DPKG_KOKKOS=OFF -DPKG_KIM=OFF -DPKG_LATTE=OFF -DDOWNLOAD_KIM=OFF -DBUILD_OMP=ON -DPKG_OPT=ON -DPKG_USER-OMP=ON -DBUILD_LIB=ON -DBUILD_EXE=ON -DBUILD_SHARED_LIBS=ON -DPKG_GPU=ON -DPKG_PYTHON=ON -DGPU_API=cuda -DGPU_ARCH=sm_60 -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpif90 -DFFT=MKL -DMKL_INCLUDE_DIRS=-I/opt/intel2015/composer_xe_2015.2.164/mkl/include -DMKL_LIBRARIES=-L/opt/intel2015/composer_xe_2015.2.164/mkl/lib/intel64
[[email protected]]$make -j20
[[email protected]]$make install

编译纯CPU版

[[email protected]]$mkdir build2; cd build2
[[email protected]]$cmake3 .. -DCMAKE_INSTALL_PREFIX=~/lammps_nocuda -DCMAKE_BUILD_TYPE=Release -DPKG_CORESHELL=ON -DPKG_DIPOLE=ON -DPKG_GRANULAR=ON -DPKG_MOLECULE=ON -DPKG_PERI=ON -DPKG_MC=ON  -DPKG_MISC=ON -DPKG_USER-MEAMC=ON -DPKG_USER-REAXC=ON -DPKG_REPLICA=ON -DPKG_KSPACE=ON -DPKG_PYTHON=ON -DPKG_POEMS=ON -DPKG_MANYBODY=ON -DPKG_USER-ATC=ON -DPKG_USER-AWPMD=ON -DPKG_USER-DIFFRACTION=ON -DPKG_USER-FEP=ON -DPKG_USER-MEAMC=ON -DPKG_USER-MOLFILE=ON -DPKG_USER-PHONON=ON -DPKG_USER-REAXC=OFF -DPKG_USER-VTK=ON -DPKG_VORONOI=ON -DDOWNLOAD_VORO=OFF -DPKG_USER-FEP=ON -DPKG_USER-MEAMC=ON -DPKG_USER-MOLFILE=ON -DPKG_USER-PHONON=ON -DPKG_USER-VTK=ON -DBUILD_OMP=ON -DPKG_OPT=ON -DPKG_USER-OMP=ON -DPKG_KOKKOS=OFF -DPKG_KIM=OFF -DPKG_LATTE=OFF -DDOWNLOAD_KIM=OFF -DBUILD_OMP=ON -DPKG_OPT=ON -DPKG_USER-OMP=ON -DBUILD_LIB=ON -DBUILD_EXE=ON -DBUILD_SHARED_LIBS=ON -DPKG_PYTHON=ON -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpif90 -DFFT=MKL -DMKL_INCLUDE_DIRS=-I/opt/intel2015/composer_xe_2015.2.164/mkl/include -DMKL_LIBRARIES=-L/opt/intel2015/composer_xe_2015.2.164/mkl/lib/intel64
[[email protected]]$make -j20
[[email protected]]$make install

然后将两个版本分别加入到module文件中,使用时动态切换就可以了。