<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[valark的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/valark</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; valark]]></copyright><item><title><![CDATA[Python 唯一进程]]></title><link>https://blog.youkuaiyun.com/valark/article/details/145287402</link><guid>https://blog.youkuaiyun.com/valark/article/details/145287402</guid><author>valark</author><pubDate>Tue, 21 Jan 2025 17:25:10 +0800</pubDate><description><![CDATA[进程启动时对文件加锁，抢到锁即可运行，否则退出。]]></description><category></category></item><item><title><![CDATA[有限域F_2上多项式的分解]]></title><link>https://blog.youkuaiyun.com/valark/article/details/128507733</link><guid>https://blog.youkuaiyun.com/valark/article/details/128507733</guid><author>valark</author><pubDate>Sat, 31 Dec 2022 19:55:29 +0800</pubDate><description><![CDATA[基于不同的数域进行多项式分解有不同的特性，而二元域是一个有着特殊意义的有限域，本文研究二元域下的多项式分解，根据已有方案提出一个可以解决选题的方法，并证明其正确性。]]></description><category></category></item><item><title><![CDATA[证明完全数都是偶数]]></title><link>https://blog.youkuaiyun.com/valark/article/details/125692325</link><guid>https://blog.youkuaiyun.com/valark/article/details/125692325</guid><author>valark</author><pubDate>Sat, 09 Jul 2022 15:13:45 +0800</pubDate><description><![CDATA[完全数（Perfect number），又称完美数或完备数，是一些特殊的自然数。它所有的真因子（即除了自身以外的约数）的和（即因子函数），恰好等于它本身。
例如：1+2+3=6。若证完全数都是偶数，即证完全数非奇数......]]></description><category></category></item><item><title><![CDATA[java交互式调用python程序]]></title><link>https://blog.youkuaiyun.com/valark/article/details/123373256</link><guid>https://blog.youkuaiyun.com/valark/article/details/123373256</guid><author>valark</author><pubDate>Wed, 09 Mar 2022 11:40:56 +0800</pubDate><description><![CDATA[我的上一篇文章 Java 运行python程序 中提到了我想用java调用python进行机器学习，至于为什么需要java来调用，主要是因为评估模型的一个开源库是采用java实现的。
但是这之中还存在一个问题，那就是每次加载模型都需要很多时间，除非为是批处理所有数据，才可以只加载一次模型。而实际上，模拟过程中的数据可能不会同时出现，那么就会反复调用python文件，而每次重新调用就会加载一次模型，最终可能会影响评估的结果。
        String as[] = {"1,2,3", "1,2,3", "]]></description><category></category></item><item><title><![CDATA[Java 运行python程序]]></title><link>https://blog.youkuaiyun.com/valark/article/details/123355113</link><guid>https://blog.youkuaiyun.com/valark/article/details/123355113</guid><author>valark</author><pubDate>Tue, 08 Mar 2022 16:09:45 +0800</pubDate><description><![CDATA[最近在做一个研究，因为需要使用机器学习的方法而使用了python，而模型的验证我选择了一个开源库，但是这个开源库是采用java编写的。因此需要在验证的时候使用java调用python才行。
通过查找发现，java调用python其实并不困难，网上有很多方法实现。但是我的情况比较特殊，不能够简单地采取其中的任意一条，通过相关的搜索，我综合了几个方法完成了我的python调用器。
基本原理
采用 Runtime.getRuntime() 的方法运行python脚本，通过在python文件中调用 print() ]]></description><category></category></item><item><title><![CDATA[阻止 WSL 自动生成/etc/hosts 文件]]></title><link>https://blog.youkuaiyun.com/valark/article/details/118708929</link><guid>https://blog.youkuaiyun.com/valark/article/details/118708929</guid><author>valark</author><pubDate>Tue, 13 Jul 2021 19:36:14 +0800</pubDate><description><![CDATA[修改了 /etc/host 文件，然而重启电脑就发现里面的内容还原了。
一直百思不得其解，仔细一看，发现/ etc/hosts 最上方的注释写着：
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false

原来是wsl会自动生成这]]></description><category></category></item><item><title><![CDATA[广度优先遍历二叉树]]></title><link>https://blog.youkuaiyun.com/valark/article/details/117445057</link><guid>https://blog.youkuaiyun.com/valark/article/details/117445057</guid><author>valark</author><pubDate>Tue, 01 Jun 2021 16:22:29 +0800</pubDate><description><![CDATA[算法题
定义二叉树，单个节点的数据结构描述如下：
class Node{
	Node left;
	Node right;
	Node next;
}

在不使用其它数据结构的情况下，按广度优先遍历填充每个节点的next为下一个遍历的节点，为了避免复杂讨论，假设二叉树为满二叉树，若不是满二叉树，也可以通过完善边界条件来实现，思路是一致的。
思路如下（序号不代表执行步骤的顺序，以下仅仅描述对单的节点的操作）：

对根节点操作：root.next = root.left;


