买了没多久就降价了。 直接联系下客服,在一定时间内是可以做 Price Match 的。 会把你多付的部分直接退回到信用卡的喔。 https://www.isharkfly.com/t/price-match/443
买了没多久就降价了。 直接联系下客服,在一定时间内是可以做 Price Match 的。 会把你多付的部分直接退回到信用卡的喔。 https://www.isharkfly.com/t/price-match/443
概述 Discourse Math 使用 MathJax (默认) 或者 KaTeX 来让你在你的 Discourse 中使用数学公式。 仓库链接 https://github.com/discourse/discourse-math Install Guide 如何在 Discourse 中安装插件 这个插件是 Discourse 官方提供的插件,同时这个插件被官方支持和维护的。 如果你还需要其他的特性需求的话,你可以直接找 Discourse 的官方。 启用数学(Math) Math 插件可以在设置中进行设置,可以通过 admin/plugins 页面来进行配置: 特性 当你把这个插件启用成功后,你可以使用符号来对要表示的数学方法进行标记 $ 例如下面的代码: $E=mc^2$. 当然你也可以使用 $$ 来进行包装,如下面的格式: $$ \sqrt{(-1)} \; 2^3 \; \sum \; \pi $$ Discourse 数学使用的是 heuristic 模式,这样的话可以保证下面的内容不会被转换: “I spent 20$ and another 100$”。 当你使用 MathJax 的时候,你还可以启用 asciimath 来显示函数,这个时候你可以使用 % 来作为分隔符: %E=mc^2% 站点设置 查看所有基于站点管理员的 “math” 设置 名字 描述 启用 discourse math 启用 Discourse Math 插件(将会对 $ 和 $ 的代码块进行识别) discourse math 处理插件 默认的处理插件为: [mathjax/katex] discourse math 鼠标放大 当把鼠标放到数学函数上的时候放大 200% (仅对 MathJax 有效) 启用辅助设置 启用辅助设置 (仅对 MathJax 有效) discourse math 启用 asciimath 启用asciimath (将会使用 % 作为分隔符)(仅对 MathJax 有效) 如果你使用的是 Discourse 官方提供的主机服务的话,有关 Discourse Match 的插件对所有的用户都有效。官方链接为:Math | Discourse - Civilized Discussion https://www.ossez.com/t/discourse-math/14422
A B C 仓库链接 https://github.com/discourse/discourse-table-builder 概述 Table Builder 这个插件能够让用户能够在 Discourse 的编辑对话框中快速的对表格进行编辑,同时也能够快速的插入表格。 对 Discourse 主题不够了解 请参考官方有关 Discourse 主题的文章:Beginner’s guide to using Discourse Themes 确定.js 文件在 Discourse 中的: theme_authorized_extensions 添加上去。 随后可以通过手动的方式对这个主题组件进行安装。 这个组件的安装不需要对 Discourse 进行重构 特性 一个构建表格的图形化界面 在你需要构建表格的时候,可以选择插入,然后这个组件将会打开,你可以在这个组件上进行编辑内容。 同时也可以编辑表格内容,当你保存后,这个组件将会自动帮你把表格保存为 Markdown 格式。 一个强大的表格编辑器 对已经存在的表格进行编辑也非常简单。 选择需要编辑的表格,然后单击表格上 Edit Table 按钮,这个时候将会出现一个表格编辑器。 可以在这个编辑器中对表格的内容直接进行编辑。 如下图,直接单击编辑器的按钮就可以了。 打开的编辑器界面 https://www.ossez.com/t/discourse-table-builder/14423
创立于1973年,总部位于美国德克萨斯州Irving,全职雇员12,000人,是美国最大的艺术和手工艺品零售连锁店,在北美拥有和经营艺术和手工艺专业零售店,为艺术家和自己动手家居装饰客户提供产品和服务。 Michaels 路过很多次,从来没有怎么进去过,可能是因为和自己的方向不一样吧。 考古了下,主要是做手工艺品的商店。 面向艺术品和家庭设计的方向更多一些,本地的这家店还有不少好评。 https://www.isharkfly.com/t/michaels/439
旅行证到手后,就是定机票了。 定了机票发现最便宜的还是日本转机,想着那就办个日本签证吧,省得到时候想出去出去,又出乱子。 日本波士顿领事馆的官方网站地址为:Visa FAQ's | Consulate-General of Japan in Boston 说心里话,上面的内容有点乱,通常找到不真正需要的东西。 领事馆划分 日本在美国的领事馆是比较严格按区来的。 波士顿领事馆主要负责:下面几个州的,如果你不是这几个州的申请基本会被拒绝。 领事馆地址 领事馆的地址为: Consulate-General of Japan in Boston 6th Floor, 100 High Street, Boston, MA 02110 TEL:617-973-9772,FAX:617-542-1329 在领事馆的官网上能查到,貌似不需要预约,直接带着材料去就好了。 需要的材料 这个就是最郁闷的,上面的领事馆网站上没有对需要的材料进行明确的说明,也没有 Check List。 也就根据网站考古来的材料,并且加上自己经验了。 签证申请表 签证申请表有官方模板的,可以在网页上找到,自行下载填写,同时还有中文版的,如果英文不好的,也可以对着填写。 官方网站地址为:VISA | Ministry of Foreign Affairs of Japan 现在,下载下来是这样的。 内容不多,只有 2 页。 比较不开心的是,这个 PDF 文件你只能修改内容,然后打印,你不能把这个文件保存为 PDF,然后再重新修改。 如果你发现有写错的,就要重新再写一次了。 日本签证申请表.pdf (267.2 KB) 和美国签证比起来要填的东西少多了,就按照上面的要求填就好了。 其他基本材料 下面的这些签证材料是必须的,要不然就会被退回,直到你准备好。 护照 签证费 (具体要多少网上可以查,貌似是 50 多?到时候去签证的时候带个现金过去就好了。) 一张 2×2 的证件照 收入证明 居住文件证明 机票信息 说明: 居住文件证明(必须) 收入和居住证明我们准备就打印一张银行账号的对账单就好了,想是主要是为了证明申请人有足够的收入和经济来源吧。 如果有绿卡的话,应该是需要绿卡的复印件,也不是非常清楚,先复印了再说,带过去,省得到时候到处找复印机。 如果你是其他的身份,比如说学生,我觉得 I-20 和 美国签证是必须的,应该是需要复印的。 行程计划单(必须) 行程单也没有,其实主要目的是因为机票是日本经停的,怕万一要入境什么的麻烦。 第一次去波士顿日本领事馆的时候,这个行程计划单是必须要要的,哪怕是照抄别人的也得要一个。 波士顿领事馆给了一个行程单的模板,照着上面填就好了:波士顿日本签证的行程单 机票预订信息(必须) 机票预订信息是必须要要的,你可以不用出票。 按照现在的情况,通常 24 小时内退票是全额退票的。 这里的机票信息要求比较严格,必须是要往返的机票,中转票是不可以的。 第二次去的时候,我带的机票是中转的,是从 EWR-NRT-HKG 这样的机票,想是中途入境玩一下,在日本领事馆申请的时候,这个机票他们不同意。 他们要求的是机票必须是往返的,比如说你是 EWR-NRT-EWR 这种,或者是在日本换机场也是可以的比,必须就是从哪里来回哪里去。 解释为什么要申请 5 年签证(不是必须) 说是需要解释为什么要申请 5 年之类的,我是实在没有时间去写那么详细的内容。 就先不写吧,回头说缺材料了再说。 常见问题 下面对我们这次签证时候遇到的问题进行一些总结: 日本签证可以代办吗 简单回答是: 可以代办,但是你需要填写一个授权表,具体请参考:日本签证可以代办吗 波士顿领事馆停车 波士顿领事馆的那个地方实在是不好停车,哪怕就是停地下车库里面也得绕一下。 如果不着急的话,可以停稍微远点的地方。 就从这个正门进去,直接上 6 楼。 别忘记带美国 ID 在所有材料都准备好以后,领事馆工作人员问还有没有美国的 ID。 我就把我的 ID 给他们了,他们复印我的 ID。 如果你有美国驾照的话,也记得带上,不知道什么时候就要了。 踩坑实录 日本签证虽然整体来说还是比较好办的,但是我还是踩坑了好几次。 主要出问题的地方就是行程和机票。 第 1 次踩坑 没有带机票信息和填写行程单,被要求提交机票信息和行程单才可以办理。 第 2 次踩坑 拿的机票是中转机票,因为这个机票早就买好了,想着就用一下就好了。 被要求说这个机票是不可以的,必须使用的是完整的往返机票才可以。 本来我们想着也是中转的时候去日本玩一下,貌似这种方式去申请日本签证是不行的。只能是回去后重新去买个可以退票的机票了。 办结 可能是因为没有说明需要申请多年多次的签证。 这次办下来的是单次入境许可的签证,感觉还是有一点点失望。 但是想想也正常,没有准备说明文件为什么要办理多次入境签证,准备材料也是比较马马虎虎的。 然后就给了一个上面的取件单,貌似如果要求邮寄的话也是可以的。 签证费只收现金。 最后再拍一张日本住波士顿领事馆的照片吧,证明来过。 https://www.isharkfly.com/t/topic/265
波士顿日本签证的授权书。 如果你希望别人帮你代办,或者家人代办的话,你可以使用下面的授权书。 下面的授权书是波士顿住日本领事馆给的。 自己直接填好给代办人就行了。 https://www.isharkfly.com/t/topic/437
下面的表格是在波士顿办理日本签证的时候要求填写的行程单。 主要是酒店信息和电话号码。 酒店不需要预定,只要你有预定成功的往返机票就可以了,酒店信息就根据你要参观的景点附近 Google 下,找一个就好了。 但是机票是需要预定的,好在美国航空公司有 24 小时弹性退票制度。 定了机票,然后在 24 小时内退掉就可以了。 https://www.isharkfly.com/t/topic/438
最近公司电脑升级后又抽风了。 在访问 Git 的时候提示了证书签名错误。 主要提示的错误为: git.exe fetch -v --progress "origin" fatal: unable to access 'https://src.ossez.com/yhu-docs.git/': SSL certificate problem: unable to get local issuer certificate git did not exit cleanly (exit code 128) (812 ms @ 5/12/2023 9:01:11 AM) 问题和原因 上面的原因文字上说是因为证书签名的问题。 我们实际访问的时候,就是公司的电脑上面有问题。 原因是公司电脑使用了一个安全工具,这个安全工具进行自签名,把访问外部网络的证书都自签名了,但是有些 CA 又不被这个自签名工具来信任。 所以唯一的办法就是跳过 https 的校验。 系统当前用户 下面这行命令的影响范围是系统当前用户。 需要注意的是,你如果没有系统的 Admin 管理员权限的话,下面这条命令会提示无权限。 git config --system http.sslverify false 全局所有用户 可以运行下面的命令,这个命令是针对全局的所有用户的,通常这个会在 Git 的进程中使用。 如果你没有管理员权限,这条命令应该也是可以执行成功的。 git config --global http.sslverify false 针对当前仓库 使用下面的命令是针对当前仓库的。 进入当前仓库的地址,然后运行下面的命令: git config http.sslverify false 如果打开仓库的配置文件的话,我们可以看到上面的仓库配置文件只是在配置文件中添加了下面的一段话。 也可以直接打开配置文件来修改。 https://www.ossez.com/t/git/14418
概述 在本文章中,我们对如何在 Java 中对 Array 和 Set 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。 更多有关的文章,请访问:Java - OSSEZ 相关的内容和参与讨论。 从 List 转换为 Set 使用原生 Java 代码 让我们首先来看看如何在原生 Java 中把数组转换为 Set。 通过下面的代码,我们了解到首先需要把 Array 转换为 List,然后再把这个 List 转换为 Set。 @Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set<Integer> targetSet = new HashSet<Integer>(Arrays.asList(sourceArray)); } 可选的,我们可以首先定义一个 Set 对象,然后把这个 Set 对象的元素进行填充: @Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set<Integer> targetSet = new HashSet<Integer>(); Collections.addAll(targetSet, sourceArray); } 使用 Guava 我们可以使用 Guava 转换工具来把数组给出的数组来进行初始化。 @Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set<Integer> targetSet = Sets.newHashSet(sourceArray); } 使用 Apache Commons Collections 最后我们可以使用 Apache 的 Commons Collection 的库来进行处理。 这个处理方法和我们使用原生 Java 代码差不多,首先需要对 Set 进行初始化,然后再把 Set 中的元素进行填充。 @Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set<Integer> targetSet = new HashSet<>(6); CollectionUtils.addAll(targetSet, sourceArray); } 从 Set 转换为 Array 使用原生 Java Set 中有一个 toArray 的方法,你可以直接使用这个方法来把给出的 Set 转换为 Array。 @Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() { Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceSet.toArray(new Integer[0]); } 需要注意的是,我们在这里使用了 toArray(new T[0]) 来对变量进行初始化,相对使用 toArray(new T[size]) 这个方法。 使用 toArray(new T[0]) 来对数组进行初始化更加安全,快速,易读。 使用 Guava 下一步,让我们来使用 Guava 的 API 来进行转换。 @Test public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() { Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceSet); } Ints 中有一个 toArray 的方法,这个方法将会把整数类型的 List 转换为 Array。 需要注意的是 Ints 的类型需要和数组中的类型进行匹配才可以。 结论 在 Java 的集合类型直接进行转换是我们需要经常进行操作的方法和需求。 Guava 的方法 Sets 中通常能够对 Set 进行比较好的操作,包括对 Set 的对象进行初始化。 我们可以用这个对象中的初始化参数来对数组转换为 Set。 使用 Commons Collections 还是有点晦涩。 https://www.ossez.com/t/java-array-set/14417
概述 在本文章中,我们对如何在 Java 中对 Array 和 List 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。 更多有关的文章,请访问:Java - OSSEZ 相关的内容和参与讨论。 从 List 转换为 Array 使用原生 Java 代码 我们可以使用原生 Java 代码来进行转换,在 List 中有一个 toArray 的方法,直接使用就可以了。 @Test public final void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { final List<Integer> sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); final Integer[] targetArray = sourceList.toArray(new Integer[0]); } 需要注意的是,我们在这里使用了 toArray(new T[0]) 来对变量进行初始化,相对使用 toArray(new T[size]) 这个方法。 使用 toArray(new T[0]) 来对数组进行初始化更加安全,快速,易读。 使用 Guava 让我们来使用 Guava API 来进行相同的转换: @Test public final void givenUsingGuava_whenListConvertedToArray_thenCorrect() { final List<Integer> sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); final int[] targetArray = Ints.toArray(sourceList); } Ints 中有一个 toArray 的方法,这个方法将会把整数类型的 List 转换为 Array。 把 Array 转换为 List 使用原生 Java 让我们使用原生的 Java 来把数组转换为 List。 直接只用 JDK 中的 Arrays 来进行转换就可以了。 @Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List<Integer> targetList = Arrays.asList(sourceArray); } 需要注意的是,这个方法转换的 List 是固定长度的 List,你就没有办法对这个 List 进行相关操作了。 如果你是希望使用基本的 ArrayList 的话,我们可以简单的使用 ArrayList 来对其进行实例化。 如下面的代码来进行实例化: List<Integer> targetList = new ArrayList<Integer>(Arrays.asList(sourceArray)); 使用 Guava 让我们来使用 Guava API 来进行相同的转换: @Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List<Integer> targetList = Lists.newArrayList(sourceArray); } 使用 Commons 集合 最后,我们来看看如何使用 Apache Commons Collections 的 CollectionUtils.addAll API 来把 Array 的内容填充到一个空的 List: @Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List<Integer> targetList = new ArrayList<>(6); CollectionUtils.addAll(targetList, sourceArray); } 这个方法,我们使用的是 CollectionUtils 的工具类来进行添加的。 结论 在 Java 的集合类型直接进行转换是我们需要经常进行操作的方法和需求。 上面介绍了几种基本的转换方法,根据我们的实际使用经验,使用 Guava 的 Lists 来把 Array 转换为 List 是我们常用的方法。并且创建的 List 也是可变的。 使用 Commons Collections 的这个方法是通过 Add 的方法的,感觉这个方法也比较简单,但是用得有点晦涩。 https://www.ossez.com/t/java-array-list/14416