执子之手

与子偕老


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

删除启动台Launchpad上无效的图标

时间: 2020-12-04   |   分类: 技巧     |   评论:  0    |   访问: 0

今天删除软件的时候碰到一个问题,软件虽然被删除了,但是图标依然在启动台上。怎么也删不掉。上网搜了搜,找到一个办法可以解决。特此记录一下。

 1# 切换到目录 /private/var/folders
 2cd /private/var/folders
 3# 寻找 com.apple.dock.launchpad 目录,图标信息存在该目录中的一个sqlite3数据库中
 4sudo find . | grep com.apple.dock.launchpad
 5# 确定好目录,然后使用cd转入对应的目录。目录名不同机器上不一样
 6# 使用sqlite3工具查询一下
 7sqlite3 db "select * from apps where title like 'eclipse%';"
 8# 确认之后可以使用delete语句删除
 9sqlite3 db "delete from apps where title like 'eclipse%';"
10# 然后杀掉Dock进程,就好了
11killall Dock
阅读全文 »

禁用CleanMyMacX HealthMonitor

时间: 2020-11-27   |   分类: 技巧     |   评论:  0    |   访问: 0

CleanMyMacX 是Mac平台上优秀的卸载工具。虽然Mac上的应用安装卸载比Windows上简单很多,AppStore上的软件采用的是沙盒模型,删除的时候会把相关的数据一并删除;但是大量的非AppStore软件在删除对应的app之后不会同时删除对应的数据。 CleanMyMacX 这种类型的软件会扫描这些相关的数据并一起删除。

最近发现 CleanMyMacX 会附带一个后台服务:CleanMyMacX HealthMonitor,即使软件本身退出这个后台服务还一直运行。这就有点360的味道了,让人不爽。最主要的是这个进程对资源的占用还是有的,没有到那种可以完全忽略的地步。因此想办法禁用它。

阅读全文 »

使用MyBatis ResultHandler解决巨大结果集导出Excel引发的OOM

时间: 2020-09-04   |   分类: 开发     |   评论:  0    |   访问: 0

当一次要导出非常多数据的时候,例如100w条,如果使用MyBatis将全部结果都查询到list中,经常会导致内存溢出。这个时候,我们可以使用MyBatis的ResultHandler来使用游标方式访问数据,从而避免OOM。

ResultHandler是MyBatis提供的一个接口,通过该接口可以让MyBatis以流式的方式处理结果集,而不必等待整个结果集全部准备完毕,在准备好一条记录后就调用该接口中的handleResult方法:

1void handleResult(ResultContext<? extends T> resultContext);

要使用ResultHandler需要在Mapper层声明的时候做一定的处理。这里简单描述一下。

阅读全文 »

使用Python写一个Alfred Workflow

时间: 2020-08-21   |   分类: 技巧     |   评论:  0    |   访问: 0

1. Alfred 和 Workflows 介绍

Alfred 号称是 Mac 上最强大的效率工具,一直在 Mac 平台的工具类中排名榜首。它在Spotlight ( Mac 自带的搜索和快速启动引擎)基础上优化了快速启动与搜索的功能,还引入了 Workflows 等强大的扩展功能,使之成为了一个拥有无限自动化潜力的「工具平台」软件,可以用它来实现近乎一切有关自动化的想法。

Worflows 是 Alfred 的高端应用方式,它以流的方式来进行工作,从输入 -> 动作 -> 输出,将各种工具串联在一起进行工作,非常开放,用来将各种功能串联起来执行,可以定制完成各种想要实现的功能,潜力无限。

虽然网上已经有很多别人写好的 Workflow,但总是不够用,毕竟各自的偷懒点不同,因此有必要学会 Workflow 的编写,可以更好的满足自己的要求。

2. 开始写一个Workflows

今天想写一个生成随机字符串的Workflow,可选接收一个长度参数,生成指定长度的字符串,这个字符串可以由数字、字符、数字+字符等构成。下面说一下整个创建过程。

阅读全文 »

Mac休眠模式调整

时间: 2020-08-11   |   分类: 技巧     |   评论:  0    |   访问: 0

