Wednesday, January 5, 2022

V2EX - 技术

V2EX - 技术


发现刷算法题真的一点用都没有

Posted: 05 Jan 2022 08:44 AM PST

从研一下学期开始断断续续刷题到现在,刷了 300 多题,很多已经做了三四遍了。最近找实习面试才发现,根本不问算法题啊,上来就是简历项目然后深挖,Spring 框架各种知识点,面了有八家了,至今还没写过算法题~

很多人都说算法题很重要,目前我的这么多场实习面试经历下来,感觉算法题是对于找中小厂实习是最不重要的,甚至提都不提[doge]

有没有必要在家里再买一个 mac

Posted: 05 Jan 2022 08:40 AM PST

在公司用自己的 mbp,有时候下班后在家里想要学习下,但是 mac 在公司没带回或者不想带.想知道大家是如何处理的

讨论一下测试人员的工作职责问题

Posted: 05 Jan 2022 08:26 AM PST

有没有测试岗位的朋友,想讨论一个问题

问题起因是前段时间,公司项目由于前期问题太多,压缩了后面的测试周期

这就导致了开发与测试身上都肩负着比较大的压力,开发要尽量解决所有的 bug ,测试要尽量找出所有的 bug ,让项目质量在短时间内趋于稳定

然后开发与测试之间就出现了一个不小的矛盾,那就是:测试提的偶现 bug 数量太多了

然后这些所谓的偶现 bug 实际上大部分都是有规律的可复现 bug ,在一定条件下必现

现在的矛盾就是,测试在测试过程中,偶然发现了一些异常问题之后,立刻就截图导日志,然后简单重试一两次,发现无法复现之后就立刻提了 bug ,然后标记为偶现问题

然后开发在处理这些缺陷的时候,只能自己反复尝试复现再找出原因去解决,比较耗时间

如果测试能够准确的提供复现路径的话,开发解决缺陷的速度能够大幅提升。而且其实有比较多的所谓的偶现 bug ,复现路径并不难发现,但是依然被标记为偶现

那么现在的问题就是,对于这些一定条件下必现的 bug ,测试有没有义务去找出复现路径?

努力尝试找出复现路径,算不算测试的本职工作?

该问题仅作讨论,请各位理性分析,感谢。

江湖救急! IDEA 现在还有优惠吗?

Posted: 05 Jan 2022 08:15 AM PST

老拖延症了,

迫于已经到期并且最后一天了,

我记得之前推出中文版时候出过打折活动,好像是 30% off 。

大佬们现在还有折扣渠道吗?

为了方便面试刷题,自己做了一个 wiki,还支持手机端小程序,以后面试刷题方便了

Posted: 05 Jan 2022 08:11 AM PST

访问地址: https://www.developers.pub/wiki

支持手机端微信小程序查看,这样大家上下班路上都可随时随地刷题了。

63d4025c2abb4cff9f5ac6f7585224be

效果图片

  • wiki 列表页

目前整理的包含前端、产品、后端三大块内容的知识库。

1d290025521a45a2a2b256990f9670fa

  • java 后端面试题大全详情页

828be0281e3e4a4d8831685a1ff1f320

java 后端面试题大全目录

可以看到上面的内容涵盖了所有的后端面试相关知识,以后大家面试刷题

喜新厌旧 该如何调理

Posted: 05 Jan 2022 07:55 AM PST

不知道各位有没有过这样的问题,很多时候对待"旧"的东西(比如笔记、笔记本、项目等)都会想要推翻重头写,然后在这过程中花费了很多不必要的时间。

我深刻的认识到自己存在这样的问题,也一直很想改进,但始终不行,比如我写项目,项目的每一次迭代其实都是重构,而其中很多时候我认为是没有必要进行重构的。

再比如说写笔记,我曾有过许许多多的笔记,但大部分都因为没有及时更新的原因丢失了,而对于还存在的笔记,总是想要去重写一遍,而且这次重写不会在原有笔记基础上修改,而是直接推翻重来,每一个步骤重新调试。

