大象笔记

知者行之始,行者知之成

React Native Gifted Chat 中渲染 Markdown 消息

晚上实现了 React Native Gifted Chat 中渲染 Markdown 消息,折腾完之后,我甚至感觉 React Native 的库比 React 的库都可靠。 安装依赖 https://www.npmjs.com/package/react-native-markdown-display npm install react-native-markdown-display 会看到安装了最新版本的依赖 git diff .\package.json + "react-native-markdown-display": "^7.0.2&quo ...

阅读全文...

微信小程序新增回本计算器功能,给大 A 股民 2025 新年的一丝慰籍吧

周末出门的路上,收到一个大象计算器微信小程序热心用户的反馈。希望增加一个回本计算器的功能。看来 2025 新年以来连续两个交易日,大 A 行情低迷,不少股民面对被套的窘境。所以才急需一个计算股票涨多少才能回本的功能 💰 用户很热心,怕我不明白,还贴上了计算公式。从截图风格看,估计是从某书上看到的。 唯一的需求是能精确到百分之一。哎,大家太不容易了。 回家简单花五分钟实现了一下(第一次尝试 GitHub Copilot edits 的多文件代码生成功能,确实科幻,但是小程序代码还是不太行),功能界面如下 体验方法一 微信中搜索大象计算器,点击进入后,找到回本计算器。 体验方法二 长按识别,或 ...

阅读全文...

Expo 官方文档适合作为 React Native 的入门教程

Expo 这个文档写的非常好。通俗易懂。细节也到位。强烈推荐。甚至比 React Native 国内的书籍要好很多。 https://docs.expo.dev/tutorial/introduction/ 一共分9个小节, 把 react native 的基础概念都覆盖到了: Create your first app Add navigation Build a screen Use an image picker Create a modal Add gestures Take a screenshot Handle platform differences Configure sta ...

阅读全文...

修复 Magento 询盘组件在产品列表页不弹窗显示

在外贸站 Magento 主题中,使用了 bluethinkinc/magento2-module-product-enquiry 这个询盘组件。 在产品详情页是可以正常点击按钮进行询盘的。 但是在产品列表页,部分产品可以正常询盘。但是某些产品,点击了询盘组件之后,无法弹出询盘窗口。 问题出在哪里 看了一下页面的代码,发现这个询盘组件,会在产品框里增加一个询盘按钮,id 为产品的 sku。 问题就出在这里,因为 sku 中可能包含特殊的字符,例如空格,句号之类,导致生成了一个非法的 html 元素 id。 于是 js 的点击响应事件就无法触发了。 所以,需要修改一下插件的代码,来修复这个 bu ...

阅读全文...

React Native 项目打包为 Web 版本

用 React Native 开发了一个聊天的 APP,想同时支持 App 和 Web 版本。 之前一直以为 React Native 只能开发 Android 和 iOS 版本的 APP,没想到还能直接打包为 Web 版本。(当然微软也提供了 Windows 客户端版本的支持) Web 版本打包命令 npx expo export 可以看到输出如下: Starting Metro Bundler iOS Bundled 40778ms node_modules\expo-router\entry.js (1170 modules) Android Bundled 44507ms node_ ...

阅读全文...

Windows 11 上生成 public key

最近在搞 React Native Android App 的测试,由于涉及到 Android Studio 的使用,所以不适合在 WSL Ubuntu 环境下开发了。 于是把开发环境都搭建在了 Windows 11 系统里。命令行自然换成了 PowerShell,但是由于没有 public key,git 提交代码到远程仓库,就非常麻烦。 搜索了一下,发现 Windows 上已经可以直接使用 ssh-keygen 生成 key 文件了 (不知道啥时候支持的😅)。参考: https://learn.microsoft.com/en-us/windows-server/administratio ...

阅读全文...

Github Copilot Chat 初试,通过 SQL 导入 CSV 文件到 MySQL 数据表