手头的Mac已经用了三年了,之前合盖睡眠的时候感觉掉电还不明显,最近几次系统升级后感觉掉电的情况明显了,一个晚上会掉5%左右,虽然不多,但是还是不爽。 经过搜索,发现可以通过修改休眠模式,来解决这个问题,特此记录一下。

1. pmset及参数介绍

pmset是Mac的一个系统命令,可以用来修改和电源管理相关的参数。看man中的帮助:

pmset can modify the values of any of the power management settings defined below. You may specify one or more setting & value pairs on the command-line invocation of pmset. The -a, -b, -c, -u flags determine whether the settings apply to battery ( -b ), charger (wall power) ( -c ), UPS ( -u ) or all ( -a ).

简单来说就是可以通过pmset -b或pmset -c,pmset -a等命令修改电源配置参数。当然也可以通过pmset -g命令查询当前的配置参数或日志等。例如以下命令可以查看当前系统的电源相关配置:

阅读全文 »

使用KeepAlived配置Nginx高可用

时间: 2020-07-20   |   分类: 运维     |   评论:  0    |   访问: 0

1. 背景

最近为一个传统行业的客户开发了一个生产调度系统。但是他的生产环境是自己搭建的,不是购买的云服务,因此碰到了一些问题。

客户购买了多台高性能的物理机,在上面自行搭建虚拟机。但是只有虚拟机,没有提供类似负载均衡、数据库等基础服务。为了解决负载均衡问题,我们自行安装了 Nginx 。为了保证系统健壮和性能,安装 Nginx 的两台虚拟机(Ubuntu 18.04.3 LTS,172.16.45.22,172.16.45.26)分别部署在两台不同的物理机上(172.16.45.11, 172.168.45.12)。然后 DNS 解析到两台 Nginx 主机上。

现在的问题是:客户的要求是任何一台物理机出现问题都要能够保证系统可用,验证的方式是测试的时候会直接断开物理机的网线,这将导致通过 DNS 解析出来的 Nginx 主机必然有一台是无法使用的。访问显然会出问题。

经过考虑,最后选定解决办法是:使用 KeepAlived 做高可用,两台 Nginx 共同维护一个虚拟IP(172.16.45.50),DNS 解析到这个虚拟IP上。

这里简单记录一下安装 KeepAlived 的过程以及碰到的一些问题及解决方案。

阅读全文 »

如何修改Ubuntu服务器上的DNS设置

时间: 2020-07-10   |   分类: 运维     |   评论:  0    |   访问: 0

公司的几台服务器安装的时候设置了联通的DNS服务器,由于公司网络切换到了电信,最近经常出现解析服务器IP失败的情况。所以想着要更换一下DNS服务器,以提高网络访问速度。

因为历史原因,服务器操作系统主要有 Ubuntu 16.04 LTS 和 Ubuntu 18.04 LTS 两种。实际修改中发现,他们的配置方法是不一样的,特此记录一下。

1. Ubuntu 16.04 LTS

16.04 LTS上主要修改两个文件。

2.1 更新resolv.conf

首先修改文件:/etc/resolvconf/resolv.conf.d/base文件,内容如下:

1nameserver 114.114.114.114
2nameserver 223.5.5.5

然后执行:resolvconf -u命令就可以更新dns服务器了。

阅读全文 »

在Mac上编译RedisDesktopManager(1)国际化处理

时间: 2020-07-01   |   分类: 开发     |   评论:  0    |   访问: 0

1. 概述

Redis Desktop Manager(RedisDesktopManager,RDM)是一个快速、简单、支持跨平台的 Redis 桌面管理工具,基于 Qt 5 开发,支持通过 SSH Tunnel 连接。

– 开源中国上面对项目的介绍

RedisDesktopManager 是一款优秀的 Redis 客户端。最初是作为开源项目发布的,官方也会发布编译好的版本。后来,作者做了一些商业化处理,上架了App Store,从此不再发布编译后的版本,也在开源版本中阉割掉了 SSH Tunnel 功能。有鉴于此,网上有很多人写教程来说明如何从源码构建一个发行版本,但是目前见到的教程多多少少都有一些问题。最近花了一些时间尝试完善整个编译过程,目前进展不错。以后会陆续说明编译过程中碰到的问题以及对应的解决办法。