在这些无意义的重复中浪费了我大量的时间,想请教下各位是否也有过类似的情况?而对这种情况又是如何看待的呢,有什么办法能够改进(解决)这个问题或是将这个不好的现象运用在合适的场景吗吗?

请问下如何使用 pynput 按下热键执行对应函数,示例代码如下,一直无法执行 on_activate 方法

Posted: 05 Jan 2022 07:49 AM PST

import pandas as pd import time import sys import os import pyperclip from pynput import keyboard   def get_txt():     return pyperclip.paste()   def on_activate(data_txt):     df = pd.DataFrame(data_txt, columns={'txt'}, dtype='string')     df.to_csv('text.csv', index=False, mode='a', header=False)     print('Global hotkey activated!')   def for_canonical(f):     return lambda k: f(l.canonical(k))   hotkey = keyboard.HotKey(     keyboard.HotKey.parse('<ctrl>+b'),     on_activate) l = keyboard.Listener(on_press=for_canonical(hotkey.press),on_release=for_canonical(hotkey.release))   def main():      sys.path.append(os.path.abspath("SO_site-packages"))     data_txt = []     recent_value = ""     while True:         tmp_value = pyperclip.paste()  # 读取剪切板复制的内容          if tmp_value != recent_value:  # 如果检测到剪切板内容有改动,那么就进入文本的修改             recent_value = tmp_value             data_txt.append(recent_value)             print('已复制内容:%s' % str(data_txt))         time.sleep(0.1)         l.start()         l.join()   if __name__ == "__main__":     main()  

不进大厂,在杭州前端 30K 是不是到头了

Posted: 05 Jan 2022 07:18 AM PST

不是大厂的情况下,在杭州前端 30K 是不是到头了,大伙觉得是吗

WPS 竟然比 Excel 快?

Posted: 05 Jan 2022 07:10 AM PST

看 /t/826087 这个帖子有感,突然想测试下 wps 处理 excel 的性能,遂 Google 搜索 xls benchmark ,然后搜索到了这么一个。

benchmark 来源:

https://forums.anandtech.com/threads/what-quick-benchmarks-to-run-on-a-server-with-128-threads-lose-access-to-it-in-a-few-hours.2593997/

下载地址:

https://drive.google.com/file/d/1tVTAdP6WczJvlEAJNGhZXX87UJXH6vAV/view

体积超过 virscan.org 的限制,自行杀毒。

我的电脑比较弱,i5-8250U

正版 excel (随机附送 Home 版):146 秒

正版 WPS 2019 无云(企业购买):13 秒

这个 11 倍的差距有点超乎认知....有没有大佬分析下什么原理?

w

批量更新操作时, mysql 发生死锁

Posted: 05 Jan 2022 07:03 AM PST

  • 有大佬知道怎么处理吗?
  • 一批数据需要批量更新,代码中处理的时候是 1000 条调用一次 update 方法。
  • mybatis 中是这么写的
<update id="updateData">         <foreach collection="problemStudentVos" item="problemStudentVo" index="index" open="" close="" separator=";">             UPDATE warn_problem_student             <trim prefix="set" suffixOverrides=",">                     student_name = #{problemStudentVo.studentName}             </trim>             WHERE             del_flag = 0             AND student_code = #{problemStudentVo.studentCode}    </foreach> </update> 
  • 数据量大概六七千条数据。
  • 报错信息为:
com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction         at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:123)         at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)         at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)         at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)         at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)         at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)         at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)         at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)         at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)         at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)         at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)         at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)         at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)         at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)         at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)         at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)         at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:83)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)         at com.sun.proxy.$Proxy375.update(Unknown Source)         at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)         at com.sun.proxy.$Proxy158.update(Unknown Source)         at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)         at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)         at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:96)         at com.sun.proxy.$Proxy365.updateData(Unknown Source)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)         at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:50)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)         at com.sun.proxy.$Proxy366.updateData(Unknown Source)         at cn.xdf.bj.bpm.synchro.service.impl.ProblemStudentServiceImpl.buildProblemStudent(ProblemStudentServiceImpl.java:245)         at cn.xdf.bj.bpm.synchro.service.impl.ProblemStudentServiceImpl.syncProblemStudent(ProblemStudentServiceImpl.java:97)         at cn.xdf.bj.bpm.synchro.service.impl.ProblemStudentServiceImpl$$FastClassBySpringCGLIB$$30163006.invoke(<generated>)         at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:50)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)         at cn.xdf.bj.bpm.synchro.service.impl.ProblemStudentServiceImpl$$EnhancerBySpringCGLIB$$6180472e.syncProblemStudent(<generated>)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)         at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)         at cn.xdf.bj.bpm.synchro.service.impl.ProblemStudentServiceImpl$$EnhancerBySpringCGLIB$$241b7c63.syncProblemStudent(<generated>)         at cn.xdf.bj.bpm.synchro.controller.ProblemStudentController.syncProblemStudent(ProblemStudentController.java:58)         at cn.xdf.bj.bpm.synchro.controller.ProblemStudentController$$FastClassBySpringCGLIB$$7e6986e8.invoke(<generated>)         at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at com.baomidou.dynamic.datasource.aop.DynamicLocalTransactionAdvisor.invoke(DynamicLocalTransactionAdvisor.java:43)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)         at cn.xdf.bj.bpm.synchro.controller.ProblemStudentController$$EnhancerBySpringCGLIB$$33e2348c.syncProblemStudent(<generated>)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)         at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)         at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)         at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)         at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)         at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)         at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)         at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)         at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)         at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)         at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)         at java.lang.Thread.run(Thread.java:748) 

用进废退同样深刻影响编程

Posted: 05 Jan 2022 06:52 AM PST

本人是前端,从 19 年底开始自学 java ,断断续续学完了常用的几个技术栈(会使用),今年自己翻新自己的博客来加强印象和熟练度,边踩坑边学习。

国庆后验收任务多了起来,花了两个月用 Rollup 完成了两个 TypeScript 插件的开发,今天空下来开始继续写博客项目,IDEA 启动!~

突然从 TypeScript 换到 java ,手忙脚乱,极其难受,写一行思考一行,再也没有以前那种流畅的感觉了!

哭了,回到解放前了~果然,技能还是用进废退,达尔文诚不欺我(我欺)

当物理内存和 swap 分区内存都用尽时,服务器会连 ping 都响应了吗?

Posted: 05 Jan 2022 06:31 AM PST

今天一台机器无法连接了,连 ping 都没有响应了,机器重启后发现内存和 swap 都用尽了,IOWAIT 高的离谱,这种情况下 /var/log/messages 和 dmesg 都没报错,所以我怀疑是内存满了导致的。请问我的猜想有可能吗?

火绒抓到 ublock origin 文件中有挖矿病毒

Posted: 05 Jan 2022 06:03 AM PST

文件和截图在此,具体是不是 ublock origin 本体带的还是某些规则带的我就不太清楚了,希望有大佬看一下。



https://imgur.com/defWUcl

链接: https://pan.baidu.com/s/17F_pWSpqkESScon2WKM4Ig 提取码: xxku

mac 的任何密码输入框会导致 alfred 快捷键失效。。。

Posted: 05 Jan 2022 05:24 AM PST

我的 alfred 快捷键是 cmd+space 。

然后我突然发现网页或其他地方的密码输入框焦点内输入的时候,此时按下快捷键无效,然后焦点从输入框移出之后,快捷键也无法恢复使用。

把 alfred 换成其他快捷键测过一样的问题

这。。。。。

从多个平台拉取数据(如携程景点,美团景点),落到本地,用什么架构或者设计模式合理呢?

Posted: 05 Jan 2022 04:29 AM PST

现在有这样的需求:本地有自己的景点结构,通过调用各景点平台拉取数据存到本地,主要考虑兼容和可扩展,后续会接各种不同结构的景点结构,大家提提建议,暂不考虑性能,并发。

Linux 有没有系统事件通知订阅功能。

Posted: 05 Jan 2022 04:17 AM PST

