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

美联航银卡行李标签

当你对应的美联航级别变化的话,可以拿到美联航对应级别的行李标签。 这个行李标签比较小,还是塑料的,就图一乐。   https://www.isharkfly.com/t/topic/15032

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

有点奇葩的消息——CEO 2 个月之前也离职了

这个消息还是有点奇葩的。 在找工作一段时间后,有原公司的同事联系了下互相通报了下各自的情况。     如有看过:北美 2023 被裁员的感悟 这篇文章的大致都知道公司在4个月前,也就是2023年6月份的时候进行了大规模的裁员,公司也只保留了最低的运营水平。 但实在没有想到的是公司的原 CEO,居然在今年的 7 月底也离职了。看了 LinkedIn 应该是跑到另外一家公司去做咨询工作了。 这个消息还是蛮有意思的,因为这个 CEO 并不是从外部雇佣的 CEO,这个 CEO 是公司的创始人之一。 这样一来,整个公司的 5 个创始人,已知的已经有 3 个人走了,余下的 2 个创始人可能早就走了或者还在公司,这个都说不清楚。 简单来说的结论就是在公司 6 月份进行所谓的裁员之后,公司应该是被卖掉了。 在公司卖掉之前,公司肯定是要降低运营水平削减开支。 这就也不难理解为什么公司对一些不重要的项目统统砍掉,因为在公司进行出售之前,这些项目对要出售的公司都是负资产。 有意思的地方 但公司 CEO 在 2 个月之前的离职还是有点意思的。 这样看来,公司这波骚操作裁员的主要目的就是为了公司在出售之前能够卖个好价钱。 并且,公司的管理层的下手还是非常快的,要知道,美国政府是在 5月22 好宣布新冠紧急状况的终结,公司的正式裁员在 6 月初,赶在了第 2 季度的财报之前。 在第 2 季度财报出来以后,公司应该马上就卖掉了,7 月份原 CEO 离职。 很多东西在开始的时候可能看不明白,等过几个月慢慢都会明白了。 这样的话,留在原公司也并不是一件非常好的选择,因为公司的经营本身就遇到了不小的困难,留在那里也感觉是等着裁员罢了,早晚而已。   https://www.isharkfly.com/t/ceo-2/15031

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

缅因 York —— Barrell Mill Pond Dam

Barrell Mill Pond Dam 建造于 1700 年代。 因潮汐的作用,York 河水将会每天都会涨潮退潮,因此人们在这里修建了一个 Barrell Mill Pond Dam,建这个水坝的作用是被用来设为附近的面粉厂和锯木厂提供电力。 在最初的18 世纪末期,通过潮汐发电,已经能够每天产生 63 千瓦的电力,并且每天能够提供 10 个小时的电力供应。     在太阳下山之前,潮水已经退去了。 York 河水的水平面已经下降了很多,可以赤脚的走上滩涂。 目前, Barrell Mill Pond Dam 已成为了一个历史景点。历史上的工业文明已经看不见了。 只能看到一些留下的房子和历史遗迹了,这些历史建筑也被保留了下来。     在 2023 年,York 当地机构新建了一个人行步道,能够让人们从 Dam 走上步道并从桥下过桥。     上图的照片就非常明显的感觉到 York 河水的潮汐水位差。 历史的故事永远的慢慢保存在照片中了。   https://www.isharkfly.com/t/york-barrell-mill-pond-dam/15028

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

JIRA 如何在项目之间移动 Issue

需要使用 JIRA 的查找功能。 把需要移动的 Issue 先全部找到,然后选择 Tools 下面的所有 Issues     批量操作页面 在随后的页面中,将会出现批量操作的页面。     在这里,可以对需要进行批量操作的问题,进行全部选择。 然后单击下一步继续。 选择操作选项 在下一步的页面中,选择需要进行的操作。 在这个操作中,我们可以选择移动问题。     然后单击下一步继续。 选择移动对照表 在这个界面中,需要对移动的问题选择移动对照表。 主要的内容是从哪个项目到那个项目。 同时针对需要移动的问题的类型也需要选择对照表。     选择完毕后单击下一步继续。 对组件进行选择 在随后的界面中,需要对移动的组件进行选择。 就是原来的组件和移动的后的组件是进行怎么样的对应的。     完成对应后,单击下一步继续。 需要注意的是,针对每种类型,都需要对组件进行选择和对应。 确定配置 最后,需要做的就是确定配置后完成移动。     合并进程 根据问题的多少,在这里可显示了合并的进程。 通常这个合并并不需要花费多长时间。     当合并完成后,到合并后的项目中确定项目都已经合并完成好了。   https://www.isharkfly.com/t/jira-issue/15027