除此之外，对于每个节点（包括根节点]]></description><category></category></item><item><title><![CDATA[javafx中的线程]]></title><link>https://blog.youkuaiyun.com/valark/article/details/113730855</link><guid>https://blog.youkuaiyun.com/valark/article/details/113730855</guid><author>valark</author><pubDate>Sat, 06 Feb 2021 21:48:13 +0800</pubDate><description><![CDATA[如何在javafx中使用线程？
这个问题的中心其实是如何在图形化界面中使用多线程。
java的线程类是Thread，其他一些类如Timer其实也是继承自Thread，然而在有关图形化界面的构造中，使用Thread却会报错，或者是达不到线程运行的效果。实际上，图形化界面的构造可以理解成一个树形结构，同时这个树形结构需要保证一致性，即构造树的过程实际上是串行的。
以下问题就可能会出现：

使用多线程来完成图形化界面的构造，比如设计加载条和任务同时进行，然而实际上的效果是加载条没有变，而是等到任务完成时才开始图形]]></description><category></category></item><item><title><![CDATA[python 使用openpyxl读写大文件的坑]]></title><link>https://blog.youkuaiyun.com/valark/article/details/113207883</link><guid>https://blog.youkuaiyun.com/valark/article/details/113207883</guid><author>valark</author><pubDate>Wed, 27 Jan 2021 00:26:04 +0800</pubDate><description><![CDATA[由于需要处理xlsx类型的文件，我使用了openpyxl来处理，然而文件比较大，大约有60多MB。读文件的时候虽然慢了一点，但还是能够读出来，但是当我想写入时却报错了。

显示设备没有多余的空间，百度了一下，发现有不少关于openpyxl读写大文件的问题。总结来看，解决方案主要有以下两种，当然，我两种都用上了。
手动释放内存
del wb, ws
gc.collect()

这一招还算有用，在读完文件后可以看到内存占用明显下降了一点。
安装lxml
使用命令·pip install lxml安装依赖
这个依]]></description><category></category></item><item><title><![CDATA[将文件隐藏到图片中，使用Windows脚本实现]]></title><link>https://blog.youkuaiyun.com/valark/article/details/109520870</link><guid>https://blog.youkuaiyun.com/valark/article/details/109520870</guid><author>valark</author><pubDate>Thu, 05 Nov 2020 21:47:22 +0800</pubDate><description><![CDATA[实现代码
废话不多说，直接上代码
@echo off
title mask
:notEquY
echo 请输入图片文件路径:
set /p img=
echo 请确认表面文件是否为"%img%"？[Y/n]
set /p imgC=
if %imgC% == Y (
	goto equY
	)
if %imgC% == y (
	goto equY
	)
goto notEquY

:equY
echo 图片文件的路径为: %img%
echo ------------------------
echo 请]]></description><category></category></item><item><title><![CDATA[java 编程技巧-接口的妙用]]></title><link>https://blog.youkuaiyun.com/valark/article/details/108775673</link><guid>https://blog.youkuaiyun.com/valark/article/details/108775673</guid><author>valark</author><pubDate>Thu, 24 Sep 2020 15:59:04 +0800</pubDate><description><![CDATA[java 编程技巧-接口的妙用
之前使用javafx的时候，我对于鼠标事件等等事件中的一些操作不是很理解。比如某个组件设置动作可以使用如下方式实现。
Button button = new Button();
button.setOnMouseClicked(()-&gt;{System.out.println("hello world")});

我一直想不明白这是怎样一个操作，一次偶然的机会，我得以了解其中的原理。
原来这里使用了lambda函数，简化了接口的使用，本来是需要实例化一个接口的，如下代码所]]></description><category></category></item><item><title><![CDATA[NASA MDP 软件缺陷预测数据集]]></title><link>https://blog.youkuaiyun.com/valark/article/details/108667208</link><guid>https://blog.youkuaiyun.com/valark/article/details/108667208</guid><author>valark</author><pubDate>Sat, 19 Sep 2020 11:34:33 +0800</pubDate><description><![CDATA[NASA MDP 软件缺陷预测数据
链接: https://github.com/klainfo/NASADefectDataset.
MDP包括13个来自NASA的实际项目。在每一个数据集的开头，会标注项目名称，然后是度量元解释，之后就是数据。
如下图示例：
@relation 'CM1' // 项目名称

// 以下为度量元
@attribute LOC_BLANK numeric // 空白行数量
@attribute BRANCH_COUNT numeric // 分支数量
@attribute C]]></description><category></category></item><item><title><![CDATA[从零开始部署web项目(ssm)]]></title><link>https://blog.youkuaiyun.com/valark/article/details/107517118</link><guid>https://blog.youkuaiyun.com/valark/article/details/107517118</guid><author>valark</author><pubDate>Wed, 22 Jul 2020 19:57:36 +0800</pubDate><description><![CDATA[web项目部署步骤前言Tomcat的安装部署安装java安装tomcat使用安装包方式安装tomcat安装mysql安装nginxnginx动静分离部署ftp服务器
前言
这篇博客是我整理以前的记录出来的，有些借鉴的部分可能无法指明。写这篇博客的主要目的是留个记录，留待自己以后查阅。
总体来说，这篇博客涉及到了部署一个web项目的许多方面，但是仍然不能说是完善了。一个web项目随着规模的不断加大，后端的结构也是可以不断改变的，目的只有一个，就是为了支持更多的用户。一个小型的web项目可能只需要mysql和t]]></description><category></category></item></channel></rss>