cmlanche

越努力越幸运


  • 首页

  • 关于

  • 归档

  • 标签

  • 友链+

  • 搜索

hexo自动部署到git、ftp(虚拟主机等)、云服务器的方式

发表于 2018-06-20 | 阅读次数:
字数统计: 465 字 | 阅读时长 ≈ 2 分钟

自动部署很有用,当你写完文章后,直接使用hexo d就可以自动更新你的网站了

部署到git

首先你需要在你的blog下安装git deployer插件:npm install hexo-deployer-git --save,然后再把如下代码添加到你的_config.yml文件中

### git deploy
deploy:
type: git
repo: https://github.com/cmlanche/cmlanche.github.io.git # 你的远程仓库
branch: master # 你的远程残酷分支
message: "hello guys" # 每次提交的信息

需要注意的是,部署到git需要再本地安装你ssh key,也就是说允许本地进行读写远程git仓库,否则你会没权限的

部署到ftp服务器

你可能会用一台虚拟主机来部署你的hexo个人站点,那么fip怎么部署? 首先你需要下载安装ftp deployer插件:npm install hexo-deployer-ftpsync --save,然后把你下面的代码贴到你的_config.yml中,注意修改ftp的相关参数。

#### ftp deploy
deploy:
type: ftpsync
host: ftpserver # ftp服务器地址
user: ftpusername # ftp用户名
pass: xxxx # 你的ftp用户密码
remote: xxx # 你要上传到的地址,例如/wwwroot
port: 21 # ftp端口,不同的ftp可能会不一样
delete: true # 上传本地文件是否删除ftp中的所有文件
verbose: true # 是否打印调试信息
ignore_errors: false # 是否忽略错误

部署到远程主机,通常如VPS或者云服务器

同样要下载hexo deployer: npm install hexo-deployer-rsync --save,然后代码奉上:

deploy:
type: rsync
host: <host> # 主机地址
user: <user> # 用户名
root: <root> # 要上传到的目录
port: [port] # Default is 22
delete: [true|false] # Default is true
args: <rsync args>
verbose: [true|false] # Default is true
ignore_errors: [true|false] # Default is false

关于我

一个试图摆脱“地心引力”的黑衣剑士

一个主机深度评测站主:HostReport.cn

一个向往自由职业的自由人

个人博客:cmlanche.com

静态模板方法的用法

发表于 2018-06-20 | 阅读次数:
字数统计: 181 字 | 阅读时长 ≈ 1 分钟

静态模板方法首先是一个静态的方法,然后有指定模板,例如

public class Utils {
public static void test(){} // 这是静态方法
public static void <T> test(int a){} // 这是静态模板方法
}

我们使用静态方法是直接类名.方法名,例如Utils.test(),那静态模板方法呢?

// 假如我们的模板是String
Utils.<String>test(100)

这种写法我还是头一次见,感觉很新奇,所有会记录一下。

如果直接写Utils.test(100)会在java6编译不过,你需要指定模板类型,它相当于函数的一部分(通常来说函数包含函数名称、返回值、参数三个部分,而模板是第四个部分)

js判断某元素是否真的可见(以人的视角的可见)

发表于 2018-01-27 | 阅读次数:
字数统计: 270 字 | 阅读时长 ≈ 1 分钟

代码如下:

function isElementVisible(el) {
var rect = el.getBoundingClientRect(),
vWidth = window.innerWidth || document.documentElement.clientWidth,
vHeight = window.innerHeight || document.documentElement.clientHeight,
efp = function (p, x, y) {
var els = document.elementsFromPoint(x, y); // 获取某点的所有元素, 最顶层的元素在最前面
for (var index = 0; index < els.length; index++) {
var style = getComputedStyle(els[index]);
// 如果此前的元素是半透明的,并且不是当前元素,则跳过当前元素
if (p != els[index] && (style.opacity < 1 || style.display == 'none' || ['collapse', 'hidden'].indexOf(el.style.visibility) == -1)) {
continue;
} else return els[index];
}
return els[0];
};

// Return false if it's not in the viewport
if (rect.right < 0 || rect.bottom < 0
|| rect.left > vWidth || rect.top > vHeight)
return false;

return (
el.contains(efp(el, rect.left, rect.top))
|| el.contains(efp(el, rect.right, rect.top))
|| el.contains(efp(el, rect.right, rect.bottom))
|| el.contains(efp(el, rect.left, rect.bottom)))
|| el.contains(efp(el, rect.left + (rect.right - rect.left) / 2, rect.top + (rect.bottom - rect.top) / 2));
}

