开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

搜狗输入法还可以再流氓点吗

实在受不了搜狗拼音的无止境弹窗,终于把这个输入法从计算机中卸载了。 以前搜狗输入法弹窗还算有所收敛,最近简直是让人无法接受了,本来你还在做屏幕分享给同时做 PPT 的时候,突然来个弹窗,然后整个人都瞬间不好了。 更恶心的是,昨天发现搜狗拼音输入法在我的鼠标右键增加了一大堆有关 PDF 的操作,包括 PDF 合并呀这些东西。     首先搜狗输入法占领的是你的打印,当启动他的打印后,就会自动安装其他的 PDF 处理组件在你的鼠标右键上。 就是这么流氓。 其实这些东西一直我们都在用 Adobe 的 PDF 编辑器,说实话真的看着烦躁和恶心。 你要装也不是不可以,你是不是应该要征求下用户的意见同意装呢? 偷偷摸摸的就装上去了。 搜狗输入法,没事让你养个宠物,我们真的已经过了那个年龄了,现在用输入法完全就是为了工作好吗? 现在用什么输入法 现在就只用了微软自带的输入法了。 还是很怀念紫光输入法和 Google 输入法的那个时代,实在是太干净了。 不过好在微软输入法也在迭代中,可能在组词联想上面有点学习过程,不过随着使用时间的增加,也没有发现更多的不适。 https://www.isharkfly.com/t/topic/15636

2024年04月15日 0Comments 635Browse 0Like Read more
Computer Science

Nexus 如何修改启动端口

默认的 Nexus 的启动端口为 8081。 如果我们使用这个启动端口可能会对我们其他的服务有冲突。 我们需要使用 Nexus 的默认启动端口。 修改文件 根据我们的安装配置为: /opt/nexusdata/nexus3/etc 目录下的 nexus.properties 文件。     注释掉 Jetty 的配置中有关端口的设置,然后对端口进行修改。 上图显示的是我们把运行的端口修改为 8010。 修改完成后需要重启服务器。   https://www.isharkfly.com/t/nexus/15632

2024年04月14日 0Comments 603Browse 0Like Read more
Computer Science

Nexus 启动异常

在迁移 Nexus 到新的服务器上,我们有下面的异常。 [root@devops log]# /opt/nexus/bin/nexus start No suitable Java Virtual Machine could be found on your system. The version of the JVM must be 1.8. Please define INSTALL4J_JAVA_HOME to point to a suitable JVM. [root@devops log]# 这个问题的原因是老的服务器用的 JDK 版本是 11,新服务器用的 JDK 版本是 17。 在这里有路径不匹配的问题。 修改文件 需要修改的文件路径在:/opt/nexus/bin 目录下的 nexus 文件。     把这个文件修改为服务器上正确的 Java Home 路径。 我们服务器上安装的是 OpenJDK,当我们进入目录 :/usr/lib/jvm 后,我们可以看 到下面的内容。     我们的机器上装的是 OpenJDK 17。 根据官方的说法: Nexus Repository versions up to and including release 3.66.0 require a Java 8 Runtime Environment (JRE). Versions 3.67.0+ also support the Java 11 JRE。 如果你需要使用 JDK 11 的话,你至少需要版本 3.67.0 以上。 当完成上面的 JDK 配置后,重启服务器就可以了。   https://www.isharkfly.com/t/nexus/15630

2024年04月13日 0Comments 625Browse 0Like Read more
Computer Science

Sonatype Nexus 服务器迁移

因为服务器的升级和调整,有时候会对安装 Sonatype Nexus 的服务器进行迁移到新服务器上。 从技术架构上来说,Sonatype Nexus 我们使用的是 AWS 的存储,所以我们并不需要拷贝大量的数据。 文件夹结构 在备份和恢复之前,我们需要知道我们要拷贝那些文件夹。 Nexus 真正程序运行使用的文件是 2 个,我们把这 2 个文件夹部署在了 /opt 目录下。 如下图: 在备份迁移的时候,我们需要把这 2 个文件夹给备份到新服务器上。 可以使用 tar 压缩后转移的方式。 当我们从老服务器上把数据下载下来后,可以直接把老服务器上的这 2 个文件夹拷贝到新的服务器上。 新服务器上设置用户权限 在新服务器上依次运行命令: useradd --system --no-create-home nexus chown -R nexus:nexus /opt/nexus chown -R nexus:nexus /opt/nexusdata 因为我们是拷贝服务器的配置来进行安装的,所以其他的配置都不需要修改,但是针对 Linux 操作系统平台的一些配置还是需要修改的。 修改用户打开文件限制 这个是 Linux 的限制,我们需要进行修改。 打开文件: vi /etc/security/limits.conf 在文件的最后添加下面的内容。 nexus - nofile 65536 然后保存退出。 设置 Nexus 为服务 使用命令编辑下面的文件: vi /etc/systemd/system/nexus.service 将下面的内容复制到这个文件中。 [Unit] Description=Nexus Service After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Group=nexus Restart=on-failure [Install] WantedBy=multi-user.target 将服务设置开机启动,并且启动 nexus 服务。 依次运行下面的命名: systemctl daemon-reload systemctl enable nexus.service 启动服务 输入下面的命令来启动服务。 systemctl start nexus 查看服务启动状态 运行下面的命令来查看服务启动的状态。 tail -f /opt/nexusdata/nexus3/log/nexus.log https://www.isharkfly.com/t/sonatype-nexus/15628

2024年04月13日 0Comments 734Browse 0Like Read more
Computer Science

Youtrak 的备份数量设多少合适

这个根据服务器的配置情况来设置。 当前我们的备份数量是每天大概是 1G 左右,这个数量保留 60 到 120 是没有什么问题的。     但,实际上在服务器上保留这么多备份其实意义也不大。 如果出现问题的时候,我们通常只需要最近的上一天的备份就可以了。 相信很多人也不会去找回 3 个月之前的数据的,因为 3 个月对一个项目来说会有非常多的改变。 所以我们把备份设置成了保留 12 个。 通常这个已经足够用了,没有必要浪费过多的服务器空间。   https://www.isharkfly.com/t/youtrak/15629

2024年04月13日 0Comments 447Browse 0Like Read more
Computer Science

我应该提交 vendor 目录中的依赖包吗

一般情况下 不建议。vendor 目录(或者你安装依赖的其它目录)都应该被添加进 .gitignore/svn:ignore/等等。 最好这么做,然后让所有开发人员使用 Composer 来安装依赖包。同样的,对构建服务器,CI,部署工具等,应在编译构建的时候对项目进行修改修改,使运行 Composer 成为其项目引导的一部分。 虽然在某些环境下我们也是可以提交 vendor 目录的,但它将导致一些问题: 当你更新代码时,将极大的增加 VCS 仓库的体积和差异。 在你自己的 VCS(代码管理工具) 中将产生与你依赖的资源包重复的历史记录。 通过 git 的一个 git 仓库安装添加依赖,将把它们视作子模块。这是有问题的,因为它们并不是真正的子模块,你的项目在运行的时候可能会出现问题。 如果你真的觉得你必须这样做,你有几个选择: 限制自己安装标记为发布(releases )的版本(无 dev 版本),这样你只会得到 zip 压缩的安装,并避免 git“子模块”出现的问题。 使用 --prefer-dist 或在 config 选项中设置 preferred-install 为 dist。 在每一个依赖安装后删除其下的 .git 文件夹,然后你就可以添加它们到你的 git repo 中。你可以在 ZSH 中运行 rm -rf vendor/**/.git 或者在 Bash 中运行find vendor/ -type d -name ".git" -exec rm -rf {} \;。但这意味着你在运行 composer update 命令前需要先删除磁盘中的依赖文件。 新增一个 .gitignore 规则(/vendor/**/.git)来忽略 vendor 下所有 .git 目录。这种方法不需要你在运行 composer update 命令前删除你磁盘中的依赖文件。 通过上面的文字内容,我们知道在使用 Composer 项目的时候,我们不要把 vendor 中的内容也提交到代码管理库中,而应该使用 Composer 自己在运行的时候下载。 如果我们通过标准的 git ignore 文件生成器来生成 composer 的ignore 文件的话,我们也看到上面提示忽略的内容。   2024-04-08_23-21-421716×622 99 KB   # Created by https://www.toptal.com/developers/gitignore/api/composer # Edit at https://www.toptal.com/developers/gitignore?templates=composer ### Composer ### composer.phar /vendor/ # Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control # You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file # composer.lock # End of https://www.toptal.com/developers/gitignore/api/composer https://www.isharkfly.com/t/vendor/15624

2024年04月09日 0Comments 539Browse 0Like Read more
Computer Science

IRIS / Chronicles 数据结构备忘录

数据结构的内容主要涉及到索引和全局变量。 这部分的内容的问题在于概念多,和普通的数据库对应的内容也不太一样,需要花点时间了解。 networked items 有关英文的解释是: Networked items that point to databases that use padded-string IDs always store the external (unpadded) form of the target record’s .1 item. This eliminates the padding factor dependency, which could be changed through a data conversion. If the database networked to uses numeric IDs, then the value stored in the item is identical to the record’s ID. 说人话就是对于一个 Item 是 networked 的话,这个 Item 中存储的数据就是根据 .1 这个 Item external (unpadded) 来的。 这里有 2 个概念,.1 这个 Item 可以存字符串,.1 这个Item 也可以存全是数字,当如果 .1 存储是全是数字的话,networked 的存储数据和 .1 中的数据是相同的。 但是,因为 padded 的问题,针对 String 的 Padded 的时候,会在字符串前面加空格,这会导致在数据转换的时候可能会不一致。 这个知识点就想表达的意思就是可能数据在转换的时候会不一致。 Chronicles Locators Chronicles Locators describe the subscripts used to define nodes in Chronicles Data Globals. The 5 standard locators are INI, ID, DAT, Item # and Line #. In addition to being subscripts to globals, the locators are also used as input to various routines and utilities, as well as arguments to Chronicles API. Chronicles Locators 主要用途就是把数据从 Chronicles Data Globals 读取出来。要读取 Chronicles Data Globals 中的数据,需要有 5 个参数:INI, ID, DAT, Item # 和 Line #。 用中文来翻译的话,这个应该叫做 Chronicles 数据全局。 Chronicles Data Globals 可以认为是 Chronicles 和 M 语言全局变量中的一个映射。 根据我们对 Chronicles 数据库的了解,Chronicles 将会把数据映射到 M 语言的全局变量中,然后提供语言级别的调用,这个和我们常用的关系数据库不一样,因为我们不可能把数据库中的内容全部映射到一个程序语言的全局变量中,这会导致溢出的。 但 Chronicles 这个数据就是这样操作的。 Remember to look before you leap; view your test data before writing code to load it, so you know what to expect. To create your test data, use Chronicles. To see the raw data and locators along with most translations, use the Record Viewer. The important locators can be seen in the chart below and will be critical to loading in the next section. Determine the number of lines of data…

2024年04月08日 0Comments 505Browse 0Like Read more
Computer Science

IRIS / Chronicles 基础概念备忘录

数据类型存储不同 在 IRIS 中有 几种数据类型,但是这几种数据类型怎么存的和常用的关系数据库不太一样。 String:字符串类型,这个类型包括有字母和数字,需要注意在这里有一个 Padded 的概念,对与 String 类型的数据,如果 Padded 后会在字符串的最前面加上一个空格。 Numbers:对于数字,将会把没有意义的空格删除后存储。 Categories:是一系列的选择,只有 Category 的值被存储(only the category value is stored)。 Dates:存储单位是天,在数据库中会以数字来表示,这个数字就是以1840-12-31这一天为基准进行计算,每多一天就增加 1 ,一直到当前的日期。 Times:存储单位是秒,数字是从午夜 0 点开始算的,每多一秒就增加 1 ,当到达午夜零点后再次归零,以第二天开始。 Instants:存储单位是秒,数字是从1840-12-31这天为基准开始计算的,每增加 1 秒就增加 1。 Chronicles 中针对每个数据类型的存储,更多的会使用数字,因为 Chronicles 担心使用字符串有转换问题,时区问题。 https://www.isharkfly.com/t/iris-chronicles/15620