今天首先来说一下国际化的问题。

目前网上流行的 RedisDesktopManager 编译方法都没有对国际化文件进行处理,所以编译后的版本没有国际化功能,界面只显示英文,语言切换功能无效。经过对相关源码的分析,终于找到了正确的编译处理方法,现在可以完美切换语言。效果如图:

-w800

阅读全文 »

如何在Mac上编译vcmi(续)-cpack打包后异常退出

时间: 2020-06-26   |   分类: 游戏     |   评论:  0    |   访问: 0

1. 现象

VCMI编译之后可以使用cpack命令(cmake的一个功能)打包成dmg文件,以便于分发。打包过程中会把需要的依赖文件都打包到最后的.app文件中,这样就可以保证在其他机器上也可以正常运行编译后的VCMI。 按照之前的文档,编译之后直接执行没有问题,但是使用cpack打包之后运行缺会异常退出。经过观察基本上发生在第一次战斗中,玩家操作完毕,电脑AI获得控制权的时候就会崩溃退出。

2. 分析

最初怀疑是新版本代码有问题,所以切换到之前版本的代码编译,发现还是有同样的问题。后来经过分析退出的时间点,怀疑是vcmi的AI代码有问题,因为对代码部分不是很熟悉,所以很长时间没有进展。 后来经过查看cpack的工作原理,怀疑是AI库对应的依赖文件没有正确打包导致的。

使用otool -L分析动态库依赖,发现AI目录下的文件没有进行依赖库的处理。还是指向/usr/local/...下面的dylib文件。而vcmiclient/vcmiserver已经进行了处理。因此怀疑是因为引入了两份动态库导致的问题,vcmiclient已经加载了一份动态库,但是当执行到AI库的时候又要从其他位置加载另一份同名的动态库,可能是因为这个原因导致了崩溃。

阅读全文 »

如何在Mac上编译vcmi(续)-解决无法播放MP3的问题

时间: 2020-06-21   |   分类: 游戏     |   评论:  0    |   访问: 0

1. 问题

按照上一篇文档的步骤编译之后,发现mp3格式的背景音乐无法播放。通过直接执行vcmiclient可以看到在控制台中输出如下信息:

1Warning: Cannot open Music/MainMenu: Unrecognized audio format
2Unable to play music (music parameter was NULL)

原因是我本地环境使用的sdl2_mixer是通过brew安装的,当时无法按照官方文档介绍通过brew install sdl2_mixer --with-smpeg2进行安装。 因为发现无法播放mp3音乐,所以我对这个库进行了一些了解,发现brew官方的版本屏蔽了mp3格式的支持。查看brew官方的源码可以看到:

 1def install
 2    inreplace "SDL2_mixer.pc.in", "@prefix@", HOMEBREW_PREFIX
 3
 4    args = %W[
 5      --prefix=#{prefix}
 6      --disable-dependency-tracking
 7      --disable-music-flac
 8      --disable-music-flac-shared
 9      --disable-music-midi-fluidsynth
10      --disable-music-midi-fluidsynth-shared
11      --disable-music-mod-mikmod-shared
12      --disable-music-mod-modplug-shared
13      --disable-music-mp3-mpg123
14      --disable-music-mp3-mpg123-shared
15      --disable-music-mp3-smpeg
16      --disable-music-ogg-shared
17      --enable-music-mod-mikmod
18      --enable-music-mod-modplug
19      --enable-music-ogg
20    ]
21
22    system "./configure", *args
23    system "make", "install"
24  end

可以看到有关mp3的选项都被disabled掉了。

阅读全文 »
1 2 3 4 5 6 7 8
Orchidflower

Orchidflower

Do one thing at a time, and do well.

76 日志
6 分类
83 标签
RSS 订阅
GitHub 知乎 OSC 豆瓣
© 2009 - 2022 执子之手
Powered by - Hugo v0.104.3
Theme by - NexT
ICP - 鲁ICP备17006463号-1
0%