Tuesday, April 27, 2021

V2EX - 技术

V2EX - 技术


滴滴 iOS 客户端计价详细页面奇怪地含有一 32 字符的字符串

Posted: 27 Apr 2021 04:01 AM PDT

为保证问题表述尽可能中立,措辞可能比较怪异,语言表达水平有限请见谅

在滴滴 iOS 客户端的计价详细页面(输入起始、终点后,点击价格旁的 (i) 信息按钮即可展开此页面。

原图

https://i.v2ex.co/pWPmRL2vl.png

由于字体颜色与背景颜色对比极小,肉眼常规条件较难发现。将曝光值拉低、对比度值拉高后,字符清晰可见。

https://i.v2ex.co/7ChcXSpyl.jpeg

不做猜测,留给大家讨论。

V2EX 竟然也被污染了, DNS 污染有办法解决吗?

Posted: 27 Apr 2021 04:00 AM PDT

一般不都是 XX 网站才会被污染吗?

为啥 V2EX 也会被污染?

这个污染应该是人为的吧?

Oracle 相比 mysql 的优势在哪里

Posted: 27 Apr 2021 03:58 AM PDT

目前的项目用的 mysql,支撑几十亿数据没问题(分库分表),偶尔慢 sql 也能优化索引解决,至于复杂查询通过搜索引擎实现,听说 Oracle 超级贵,那 Oracle 具体有什么优势呢,哪些场景下是 oracle only 的?

可能是最适合程序员的运动,特别是对颈椎病有好处:篮球

Posted: 27 Apr 2021 03:36 AM PDT

楼主上大学的时候经常打篮球,即使写了多年代码,也从来没感觉颈椎有啥问题。16 年因为换工作搬家到一个新地方,没有了球友,自己也懒了下来就很少去了,反正觉得自己每周去健身 4,5 次,身体不会差。结果这么懒了一年到年底突然感觉肩膀不舒服,一开始还以为是落枕了,后来发现肩膀和胳膊麻了一个月。没办法只好去做理疗,按摩了一个月,慢慢好转了,可是最后还是拖了很久才好的。

然后因为新冠,去年基本上又一直家里呆着。今年年初突然又开始肩膀和脖子疼了,可是一直约不到附近的医师(因为是在北美,所以只能约时间,附近的医师也不多,刚好赶上都有事)。然后就前段时间有个朋友叫我下午下班去室外场投篮,我想反正也不剧烈运动,肩膀应该没啥事。结果就一周去了 3,4 次,这么投了一个月,偶尔也和人打打半场,肩膀和脖子竟然痊愈了。

终于约到医师了,问了下打篮球和我肩膀痊愈是不是有关系。医师说确实有关系,因为投篮或者抢篮板都是抬头而且对颈椎有个类似伸展的动作,当然前提是你不能在打球的时候也弯腰驼背。

所以强烈推介有条件的朋友都去没事干打打篮球,就算一个人去投篮也是对颈椎有极大的好处。当然有的人说羽毛球也可以,确实,不过这个就要求至少两个人了,而且羽毛球场地也不是到处都有。

求助解决一个 Ubuntu18.04 系统下, cheese 打开摄像头后段错误的问题

Posted: 27 Apr 2021 03:31 AM PDT

设备:NVIDIA JETSON AGX XAVIER 板子,即插即用 USB 摄像头(之前在同型号板子上录制过图像,可排除设备硬件问题) 系统:使用 NVIDIA SDKManager 安装的 64 位 Ubuntu18.04LTS

内存:32GB CPU:ARMv8 Processor rev 0 (v8l) × 8

图形显示:NVIDIA Tegra Xavier (nvgpu)/integrated

问题描述

无法使用摄像头

1.打开 GUI 图形版本 cheese 直接闪退,终端输入 cheese 后,输出

(cheese:10271): Clutter-WARNING **: 17:48:52.948: Whoever translated default:LTR did so wrongly. (cheese:10271): Gtk-WARNING **: 17:48:53.125: Theme parsing error: cheese.css:7:35: The style property GtkScrollbar:min-slider-length is deprecated and shouldn't be used anymore. It will be removed in a future version Opening in BLOCKING MODE 段错误 (核心已转储) 

2.输入 camorama 命令,输出

Opening in BLOCKING MODE 段错误 (核心已转储) 

3.输入 dmesg 命令,相关输出如下

…… [    8.585008] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [    8.602004] usb 1-4.4: new high-speed USB device number 5 using tegra-xusb [    8.628439] nvgpu: 17000000.gv11b                 tpc_pg_mask_store:843  [INFO]  no value change, same mask already set [    8.662969] gpio tegra-gpio wake20 for gpio=52(G:4) [    8.670838] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [    8.755785] usb 1-4.4: New USB device found, idVendor=1bcf, idProduct=2284 [    8.755794] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [    8.755798] usb 1-4.4: Product: aoni Webcam [    8.755801] usb 1-4.4: Manufacturer: Sunplus IT Co  [    9.025078] usb 1-4.4: Warning! Unlikely big volume range (=4096), cval->res is probably wrong. [    9.025382] usb 1-4.4: [5] FU [Mic Capture Volume] ch = 1, val = 0/4096/1 [    9.380506] uvcvideo: Found UVC 1.00 device aoni Webcam (1bcf:2284) [    9.402190] uvcvideo 1-4.4:1.0: Entity type for entity Extension 3 was not initialized! [    9.402418] uvcvideo 1-4.4:1.0: Entity type for entity Processing 2 was not initialized! [    9.402591] uvcvideo 1-4.4:1.0: Entity type for entity Camera 1 was not initialized! [    9.403258] input: aoni Webcam as /devices/3610000.xhci/usb1/1-4/1-4.4/1-4.4:1.0/input/input10 [    9.403514] usbcore: registered new interface driver uvcvideo [    9.403519] USB Video Class driver (1.1.1) [    9.539376] zram: Added device: zram0 [    9.539969] zram: Added device: zram1 [    9.540471] zram: Added device: zram2 [    9.541125] zram: Added device: zram3 [    9.547594] zram: Added device: zram4 [    9.548813] zram: Added device: zram5 [    9.549366] zram: Added device: zram6 [    9.552869] zram: Added device: zram7 [    9.575294] zram0: detected capacity change from 0 to 2091954176 …… 

4.输入 cd /dev , dmesg | grep video,输出

[    0.000000] Kernel command line: console=ttyTCU0,115200 video=tegrafb no_console_suspend=1 earlycon=tegra_comb_uart,mmio32,0x0c168000 gpt rootfs.slot_suffix= tegra_fbmem=0x800000@0xa06a0000 lut_mem=0x2008@0xa069b000 usbcore.old_scheme_first=1 tegraid=19.1.2.0.0 maxcpus=8 boot.slot_suffix=_b boot.ratchetvalues=0.4.2 vpr_resize sdhci_tegra.en_boot_part_access=1    quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4 [    1.023302] Linux video capture interface: v2.00 [    9.380506] uvcvideo: Found UVC 1.00 device aoni Webcam (1bcf:2284) [    9.402190] uvcvideo 1-4.4:1.0: Entity type for entity Extension 3 was not initialized! [    9.402418] uvcvideo 1-4.4:1.0: Entity type for entity Processing 2 was not initialized! [    9.402591] uvcvideo 1-4.4:1.0: Entity type for entity Camera 1 was not initialized! [    9.403514] usbcore: registered new interface driver uvcvideo [ 1746.377467] uvcvideo: Found UVC 1.00 device KS2A418-2.0 (2304:4922) [ 1746.384875] uvcvideo 1-4:1.0: Entity type for entity Extension 4 was not initialized! [ 1746.385034] uvcvideo 1-4:1.0: Entity type for entity Extension 3 was not initialized! [ 1746.385161] uvcvideo 1-4:1.0: Entity type for entity Processing 2 was not initialized! [ 1746.385306] uvcvideo 1-4:1.0: Entity type for entity Camera 1 was not initialized! 

5.输入 lsusb,输出

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 1bcf:2284 Sunplus Innovation Technology Inc.  Bus 001 Device 004: ID 2717:5016   Bus 001 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory Bus 001 Device 002: ID 2109:2815 VIA Labs, Inc.  Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 

6.输入 ls /dev/v*,输出

/dev/vcs   /dev/vcs3  /dev/vcs6   /dev/vcsa2  /dev/vcsa5  /dev/video0 /dev/vcs1  /dev/vcs4  /dev/vcsa   /dev/vcsa3  /dev/vcsa6 /dev/vcs2  /dev/vcs5  /dev/vcsa1  /dev/vcsa4  /dev/vhci  /dev/v4l: by-id  by-path  /dev/vfio: vfio 

可以看到有 /dev/video0

7.输入 sudo chmod 777 /dev/video0

8.我浏览了很多网页,实在不知道该怎么做了,就是打开一个摄像头而已,求 v 友给点解决办法或思路! 跪求!

想问问大家关于 daphne 启动 agsi 处理 websocket 请求导致响应“卡顿”的问题

Posted: 27 Apr 2021 03:28 AM PDT

我们用的是 django-channels2 + channels-redis2 + daphne2 的框架处理 ws 连接。我们的应用场景是比较简单的,我们平台主要是提供一个进入容器后能和 k8s api-server 实时交互(敲命令)的功能。我们前端通过在 xterm 提供的命令行敲一些命令,并 websocket 连接去连接我们的平台,我们的平台做的就是除了一些简单的初始化后(主要是和 k8s 建立连接,只在连接时做,后面转发就不做了),直接把数据透传给 k8s 的 api-server,然后我们平台收到 k8s 的响应后在透传给前端,展示数据。

这里讲点前序,我们之前采用的是 runserver 的方式启动一个 wsgi 去处理 ws,运行几天后也会卡顿,查看 CPU 大概有 150%,查看线程后发现有 1000 多个线程,但是 tcp 连接没几个,而且有 n 天前进程重启后就创建的线程,后来看 channels 的 issue 得知这是一个没有修复的 bug,然后看了一下文档,好像 dephne 是专门处理 ws 连接的。于是我们改用 dephne 处理 ws 。但是现在的问题是当 daphne 进程启动 2 天以后,我们发现敲命令又开始有点卡顿了(敲键盘后到收到响应大概要 1-2 秒),登陆机器后发现 daphne 进程占用 cpu 大概 180%( 8C 的机器),线程有 100+个,内存使用正常,连接也正常( 20 个左右)。线程还有一些一天前创建的,感觉没有释放。跟踪所有线程系统调用发现有很多 futex EAGAIN (Resource temporarily unavailable)的信息,这个查了一下好像在是线程获取锁失败了。daphene 看了也没有报错日志。

为了排查是不是某套 k8s 的 api-server 慢导致的响应慢,我们特意换了其他 k8s 集群做测试,一样卡顿,所以基本排除 api-server 的影响,问题基本确定在我们的平台。现在不知道这个从哪查启,大家遇到过这种问题吗?或者有啥排查思路吗?

怎么设置服务器,使得使用 telnet 访问后可以显示自定义的一句话?

Posted: 27 Apr 2021 03:19 AM PDT

就像很早之前可以用 telnet 看星球大战那样,服务器返回信息。

女同事问了一个 golang 的技术问题,没答上来,溴大了

Posted: 27 Apr 2021 03:05 AM PDT

两个 goroutine:go1,go2
go1 从 socket 读,读到的数据写到 ch1
go2 从 ch2 读,读到的数据写到 socket
以此来实现全双工通信

问题:ch1 关闭之后,go1 不知道,一写就崩了,怎么避免?

Safari 无法访问科大的 Google 源?

Posted: 27 Apr 2021 02:58 AM PDT

最近这两天发现的问题,例如 https://ajax.lug.ustc.edu.cn/ajax/libs/jquery/3.5.1/jquery.min.js 这个地址,使用 Chrome 可以正常打开,但使用 Safari 会提示无法建立安全连接,原因不得而知。

go 有没有类似 springboot 全家桶的东西

Posted: 27 Apr 2021 02:54 AM PDT

最近在看 go, 大体看了看 github 上的一个项目 https://github.com/flipped-aurora/gin-vue-admin 发现这一套配置下来这么麻烦么, 有没有类似 springboot 的解决方案呢...

jest 如何只执行测试某些文件?

Posted: 27 Apr 2021 02:43 AM PDT

以前用 jasmine,设置fdescribe的就会只测试这个文件 /几个文件(假如文件中只有一个) 但是在 jest 中fdescribe的功效好像仅仅是这个文件中,这个方法的内部(假如多个 describe) 没法放射到全局,如果有这种需求怎么实现?

我知道可以通过命令指定某个测试文件,但是也不能写一个测试文件,就指定一次,输入路径太麻烦

另外还有一点就是感觉 jest 的速度没 jasmine 快...但是 jest 优点应该就是自带代码覆盖率了吧...

请问有没有用 Google Fi 买过合约机的 a ?看网上有人说 299 刀可以拿下三星 S21 心动了,如果能买,那个合约要用多久呢?

Posted: 27 Apr 2021 02:37 AM PDT

物联网相关,怎么选数据库?

Posted: 27 Apr 2021 02:28 AM PDT

业务上有需求,每天每台设备 6000 数据量,预设设备数量最多 10 万。 以前用过 2 年 Oracle,但是没什么学习资料的,只是用用。 MySQL 倒是水平还可以,但是这么大的数据量以前也没玩过。 这些数据都得留着,属于原始数据,还得处理成业务数据。 问下大佬们怎么选数据库,包括选了之后性能和扩展性如何

为了帮一个前同事,自己个人信息泄漏太多了

Posted: 27 Apr 2021 02:11 AM PDT

某同事成功上岸,做了民办本科大学教师,但听他说有指标,需要自己招募几个企业实习生导师带自己的学生,就是学生不用到公司上班那种,我也不用到学校去,只需加学生微信,在线指导指导一下,发自己写的几篇文档给学生即可获得劳务费。

由于早年跟他关系不错,后面他自己考研离职了,上岸后找上了我,希望我来帮他完成一个招募指标,我看着工作量不大,并且还有钱收额,当时就答应了。

后面发发几个表过来让我填,里面有有些表需要填个人的身份证,工作履历,手机号码,个人住址,我当时内心就疙瘩了一下,不过还是填好给了他。

再后面,他说需要我微信上面传几份文件给他,就可以坐等收钱了,这几份文件如下:

毕业证 学位证 身份证正反面 个人手写签名 银行卡正反面

基本上,我上传完这些,自己最重要的个人信息都底朝天了。

最后我反悔了,看得出他很失望,感觉会少一个朋友了额,我不是信不过他,而是我自己有自己的底线。。。。

希望我这样子做不会后悔吧。

请教一个问题,如何创建一个在指定时间执行的一次性任务。

Posted: 27 Apr 2021 02:10 AM PDT

目前想到的是

  1. 轮训任务表
  2. 使用数据库事件,可能要结合存储过程

如何在内网实现域名解析

Posted: 27 Apr 2021 02:01 AM PDT

如果在能连接互联网的情况下,只要配置了 DNS 就可以将域名解析,但是不太清楚如果在隔离互联网的情况下,内部网络如何也能实现域名访问那,请大家不吝赐教

求助 ubuntu 20.04 一天崩一两次显示器无信号,机器仍在运行

Posted: 27 Apr 2021 02:00 AM PDT

看了下面最后一句 amdgpu 是不是 显卡崩溃了, 电脑是 amd 的显卡,本来想试试用核显卡。

好嘛,cpu 无核显版本的;

人给我整疯了,每次重启我要开好多东西啊 心累

14:16:03 kernel: amdgpu 0000:03:00.0: amdgpu: GPU reset begin! 13:41:38 kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off 13:41:38 kernel: r8169 0000:06:00.0 enp6s0: Link is Up - 1Gbps/Full - flow control off 13:41:35 kernel: r8169 0000:06:00.0 enp6s0: Link is Down 13:41:35 kernel: Generic FE-GE Realtek PHY r8169-600:00: attached PHY driver [Generic FE-GE Realtek PHY] (mii_bus:phy_addr=r8169-600:00, irq=IGNORE) 13:41:34 kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 1 13:41:34 kernel: kfd kfd: added device 1002:7340 13:41:34 kernel: snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu]) 13:41:34 kernel: amdgpu 0000:03:00.0: amdgpu: RAS: optional ras ta ucode is not available 13:41:33 kernel: pcieport 0000:02:00.0:   bridge window [mem 0x4100000000-0x43ffffffff 64bit pref] 13:41:33 kernel: amdgpu 0000:03:00.0: BAR 2: assigned [mem 0x4100000000-0x41001fffff 64bit pref] 13:41:33 kernel: pcieport 0000:02:00.0: BAR 15: assigned [mem 0x4100000000-0x43ffffffff 64bit pref] 13:41:33 kernel: amdgpu 0000:03:00.0: BAR 0: releasing [mem 0xb0000000-0xbfffffff 64bit pref] 13:41:33 kernel: snd_hda_codec_realtek hdaudioC0D0:      Line=0x1a 13:41:33 kernel: snd_hda_intel 0000:03:00.1: Force to non-snoop mode 13:41:33 kernel: ee1004 0-0052: 512 byte EE1004-compliant SPD EEPROM, read-only 13:41:33 kernel: mei_me 0000:00:16.0: enabling device (0000 -> 0002) 13:41:33 kernel: hid-generic 0003:1C4F:0034.0003: input,hidraw2: USB HID v1.10 Mouse [SIGMACHIP Usb Mouse] on usb-0000:00:14.0-7/input0 13:41:33 kernel: usb 1-7: Manufacturer: SIGMACHIP 13:41:33 kernel: scsi host5: ahci 