大致思路:

  1. 先判断元素是否在视窗区域内(视窗指浏览器窗口,webview的窗口)
  2. 在判断元素的四角和中心点是否在最顶层,如果有遮罩则去掉遮罩的影响(遮罩比如是透明或者半透明的元素)

java内存泄漏分析

发表于 2017-12-27 | 阅读次数:
字数统计: 750 字 | 阅读时长 ≈ 3 分钟

什么是内存泄漏?

内存泄漏就是一些已经不使用的对象还存在于内存之中且垃圾回收机制无法回收它们,导致它们常驻内存,会使内存消耗越来越大,最终导致程序性能变差。

java导出heap数据的方法

jmap -heap pid

这个是获取某java进程的heap基本信息。

jmap -dump:format=b,file=heap.bin pid

这个是dump一份heap的内存分析状态文件,然后你用eclipse mat软件来导入这个文件,然后看看给出的分析报告。

阅读全文 »

使用java-api在windows上打开本地html文件无法传递query参数

发表于 2017-12-26 | 阅读次数:
字数统计: 218 字 | 阅读时长 ≈ 1 分钟

使用java api,比如:

awt api:

Desktop.getDesktop().browse(URI.create("file:///c:\\test.html?q=abc"));

javafx api:

getHostServices().showDocument("file:///c:\\test.html?q=abc")

打开的浏览器会发现query参数q=abc无法传递到浏览器,只能单纯的打开test.html,但是mac上经过测试上述两种方式都是可以正常打开的并传递参数的。

值得一提的是,如果uri不是file:///的文件协议的话,是可以传递参数的,比如url变成http://www.baidu.com?q=abc,是能把q参数传递给浏览器。

怎么解决呢?

你可以让你的本地html文件再关联一个js文件,然后打开的时候你把要传递的参数写到文件中,当第一次打开html文件时会从js读取参数,然后重新加载,这样就可以解决啦,只是会加载两次而已。

JavaFx中gif图片显示内存泄漏

发表于 2017-12-09 | 分类于 javafx | 阅读次数:
字数统计: 301 字 | 阅读时长 ≈ 1 分钟

在javafx中显示gif是很方便的,直接把gif文件放到Image对象中即可,比如下代码:

FileInputStream fis = new FileInputStream(new File(yourgiffile));
imageview.setImage(new Image(fis))
fis.close();

显示方便,不表示能用啊!!!

我加载一个369kb的gif文件,每次显示都会增加100M左右的内存!!!,加载一个2.8M的gif,每次都会增加300M以上的内存!!!

Oh my god!!!

简直无法忍受,各种谷歌发现以前有提过这个bug:

https://bugs.openjdk.java.net/browse/JDK-8119730

https://bugs.openjdk.java.net/browse/JDK-8117172

Christian Schudt (Inactive) added a comment - 2013-08-29 05:36

I also tested with my sample code from RT-28782:
With JavaFX 2.2: OutOfMemoryError after a few iterations.
With JavaFX 8: No error. Memory stays low after 1000+ iterations.

Permalink

akirovAlexander Kirov (Inactive) added a comment - 2013-08-29 05:58

ok, close as verified on b104

按照上面的说法,说是已经解决了,可是真解决了吗?

不过有一点可疑的地方就是,我的gif文件尺寸都比较大,369kb的文件尺寸是1500 × 448,2.8M的文件的尺寸是2184 × 1300,查看内存占用发现堆大小涨的非常大,而使用的堆非常小,或许是因为尺寸过大,一次性申请了过大的内存导致的。

图片压缩(tinypng)+七牛云存储客户端