CentOS Ubuntu 这些 Linux 系统有没有系统事件通知订阅功能。比如:当网卡状态变化( IP 获取 /IP 变化 /网卡启启用 /网卡关闭)时候出发一个事件,通过配置可以在这个事件发生的时候执行某个脚本或者是运行某个程序等等。类似系统启动的时候可以通过配置 rc.local 等文件可以让系统启动的时候执行一些脚本。之前还看过 inotify 的介绍但是他仅仅是针对文件方面的,不够全面,有没有一个全面的服务或者是工具能实现这些功能。

做一个高性能的小程序 JS 虚拟机有意义吗

Posted: 05 Jan 2022 04:15 AM PST

几年前微信小程序 /小游戏出现时发现不支持动态执行,于是研究了一种独特的 JS 虚拟机,架构和传统的虚拟机完全不一样,性能很高,有些特殊的案例甚至可达到原生性能~

不过由于精力有限,当时只做了一个简单的原型而已,很不完善。由于平时不做小程序开发,花大量时间做出来也用不上。所以之后没继续。

不知现实中小程序 /小游戏对动态执行是否有很大的需求,以及是否有高性能的要求?

[ Java ]怎么实现在 catch 前后打印日志?

Posted: 05 Jan 2022 04:11 AM PST

领导有一个需求,为了方便定位问题,要在所有项目中的 catch 前后都统一打印日志。

我最开始想要用 AOP 实现,后面发现异常已经被 catch 吃掉了,aop 根本拿不到。

思想来去好像也没有其他的办法了,各位大佬有什么思路吗?

讨论下 卡密下发 保证不重发 除了不用 redis 还有啥方案

Posted: 05 Jan 2022 03:55 AM PST

业务背景:公司采购了一批爱奇艺会员卡密,导入到了 mysql 现在的做法是有用户购买就获取最后一张未使用的, 更新时判断状态(可能已被使用 会失败),如果失败就自旋重试 redis 的方案已经启弃用了 感觉难以保证一致性... 各大 v 友还有啥方案 麻了

Web 项目迁移,请问有什么推荐的工具?

Posted: 05 Jan 2022 03:22 AM PST

公司的一个小项目,源码+图片+日志等杂七杂八的东西大概有 10G 左右,要从服务器 A 迁移到服务器 B ,请问各位彦祖,有什么推荐的迁移方案?

我自己设想的方案是:使用 tar 打包后,然后再通过 rsync 来同步文件。

请问这种方案是否可行(就是有没有坑之类的)?还有无其他更好的方案?

补充说明:

  1. A 服务器和 B 服务器在同一地域
  2. 可以接受一定时间的停服,但希望停服的时间尽量短
  3. 新服务器的环境配置、域名配置、SSL 证书都已准备就绪,就是文件迁移这块拿不太准

谢谢各位。

哪里有便宜月付的固定 ip 购买

Posted: 05 Jan 2022 03:16 AM PST

关于客户端的数据存储

Posted: 05 Jan 2022 03:04 AM PST

现在有个需求: 1 、本地存储 20w 条左右的数据 2 、一条数据大概有 20 个左右的字段,全部都是数字 3 、本身是用 Unity 开发,希望能够跨端方案 希望能够有较快的写入和读取速度,同时体积尽量小 请问除了 Sqlite 有其他更好的方案吗?

自定义 SLAAC eui64 模式 ipv6 后缀的相关问题.

Posted: 05 Jan 2022 02:57 AM PST

  1. 启动 NetworkManager 服务 在网卡的配置文件 /etc/sysconfig/network-scripts/ifcfg-* 添加 IPV6_TOKEN=::321 字段重启 Network 服务,网卡配置 IPv6 地址就可以达到预期.

  2. 使用 ip token set ::321 dev * 重启 Network 服务,网卡配置 IPv6 地址就可以达到预期.

现在的问题是:第 1 种方式必须要启动 NetworkManager 服务不然配置就不生效。第 2 种方式 使用 ip token set 命令配置以后重启就失效了。有没有一种配置方式(尽量是在修改系统本身有的配置文件)在不启动 NetworkManager 服务的情况下又能永久生效的呢。

he.net alias DNS 解析错误

Posted: 05 Jan 2022 01:56 AM PST