分享:如何取出变量的变量名,自动赋值到结构化日志中

Posted: 27 Apr 2021 01:30 AM PDT

之前因为比较喜欢 golang 的结构化日志模块 logrus,所以模仿写了个 loggus
最近项目原因,写了一段时间的 golang,又回到 python 中...

于是又接触到了自己写的 loggus,然后写了很多类似这样的代码

import loggus  def userInfo(name, age, phone):     loggus.withFields({         "name": name,         "age": age,         "phone": phone,     }).info("0.0")  userInfo("小明", 18, 10086) # 输出 # time="2021-04-27 15:02:17.671655" level=info msg="0.0" name="小明" age=18 phone=10086 

我自己写着写着发现,为结构化日志赋值时,很多 key 值,和变量的变量名是相同的,但我不得不重新写一遍。
就像上面的那个字典:

{     "name": name,     "age": age,     "phone": phone, } 

于是近期就在思考:是否可以自动取出该变量的变量名,自行完成赋值操作?

参考了较多的文章和 logging 源码之后,发现有一条思路是值得借鉴的:通过回溯调用栈,找到调用函数的源码,通过正则取出所需变量名,然后进行赋值。

最后实现了一个神奇的方法 loggus.withVariables,类似这样:

import loggus  def userInfo(name, age, phone):     loggus.withVariables(name, age, phone).info("0.0")     # 输出     # time="2021-04-27 14:38:05.400769" level=info msg="0.0" name="小明" age=18 phone=10086      loggus.withVariables(         name,         age,         phone,     ).info("0.0")     # 输出     # time="2021-04-27 14:38:05.400769" level=info msg="0.0" name="小明" age=18 phone=10086  if __name__ == '__main__':     userInfo("小明", 18, 10086) 

