问题描述
今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL 数据库查询出来的数据中的中文都出现了乱码的情况. 下面记录一下我解决该问题的过程.
继续阅读“解决 PHP 输出中文乱码的问题”今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL 数据库查询出来的数据中的中文都出现了乱码的情况. 下面记录一下我解决该问题的过程.
继续阅读“解决 PHP 输出中文乱码的问题”香橙派使用的 SD 卡容量:16 GB
香橙派使用的 SD 卡文件系统类型:FAT32
香橙派型号:Orange Pi One
香橙派操作系统:Ubuntu 14.04.1 LTS
SSH 远程连接软件:Xshell 6
SSH 远程连接软件的运行平台:Windows 10 中文家庭版 64 位
今天在向 Orange Pi 中克隆一个 GitHub 项目的时候,系统无法执行该指令并给出了如下提示:
继续阅读“解决 Orange Pi 烧录完系统后剩余可用空间过少的问题”fatal: could not create work tree dir ‘/home/orangepi/***’.: No space left on device
操作系统:Windows 10 家庭中文版 64位
Web 浏览器:Firefox 64.0.2 64-bit (Quantum)
目标站点:https://blog.csdn.net/wy_bk
操作时间:北京时间 2019年01月30日 下午 16时00分
操作系统:Windows 10 家庭中文版 64位
Git 客户端:mintty 2.9.0 (x86_64-pc-msys)
Git version: 2.19.0.windows.1
Git 仓库:github.com
今天 Push 代码的时候遇到一个报错:
! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:somebodyblog/somebodyblog.git'
报错截图如下:

出现这样的报错一般是因为本地仓库分支的代码和远程仓库分支的代码不一致了。需要先拉取(fetch)远程分支的代码并在本地对两个分支的代码进行合并(merge / rebase)后才能继续向远程仓库分支 push 代码。
合并代码:
git pull --rebase origin master
代码解释:
推送代码:
git push
至此,问题解决。
2018年11月05日,又拍社区(yupoo.com)发布公告称,将于2018年11月28日起关闭注册和上传等服务,进入关闭维护状态。在2019年5月31日之前,又拍社区用户可以使用官方提供的 数据备份工具备份自己在又拍社区中的照片。
本次停止服务的仅仅是又拍社区,又拍图片管家(http://x.yupoo.com/)仍然可用。
如果本站读者有存储在又拍社区中的图片,请记得及时下载。
继续阅读“又拍社区(yupoo.com)宣布进行业务升级维护”操作系统:Windows 7
Python版本:Python 3.7
一般情况下,当我们需要交换两个变量的值的时候,至少需要引入1个第三方变量(当然,如果愿意的话,也可以引入第四方和第五方变量>_<),但是,当我们使用异或的时候就不必这么做,只需要这两个变量就可以完成他们之间数值的交换。
设,有两个变量 a 和 b.
其中,a = 10, b = 20.
现在使用 Python 进行如下的运算:

可以看到,经过三次异或操作,成功的交换了a和b的数值。
其实,只要明白了异或的规律,就知道了这其中的原因,异或的运算规则是:
相同为0, 不同为1.
将上面的运算过程展开写就是这样的:
a = a ^ b = 10 ^ 20 = 0b(01010) ^ 0b(10100) = 0b(11110) = 30 b = a ^ b = 30 ^ 20 = 0b(11110) ^ 0b(10100) = 0b(01010) = 10 a = a ^ b = 30 ^ 10 = 0b(11110) ^ 0b(01010) = 0b(10100) = 20
物理机操作系统:Windows 10 家庭版
虚拟机操作系统:Kali Linux 2018.4
虚拟化软件:VMware Workstation 15 Pro (15.0.2 build-10952284)
GNOME 主题下载:
https://www.gnome-look.org/
这里我使用的主题是:
https://www.opendesktop.org/p/1263666/
我下载的文件名称是:
McOS-MJV-Dark-mode-Gnome-3.30-1.1.tar.xz
将该主题文件复制进/usr/share/themes/目录:
cp McOS-MJV-Dark-mode-Gnome-3.30-1.1.tar.xz /usr/share/themes/
进入系统主题所在的目录:
cd /usr/share/themes/
解压 .xz 文件:
xz -d McOS-MJV-Dark-mode-Gnome-3.30-1.1.tar.xz
解压 .tar 文件:
tar -xvf McOS-MJV-Dark-mode-Gnome-3.30-1.1.tar
点击打开“优化”工具:

如果在英文状态下,是这样的,点击”Tweaks”:

依次找到“外观/主题/”,选中刚才下载的主题即可更换主题:

更换系统主题后的Kali Linux:

res/layout/activity_main.xml 代码如下:
<pre class="wp-block-code"><code><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:text="点击开启一个对话框"
android:onClick="onclick" />
</RelativeLayout></code></pre>
src/com/example/duihuakuang/MainActivity.java 代码如下:
package com.example.duihuakuang;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onclick(View view)
{
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(null);//设置图标, 这里设为空值
builder.setTitle("ZhaoKaifeng.com");
builder.setMessage("确定要取消吗");
builder.setPositiveButton("确定", new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1){
Toast.makeText(MainActivity.this,"确定成功!",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new OnClickListener(){
public void onClick(DialogInterface arg0,int arg1){
Toast.makeText(MainActivity.this, "取消成功!", Toast.LENGTH_SHORT).show();
}
});
AlertDialog b = builder.create();
b.show();//显示对话框
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
程序首页效果:

点击“点击开启一个对话框”按钮后的效果:

点击“确定”按钮后的效果:

点击“取消”按钮后的效果:

操作系统:
Windows 7 专业版 64位
软件:
下载地址:http://www.compression.ru/video/stego_video/index_en.html
接下来还需要下载并安装如下两个解码器,否则在使用 MSU StegoVideo 的 .exe 程序的时候会报错:
Can’t find suitable decompresso
如果是在 VirtualDub 中使用 MSU StegoVideo 插件,则会报错:
继续阅读“使用 MSU StegoVideo 将信息隐藏进 AVI 视频文件中(两种方法 + 详细图文过程)”Couldn’t locate decompressor for format XviD (Unknown)
VirtualDub requires a Video for Windows (VFW) compatible codec to decompress video. DirectShow codecs, such as those used by Windows Media Player are not suitable
运行环境:Ubuntu Ubuntu 18.04.1 LTS
代码如下:
import PIL
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# 设置所使用的字体和字体大小
font1 = ImageFont.truetype("UbuntuMono-B.ttf", 100)
# 打开图片
imageFile = "1.jpeg"
im1 = Image.open(imageFile)
# 绘图实例化
draw1 = ImageDraw.Draw(im1)
# 设置水印的位置,内容,颜色,字体
draw1.text((10, 10), "www.zhaokaifeng.com", (255, 0, 0), font=font1)
# 将生成的图片另存
im1.save("11.jpg")
本项目 GitHub 地址:HERE
虚拟化软件:VirtualBox 5.2.22 r126460 (Qt5.6.2)
物理机操作系统:Windows 10 家庭版 64位
虚拟机操作系统:blackarch-linux-2018.08.01
在物理机上新建一个文件夹,打开”设备/共享文件夹”,添加一个共享文件夹并设置为“自动挂载”,如图:

之后重启虚拟机系统。
在虚拟机系统的/media/sf_share 目录下可以看到共享文件夹中的内容:

虚拟化软件:VirtualBox 5.2.22 r126460 (Qt5.6.2)
物理机操作系统:Windows 10 家庭版 64位
虚拟机操作系统:blackarch-linux-2018.08.01
虚拟机联网方式:桥接
启动 BlackArch 之后,右键”network/wicd-gtk”, 如图:

随后出现弹窗提示:

上述报错的文字内容即是:
Could not connect to wicd’s D-bus interface. Check the wicd log for error message.
ip a 命令查看网卡和网络连接情况:

运行 dhcpcd enp0s3 命令自动获取 IP 地址:

之后,使用 ip a 命令即可看到系统已经获取到了 IP 地址等网络配置信息:

ping 测试发现可以正常连接互联网:

GNS3版本:GNS3 2.1.11
c7200文件名称:c7200-adventerprisek9-mz.124-24.T.BIN
依次点击“Edit/Preferences”:

选中”IOS routers”, 点击”New”:

“c7200-adventerprisek9-mz.124-24.T.BIN”这个文件的存放路径中如果有中文,会出现如下提示:

点击OK之后会询问我们是否将 IOS 的 image 文件拷贝至系统默认的路径下,这时点击”Yes”即可:

按照上面的步骤(将 image 文件放在包含中文的路径下并同意系统将其拷贝至默认的路径)。当然,我们也可以将 image 文件放在一个不包含中文的路径下,操作完成后,点击”Next”:

这一步需要我们指定名称和平台,由于我们导入的是 c7200 路由器而且系统已经帮助我们自动选择了 c7200 的平台,所以在这里使用默认即可,点击”Next”:

这一步让我们为路由器指定可使用的物理内存的上限,默认是 512MiB, 但是如果不准备使用该路由器进行大型实验而且物理内存不是很大的话,可以适当减小这个数值,这里我选择指定为 256MiB:

这一步让我们设置将默认插入到每台新的路由器实例中的网络适配器。

根据需要,我的网络适配器模块的配置如下:

这一步我们需要计算一下Idle-PC值(关于Idle-PC值的作用可查看文末附1),点击”Idle-PC finder”开始计算。计算完成后系统会自动填入,最后点击”Finish”即可。


应用配置:

测试。通过”File/New blank project”新建一个空白项目,拖出一台 c7200, 检测其是否能正常开机,:

附1:Idle-PC值的作用
Idle-PC 是 Dynamips 思科路由器模拟器的一项功能。在没有配置 Idle-PC 的情况下,我们很容易就会看到在模拟器上开启思科路由器后,CPU 占用率达到 100%. 通过 Idle-PC, Dynamips 可以知道虚拟出来的路由器什么时候是空闲的,什么时候在做有用的工作,这样的话那些处于“休眠”状态的路由器就可以极大的被减少 CPU 资源的消耗,从而使整个虚拟系统的 CPU 资源占用率降低。
摘要:Hacker Guccifer, who exposed Clinton private email server, ready for US prison sentence;Publicly Available Tools Seen in Cyber Incidents Worldwide;HTTPS的七个误解(译文);保罗·艾伦的故事;The Beauty of Programming…
继续阅读“荒原之梦IT周报第二十九期(28 October, 2018)”