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

2024 财政年度的 H1-B 中签率创新低

2023 年的H1-B抽签科技行业的申请数量连续第二年飙升,引起了当局的 “严重关切”,怀疑一些人正在“操纵”该系统以获得不公平的优势。 USCIS在给 "利益相关者 "的信息中透露今年有780,884份H-1B签证申请,比去年的483,927份增加了61%。而去年的数量比前年的308613份申请增加了57%。 根据美联社的新闻,针对 H1-B 有关高科技公司的欺诈正在引起关切。 根据美国移民局的官方网站。 Cap Fiscal Year Total Registrations Eligible Registrations* Eligible Registrations for Beneficiaries with No Other Eligible Registrations Eligible Registrations for Beneficiaries with Multiple Eligible Registrations Selections** 2021 274,237 269,424 241,299 28,125 124,415 2022 308,613 301,447 211,304 90,143 131,924 2023 483,927 474,421 309,241 165,180 127,600 2024 780,884 758,994 350,103 408,891 110,791 2023 年针对 2024 年的 H1-B 抽签情况可以用令人发指来形容。     本来科技行业正在经历一场比较严重的裁员潮,但是 H1-B 的申请火爆情况完全和这次的裁员潮匹配不上。 更多的是科技行业的申请。 理解 H1-B 申请的诟病不是今天才有的。 感觉主要是系统性的 “一稿多投”,美国移民局在打击这种系统性的欺诈上面动作缓慢。 可能从技术层面上面不好界定这种情况,这样也变相的认定了这种情况是属于可以操作的空间。 只要不从根源上有所动静,H1-B 这条路对个人申请者来说可能会更加难上难。   https://www.isharkfly.com/t/2024-h1-b/327

2023年04月30日 0Comments 873Browse 0Like Read more
文化旅游

Mt. Sunapee 滑雪场

桑纳皮滑雪场(Sunapee)坐落于是新罕布什尔州南部最高的山峰之上,海拔461~836米,年平均降雪量254厘米,可滑雪面积232英亩。 度假村位于I-89和I-91高速的交界处,Sunapee拥有66条雪道,97%以上的区域依赖人工造雪。 先记录下今天的滑雪场。 天气还不错,鱼雷还没出动。 估计用不了多久鱼雷就要上线了。 体验 整体感觉 Sunapee 设施不错,对初学者非常友好的。 魔毯区大而宽 如果你是第一次来或者没有什么经验的话,这里的魔毯区都分了 大中小 3 个区域。 第一次滑雪的话,可以和小朋友挤在一堆喔,会让你瞬间感觉自己真年轻。身边都是 3 ,4 岁的小朋友。 小的魔毯区,大而且坡度非常小,你可以在这里练习练习,而不用担心给其他人带来什么麻烦。 通常只需要半天,你就可以挑战下中级或者高级魔毯区了。 高级魔毯区还是有点陡的,当然对已经熟练的你可能不是什么问题。 只需要注意刹车,别撞人就好了。 停车 停车不算难停,很多人怕麻烦基本停路边,但是如果你开进来转一下,还是比较容易在停车区找到停车位的。 路线也是几乎是全程高速了,道路情况维护得不错。 不像有些小的滑雪场,因为去滑雪场的道路维护不好,或者因为山路过多,没有办法及时扫雪,碰巧如果滑雪的当天下雪的话,你可能半天都回不了家,还比较容易出交通事故。 休息区 休息区也比较大,你可以在这里点上点自己喜欢吃的东西。 雪票 能够接受 EPIC 雪票,这个雪票通常能够在几个滑雪场不限次和时间的滑雪。 对波士顿周边,想来滑雪的小伙伴,是不错的选择。   https://www.isharkfly.com/t/mt-sunapee/347

2023年04月30日 0Comments 796Browse 0Like Read more
Computer Science

暑假回国的机票,真是一天一个价

每天在刷机票的时候都会看到这价格是每天一个价。   https://www.isharkfly.com/t/topic/324/1

2023年04月28日 0Comments 699Browse 0Like Read more
Computer Science

日本签证可以代办吗

第一次去 Boston 办日本签证的时候,因为资料不全没有办成。 但是问了是否可以代办,领事馆的工作人员说是可以的。 需要代办人填一个下面的表 领事馆工作人员给了一个下面的表。     如果你需要代办的话,你需要填好上面的表格,然后交给你的朋友或者家人就好了。 日本领事馆是可以代办的。 https://www.isharkfly.com/t/topic/323

2023年04月28日 0Comments 920Browse 1Like Read more
Computer Science

JetBrains 的开源许可证是可以申请的