最后总结:花里胡哨没啥用,哈哈哈
有兴趣的可以看下实现: https://github.com/CzaOrz/loggus

您的 Google Voice 号码 (xxx) xxx-xxxx 将在 30 天后过期

Posted: 27 Apr 2021 01:10 AM PDT

环聊不给用了,能登录不能发消息。
Voice 登录要验证美国手机号,人在国内不可能。
还有别的办法保留 GV 吗?

关于 mysql 数据读取不一致的问题

Posted: 27 Apr 2021 12:24 AM PDT

现在问题是这样的,spring 没有开启 @Transactional 的事务,一个函数内,代码上面执行 mysql 的 update 操作,下

面执行了 select 操作,然后 select 返回的数据是 update 之前的,这种的话,是属于幻读还是不可重复读啊? spring 的

事务应该怎么设置比较好?

关于 react 编程思路的问题

Posted: 26 Apr 2021 11:52 PM PDT

萌新,最近看了一下react,感觉它很依赖于状态管理?不知道是不是因为JSX语法的原因,函数 /类组件只能在<ComponentName />中传入相应props,如果父组件要访问子组件的方法就必须传入一个类似SetHandler()的方法把子组件的方法绑定到父组件的state上,而这样不就相当于把子组件的statefunction移到父组件上吗?似乎没有类似SubComponentName.funName()的访问方式...有点迷茫,可能说的不是很清除,不知道大家是怎么解决这个问题的?

mysql 数据库字符集选择,是用 utf8 还是 utf8mb4?

Posted: 26 Apr 2021 11:49 PM PDT

哪个用的多一些?

golang 在 Linux 下编译 win 的 exe 为什么与编译的 Linux 二进制文件执行结果有差别?

Posted: 26 Apr 2021 10:31 PM PDT

在 win10 下,docker 的 ubuntu 容器里编辑 golang,试了几个 GO 的 TUI 库的 demo,linux 下编译都没问题,但是

env CGO_ENABLED=0 GOOS=windows GOARCH=amd64  go build main.go 

编译出的.exe 再 docker cp 到 win10 上运行,界面乱的一塌糊涂,哪位大佬讲讲是哪里出了问题?

kube-system 命名空间里的 kube-controller-manager-xxx 重启会导致自定义资源的 controller 也重启?

Posted: 26 Apr 2021 09:44 PM PDT

kube-controller-manager-xxx 日志

I0426 14:56:49.023770 1 leaderelection.go:288] failed to renew lease kube-system/kube-controller-manager: failed to tryAcquireOrRenew context deadline exceeded  E0426 14:56:49.023797 1 leaderelection.go:331] error retrieving resource lock kube-system/kube-controller-manager: Get https://192.168.xx.yyy:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: net/http: request canceled (Client.Timeout exceeded while awaiting headers) F0426 14:56:49.023910 1 controllermanager.go:279] leaderelection lost 