我有个在 he.net 上解析的域名 A 记录正常,但是 ALIAS 记录(指向正常的 A 记录)在美国解析正常,香港解析错误。这是什么原因?

前几天还没有问题,今天异常了。

现象是解析超时

如何根据 v8 来适配代码?

Posted: 05 Jan 2022 01:38 AM PST

  • 这个标题是要表达啥意思呢?就是有些时候,开发的代码虽然能跑,但是并不是最符合 v8 的那种
  • 比如call(...args)这种函数,我看到最优写法好像是
if(args.length===1){ call(args[0]) }else if (args.length===2) {...} else if  (args.length===3) {...} 
  • 这种先固定几个参数,比如 5 个,那么参数在 5 个之内的效率是最高的,超过 5 个后再用...args,传参
  • 那么还有什么其他的需要注意的,有没有大佬出过这种根据引擎写最优的执行代码?
  • 不是真优化,就是想长见识....

leetcode 具体是怎么运行你的代码片段的?

Posted: 05 Jan 2022 01:32 AM PST

比如某一个题,你写了一个函数,提交了,运行结果你通过了

这个在 leetcode 后台具体是怎么实现的?你传过去的是一个大大长长的字符串,然后他们要把这个字符串写入某个文件,比如 py 文件,比如 Java 文件,比如 js 文件

然后有一个外部的函数来调用这个文件里的函数?

后台用什么运行? docker ?

关于 Java 多线程的疑问

Posted: 05 Jan 2022 01:21 AM PST

springboot 中的 @Async 注解是多线程还是异步呢

一个 Android 无障碍功能和 Chrome 浏览器的 Bug

Posted: 05 Jan 2022 01:17 AM PST

我用的是 Android12 ,不知道其他版本的系统有没有。当手机开启某些需要按坐标点击无障碍服务时,比如跳过广告,自动点击脚本之类的,Chrome 浏览器的多标签页面就会变成很简陋的列表。不知道你们有没有这个问题。我被困扰了很久,正在寻找解决的办法😭。

golang 如何删除一个文件的最后一行?

Posted: 05 Jan 2022 01:00 AM PST

问个奇怪的问题,如何在 Visual studio 打满整页的断点

Posted: 05 Jan 2022 12:46 AM PST

如题
如何在当前文件直接打满整个当前页的断点...

app 的游客模式如何设计

Posted: 05 Jan 2022 12:45 AM PST

谁给推荐个手机上看 github 上的电子书的 App?

Posted: 04 Jan 2022 10:35 PM PST

想在手机上看 github 上的电子书,比如这本,https://github.com/d2l-ai/d2l-zh

这个电子书只有 pdf 格式的。用手机读起来体验不好。

电子书的源文件是 markdown 格式,有没有 app 可以直接读取这个 git 仓库并阅读呢?

另外,github 有大量 gitbook 的电子书,有可以直接阅读的 app 吗,而不是阅读 epub 格式

mysql 基础不牢,请教各位 v 友一个查询语句。

Posted: 04 Jan 2022 10:29 PM PST

1.数据表有两个字段 bus_id 和 record_id ,record_id 唯一不重复,bus_id 可以对应多个 record_id 。现求 record_id 的数量,多个 bus_id 对应的 recordId 算一个数量。 2.不能直接求去重后 bus_id 的数量,其他业务可能没有 bus_id

springboot 加壳

Posted: 04 Jan 2022 10:11 PM PST

springboot 可以方便的开发 web 应用,有什么办法可以快速的包装一个壳,例如在 mac 下,生成一个图标,点击启动应用,打开一个 webview 的窗口,加载这个地址?

记得之前好像有个应用可以生成一个打开指定 url 的图标,但是少了一步启动。

如何设计一个门店基础信息管理系统

Posted: 04 Jan 2022 09:37 PM PST

由于公司门店很多,又有很多个管理系统,每个管理系统都会冗余一份自己的门店基础信息表,导致想要修改一个门店基础信息非常的吃力,公司打算让我设计一个门店基础信息管理系统,希望大家能提出一点建议和意见。

请问如何查找相同型号某块硬盘