如果你是积极的开源贡献者,并且 GitHub 上有你自己维护的项目。 并且你的项目还有点流量的话,你是可以申请 JetBrains 的开源许可证的。     JetBrains 对开源社区还是比较包容的,只要项目是在正常维护,通常他们都会签发一年的许可证给你。   https://www.ossez.com/t/jetbrains/14402

2023年04月28日 0Comments 642Browse 0Like Read more
Computer Science

微信用户分析的返回数据

微信 API 中,针对用户数据统计可以获得用户增减数据,同时还可以获得用户累计数据。 分别是 2 个 API ,但是返回是下面 2 个对象。   2023-04-24_11-58-061024×758 35.9 KB   用户分析微信官方的 API 文档链接地址为:微信开放文档 其中一个 API 的返回的字符串。 { "list": [ { "ref_date": "2023-04-20", "user_source": 0, "new_user": 0, "cancel_user": 0 }, { "ref_date": "2023-04-21", "user_source": 0, "new_user": 0, "cancel_user": 0 }, { "ref_date": "2023-04-22", "user_source": 0, "new_user": 0, "cancel_user": 0 }, { "ref_date": "2023-04-23", "user_source": 0, "new_user": 0, "cancel_user": 0 } ] } 微信数据统计的问题 在微信数据统计的时候,如果你的请求日期是当天的话,API 会提示数据错误。 这是因为微信的数据统计不能提供当前的数据。 你将看到下面的错误提示: {"errcode":61501,"errmsg":"date range error rid: 6446a7e2-6382ec81-1f9d72d2"}     出现这个提示的原因是你的查询数据日期不正确,微信没有办法正确的返回数据。   https://www.ossez.com/t/topic/14398

2023年04月25日 0Comments 673Browse 0Like Read more
Computer Science

Retrofit 在 JSON 反序列化的时候提示 UnrecognizedPropertyException 异常

提示的异常信息如下: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "new_user" (class com.ossez.wechat.common.model.res.UserSummaryResponse$UserData), not marked as ignorable (5 known properties: "cancel_user", "new_users", "ref_date", "user_source", "cumulate_user"]) at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 63] (through reference chain: com.ossez.wechat.common.model.res.UserSummaryResponse["list"]->java.util.ArrayList[0]->com.ossez.wechat.common.model.res.UserSummaryResponse$UserData["new_user"]) at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46) at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:93)     问题和解决 这是因为 retrofit 在反序列化的时候,如果没有找到对应的对象名,将会报错。 关键是在下面这句话: .addConverterFactory(JacksonConverterFactory.create())     需要做的也非常简单,只需要将上面的 Jackson 的 mapper 对象映射过来就可以了。     在 ObjectMapper 对象中,我们可以定义是不是忽略没有找到的字段。 就是下面这句话: mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 这样我们就不会因为没有找到字段而出现异常的问题了。   https://www.ossez.com/t/retrofit-json-unrecognizedpropertyexception/14399

2023年04月25日 0Comments 677Browse 0Like Read more
Computer Science

TestNG 中使用 Guice 来进行依赖注入

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。 Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。 Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型安全的。 Guice提供模块对应的抽象module,使得架构和设计的模块概念产物与代码中的module类一一对应,更加便利的组织和梳理模块依赖关系,利于整体应用内部的依赖关系维护,而其他IOC框架是没有对应物的。 此外,借助privateModule的功能,可以实现模块接口的明确导出和实现封装,使得支持多数据源这类需求实现起来异常简单。 定义一个 Guice Module 这个 Guice Model 会实现 Module 接口。   2023-04-23_15-32-551123×764 92.8 KB   然后对需要注入的类进行绑定。 绑定的语句在这里: binder.bind(TestConfigStorage.class).toInstance(config); binder.bind(WeChatOfficialAccountService.class).toInstance(weChatOfficialAccountService); binder.bind(WeChatMsgService.class).toInstance(weChatMsgService); 测试中使用 因为我们需要在测试中使用,所以我们会使用 testNG 的 Guice 注解。   2023-04-23_15-34-45825×442 33 KB   使用下面的语句直接注入到模块中。 然后把需要的服务,注入进来就可以了。 @Inject protected WeChatOfficialAccountService wxService; 是不是非常简单。   2023-04-23_15-34-45825×442 33 KB   相对 Junit 测试框架来说,TestNG 使用 Guice 更加方便。 如何在 Junit 中使用 Guice ,请参考文章:Junit 5 如何使用 Guice DI 中的内容。 https://www.ossez.com/t/testng-guice/14396  

2023年04月24日 0Comments 1217Browse 0Like Read more
Computer Science

Junit 5 如何使用 Guice DI

Guice 是一个依赖注入的小清新工具。 相比 Spring 的依赖管理来说,这个工具更加小巧,我们可以在测试中直接使用。 Junit 5 在 Junit 中使用就没有那么方便了,因为 Junit 没有 Guice 的注解。 你需要手动写一个类,在这个类中,对 Injector 的模块进行配置。 例如我们下面的代码: package com.ossez.wechat.oa.api.test; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; import com.ossez.wechat.common.exception.WxRuntimeException; import com.ossez.wechat.oa.api.WeChatOfficialAccountService; import com.ossez.wechat.oa.api.impl.okhttp.WeChatMsgService; import com.ossez.wechat.oa.api.impl.okhttp.WeChatOfficialAccountServiceOkHttp; import org.apache.commons.lang3.ObjectUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.junit.jupiter.api.BeforeAll; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStream; import java.util.concurrent.locks.ReentrantLock; /** * Init Guice DI * * @author YuCheng */ public class TestBase { private static final Logger log = LoggerFactory.getLogger(TestBase.class); private static final String TEST_CONFIG_XML = "test-config.xml"; private static final Injector injector = Guice.createInjector(new AbstractModule() { @Override public void configure() { try (InputStream inputStream = ClassLoader.getSystemResourceAsStream(TEST_CONFIG_XML)) { if (ObjectUtils.isEmpty(inputStream)) { throw new WxRuntimeException("测试配置文件【" + TEST_CONFIG_XML + "】未找到,请参照test-config-sample.xml文件生成"); } // Init WeChat config for testing Document document = new SAXReader().read(inputStream); TestConfigStorage config = new TestConfigStorage(); config.setAppId(document.getRootElement().element("appId").getText()); config.setSecret(document.getRootElement().element("secret").getText()); config.setToken(document.getRootElement().element("token").getText()); config.setOpenid(document.getRootElement().element("openid").getText()); config.setAccessTokenLock(new ReentrantLock()); // Init WeChat Service WeChatOfficialAccountService weChatOfficialAccountService = new WeChatOfficialAccountServiceOkHttp(); weChatOfficialAccountService.setWxMpConfigStorage(config); weChatOfficialAccountService.addConfigStorage("another", config); // Init WeChatMsgService WeChatMsgService weChatMsgService = new WeChatMsgService(weChatOfficialAccountService); bind(TestConfigStorage.class).toInstance(config); bind(WeChatOfficialAccountService.class).toInstance(weChatOfficialAccountService); bind(WeChatMsgService.class).toInstance(weChatMsgService); } catch (IOException e) { log.error(e.getMessage(), e); } catch (DocumentException e) { throw new RuntimeException(e); } } }); @BeforeAll public void setup() { injector.injectMembers(this); } } 在这个代码中,我们定义了一个 TestBase 的类,然后在测试启动的时候对齐进行了初始化和配置。 最主要的就是这个方法:`private static final Injector injector = Guice.createInjector(new AbstractModule() {}     在测试中使用 在测试中使用就比较简单了。 首先需要继承这个 TestBase,然后对需要的类进行注入后就可以直接使用了。     如上图,注入后直接使用。   https://www.ossez.com/t/junit-5-guice-di/14395

2023年04月24日 0Comments 655Browse 0Like Read more
Computer Science

Spring 的 IoC(控制反转)

IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,也是一个概念,同时是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 在这里说 IoC 之前,你需要完全理解一个概念 DI(依赖注入)。   当你理解依赖注入以后,对控制反转就非常简单了,只是一个概念而已。  什么是依赖注入,请参考文章:Java 依赖注入(DI) 控制反转 用土话来说就是本来应该是用你自己程序解决的依赖注入,我们现在把这个权力交给 Spring 来进行管理。 由 Spring 来管理所有的对象,因为你的权力下放给 Spring 了,Spring 就来进行控制了。 这个现象就叫做控制反转。 所以控制反转只是对一个现象的定义,Spring 是这个现象的具体实现罢了。 Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。 IoC 容器是 Spring 框架中最重要的核心组件之一,它贯穿了 Spring 从诞生到成长的整个过程。 如果你特别牛逼,你也弄个框架,让大家把对象的控制权都给你,那么你做的事情也就是在实现控制反转。 https://www.ossez.com/t/spring-ioc/14391

2023年04月22日 0Comments 741Browse 0Like Read more
12345…8
Archives
  • 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,315)
    • Confluence (663)
    • Gradle (12)
  • U.S. (409)
  • 文化旅游 (142)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1