自定义资源的 controller 的 pod 的日志

I0426 14:56:50.467150 1 leaderelection.go:249] failed to renew lease default/mysql-operator-leader-election: failed to tryAcquireOrRenew context deadline exceeded  

有没有实时变声的 xposed 或 magisk 模块?

Posted: 26 Apr 2021 08:49 PM PDT

比如玩 Clubhouse 这种聊天室程序,我不想"声纹"被别人记录,那么安卓系统上有没有实时变声的 xposed 或 magisk 模块呢?这个模块能取代系统本来的"录音"并把变声后的声音实时输出给 app ?

thrift 版本兼容性问题?

Posted: 26 Apr 2021 08:23 PM PDT

现在项目中使用的是 0.9.3, 但想升级成 0.13.0(或者其它更高版本), 不想重新 compile 对应的 thrift idl 文件(之前的是使用 0.9.3 compiler 生成的)

那么, 使用更高的版本有兼容性问题么? 俺在网上没搜索到 thrift 向前兼容的资料...

求有经验的老哥解惑

请教一个 k8s 动态端口映射的问题

Posted: 26 Apr 2021 07:54 PM PDT

小白刚入门 k8s,想请教一下 v 友们怎么处理以下问题比较好呢——

已知A 服务接收客户端的请求,负责向数据库写入端口信息;B 服务负责从数据库读出端口信息;并监听这些端口来提供服务。所以可理解为,A 服务的端口是固定的(配置文件指定),B 服务的端口是动态的(数据库中读取)。

问题:现在如果要使用 k8s 部署这两个服务,A 服务的端口映射可以直接指定,B 服务的端口映射应该如何优雅地处理呢?

PS: 如果是 A/B 服务的设计不合理也很欢迎大家提出建议:D 非常感谢大家~

大家 iTunes Connect 还能用吗

Posted: 26 Apr 2021 07:40 PM PDT

想提交应用发现 Apps 进不去了,看浏览器 console 一堆报错,好几天了都没人修。

Python 2020 开发者调查结果出炉

Posted: 26 Apr 2021 06:46 PM PDT

早上醒来刚看到邮件,昨晚十一点收到的。

Hi Pythonista,
Discover the results of Python Developers Survey 2020! We are happy to share with you all the latest findings and the state of the Python community.
With the help of 28 thousand Python developers from more than 150 countries, who shared their experience with us in November of 2020, we tried to describe what the world of Python development looks like today.

https://www.jetbrains.com/lp/python-developers-survey-2020/

Xcode 下面的"Developer Documentation"有办法做成一个独立 App 的形式吗?

Posted: 26 Apr 2021 10:25 AM PDT

最近在学 iOS 开发,对于阅读和搜索文档来说,体验了浏览器 /Dash/Xcode Developer Documentation,发现 Xcode 下的这个子窗口"Developer Documentation"体验是最好的。但是它只是 Xcode 下的一个 Window,我平时切换程序习惯用 Cmd+Tab,这样它就没办法很方便的来回切换。

