起因是一个多月没写代码,才发现git pull
用不了了,错误如下:
$ git pull |
原来是2021年8月13日后Github为了防黑客禁止了密码验证方式,公告详见:2020-12-15-token-authentication-requirements-for-git-operations,意思是如果使用HTTPS进行Git操作需要使用token替换原来的密码。
起因是一个多月没写代码,才发现git pull
用不了了,错误如下:
$ git pull |
原来是2021年8月13日后Github为了防黑客禁止了密码验证方式,公告详见:2020-12-15-token-authentication-requirements-for-git-operations,意思是如果使用HTTPS进行Git操作需要使用token替换原来的密码。
我以为一个“技术博客”写些无病呻吟或骂街发泄的故事是不合时宜的,但近期工作上一些尤为荒唐的经历还是值得大书特书一番。故事中的人物身份、地点均已隐去,不存在侵权or人身攻击行为。偶然发现这篇博文的朋友们,若有兴趣听我发牢骚的不妨端个小板凳坐下,这故事可能有点长。
用deep-learning-4j在Spring项目中集成深度学习模块的时候,目录中出现了一个.so动态链接库文件,我猜到这也许就是所谓的深度学习Backend,用于使用GPU加速计算,于是便对Java中调用本地程序的过程产生了兴趣,想写个Demo来验证以下。
环境:Linux
以一个Fibonacci数列为例,我们想让他作为native方法存在,而不是用Java实现。定义一个Fibonacci
类,声明两个方法:public class Fibonacci {
public native static void init();
public native static int get(int i);
}
本地方法需要native
关键字修饰,且无方法体。init()
用于初始化一个Fibonacci表,get(i)
用于返回序列某个值。用javah Fibonacci
生成一个Fibonacci.h
头文件:
我写了一个矩阵加减的程序,其中main.cpp
如下:
// main.cpp |
他创建了两个矩阵对象m1
和m2
,分别打印m1
,m2
以及m1 + m1
。如果注释掉std::cout << "m1 + m2 = \n" << m1 + m2 << std::endl;
,可以正常执行,输出结果如下: