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

Discourse 如何查看所有的标签

查看系统中所有标签的链接在左侧的链接对话框中。 在标签页面的下方有一个查看所有标签的链接。     可以单击上图中的链接,查看系统中所有的标签。 如我们当前系统中的所有标签。   https://www.ossez.com/t/discourse/14444

2023年05月23日 0Comments 780Browse 0Like Read more
Computer Science

Discourse 如何配置 MAXMIND 来对 IP 地址反向查询

 【配置 MAXMIND,Discourse 需要重新构建,这将会导致服务中断。 】 什么是 MAXMIND 和为什么我们需要使用这个服务 Discourse 使用 MAXMIND 来通过 IP 地址反向查询具体的物理地址。 如果 Discourse 没有配置 Maxmind’s 数据库,我们看到的配置信息如下: 或者在对 Discourse 容器重新编译的时候,看到下面的信息: MaxMind IP database updates require a license Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com 为什么我们需要对 IP 地址进行查询 我们通常使用 IP 的地址查询来了解访问系统中的用户地址,这些用户是谁并且是在哪里访问我们的额网站。如果有问题的话,你还可以了解到,这些用户 Special-ISP" 经常访问我的网站。 从 Discourse 2.2.0.beta4 版本开始,Discourse 同时使用这些 IP 地址信息来通知管理员有新的登录地址来访问你的网站。 如果你不配置 Maxmind 数据库,Discourse 没有办法向管理员提供上面的信息。 如果我没有这个 Key 会有什么问题 如果你对上面提到的这些问题并不是非常关心的话,那么就算不配置 maxmind 数据库也没有关系。 最差的情况就是没有办法获得新 IP 地址用户访问通知和查询具体用户的 IP 地址信息。 当然,你也可以拷贝 IP 地址到其他开放的网络上进行查询。 如何获得 Key 请查看 Maxmind’s https://support.maxmind.com/hc/en-us/articles/4407111582235-Generate-a-License-Key 网站页面来获得如何创建 Key 的文章。 访问 GeoLite2 Sign Up 页面。 在 “My License Keys” 链接页面中创建一个 Key。你需要对创建的 Key 进行保存,如果 Key 丢失的话,你需要重新创建一个 Key。 把你获得的 Key 添加到 app.yml 的 ENV 环境变量中,配置文件看起来如下: DISCOURSE_MAXMIND_LICENSE_KEY: your-key-here 或者通过 discourse-setup 来进行配置。 IPv6 用户说明 Discourse 的默认安装方式并不能百分之一百的支持 IPv6。 如果你的服务器配置了 IPv6,你需要确定 Discourse 能够获得用户真实的 IPv6 地址。 通常可以通过在 Discourse 中设置反向代理来完成这个配置,通常这个配置需要更多的管理员配置。   https://www.ossez.com/t/discourse-maxmind-ip/14445  

2023年05月23日 0Comments 632Browse 0Like Read more
Computer Science

程序员喜欢用程 Mac 进行编程

  大部分情况都是公司发什么用什么。如果可以选,就选自己用得最顺手的,赶紧搞完收工。 有公司,不知道上面出了什么问题,要求新换的电脑必须要给程序 Mac,有人就是死扛不要 Mac,不是因为 Mac 有多不好,也不是因为 Windows 有多好,就是懒得再学一套快捷键。 当然和每天用的东西也有关系,天天用的就是 IntelliJ IDEA 那几个命令行,用得着去 Mac 不。 更多的时候都是 docking 挂双屏,还不是怎么方便怎么来。 有些 NodeJS 的确实头疼点,编译的时候要跑 Linux,否则编译都不通过。 好在现在有了 WSL,也问题不大。 BTW, 用的数据库是 MySQL 跑生产,要知道 MySQL 在 Windows 下表是不区分大小写的,公司表的设计有问题,然后搞个 Mac 来掩盖下糟糕的设计?   https://www.ossez.com/t/mac/14439  

2023年05月20日 0Comments 636Browse 0Like Read more
Computer Science

Java 创建一个大文件

有时候,我们在对文件进行测试的时候,可能需要创建一个临时的大文件。 那么问题来了,在 Java 中如何创建大文件呢? 问题和解决 有些人想到的办法就是定义一个随机的字符串,然后重复很多次,然后将这个字符串写入到文件中。 当然,这个是一个解决方法。 我们可以使用下面的代码来进行创建。 @Test public void writingToLargeFile() throws IOException { final RandomAccessFile stream = new RandomAccessFile(fileNameLarge, "rw"); stream.setLength(1024 * 1024 * 1024); } 生成的文件的大小为 1 个 G。     RandomAccessFile 实例 此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。 如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。 该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。 现有如下的一个需求,向已存在1G数据的 txt 文本里末尾追加一行文字, 可能大多数朋友会觉得这个需求很容易,直接把文件读到内存中,获得文件的字符串,然后在字符串后添加就可以了。 那么,如果我们现在的文件有 10 GB,那怎么办? 如果全部读到内存中,估计大概率情况会内存溢出了。 这个时候可以使用 RandomAccessFile 来进行操作了。 因为 Random 的大意就是针对文件内容的指针你可以随意进行操作,那么对大文件的读取和处理,这个类就是你的好伙伴了。 另外,从 RandomAccessFile 的构造方法,我们就看到,你需要提供的是文件的路径,而不是文件对象。 这个很容易理解吧,如果我们提供的是文件对象的话,那么你的 JVM 将会要对这个对象实例化以后才能操作,这个内存早就可能会出问题了。     有下面的一些参数你可以使用: r: 以只读方式打开文件,如果执行写入操作会抛出IOException; rw: 以读、写方式打开文件,如果文件不存在,则尝试创建文件; rws: 以读、写方式打开文件,要求对文件内容或元数据的每次更新都同步写入底层存储设备; rwd: 以读、写方式打开文件,要求对文件内容的每次更新都同步写入底层存储设备; https://www.ossez.com/t/java/14438

2023年05月20日 0Comments 803Browse 0Like Read more
Computer Science

Discourse 新注册用户需要多长时间显示在用户列表中

针对新注册的用户要多长时间才在这个页面中出现? 解决和说明 上面页面的内容需要缓存才显示的。 通常这个页面的缓存时间需要 24 个小时,所以如果是新注册的用户,要在上面的页面显示出来,至少需要 24 个小时。   https://www.ossez.com/t/discourse/14437

2023年05月20日 0Comments 474Browse 0Like Read more
Computer Science

Intellij IDEA 如何删掉插件

在 Intellij IDEA 的配置中,找到插件选项。 在插件选项中,选择需要删除的插件,然后在右侧的对话框中选择 uninstall 就可以了。     卸载以后,可能不会要求重启,为了安全起见,还是重启下你的 IDE 吧。   https://www.ossez.com/t/intellij-idea/14436

2023年05月19日 0Comments 775Browse 0Like Read more
Computer Science

Intellij IDEA 提示 Thrift Support 支持不兼容

最近升级 Intellij IDEA 后老提示 Thrift Support 不兼容。     后来看了下这个插件已经不少时间没有更新了,也一直不知道这个插件是干什么 用的, 后来看了下,这个插件是: Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。 它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk编程语言开发。 2007由Facebook开源,2008年5月进入Apache孵化器, 2010年10月成为Apache的顶级项目。 看来可能是原来调试 GRPC 时候装上的。     因为已经和现在的 IDE 不兼容了,看来还是删掉就好了。   https://www.ossez.com/t/intellij-idea-thrift-support/14435

2023年05月19日 0Comments 694Browse 0Like Read more
Computer Science

Discourse 的用户信息中的 IP 地址显示的是 CloudFlare 的 IP 地址

因为使用了 CloudFlare 的反向地址。 所有 Discourse 获得的用户的 IP 地址其实是 CloudFlare 的服务器地址。     修改 好在 Discourse 已经提供了相关的解决方案。 需要在 Discourse 的配置文件中,添加下面的内容: “templates/cloudflare.template.yml”     然后重新 Build 你的 Discourse 的安装实例。 ./launcher rebuild app 使用上面的命令就可以对 Discourse 直接进行重构了,需要注意的是重构需要 10 分钟左右,这 10 分钟系统是无法访问的。   https://www.ossez.com/t/discourse-ip-cloudflare-ip/14432

2023年05月18日 0Comments 597Browse 0Like Read more
Computer Science

Maven PKIX path building failed 错误提示

最近公司的项目突然出现了下面的提示。 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]     问题和解决 出现上面的提示的问题是因为 SSL 签名的问题。 但是我们访问的网站的 SSL 签名是没有问题的,唯独使用公司的电脑有这个问题。 后来发现是因为公司电脑装的一个 zscaler 的安全软件导致的签名问题。 解决办法就是让 Maven 不对 SSL 进行校验,这个 zscaler 比较奇葩,对你访问的网站还先自签名一次,然后再让你访问。 解决的办法就是在需要运行 Maven 的地方,添加下面的参数: -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 下面的参数能够让 Maven 不对访问的仓库进行签名校验。 有关参数的配置,请参考网站:Apache Maven Wagon :: Providers :: HTTP Provider – Maven Wagon HTTP 上的内容。 Maven 命令行运行 如果你使用的是 Maven 命令行来进行编译的话,你需要使用下面的命令: mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -U 这样通常能够让你在命令行中跳过 SSL 证书的检查。 IntelliJ 如果你还想让你的 IntelliJ 也跳过 SSL 证书的检查,那么你需要把下面的参数 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 添加到 IntelliJ 的 VM options 下。     然后再次运行 mvn 的命令,这个应该能够让你跳过 SSL 的证书检查,并完成下载。   https://www.ossez.com/t/maven-pkix-path-building-failed/14429

2023年05月18日 0Comments 758Browse 0Like Read more
Computer Science

Java 把一个 List 转换为字符串

在本快速指南中,我们将会解释如何在 Java 把一个 List 转换为 String 字符串。 这个在某些特定的场合可能比较有用,比如说在控制台中输出 List 中的内容,转换为可以人为阅读的内容来进行调试。     使用 List 中标准的 toString() 方法 一个最简单的方法就是调用 List 中的 toString() 方法: @Test public void whenListToString_thenPrintDefault() { List<Integer> intLIst = Arrays.asList(1, 2, 3); System.out.println(intLIst); } 上面的代码将会输出: [1, 2, 3] 从技术上来说,上面的方法将会针对 List 中的每一个对象调用 toString() 方法来进行输出。 在上面的代码中,我们将会使用 Integer 类型的 toString() 方法来把元素中的内容来进行输出。 但是,这里会有一个问,如果你的 List 中使用的是自定义的对象的话,例如我们自定义一个 Person 对象,那么在输出的时候,你需要在 Person 对象中重写(override) toString() 这个方法,而不能使用默认的 toString() 方法。 如果你不这样做的话,你在控制台上大概率会看到下面输出内容: [org.baeldung.java.lists.ListToSTring$Person@1edf1c96, org.baeldung.java.lists.ListToSTring$Person@368102c8, org.baeldung.java.lists.ListToSTring$Person@6996db8] java.lang.Object - 类名 @ - 符号 d716361 - 哈希值的十六进制值 上面的数字不是你对象的实际内容,而是对象的十六进制哈希值。 使用 Collectors 的自定义实现 有时候,我们希望我们的输出使用特定的格式。 对比上面的例子,我们希望在输出的值之间使用 comma (,) hyphen (-), 或者方括号 ([, ]) 或者 braces ({, }) 来进行输出: @Test public void whenCollectorsJoining_thenPrintCustom() { List<Integer> intList = Arrays.asList(1, 2, 3); String result = intList.stream() .map(n -> String.valueOf(n)) .collect(Collectors.joining("-", "{", "}")); System.out.println(result); } 上面代码输出的内容为: {1-2-3}     Collectors.joining() 方法需要一个 CharSequence,所以我们可以把数组对象中的整数转换为 String。 同时我们可以看到上面的方法使用了 Java 8 开始提供的 Stream,我们可以使用上面 Stream 的方法来对对象中内容进行输出。 其实主要理解就是使用了 Stream 方法,然后对 List 中的对象进行遍历。 使用其他外部类 我们还可以使用 Apache Commons’ StringUtils 类来得到同样的结果。 Maven 依赖 首先需要确保你的项目中有下面的依赖: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.11</version> </dependency> 实现 实现的方法也非常简单,就是使用 StringUtils.join 就可以了。 @Test public void whenStringUtilsJoin_thenPrintCustom() { List<Integer> intList = Arrays.asList(1, 2, 3); System.out.println(StringUtils.join(intList, "|")); } 输出 1|2|3 需要注意的是,就算你使用了 StringUtils.join 方法,这个方法也还是使用的是对象内部的 toString() 方法。 如果不对自有对象的 toString() 重写(override)进行重写的话,你还是可能得到的是对象的哈希值而不是对象中具体的内容。 结论 本文对如何在 Java 中对 List 中的内容进行 String 转换并且输出进行了简单的说明。 需要注意的是对 toString() 方法,在某些时候需要进行重写(override)以便于得到正确的值。   https://www.ossez.com/t/java-list/14427

2023年05月18日 0Comments 545Browse 0Like Read more
1…8182838485…303
Archives
  • 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,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (518)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1