有没有办法把这个窗口做成一个独立 App 的样子,至少在 Cmd+Tab 切换程序的时候它可以和 Xcode 分开显示..

发现了一个 Xcode 可稳定复现的 bug

Posted: 26 Apr 2021 09:57 AM PDT

Xcode 版本是 12.4,系统是最新的 Big Sur 11.2.

步骤:

  1. 新建一个 macOS GUI App 项目,类型选 Storyboard
  2. 在 Storyboard 里点右上角加号随便添加一个控件到下面的 ViewController 里,比如 Label
  3. 选中这个控件,在右下角给它新建一个 Aspect Ratio Constraint
  4. 在左边的树状列表里选中这个 apsect constraint
  5. 在右侧边栏里点击三角形图标以修改这个 constraint,点击 Second Item 菜单,选择菜单最下面的 View
  6. Xcode 崩溃

在一台 M1 和一台 Intel 的 MacBook 上都反复试验成功。

在弄 devops 相关内容 前端用的 vue 想 npm 打包后能修改到 ip 和端口配置

Posted: 26 Apr 2021 08:17 AM PDT

我现在除了想用 sed 命令去替换文本之外就每别的好方法了

一个可以在 PHP -FPM 环境来并发访问 HTTP 接口的工具类

Posted: 26 Apr 2021 06:36 AM PDT

https://github.com/CodeApePro/TcpMockHttp

这并不是一个开源的项目,只是个人在使用的一段工具类代码.

原理是通过 sockets 扩展创建 tcp 连接,在 tcp 连接上传输符合 http1.1 协议的数据,从而将发送数据与读取结果分开.

发出来以供遇到类似场景时参考.

想问问大家一个关于 Django Queryset 的初级问题

Posted: 26 Apr 2021 05:46 AM PDT

简化了一下业务逻辑,直接贴代码了。问题就是为什么第一个 print 值没有变,但是第二个变了?

#Foo 表一个 queryset 对象 qs = Foo.objects.filter(id=2).first()   while(condition):     #有另外一个进程不断更新这条记录     print(qs.bar) #br 是表对象 Foo 的一个属性,循环打印该值一直不变.     print(Foo.objects.\     filter(id=2).first().bar) #但是这样取值是在变的   

ffmpeg 硬件编解码 docker

Posted: 26 Apr 2021 05:26 AM PDT

上次把我编译的带 Intel Qsv 硬件加速的 ffmpeg 的 Dockerfile 发到了 GitHub,收到站里小伙伴很多意见;我按照意见修改优化后,发到了 Docker Hub,欢迎大家取用 https://hub.docker.com/r/wzhy1234/ffmpeg-qsv https://github.com/aihy/ffmpeg_qsv_docker

No comments:

Post a Comment