我想将一个 Excel 中的数据导入到 MySQL 数据表,首先,将 Excel 转成了 CSV 文件。 但是不知道为啥,MySQL Workbench 的 Table Data Import Wizard 选中 CSV 文件之后就崩溃。 于是我想为何不用 Github Copilot 生成 SQL 来处理呢?正好试试 Chat 功能。 非常 nb,稍微修改一下就能直接使用。你可能会觉得,这跟直接向 chatgpt,或者豆包之类的 AI 问问题,得到答案没有什么不同啊?但是,copilot 加入了文件 context 之后,就能精准的把字段都识别出来了,省去了手工输入字段的麻烦。 Copil ...

阅读全文...

对不起豆包,我开通了 GitHub Copilot Pro 会员

体验了 GitHub Copilot Free 功能有两个周了吧,整体上还是非常惊艳的。虽然基本的功能豆包 marscode 都支持,但是我总感觉 copilot 的代码自动补全更强大一些。没有具体的对比指标,主观性更强一些。而且 copilot 还支持 vim 插件,就冲这份情怀,也值得冲一波,毕竟白嫖 GitHub 这么多年。 copilot free 每月 2000 次的自动补全额度是否够用。我觉得应该是不够用的。假设一个月工作 20 天,一天只有 100 次,一天工作五小时,一个小时只有 20 次补全。这肯定是不够的。特别是使用之后,就会产生严重的依赖性。一分钟用个 10 次都有可能。 ...

阅读全文...

React Native 编译 Android APK

React Native 编译 Android APK 真是费劲,周末折腾了半天。浪费生命。有空试试 Google NPX 能否云编译。 国内的网络环境,搭建环境能要人命。 新建项目 npx create-expo-app@latest 网页浏览器调试 > npm run web Android 真机调试 PS D:\android_sdk\platform-tools> .\adb.exe devices List of devices attached 1eb7903e device 最好是把 adb.exe 的目录,放到系统环境变量中。要不每次都要到 An ...

阅读全文...

小米澎湃 OS 2 开启开发者模式

小米澎湃 OS 2 开启开发者模式,跟之前的 Android 系统开启开发者模式,类似的步骤。 主要分两步: 步骤一 点击澎湃 OS 的设置功能,即手机主屏幕上的设置 APP,进入我的设备; 在我的设备里,下滑,点击全部参数与信息 在全部参数界面里,点击“OS版本” 区域七次 此时小米系统会提示已开启了开发者选项功能。 步骤二 打开了开发者选项之后,需要回到设置界面 在底部找到更多设置 更多设置里有个开发者选项,进入 启用三个功能:1. USB 调试,2. USB 安装, 3. USB 调试(安全设置) 然后就能在 Android Studio 中看到你的小米手机设备了。 ...

阅读全文...

Windows 系统通过 Chocolatey 安装 Node

突然想尝试一下 React Native,把一个用 react 开发的移动端网页转成 Android App。 由于我的 Android Studio 开发环境安装在 Windows 11 系统上,所以需要对应的在 Windows 系统上安装 React Native 开发环境。而安装 NodeJS,RN 官方推荐使用 Chocolatey 工具。 We recommend installing Node via Chocolatey, a popular package manager for Windows. 什么是 Chocolatey Chocolatey 是一个适用于 Windo ...

阅读全文...

docker 中 eventlet dnspython 域名解析超时

用 flask-socketio 实现了一个 socketio 的后台接口,由于 flask-socketio 依赖 eventlet,所以又安装了 eventlet。 然后发现其在 docker 内使用时,无法解析 docker compose 中配置的容器别名。 折腾了半天,最重要的收获是,尽量不要用 python eventlet 这些库,就跟玩具一样,完全浪费生命。早换 golang 早享受。 DNS Lookup timed out redis.exceptions.ConnectionError: Error -3 connecting to redis:6379. Lookup ...

阅读全文...