2023年10月03日 0Comments 489Browse 0Like Read more
U.S.

韩国出入境表

在路过韩国的时候,虽然没有用上韩国的出入境表。 还是拷贝一个电子版以备参考。   https://www.isharkfly.com/t/topic/15026

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

Windows 一个很有点奇葩的路径问题

在 Windows 上设置 Path 是很多项目都首先需要做的事情。 最近不知道为什么 Windows 11 遇到了一个奇葩的 PATH 不能识别问题。     如上图显示的 M2 % 的这个路径,不知道为什么就突然识别不了了。 解决办法 解决办法就是使用上下移动的按钮把路径中的配置上下移动一下。     然后再保存退出。 感觉 Windows 需要这样调整下才能激活似的。 有点奇怪,不过好在问题解决了。   https://www.isharkfly.com/t/windows/15021

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

也许是 OCD 犯毛病了,第一次给 HR 写信把算法题目重新实现了一次

在发这个邮件之前还是有点忐忑。   毕竟是第一次这样在当时没有做完的算法题目,后面还把修改后的内容发给了 HR 一次。   甚至我还把我的算法画了一个实现。 以前 以前面试的时候都是做题,等结果,通常来说,如果当天没有结果,第二天也没有电话的话,大概率就是没戏了,接着找吧。 不知道为什么这次有点感觉不一样,觉得不管开始 30 分钟有没有做完,只要是我做完了为什么不发给对方让对方知道自己还做完成了。 也许做的并不是很好,但是我完成了问题。 面试的问题是:面试问题之链表 (LinkedList) 这个内容。具体的 Code 问题已经在上面的帖子上说了,实现不是非常复杂,可能在 30 分钟内实现不了。 有没有必要发邮件 其实这个我也不知道有没有必要。 这次我只是单纯的觉得,既然你问了问题,我也事后做了,为什么不让你知道,不让你们知道那我做出来还有什么意义? 考古了不少网站,很多人都是在面试结束后,很少直接主动联系公司,其实我也是一样,为什么主动联系公司难道还不怕尴尬吗? 但,HR 的解释却貌似有点不一样,通常主动联系公司的人也许都会主动多看一眼。 换位思考,如果你是 HR,你也会这样吗? 我相信我会的,毕竟面试别人和被别人面试不是第一次,在面试别人的时候,对于主动发电子邮件回复的人,其实我还真是认真看了一遍电子邮件的。 很多时候不是因为对方有多优秀,而是因为做事的态度。 难道我们不应该就是做事的态度吗? 说到我们计算机环节中的算法,其实做出来怎么样,没有做出来又能怎么样? JDK 的原始库,多少人也就知道个方法,至于里面是怎么实现的,大多数人根本都不知道。既然这样你我不也都差不多吗? 既然都差不多,那主动发个邮件问问,提交下做出来的代码又能怎么样。 文化差异 我也不知道这次邮件是不是应该发,按照美国人的思维,只要我不尴尬,尴尬的就是别人。我们国人还是有点内敛,其实我也是这样。 我们看看所有所谓成功过的人,有要脸的人成功过的吗?更多的是为了自己的目标而努力的人。 主要原因感觉这次不是因为这个公司有多好,有多想去。只是单纯的觉得,问题我已经解决了,我已经花时间了,为什么不能把我花时间做出来的结果告诉你。 你可以不认可我的结果,你可以觉得我不合适,但是我花时间了,你应该知道,对方甚至可以把我的简历和答案丢垃圾箱里面。 发过去是我的事情,丢垃圾箱是你的事情。 更进一步 当人到中年的时候,很多生活的细节有点让人喘不过气。 貌似自己都已经没有了年前时候的冲劲了,有点害怕这个,害怕那个。     家里的另一位却一直在激励这我,人有时候真的是应该挑战自己的,你都没有试过,你怎么知道会没有下文呢? 有时候我也觉得,别人会有别人的选择,我不成可能是我不够优秀吧。其实有时候想想真是这样吗? 连迈出去的勇气都没有,那我们怎么就已经知道答案了呢? 写与同龄人共勉。   https://www.isharkfly.com/t/ocd-hr/15010

2023年09月26日 0Comments 620Browse 0Like Read more
Computer Science

面试问题之链表 (LinkedList)