发表于 2017-12-03 | 阅读次数:
字数统计: 523 字 | 阅读时长 ≈ 2 分钟

想法来源

个人写博客,很多情况下需要图片,而图片的话需要压缩,否则占用空间太大,使得网站反应慢,而且占流量,同时减少云存储大小,减少损失,对静态网站比如hexo或者hugo直接写markdown这种形式的博客,需要上传文件取得一个文件url,那么现有就没有一个很好的方式来自动处理这种需求了。

阅读全文 »

JavaFx新手教程-布局-StackPane

发表于 2017-12-02 | 阅读次数:
字数统计: 441 字 | 阅读时长 ≈ 2 分钟
cmlanche: 您叫什么名字?

StackPane

cmlanche: 您好,StackPane君,可以问下您在JavaFX家族中是什么地位?

stackpane君: 我可重要了,我是在JavaFx中所有布局中使用常用的,是大哥的角色,我经常罩这那帮小弟

cmlanche: 你说的小弟是指谁?

stackpane君:我小弟可多了,比如著名的vbox和hbox这对孪生兄弟,还有超级明星BorderPane,还有一些不怎么出名但是也经常使用的GridPane,TiledPane,AnchorPane等等

cmlanche: 您有什么特点吗?有那么重要吗?

stackpane君: 你知道多重宇宙吧?我就像那样,

  1. 在我的空间里,可以让我的孩子们共同拥有我的全部空间。对了,

  2. 默认情况下我让我的孩子们都是居中的,当然你可以调整它,在我的孩子上面增加一个属性StackPane.aligment,比如下面的代码使用了StackPane.alignment="TOP_LEFT",这样button1就在左上角的位置了!

    >    <StackPane xmlns="http://javafx.com/javafx"
    > xmlns:fx="http://javafx.com/fxml"
    > fx:controller="com.cmlanche.javafx.layouts.stackpane.StackPaneTest"
    > prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: grey;">
    >
    > <Button fx:id="button1" text="button1" prefWidth="100" prefHeight="200" StackPane.alignment="TOP_LEFT">
    > </Button>
    >
    > <Button fx:id="button2" text="button2" prefWidth="200" prefHeight="100">
    > </Button>
    > </StackPane>
    >
  1. 而且我的空间大小是充满我的父空间的。看如下图的灰色区域,都是我的空间

cmlanche: 那您有哪些应用场景吗?

stackpane君:比如说某一个区域需要共享,会被多个视图所共用,我就发挥作用啦。而且我可以轻易可以把元素居中,我总是铺满父布局的。

cmlanche: 有demo源码演示吗?

stackpane君:我的爸爸给我做了个演示例子,是开源的哦,欢迎star,github,我自己的例子在这里

梁文道·一千零一夜·儒学

发表于 2017-12-02 | 阅读次数:
字数统计: 788 字 | 阅读时长 ≈ 3 分钟

儒家的个人始终和我们习惯的西方个人主义是不一样的观念,更加不是西方的自由主义的那套东西,儒家的个人始终是一个在社会之中的人,儒家的每一个人,每一个个体都是社会中的人,他必然是一个家庭的成员,他是一个社区邻里中的一分子,他是一个国家的一员,更是世界公民群体中的一员,更是大自然万物中的一员,每一个个人,都跟身边所有这些东西是密切联系起来的,他不是一个独立的绝对的,以己为本的一个个体。

阅读全文 »

JavaFx概要脑图

发表于 2017-08-25 | 分类于 javafx | 阅读次数:
字数统计: 20 字 | 阅读时长 ≈ 1 分钟

本脑图是我自己总结的在JavaFx开发中的要点。

JavaFx脑图

阅读全文 »
1…567
cmlanche

cmlanche

70 日志
11 分类
85 标签
RSS
GitHub Weibo
友链
  • 面包多(Online Sell)
  • 找主机网
  • Jason
  • CodeSpots
  • 运维咖啡吧
  • KuoLu
  • 包子
  • vps导航
  • Congz.club
  • 冯言疯语
© 2019 cmlanche
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.3