Posted: 04 Jan 2022 07:44 PM PST

买了几块相同型号硬盘组 raid10 ,有一块掉盘没识别,如何找出有问题的盘,系统是 pve ,硬盘上也没指示灯外观无法判断,命令查出的序列号也对不上:

blkid
fdisk -l
hdparm -I /dev/sd? | grep 'Serial\ Number'

只能拔掉硬盘开机一块块核对 /dev/sd*?

求推荐 Python 的低代码生成器

Posted: 04 Jan 2022 07:35 PM PST

最近关注了下 低代码生成器或代码自动生成器。 前端各种的拖拽生成。 后端根据数据库生成,有 Ruoyi ,Erupt ,MyBatis 等几乎都是 java 的,一个 php 的 laraveladmin 。 一遍谷哥和毒娘后也没看到什么关于 Python 相关的生成器,有朋友能推荐看看吗?

这种业务场景有没有更优雅的方式?

Posted: 04 Jan 2022 07:35 PM PST

后端: 判断 3 依赖判断 1 添加的数据。

// 判断 1 为提示信息,确定后跳转下个页面 if (condition){     result.setCode("0002");     result.setMsg("msg");     return result; } // 判断 2 为校验数据是否存在,前端给出弹框,确定后自动添加数据,并跳转下一个页面。 if (condition){     result.setCode("0001");     result.setMsg("msg");     return result; } // 判断 3 同样为提示信息,确定后跳转下个页面。 if (condition){     result.setCode("0003");     result.setMsg("msg");     return result; } 

前端: 普通情况下,三个提示都是单一提示。 但也会出现需要顺序提示的情况,比如:

  1. 满足判断 1 ,前端提示,判断 1 前端确定后,如果条件满足提示判断 2 ,确定后添加数据并提示判断 3 ,确定后跳转下一个页面。
  2. 满足判断 2 ,前端提示,判断 2 前端确定后,满足判断 3 提示,确定后跳转下一个页面。

目前上述判断都在后台同一个接口内,涉及到顺序提示的时候,前端调用后台代码就需要在对应的 code 分支内重复调用该接口。

判断 1 在第一次点击确定后,后续接口不再校验该场景。如果重新进入该页面,则判断 1 对应场景需重新校验。

为什么 gcc5 下的 new operator 可以得到 32 byte 对齐的地址(在 x86-64 机器上)

Posted: 04 Jan 2022 07:34 PM PST

stackoverflow 的提问参考这里

从查阅到的资料中看出,在 x86-64 机器上,gcc 的 new operator 应该是只有 16 byte 对齐的,直到 gcc7 的 c++17 下,由于引入了 aligned new ,才支持更大的对齐 size.

但是我实际发现,gcc5 下得到的地址就已经是 32 byte 对齐了。 测试代码在这里: gcc4.9, gcc5.1

代码跑了上万次,每一次 gcc5 下得到的结果都是 32 byte 对齐,感觉不像是巧合

然后参考了这个帖子, 猜测是 glibc 或者 libstdc++中有相关的更改。

发现 gcc4.9 和 gcc5.1 的 glibc 版本都是 2.19 libstdc++的版本倒是不同,一个是 6.0.20 ,一个是 6.0.21

但是去看了 libstdc++的代码,没有发现和 Gcc5 有关的变更

所以我的问题是,gcc5 下得到的地址有 32 byte 对齐是不是巧合? 是巧合的话,如何能复现出只有 16 byte 对齐的情况? 不是巧合的话, 为什么 gcc4.9 和 gcc5 的行为不一致?

元旦 3 天,用 Go 在家写了一个 “元宇宙” 网站

Posted: 04 Jan 2022 07:13 PM PST

初衷比较简单,无商业目的,单纯就是一个解释元宇宙概念、行业动态、产品的信息聚合。

技术栈: Go Next.js(typescript) Docker

全局 ID 使用 https://github.com/sony/sonyflake

尝试写了一篇文章(使用 markdown 渲染)

为什么谈到元宇宙,总离不开 VR ?

https://itnext.cn/post/388857770603970564

No comments:

Post a Comment