「荒原之梦考研数学」文章

又拍社区(yupoo.com)宣布进行业务升级维护

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 进行如下的运算:

图 1 使用 Python 异或运算交换变量的数值
图 1 使用 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

Kali Linux 更换系统主题

操作环境

物理机操作系统: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

点击打开“优化”工具:

图 1 中文状态下的优化工具
图 1 中文状态下的优化工具

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

图 2 英文状态下的优化工具
图 2 英文状态下的优化工具

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

图 3 使用优化工具更换系统主题
图 3 使用优化工具更换系统主题

更换系统主题后的Kali Linux:

图 4 系统主题更换完成
图 4 系统主题更换完成

Android开发实战:点击按钮显示一个带有“取消”和“确定”两个选项的对话框

操作环境

  • Windows 10
  • Android Developer Tools (Build: v22.2.1-833290)
  • Android 4.3

代码

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;
	}

}

运行效果

程序首页效果:

图 1
图 1

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

图 2
图 2

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

图 3
图 3

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

图 4
图 4

使用 MSU StegoVideo 将信息隐藏进 AVI 视频文件中(两种方法 + 详细图文过程)

环境部署

操作系统:
Windows 7 专业版 64位

软件:

  • 下载 MSU StegoVideo

下载地址:http://www.compression.ru/video/stego_video/index_en.html
接下来还需要下载并安装如下两个解码器,否则在使用 MSU StegoVideo 的 .exe 程序的时候会报错:

Can’t find suitable decompresso

如果是在 VirtualDub 中使用 MSU StegoVideo 插件,则会报错:

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

继续阅读“使用 MSU StegoVideo 将信息隐藏进 AVI 视频文件中(两种方法 + 详细图文过程)”

使用 Python 3 在图片上绘制可见水印 (1.0 版)

运行环境: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 中为 BlackArch Linux 设置共享文件夹

操作环境

虚拟化软件:VirtualBox 5.2.22 r126460 (Qt5.6.2)

物理机操作系统:Windows 10 家庭版 64位

虚拟机操作系统:blackarch-linux-2018.08.01

操作过程

在物理机上新建一个文件夹,打开”设备/共享文件夹”,添加一个共享文件夹并设置为“自动挂载”,如图:

图 1 添加共享文件夹
图 1 添加共享文件夹

之后重启虚拟机系统。

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

图 2 在虚拟机系统中查看共享文件夹中的文件
图 2 在虚拟机系统中查看共享文件夹中的文件

解决 BlackArch 联网报错:Could not connect to wicd’s D-bus interface. Check the wicd log for error message.

操作环境

虚拟化软件:VirtualBox 5.2.22 r126460 (Qt5.6.2)

物理机操作系统:Windows 10 家庭版 64位

虚拟机操作系统:blackarch-linux-2018.08.01

虚拟机联网方式:桥接

报错产生的过程

启动 BlackArch 之后,右键”network/wicd-gtk”, 如图:

图 1 启动 wicd-gtk
图 1 启动 wicd-gtk

随后出现弹窗提示:

图 2 无法连接到 wicd 的 D-Bus 接口
图 2 无法连接到 wicd 的 D-Bus 接口

上述报错的文字内容即是:

Could not connect to wicd’s D-bus interface. Check the wicd log for error message.

问题解决过程

ip a  命令查看网卡和网络连接情况:

图 3 网卡 enp0s3 未获取到 IP 地址
图 3 网卡 enp0s3 未获取到 IP 地址

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

图 4 自动获取 IP 地址
图 4 自动获取 IP 地址

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

图 5 成功获取 IP 地址
图 5 成功获取 IP 地址

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

图 6 ping www.zhaokaifeng.com
图 6 ping www.zhaokaifeng.com

GNS3 2.1.11 导入 c7200 路由器的过程(图文)

操作环境

GNS3版本:GNS3 2.1.11

c7200文件名称:c7200-adventerprisek9-mz.124-24.T.BIN

操作过程

依次点击“Edit/Preferences”:

图 0 点击preferences参数选择
图 0 点击preferences参数选择

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

图 1 New 一个 IOS router
图 1 New 一个 IOS router

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

图2 IOS image 文件路径中只能包含ascii(英文)的字符
图2 IOS image 文件路径中只能包含ascii(英文)的字符

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

图 3 拷贝image文件至默认的目录
图 3 拷贝image文件至默认的目录

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

图 4 点击 Next
图 4 点击 Next

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

图 5 指定名称和平台
图 5 指定名称和平台

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

图 6 设置内存上限
图 6 设置内存上限

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

图 7 配置网络适配器
图 7 配置网络适配器

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

图 8 网络适配器配置完成
图 8 网络适配器配置完成

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

图 9 正在计算Idle-PC
图 9 正在计算Idle-PC
图 10 Idle-PC值计算完成
图 10 Idle-PC值计算完成

应用配置:

图 11 应用配置
图 11 应用配置

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

图 12 c7200成功开机
图 12 c7200成功开机

附1:Idle-PC值的作用

Idle-PC 是 Dynamips 思科路由器模拟器的一项功能。在没有配置 Idle-PC 的情况下,我们很容易就会看到在模拟器上开启思科路由器后,CPU 占用率达到 100%. 通过 Idle-PC, Dynamips 可以知道虚拟出来的路由器什么时候是空闲的,什么时候在做有用的工作,这样的话那些处于“休眠”状态的路由器就可以极大的被减少 CPU 资源的消耗,从而使整个虚拟系统的 CPU 资源占用率降低。

荒原之梦网站 LOGO 1.0 版设计灵感与实现过程

设计灵感

该图标设计灵感产生于2018年10月15日晚上且于当晚完成制作并正式上线,这是荒原之梦第一款正式的网站图标。

主要灵感来源于2进制电子计算机的机器码和荒原之梦网站自建站之始就确立的“方正,灵动”的主题文化以及继往开来,创造新知的坚定信念。

在LOGO 1.0 版中可以看到一个抽象的英文字母”Z”和一个汉字“工”。其中英文字母”Z”源于荒原之梦网站域名”zhaokaifeng.com”的第一个字母”Z”. 而汉字“工”则如同铁路轨道中钢轨的横截面,代表着一种风雨无阻,勇于进取的精神,灵感来源于我家门前的陇海铁路。

图 0 LOGO 1.0
图 0 LOGO 1.0
继续阅读“荒原之梦网站 LOGO 1.0 版设计灵感与实现过程”

设置Windows防火墙以允许被ICMP Ping(两种配置方式)

背景与目的

Ping测试常被用于测试网络中两台主机之间是否互相连通,但是,大多数Windows操作系统(包括桌面版和服务器版)默认都是只允许ping其他主机而不允许其他主机ping自己。下面演示如何在Windows系统上开启基于ICMPv4协议的Ping.

继续阅读“设置Windows防火墙以允许被ICMP Ping(两种配置方式)”

荒原之梦IT周报第二十八期(14 October, 2018)

摘要:Chrome 69 will keep Google Cookies when you tell it to delete all cookies;Facebook公布调查进展 证实2900万用户信息遭黑客窃取;用 HTML 标记的古怪代码注释;新手应该如何学习 PHP 语言;Git 原理入门;俄罗斯飞船发射失败,幸好两名宇航员没事…

继续阅读“荒原之梦IT周报第二十八期(14 October, 2018)”


荒原之梦网全部内容均为原创,提供了涵盖考研数学基础知识、考研数学真题、考研数学练习题和计算机科学等方面,大量精心研发的学习资源。

豫 ICP 备 17023611 号-1 | 公网安备 - 荒原之梦 豫公网安备 41142502000132 号 | SiteMap
Copyright © 2017-2024 ZhaoKaifeng.com 版权所有 All Rights Reserved.

Copyright © 2024   zhaokaifeng.com   All Rights Reserved.
豫ICP备17023611号-1
 豫公网安备41142502000132号

荒原之梦 自豪地采用WordPress