2024年04月08日 0Comments 530Browse 0Like Read more
Computer Science

一个更难破解的加密算法 Bcrypt

BCrypt是由Niels Provos和David Mazières设计的密码哈希函数,他是基于Blowfish密码而来的,并于1999年在USENIX上提出。 除了加盐来抵御rainbow table 攻击之外,bcrypt的一个非常重要的特征就是自适应性,可以保证加密的速度在一个特定的范围内,即使计算机的运算能力非常高,可以通过增加迭代次数的方式,使得加密速度变慢,从而可以抵御暴力搜索攻击。 Bcrypt可以简单理解为它内部自己实现了随机加盐处理。使用Bcrypt,每次加密后的密文是不一样的。 对一个密码,Bcrypt每次生成的hash都不一样,那么它是如何进行校验的? 虽然对同一个密码,每次生成的hash不一样,但是hash中包含了salt(hash产生过程:先随机生成salt,salt跟password进行hash); 在下次校验时,从hash中取出salt,salt跟password进行hash;得到的结果跟保存在DB中的hash进行比对。 在Spring Security 中 内置了Bcrypt加密算法,构建也很简单,代码如下: @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } 生成的加密字符串格式如下: $2b$[cost]$[22 character salt][31 character hash] $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy \__/\/ \____________________/\_____________________________/ Alg Cost Salt Hash 上面例子中,$2a$ 表示的hash算法的唯一标志。这里表示的是Bcrypt算法。 10 ​表示的是代价因子,这里是2的10次方,也就是1024轮。 N9qo8uLOickgx2ZMRZoMye ​是16个字节(128bits)的salt经过base64编码得到的22长度的字符。 最后的IjZAgcfl7p92ldGxad68LJZdL17lhWy​是24个字节(192bits)的hash,经过bash64的编码得到的31长度的字符。   https://www.isharkfly.com/t/bcrypt/15615

2024年04月08日 0Comments 439Browse 0Like Read more
Computer Science

PHP 中的 $2y$10,PHP 字符串加密函数 password_hash

PHP 用户密码加密函数 password_hash 自PHP5.5.0之后,新增加了密码散列算法函数(password_hash),password_hash() 使用足够强度的单向散列算法创建密码的散列 Hash。 password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。 password_hash不需要再单独存储盐值,而且每次加密的值都不一样,我们只需要存储加密字符串,验证时用 password_verify() 方法即可得出结果! 当前支持的算法 PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。 PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 “2y” 的 crypt()。 结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。 PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。 返回值 返回散列后的密码, 或者在失败时返回 FALSE。 使用的算法、cost 和盐值作为散列的一部分返回。所以验证散列值的所有信息都已经包含在内。 这使 password_verify() 函数验证的时候,不需要额外储存盐值或者算法的信息。 加密 我们想要使用默认算法散列密码。 当前是 BCRYPT,并会产生 60 个字符的结果。 请注意,随时间推移,默认算法可能会有变化, 所以需要储存的空间能够超过 60 个字符 */echopassword_hash(“rasmuslerdorf”, PASSWORD_DEFAULT); 输出类似结果: $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a   https://www.isharkfly.com/t/php-2y-10-php-password-hash/15617

2024年04月08日 0Comments 822Browse 0Like Read more
1…5960616263…309
Archives
  • July 2026
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,385)
    • Confluence (663)
    • Gradle (12)
  • U.S. (557)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1