网易云音乐Linux客户端GUI不能显示问题排查

netease-music

OS: ubuntu 17.10,ubuntu 18.04 网易云音乐版本:netease-cloud-music_1.1.0_amd64_ubuntu.deb

症状

启动了页面弹不出来,命令行也一样,然后呢,点关机按钮,弹出来确认框,随后网易乐音乐页面也弹出来了,这时取消关机,可以正常使用云音乐。

并且录了屏:https://weibo.com/tv/v/FwZO3ltaM?fid=1034:1d480a191cbbcc940b81f619f0614a98

从日志配置文件读取了解java9模块化和类加载机制的改变

前言

Java9出来大半年了,Java10也发布了,Java11半年后就来了,将成为了一个LTS长期支持版,从Java9开始的模块化是java非常重大的改变,未来必然成为趋势,学习模块化也早晚的事。这不正好学习netty,写一个代理软件练练手,顺便学习下模块化。本文并不是完整介绍模块化,而是在使用模块化过程中遇到的一个问题的分析和解决。

问题描述

首先说下项目的基本情况: * JDK9(模块化,即使用了module-info.java) * 项目构建:gradle 4.6 * IDE: IntelliJ IDEA 2017.3.5

代码中有使用到日志工具,目前比较常用的是slf4j作为日志api,实现使用log4j、log4j2或者logback。我当然也这么用,slf4j+log4j2。在不使用模块化情况下(java9为了向前兼容,可以不使用模块化),将日志的配置文件log4j2.xml文件放到src/main/resources然后用idea build->run,但发现log4j2报错:

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2

2017年总结及2018年计划

又到了一年一度的总结计划,我是拖了又拖,完全是难以面对,看看年初的计划,划掉没有做到的事项,全篇都是横线。一种无尽的挫败感和懊悔油然而生,不

通用人工智能 AGI 的一点感想

利用现在非常火爆的AI算法,例如深度神经网络,蒙特卡洛搜索树这类算法,特定领域的智能貌似就在不远的未来,也许就几十年。但是对于通用人工智能AGI(相当于强AI),离我们貌似还很远,DeepMind最近的Alpha Zero,基于自我对弈强化学习加自我对弈蒙特卡洛树搜索,在没有真实棋局训练的情况下,完全是自我对弈训练,从围棋泛化到国际象棋和日本将棋。对于AGI来说,泛化能力的重要性不言而喻。有人认为这条路是对的,但有些人并不这么认为,例如NIPS(神经信息处理系统大会)上两位认知科学大牛。我对AI方面的了解甚至都算不上入门,这里,在我有限的理解下,记录一下我的一些想法。

我们对AI的期望是什么嗯?像《Her》中的Samantha,善解人意,可以成为一个虚拟情人,像《West World/西部世界》或者《Humans》里的人形机器,完全模拟人的行为。人形机器人随着制造业,新材料的发展,或许会越来越像人的外观。但是在认知和思想上模拟人类的思维肯定不是一件容易的事,能肯定的是会在很多方面超越人类个体的能力。

利用容器技术在一个宿主机上运行OpenWrt(LEDE)

在阅读本文之前,可以先了解下另外一篇文章容器核心技术详解

容器技术所用到的技术主要是Linux Namespace和cgroup,目前最成功的方案就是Docker,我们也来试着利用Linux kernel的 Namespace来简单实现docker的部分功能,这里称之为假Docker。

本文相关的代码在这里 fake_docker,文章中对于比较长的代码会省略,可以在代码仓库中查看。

安装ubuntu17.10后的相关软件问题

字体

sudo apt-get install ttf-wqy-microhei  #文泉驿-微米黑
sudo apt-get install ttf-wqy-zenhei  #文泉驿-正黑
sudo apt-get install xfonts-wqy #文泉驿-点阵宋体

自带google的思源黑体 Noto Sans CJK

WPS

1.到优麒麟下载wps64位,dpkg -i安装。 2.apt-get install -f修复依赖 3.到debian网站下载libpng12,安装 4.下载网上专为wps做的字体包安装 5.apt-get安装文泉驿字体

Python 调用C/C++

Python3 中提供了 ctypes 模块,它支持与 C 兼容的数据类型,可以用来加载 C/C++ 动态库。

C代码

test.h

extern int add(int, int);

test.c

容器核心技术详解

最近看了docker用到的技术,于是在公司分享了一下,对于Linux内核比较关心的同学肯定早就知道这些知识了,但是我一直对内核不怎么了解,这些对我来说算是新知识,寻思着后面看看内核相关的书。

Linux Namespace

a feature of the Linux kernel that isolate and virtualize system resources of a collection of processes. 注:linux kernel的一个特性,可以隔离并且虚拟化一组进程的系统资源。

名称 宏定义 隔离内容 发布版本
IPC CLONE_NEWIPC System V IPC, POSIX message queues since Linux 2.6.19
Network CLONE_NEWNET network device interfaces, IPv4 and IPv6 protocol stacks, IP routing tables, firewall rules, the /proc/net and /sys/class/net directory trees, sockets, etc since Linux 2.6.24
Mount CLONE_NEWNS Mount points since Linux 2.4.19
PID CLONE_NEWPID Process IDs since Linux 2.6.24
User CLONE_NEWUSER User and group IDs started in Linux 2.6.23 and completed in Linux 3.8
UTS CLONE_NEWUTS Hostname and NIS domain name since Linux 2.6.19

Connecting Android Devices with Linux

结合自身的实际,在Linux上连接Android的需求其实可以分为一下几类:

  1. 手机的通知可以在Linux上弹窗提示
  2. 能方便的在手机和Linux之间传输文件、甚至同步粘贴板
  3. 能将手机画面同步到Linux上,并且还能直接操作
  4. 将手机作为另外一个屏幕,共享Linux的鼠标键盘,直接操作Android系统
  5. 仅仅将手机作为Linux的扩展屏

接下来我就来介绍几个软件,看看它们都能实现哪些需求