今天的面试中有一个比较有意思的题目,其实应该主要还是考察思路吧,可能是链表有比较长的时间没有看了,感觉问了下被问得有点懵。 要实现的东西就是在链表中实现从链表的后面取倒数第二个元素。     * Assuming we have the following list: 1 → 2→ 3 → 4 → 5 → 6 → 7 * And a number k = 2 ArrayList 实现 如果不考虑数据结构,不管你是用 List 还是 ArrayList 还是 LinkedList 都很好实现的。 Integer k = 2; List<Integer> inputList = new ArrayList<>(); inputList.add(1); inputList.add(2); inputList.add(3); inputList.add(4); inputList.add(5); inputList.add(6); inputList.add(7); log.debug("{}", inputList.get(inputList.size() - k - 1)); 使用List Size 的方法,从后面返回。 List 反转方法 下面可以用 List 反转的方法来做。 Collections 中有一个反转的方法,可以直接把 List 反转。 Integer k = 2; List<Integer> inputList = new ArrayList<>(); inputList.add(1); inputList.add(2); inputList.add(3); inputList.add(4); inputList.add(5); inputList.add(6); inputList.add(7); Collections.reverse(inputList); log.debug("{}", inputList.get(k)); 自定义链表 下面就来说说自定义链表的方式来做这个了。 感觉这个就应该面试的人希望做的吧。 创建链表数据结构 首先我们需要定义链表数据结构,因为很长时间没有弄链表了,差不多自己都忘记了。说心里话当时都没有想出来怎么自定义链表。 在这里,我们可以定义一个单向链表,我们也可以定义一个双向链表。 非常非常重要的是,在定义完成 Node 后,我们还需要定义一个 head,这个 head 是 Node 对象。 在做题的时候,这个地方忘记了。 所以完整的定义应该是下面的代码: Node head = null; public class Node { public Integer data; public Node prev; public Node next; public Node(int data) { this.data = data; } public Integer getValue() { return this.data; } } 因为是单向链表,所以上面我们定义的 Node prev 其实是没有什么意义的。     添加元素方法 当数据结构定义后,下一步就应该是要添加元素了。 所以我们需要一个添加 Node 节点的方法。 方法的代码如下: public void addNode(int d) { Node newNode = new Node(d); if (head == null) { head = newNode; return; } Node tmp = head; while (tmp.next != null) { tmp = tmp.next; } tmp.next = newNode; } 这个方法是无返回的。 首先初始化一个 Node 对象,然后检查 head 是否为 null。 如果 head 为 Null,那么就把这个新初始化的对象放到 head 中。 如果 head 不为 Null,那么就遍历链表,找到链表的末尾添加上去。 获得链表长度 这个方法你可能不需要,但是有可能有助于帮助你链表的初始化情况。 获得长度就非常简单了。 对链表进行遍历到链表的末尾,如果为 null 的话,就返回计数器。 方法如下: public int lenght() { int lenght = 0; Node tmp = head; while (tmp != null) { lenght++; tmp = tmp.next; } return lenght; } 返回从后面数的元素。 这个地方有很多方法可以实现,你可以把链表放入到 List 后,然后遍历。 你也可以实现一个 Get 下标元素的方法,这个时候你就需要上面我们写的 Get List 长度的方法了。 这个方法是后来我考古找到的,其实如果是大学生的话,这个方法老师应该说过。 双指针步进式查找法。 完整代码如下: public Node moveSteps(Node head, int k) { if…

2023年09月26日 0Comments 527Browse 0Like Read more
Computer Science

Chewy 2023年9月 面经和题目以及总结

Chewy 整体的感觉来看应该是对 OA 的结果比较看重的公司。 如果你的 OA 没有运行结果,哪怕你是再说得天花乱坠,思路再好,他们可能都会以你的 OA 程序运行没有运行结果而告诉你的水平达不到他们公司的预期 Mark 而拒绝你进行下一步。 本轮 Chewy 的面试时间是 1 个小时,其实主要是 2 个部分。 第一部分 第一部分主要就是你的项目经验了,你在你的公司是干什么的,你在项目中有什么问题啥的。 其实这个我都认为全靠掰扯,因为所有的公司在项目上多多少少都会有点问题,完全没有问题的应该非常少,可能甚至说就是另类。 比如说 CI/CD 的问题,对中小信息系统,比如说数据 Lock 表的问题,滥用消息服务器的问题。 如果你真是大学才毕业,那这些问题可能你真的就只是听说过,并没有真正遇到过,所以这个地方不是那么好掰扯。 如果你真有过什么项目经验,这个就太好说了,随便拿几个自己做过的项目掰扯下都能说好久。 比如说,我们项目的 CI/CD 集成缓慢导致 bug 给重复覆盖的情况比比皆是。 在这里需要注意下,参加你面试的人可能会对你的说过的名词扣一下,会根据你的表述问一些具体深入的问题。 这个时候你需要小心点,如果不是自己真正做过的,如果不是自己有经验的,只是你自己听过的一些名词的话,别乱说。 因为你在后面会因为你说的这些名词解释不清。 代码 这个地方就是有意思的地方了。 我一直认为的是思路远远比结果更重要,对我自己的组员我自己的要求也是你不仅仅要有自己的思路,同时你的思路也应该能够被其他人理解。 更重要的是简单,也许有时候复杂的问题只需要简单的解决办法,可能你并不需要把自己绕晕的数据结构。 偷懒,我就不把题目全部写下来了。     请参考上面的题目,其实题目的难度不大的,多是字符串处理方面。 要解决这个题目,需要的知识: 据规范化处理,只保留字符。 数据结构 HashMap, List 数据结构遍历 字符串处理 数据输出 从上面来看是不是内容还是比较多的。 我的思路是:首先完成规范化处理,然后把规范化处理后的结果按照我们希望的格式放入到数据结构中,最后对放入的数据结构进行处理后输出。 删除不需要的字符 在这个地方,我们需要对不需要的字符进行删除。 这个地方需要用到正则表达式。什么?你不会用? 哈哈,这就对了,正常人不 Google 下都不会用。 好在和我面试的人给了正则表达式给我,删除不需要的字符,保留空格。 同时需要注意的是,上面的所有输出都是小写字符,因此我们还需要对大写小写字符进行转换,这个可以在构建 Map 的时候完成,省得这里还多一次循环。 实际上的代码如下: String s1 = "Question, what kind of bear is best?"; String s2 = "That's is a ridiculous question!"; String s3 = "False."; String s4 = "Black bear is the best bear."; List<String> inputStr = new ArrayList<>(); inputStr.add(RegExUtils.replaceAll(s1, "[^a-zA-Z\\s]", "").toLowerCase()); inputStr.add(RegExUtils.replaceAll(s2, "[^a-zA-Z\\s]", "").toLowerCase()); inputStr.add(RegExUtils.replaceAll(s3, "[^a-zA-Z\\s]", "").toLowerCase()); inputStr.add(RegExUtils.replaceAll(s4, "[^a-zA-Z\\s]", "").toLowerCase()); 程序输出如下:     构建数据结构 在数据结构构建上面,我们应该需要的是使用 Map 了。 因为我们需要首先知道有多少个字符我们要输出,对吧。 这个就是 Map 的 Key,那么 Map 的 Value 是什么呢? 根据输出来看,我们用 bear 这个单词出现了 3 次,分别在第一句话和第 4 句话里面。 那我们这个 map 怎么用? 被带沟里去了。 我就是在这里被带沟里面去了,我其实最开始想使用的是最简单的数据结构来做的,Map 的 Key 是 String ,Value 是 List,在 List 里面是字符串,这样我就有足够的数据知道我自己要干什么了。 面试的人在这里提醒了下是不是可以用 2 个 Map。 当然这里可以用 2 个 Map 的。 第一个 Map 的 Key 还是字符串,但是第二个 Map 的是 key 是整数,Value 也是整数,第一个整数是当前字符串在那个句子里面,第二个整数是在句子中的位置。 这种数据定义其实也非常明确的。 问题不在数据定义这里,问题在你最后的数据构造,因为你有了 Map 里面还有 Map 在获取值的时候容易把自己绕晕了。 结果我在这里花了 30 多分钟调试错误,后来我放弃了,我直接用我自己的第一套方案。 代码如下: for (int i = 0; i < inputStr.size(); i++) { String words = inputStr.get(i); List<String> wordsList = List.of(StringUtils.split(inputStr.get(i))); for (int j = 0; j < wordsList.size(); j++) { String word = wordsList.get(j); List<String> inStr = new ArrayList<>(); if (wordsMap.get(word) != null) { inStr = wordsMap.get(word); } inStr.add((i + 1) + "#" + (j + 1)); wordsMap.put(word, inStr); } } 程序输出如下:     参加我面试的人在这里已经疯了。 他说从来没有见过这样输出的。 我说,这个很正常呀,我构建一个 List,上面用数字表示当前这个词所在句子的位置和在句子中的单词位置。 因为位置都是标记,所以通常都为整数,这个地方是不会那么容易抛出空对象异常的,同时上面的文本还表意,很容易定位问题。 格式化输出 这个地方我已经没有时间做了。 因为开始折腾用 2 个 HashMap 已经搞了老久了,其实到这里已经超过时间了。 可能面试的人也想帮我吧,他说你有时间吗? 如果你有时间的话我们可以继续的。 因为,可能他知道没有运行结果,公司是不会进行下一步的,所以他问了 2 次我有时间吗?他可以一起。 我自己可能觉得到这里其实输出也非常容易了,后期的格式化输出大概率情况就是排序和遍历,没有太多的实际价值,同时还要遍历 Map,我就在这里简单说了下思路。…

2023年09月23日 0Comments 603Browse 0Like Read more
Computer Science

面试问题之如何解释微服务

这次的面试还是感觉非常愉快,没有那么憋屈,问的问题也非常有意思。 问题 假设现在有一个人完全不懂微服务,你能和对方解释下什么是微服务吗?     面试回答 这个问题如果要完全回答好,感觉不是那么容易。 什么是微服务 很多人都知道现代的开发流程多是前后端分离,后端采用部署服务的方式来提供服务。 这种服务是可以根据业务来进行区分,也可以是根据架构来进行区分。 微服务指的是一种应用架构,其中的一系列独立服务通过轻量级 API 来进行通信。 上面是对微服务的比较书面化的解释,我觉得不太生动。 我们可以从微服务的进程来进行一些说明 传统的服务器模式 如你对计算机网站比较熟悉的话,我们知道我们可以部署一个 Apache 的服务器,然后部署一个 MySQL 的数据库。 加上你有一点 PHP 的编程基础,你的个人博客网站就开张了。 在这个时候,你的所有服务都在你的 PHP 代码中,包括前端,后端数据库通信,数据返回处理,查询,对象化等等,全部都在一套代码中。 很好,你的程序运行也非常不错。 可能是因为你的内容太受欢迎了,本来每天只有 10 个人访问的你网站,慢慢的每天你的网站有成千上万的人访问了。 这个时候你的 Apache 服务器已经没有办法承受这么大的访问量了,每天宕机好几次,需要重启。 数据库也经常性的进行锁表等情况。 因为访问的人多了,一些用户对网站的界面提出了很多的意见。 同时,你还开始推送手机的 APP 了。 这么多的问题都慢慢的出现了,我们应该怎么办呢? 前后端分离 这个时候,我们可能首先想到是前后端分离。 让前端只处理界面和数据返回展示,前端可以通过调用后端的 API 来获得前端需要的数据;同时,手机 APP 也可以调用后端的 API 来获得程序。 这个时候,后端就被独立成为了一个服务,前端也是一个服务。 前端会使用前端的框架,后端会使用后端的框架分别来对数据进行处理。 API 返回问题 所有的数据请求假设我们都用在一个 API 上的话。 举例来说,用户邮件查重,在用户对我们网站进行注册之前,我们需要对用户的邮件地址进行查询,如果你只有 几万个用户,别那么费劲了,数据库查下就好了。 如果你有上千万的用户,每次用户的注册都要从上千万的数据库进行查找,同时你的这个 API 还要返回用户的信息,密码,校验,还需要提供内容查询服务等功能。 每次用户注册登录都这样就会累死了,那我们能不能这样,把用户的相关 API 请求单独做成一个服务,通过这个服务部署到服务器上,并且使用不同的数据结构来提高用户数据查询效率。 业务拆分 通过上面的解释,我们可以对系统中的业务进行一些拆分。 把本来是一个大系统应该做的东西,我们分成很多小的系统来做,每一个小的服务只完成特定的功能,比如说一个服务只提供用户处理,一个服务只提供查询,一个服务只提供消息。 这样我们就把一个很大的系统逐步拆分成了各种服务。 这种系统设计就是我们常说的微服务了。 结论 通过上面的解释,应该对一个完全不了解微服务的人有一个基本上的概念了。 当然,整个过程是比较复杂的,通常会涉及到各种技术栈,比如说大数据处理,数据缓存,集群部署等等。 但是这整个的思路和架构,就是微服务需要实现的。 另外一个好处就是当某一个服务出现故障的时候,我们可以很快的进行切换,而不会影响整个系统的运行。 如果你不懂计算机的话,通过上面的解释能够理解什么是微服务了吗? 欢迎大家在后面留言。   https://www.isharkfly.com/t/topic/14994

2023年09月21日 0Comments 613Browse 0Like Read more
1…7374757677…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