开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Computer Science

YouTrack 中如何设置邮件通知

在 YouTrack 中,默认是不会邮件通知的。 你可以为你的账号设置邮件通知。 设置的方法为单击用户属性,然后在弹出的小窗口中选择属性选项。 设置邮件通知 在通知 Tab 页面中,选择发送邮件的方式,默认这个选项是不选择的。 用户可以为自己选择发送邮件的方式。 我们这里选择的是 HTML。 下面就是一些可能触发邮件发送的条件,根据自己的要求进行修改就可以了。     这样就完成了在 YouTrack 中的邮件通知设置了。   https://www.isharkfly.com/t/youtrack/15075

2023年10月27日 0Comments 752Browse 0Like Read more
Computer Science

Java 中的 Default 关键字

default 关键字:是在 Java 8 中引入的新概念,也可称为 Virtual extension methods——虚拟扩展方法与public、private等都属于修饰符关键字,与其它两个关键字不同之处在于default关键字大部分都用于修饰接口。 default 修饰方法时只能在接口类中使用,在接口中被 default 标记的方法可以直接写方法体,而无需修改所有实现了此接口的类。 接口默认方法 我们都知道 Java 中的接口是用来实现的,接口中是没有实现的方法。 使用 default 关键字可以打破这个限制,当定义了一个接口,但是我们接口中的方法用了 default 关键字,我们就可以在这个方法中进行实现了。 这时,我们不需要再定义一个实现类类实现接口中的所有方法。 之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改该接口的全部实现类。 同时因为设计实现的问题,我们通过设计接口来进行不同的实现,在基础框架曾经,这个设计是有很多好处的。 但,在实际业务层,一个接口多个实现的方法反而谁增加很多复杂度。 使用 Default 关键字 用 default 关键字定义的方法是全局的,你可以在不同接口中定义一个相同的方法,这个没有问题。 如下图,我们在代码中定义了 2 个接口,这 2 个接口都有一个相同的 default 方法。     实现类中只实现一个接口 如果在实现类中我们只实现一个接口。 例如下图,我们修改了我们的方法,我们在实现中只实现了 TestInterface1     上面的程序也是可以运行的没有问题。 实现类中实现 2 个接口 问题就是在这里了。 如果我们在实现类中同时实现了 2 个接口,但这 2 个接口都有一个相同方法名的 default 方法。     编译器会在这里报错,简单来说就是默认的方法冲突,程序不知道应该用哪个实现方法。 这个应该很好理解,因为这 2 个接口中都有相同的方法名,而且这个方面都是默认的,程序运行的时候确实不知道应该是用 TestInterface1 还是 TestInterface2 的默认方法。 所以可以在这里用一个 @Override 来告诉实现类,我们是用的那个实现方法。 甚至 @Override public void show() { TestInterface1.super.show(); TestInterface2.super.show(); } 这样写都是没有问题的。 运行的结果为: Default TestInterface - 1 Default TestInterface - 2 总结 Default 方法通常用在接口中,用于为接口中定义的方法提供一个默认的实现。 当我们使用了 default 关键字修饰了方法后,我们可以不为接口定义实现,而直接使用接口中定义的默认方法来处理逻辑。     我们测试的代码网站逻辑如上图。 下面为文本的代码,供大家拷贝和在本地进行的是 interface TestInterface1 { // default method default void show() { System.out.println("Default TestInterface - 1 "); } } interface TestInterface2 { // Default method default void show() { System.out.println("Default TestInterface - 2"); } } public class Main implements TestInterface1, TestInterface2 { private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) { new Main().show(); } @Override public void show() { TestInterface1.super.show(); TestInterface2.super.show(); } } 因为 default 这个关键字还比较新,在 JDK 8 以后才有的,因此有必要在面试之前了解下,在实际的项目上,可能用的情况不多。 https://www.isharkfly.com/t/java-default/15061

2023年10月22日 0Comments 872Browse 0Like Read more
Computer Science

多年没有遇到如此流畅的面试了

美东一公司的面试,有多年没有遇到如此流畅的面试了。 本来说的面试时间是 30 分钟,这个还是第一轮处于电话面试那种,但是不知道为什么最后面试整个时间都延长到了快一个小时,貌似双方都还继续沟通下,有点意犹未尽的感觉。 互相了解 通常第一轮面试的过程都是互相了解。 这个公司本身有自己的生产线,同时还有完善的在线销售系统。如果你问我公司大不大的话,可以这样说吧,公司很大,几乎和耐克级别的企业。 当然肯定比耐克还是小点。 在这个互相了解过程中,主要对公司要求的是什么,公司为什么需要这个职位等等。同时还希望我介绍下项目,和在项目中使用了那些技术,有那些问题。 这个和普通面试都差不多,还是那句话,只要你做过项目,基本上都会说,只是在说的时候需要根据公司的要求进行一些调整罢了。 你总不能别人在说系统,你盯着数据库一直在说,这也不合适吧。 技术问题 技术上面的问题进行了简单的沟通,主要是对 Core Java 的内容进行一些了解。 我个人感觉内容还是比较基本,但是问的东西都属于常用的,不是很多人以上来就 OA 各种奇葩算法那种。 也许是这样,才让人感觉非常好,感觉这个才是面试应该有的样子嘛。 问的问题大致包括有: 能说一下 hashmap 和 hashtable 吗 Default 关键字 Overload 和 Override Spring 框架和 Spring Boot 的关系 DI 是什么 IoC 是怎么回事 还有些其他的问题,可能记不太清楚了,问的问题还是有点多的,其他的就非常基本了。正常只要用过 Java 的基本上都能得上来。 之所以列出上面这个几个问题,是因为这几个问题还是有那么一丢丢深度。 对于这些问题,感觉都是概念上的,通常可以聊很久,除了 default 关键字不太熟悉之外,其他的内容,只要你理解了,还是比较好沟通的。 唯一的可能当一下子问到 HashTable 上的时候你可能有点懵,这是因为 HashTable 是比较老的版本,可能在实际使用的时候大部分人用的都是 HashMap。关键点,HashMap 比 HashTable 快,这个总知道吧,因为一个是线程同步的,一个不是。 觉得在找工作的时候,还是需要对 Java 的一些常用概念了解下的。 对不熟悉的 default 关键字,我的回答就是,我知道 Default 关键字是在 Java 8 中开始使用的,但我们项目用得并不很多,所以不是非常熟悉。 后来搜了下才知道,Default 关键字主要使用在接口中,用于接口方法的默认实现的。 因现在项目用接口的情况不多,所以一下子没有涉及到还是很正常的。 每次面试后对不知道的东西补习下,记录下就好。 总结 面试的整体流程非常不错,感觉也非常好。 虽然没有把所有的问题都答得非常准确,但是感觉还是不错的。 结果就是在面试还没有最后挂断的时候,对方就说我通知组里面的同时下周安排下技术方面的面试,时间是 1 个小时,他直接问我那周有空。 因为下周有不少其他安排,所以就周二和周四吧。 本来他是希望安排在周一的。 面试双方在面试的过程中都保持了非常好的透明和了解,这是感觉非常好的地方,对方也非常公开的介绍了很多信息。 这才是面试应该有的样子,双方应该都互相了解,通过一个比较短的时间,了解公司,了解应聘人的行为和表达能力。 当面试一上来就先做题的时候就已经跑偏了,再加上这些年连厨师都想要当码农的时候,就更加疯狂了。 希望更多一些理智,少点疯狂。   https://www.isharkfly.com/t/topic/15060

2023年10月21日 0Comments 924Browse 0Like Read more
Computer Science

Discourse 的用户快速找到管理员账号

在 Discourse 的社区中可能有多个用户账号为管理员或者有特殊权限的账号。 这个账号在 Discourse 的用户,然后 Staff 中可以快速找到。 作为管理员,有时候需要检查下你的 Discourse 是不是没有进行管理,有多长时间没有登录了。     这个选项能够让你对 Discourse 的用户管理员进行一些快速的过滤,删除一些可能涉及到权限泄露的问题。   https://www.isharkfly.com/t/discourse/15059

2023年10月21日 0Comments 692Browse 0Like Read more
Computer Science

来看看 Discourse 3.2.0.beta2 版本添加的新功能

3.2.0.beta2 版本是在 2023-10-16 发布的,根据官方的说法,主要添加了 3 个新功能。 官方的发布日志页面:3.2.0.beta2: Auto delete unused tags, custom date range for reports, new chat notifications, and more - announcements - Discourse Meta 自动删除标签功能 Discourse 会对没有使用的标签进行自动删除。 检查的频率是每天一次,删除的标准是如果标签没有被任何主题或者帖子使用的话。 配置的参数为: automatically clean     可以在配置界面中搜索上面的配置参数,然后进行配置。 自定义报表时间 可以在报表的时间上对时间进行自定义。   2484×300 27.9 KB 感觉对一般的网站来说,通常也不会每天去查看一下报表,只要不是特别情况,一般查看时间区间通常都是 7 天,1 个月这样子的。   数据太少,报表看不出东西,不过也感觉是锦上添花,有了也不是坏事。 添加 Revise 功能 意思就是你可以通知用户对帖子进行修改,这个是用过 PM(用户消息发送的)。 当用户接收到上面的消息的时候,并不意味着他们被审核的帖子就自动完成了。 管理员还需要对发布的内容再次通过才可以的。 感觉这个功能可能不会经常使用,很多社区对帖子的审核是非常宽松的,只要不是毫无意义的内容,这个审核功能通常没有使用。   https://www.isharkfly.com/t/discourse-3-2-0-beta2/15058

2023年10月20日 0Comments 540Browse 0Like Read more
Computer Science

Youtrack Linux 安装

我们考虑最后应该使用的是 ZIP 方式的安装。 按照官方的说法如何设置运行 YouTrack 应该是非常简单的。 准备环境 根据官方的说法,我们需要做的就是下载 Zip 包,然后把 Zip 包解压到指定的目录中就可以了。 下载     当前官方的下载地址为:Get YouTrack: Issue Tracking and Project Management Tool 1     直接打开上面的链接,你的计算机将会尝试下载,这个时候可以拷贝下载链接,然后到服务器上用 wget 来进行下载。 wget https://download-cdn.jetbrains.com/charisma/youtrack-2023.2.19783.zip 下载的文件大小可能会有几百兆,需要的时间可能不一样。     解压 如果你的操作系统环境下没有装 unzip 的话,你需要运行下面的命令来安装一个 unzip。 dnf install unzip 随后,直接运行 unzip youtrack-2023.2.19783.zip 来进行解压。     创建文件夹 为了统一和方便,我们可以把解压后的文件夹移动到 /opt 下的 youtrack 文件夹。 运行的命令为: mv youtrack-2023.2.19783 /opt 确定所有需要的文件都在 /opt/youtrack 文件夹下。 启动运行 进入 /opt/youtrack/bin 目录后 直接运行 ./youtrack.sh run 就可以运行了。 需要注意的是,如果使用上面的命令来运行的话,你的 SSH 界面就会被占用。 如果你不希望 修改端口 YouTrack 默认使用的是 8080 端口,大概率情况下这个端口可能会被占用。 ./youtrack.sh configure --listen-port 9090 来为你的 YouTrack 设置运行端口为 9090,你也可以设置任何你自己喜欢的端口。 修改默认域名 修改默认域名的命令为:./youtrack.sh configure --base-url http://track.ossez.com 这里有个坑,默认域名前面需要有协议,如果你没有使用http 或者 https 的话上面的配置无法让你进行修改。 如果一切配置顺利的话,我们就可以通过浏览器看到下面的配置界面了。     然后单击下一步进行配置。   https://www.isharkfly.com/t/youtrack-linux/15051

2023年10月18日 0Comments 599Browse 0Like Read more
Computer Science

JIRA 在 2024 年完全停止服务器版本支持

在服务器上的开源许可证版本已经要过期了,想去更新下。 发现,JIRA 的所有服务器版本的支持马上就要结束了。     这就意味着,如果你部署的服务器版本的 JIRA 的话,你将没有办法对服务器进行更新。     貌似,必须使用 JIRA 提供的云服务版本,这对有数据安全需求,并且希望在本地服务器上部署的公司可不是好消息。 因为不是所有公司都愿意把数据放到云上面。 是时候要找一个替代方案了。   https://www.isharkfly.com/t/jira-2024/15049

2023年10月17日 0Comments 524Browse 0Like Read more
Computer Science

IntelliJ IDEA Maven 项目的依赖分析

在一个 maven 的项目中,我们需要知道我们的项目中使用的包可能有哪些冲突。 这个在 IntelliJ IDEA 中提供了贴心的查看。 选择 Maven 项目中的分析依赖。     随后,IntelliJ IDEA 将会打开一个依赖分析的标签页。 在这个标签页中,我们可以看到我们项目中导入的依赖有哪些冲突,并且这些冲突是怎么冲突的。     如上图中,带有感叹号的就是有冲突的依赖。 这个时候,我们可以选择过滤只看有冲突的包。     同时,我们还可以知道有冲突的包是怎么引入的,是那几个包的引入导致了冲突。 总结 不是所有的冲突都能够被解决的。 通过这个图,我至少能够知道版本之间的冲突是怎么产生的,并且 是哪些包导致了这些冲突。 这对我们后期对项目版本进行规范的时候可以提供更好的参考。   https://www.isharkfly.com/t/intellij-idea-maven/15046

2023年10月12日 0Comments 488Browse 0Like Read more
Computer Science

Java List 中存不同的数据类型

在最近的实践中,有人突然问了一个问题: 在 Java 的 List 中可以存不同的数据类型吗? 这个问题突然给问到了,我们都知道 Java 中的 List 中存的是对象,通常我们定义都会这样的定义: List<String> testList = new ArrayList<>(); 这样我们就知道了 testList 中存的对象都是 String 字符串了。 解答 List 中是可以存不同的数据类型的。 但是在定义的时候需要定义成: List testList = new ArrayList<>();,不能为要使用的 List 指定数据类型。 当为我们使用的 List 不指定数据类型的话,所有存到 List 中的对象都会被转换为 Object 类型。 而当我门再从list 中取出该数据时,就会发现数据类型已经改变。 Objec t类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。 例如下面的代码: List testList = new ArrayList<>(); testList.add(1L); testList.add("iSharkFly"); testList.add(2); 因为我们没有为我们的 List 指定数据类型,那么这个 List 内是可以放任何数据类型的,你甚至可以放一个对象进去也没有问题的。 上面的代码编译器是不会报错的。 但是在 Get 对象的时候,编译器会明确的告诉你类型不匹配,我们 Get 的是一个 Object 对象,但是你尝试把 Object 对象转换为其他类型,这个时候编译器是不会让你通过的。     这个时候需要进行类型转换才可以。 把上面 Object 对象,强制类型转换下。 Long index0 = (Long) testList.get(0); String index1 = (String) testList.get(1); 强制类型 如果我们在定义 List 的时候,强制定义类型: List<String> testList = new ArrayList<>(); 那么上面的额代码就会出错了。     编译器会告诉你,在这里我们需要的是一个 String 类型,但是你提供的是 Long 或者其他不是 String 类型。 我们在把数据插入到 List 中的时候,需要把类型先转换一下。 使用下面的代码 testList.add(String.valueOf(1L) ); testList.add("iSharkFly"); testList.add(String.valueOf(2)); testList.forEach(e -> log.debug("{}", e)); 就可以完成类型的转换了。 实战 在实际的编码中,我们通常都会为我们的 List 指定数据类型。 这个数据类型可以是任何数据类型或者对象,这样可以保证我们的 List 中存的数据类型只有一种数据类型。 这样在后期的数据遍历和处理过程中,我们就不需要再对数据类型进行转换了,这是一个常规的操作。 简单来说就是:先对数据进行转换,后存储,再使用。 我们会尽量避免在使用的时候对数据进行转换,例如上面的情况,我们 List 对象中存的是对象,我们不知道我们的对象是 Stirng 还是 Long,这个时候要猜。 如在使用的时候进行数据类型转换,就比较容易出现类型转换方面的错误了,所以我们会先定义好。   https://www.isharkfly.com/t/java-list/15040

2023年10月10日 0Comments 560Browse 0Like Read more
Computer Science

近年北美地区 IT 岗求职之怪现状

如果非要用一句话来描述下现在北美地区 IT 相关职位的求职现状就是:互相毫无意义的伤害,互相毫无意义的折磨。 感触 经历过一段时间的求职和招聘后,有下面的一些感触,不知道同学们是否同意呢? 发的简历都没认真看 发了不少简历,不少公司可能真的都没有认真看,直接就丢垃圾箱里面了。 有些公司还是非常奇葩的,每年都在不停的招人招人,每过 3 个月,同样的岗位就放出来一次,然后每次你投的简历,一点下文都没有。 如果要说个公司名称的话,Fidelity Investments 可能就是一个非常典型的代表了,常年在招聘网站上被刷屏,然后投的简历一点下文都没有。 这里说的没有下文就是没有收到拒绝消息,也没有收到进入下一步的消息,完全就是没有消息。 当然,这种公司不只它家一个,好多公司都是这样的,完全就是为了在招聘平台上刷存在感。 发简历到第一次响应的时间过长 不知道为什么,现在的公司从投简历到第一次响应的时间通常都在 1 周甚至 2 周以上。 以前,通常在 2 到 3 天,不管是不是需要,基本上都有个消息说希望了解下,或者直接就拒绝了。 目前来看,这个第一次获得反馈的消息通常要在 1 到 2 周,甚至有 3 周的。 等到 3 周后收到消息,连自己都忘了我申请过这个公司吗?然后就从邮件历史中去找这个公司的名字,然后发现,哇塞居然是 21 天前发的邮件或者提交的申请了。 屁大的公司也上来就做题 另一个感触比较深的就是不管公司大小,不管职位需要还是不需要,上来就做题。 题目有难的,有简单的。比较难的题目通常是比较复杂的算法,如果你没有刷题过的话,真的要在比较短时间内做出来是很有难度的。 别说出结果了,就算把代码跑通都不那么容易。等入职后就发现那些刷题一点屁用都没有,然后还在不停的刷呀刷。 有些题目简直就是令人发指,不仅仅是是算法,简直感觉就是在侮辱你智商。更恶心你的是给你面试的人自己都没有把代码跑通过,随意在上网找了个题目,让你去做。 个人认为这样的同事是非常不负责任的,在你让别人做题目之前,你是不是也应该花点时间看看让别人做的题目呢? 做题目是小事情,但是可以看到整个团队的精神面貌。 面试的过程就是这样的互相折磨的话,以后的日子也不好过。还真得 “谢谢” Google 又给创造了一个做题产业。 面着面着就没有下文了 有个公司很有意思的,公司在电子邮件中说的非常明确每一步的步骤是什么,时间点是什么。 这给人的感觉非常好,因为能够及时了解面试进程,避免大家的互相折磨。谁知道就是这么一个感觉比较好的公司,面着面着就没有下文了。 当把代码提交后,公司说需要更长的时间来查看,公司计划在 5 天后给出明确的消息,这都过去 30 天了,没有任何动静,就好像公司已经忘了这件事情了。 更有意思的是,一个公司经过第一轮的接触,感觉还不错,说把和你第一轮面谈的内容和公司反馈下,然后就一直没有什么动静,2 周或者 1 个月以后发了一个邮件过来说是很抱歉的通知你,你的这个职位公司预算取消了。 我去,在发布职位的时候难道都没有想明白的吗?如此随意? 当然,也有好的公司。我就经历过一个公司非常明确的告诉我,公司在第一轮后的结果会在 2 周以后,同时,这个结果公司也遵守了,不管结果是什么,有和没有是 2 回事情。 能够及时回复邮件的公司都已经算是好公司了。 总结 经过这段时间的面试和接触,整体感觉就是说是不少公司的面试过程很多时候都是表面化,至于能不能找到工作,主要是看看自己的运气了。 如果你运气好的话,可能会有比较多的机会。 关于刷题:很多人会在做题的时候被刷掉,其实大可不必感觉到什么,这些所谓的做题很多时候是自欺欺人的东西,如果你真喜欢计算机,你不但应该做题,还需要了解为什么是这样设计的。 如果是为了刷题而刷题,时间长了也就沦为了一个刷题的机器了,感觉这样总是缺少点灵魂。 关于简历 :不要因为一个公司的职位拒绝了你,你就说这个公司可能不适合我啥的,其实只是你的简历没有被送到正确的人的手上罢了。 作为求职的你来说,就是不停的投,如果这个公司还有其他职位,就投其他职位的,重复投也没啥大不了的,说不定就有人看到了,然后你就进入下一轮了。 提早准备总不是坏事,祝福所有人在求职路上总能碰到正确的人,都好运。   https://www.isharkfly.com/t/it/15039

2023年10月10日 0Comments 515Browse 0Like Read more
1…3637383940…237
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. (512)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1