2024-12-27 05:31:09
本文不构成任何投资建议。
那天在 领英/LinkedIn 上看到一则帖子:一个人每天坚持购买价值 30 美元的比特币,持续了整整 8 年。这种策略有一个专业术语,叫做“美元成本平均法”(Dollar Cost Averaging)。最终结果如何?他累计投入 86,370 美元,现在这些比特币的价值高达 100 万美元。
This guy bought $30 worth of BTC a day for 8 years. This is sometimes known as dollar cost averaging. The net result? $86,370 now worth $1M in Bitcoin.
如果你对投资一窍不通,其实也可以选择一种最简单的方法:定投比特币。不用去冒险尝试其他更复杂或波动性更大的加密货币,甚至第二加密货币ETH(以太坊)在更换了PoS/Proof of Stake共识算法后也有一定的风险。比特币作为全球首个且最具共识的加密货币,其归零的概率已经微乎其微。
定投的关键在于规避市场情绪的干扰,无论牛市或熊市,你都坚持以相同金额购买资产。这种方法帮助投资者在价格低时买入更多份额,价格高时买入更少份额,从而在长期内平滑成本,避免一次性投入的风险。比特币本身的稀缺性(固定总量 2100 万枚)和其作为“数字黄金”的定位,也使得长期持有者有较高的概率获得收益。
有人说,现在比特币10万美金已经很高位了,再涨收益可能不是很多,但是你要有信仰,在我看来,2025年将是下一个牛市,大饼至少15万美元,甚至有可能到20万刀,你看以往几次减半后都是会大涨一波的。比特币是数字黄金,趁现在有能力,买它个1-2个,没有能力也买个0.01个。你要知道比特币的稀缺性,总量2100万个,但由于很多人忘记密钥,丢了等,实际流通量会更少,所以地球上每个人还不够分到一个呢。
尽管比特币的归零概率小,但它依然是一个高波动性的资产。过去10几年,它经历了数次暴跌与牛市,很多人在市场恐慌中中途放弃。坚持到底需要极强的耐心和信念。因此,投资比特币的资金应是你能够长期承受的闲置资金,而非生活必需的储蓄。
买了就忘记它,用闲钱来投资大饼,不要追求/玩短期,更不要去借贷来买。一定要在能承受的损失能力范围内来买。
这个案例告诉我们,简单的投资策略加上持之以恒的执行力,能带来惊人的回报。对于普通人来说,比起尝试“抄底”或“逃顶”,选择定投反而是更加适合的方式。毕竟时间才是投资者的最大盟友。
你也许不需要完全复制这位投资者的策略,但这背后的理念值得深思:用规律的行动面对不可预测的市场,或许才是真正的智慧之选。
“美元成本平均法”(Dollar Cost Averaging,简称 DCA)是一种投资策略,核心思想是定期以固定金额购买某种资产,无论市场价格高低。比如,你可以每周或每月投入相同金额购买股票、加密货币或基金,而不需要纠结于短期的市场波动。
这种方法的优点是可以平滑投资成本。当市场价格较低时,固定的金额能够买入更多的资产份额;而当价格较高时,同样的金额则买入较少的份额。长期坚持下来,投资者的平均购买成本通常会低于市场的平均价格,特别适合那些无法准确预测市场走势的人。
虽然 DCA 是一种稳健的投资方法,但它也有局限性:
美元成本平均法是一种适合大众投资者的简单高效策略,尤其对那些没有时间研究市场、无法预测趋势的人特别友好。这种方法通过纪律性投入规避了情绪化交易的弊端,并且适合资产价格波动较大的市场,比如股票和加密货币。
对于普通人来说,DCA 的意义在于让投资回归理性:专注于时间的复利效应,降低短期波动的干扰。在投资过程中,时间是我们的朋友,而急功近利往往会成为最大的敌人。
英文:Simple investment strategy: regular investment in Bitcoin/BTC (Dollar Cost Averaging)
本文不构成任何投资建议。
本文一共 1823 个汉字, 你数一下对不对.2024-12-26 05:17:57
2024年真是加密货币的牛市,不仅比特币突破了10万美元,各种山寨币(Altcoin)也纷纷跟进。其中,孙宇晨的波场币(TRON/TRX)和他的HTX(火币平台币)表现尤为亮眼。
波场币(TRX)在很长一段时间内表现稳定,即便在比特币下跌时,它也能维持增长趋势。波场网络确实非常实用,尤其是在上传USDT时,手续费远低于以太坊(ETH)。这是因为波场采用了DPoS(委托权益证明)共识机制,网络由28个超级代表(Super Representative)维护。成为超级代表的注册费是9999个TRX,按当前每枚TRX约0.25美元计算,注册费用大约为2500美元。
回想之前在STEEM平台写文章时,SteemIt公司曾空投过TRX糖果,那是2020年孙宇晨收购Steemit后推出的活动。虽然这两年活动已经停止,但当时也让我积攒了不少TRX,可以说赚了几顿鸡腿钱。这两个月波场币涨势太猛,最高涨到0.4407美元的历史新高(All Time High)。不过,我在价格0.1几美元时就已经卖掉了一部分。
火币果然“必火”。从前的火币(Huobi)在孙宇晨成为股东之一后进行了大刀阔斧的改革。据传,孙宇晨多年来持续买入HT币,最终成了火币的股东。但他接手后迅速将HT下架,主推新的HTX平台币,这一举动让他饱受争议,被指“又割了一波韭菜”。
这一年我在火币/HTX平台拿了不少空投奖励,使用HTX交易所就能领取,同时通过TRX钱包也能获得一些。在HTX交易所上,还能参与HTX的DeFi产品,早期利率曾高达20%多。现在虽然活期利率降到4%,但这也说明HTX仍有上涨空间。一般来说,DeFi产品的高利息通常意味着币价较低,以此吸引大家囤币;相反,当利息下降时,则说明币价会有上涨趋势,投资者也不再单纯依靠利息收益。
相信孙宇晨的操作(信孙哥),但也需要注意其中的风险。HTX是平台币,但也在搞一些DAO/Decentralized Autonomous Organization/分布式自组织机构,有前景。在HTX交易所可以用HTX来支付或者减免交易所续费。
以上内容仅为个人看法,不构成任何投资建议。投资需谨慎,风险自负。
推荐:注册火币交易所帐号,免费注册,通过DeFi挣钱!
英文:TRON (TRX) and Huobi (HTX) could be the next 100x tokens
之前一些在HTX火币平台上获得HTX空投的帖子:HTX on HTX
2024-12-24 21:15:22
我的个人网站 zhihua-lai.com 本月通过了 Adsense 审核,终于可以再次放置广告,赚些零花钱了。
其实,最初 Adsense 账户通过审核后就能直接放广告,但后来规则变得严格了。如果一个网站长时间没有放置任何 Adsense 广告代码,账户资格会被撤销。重新启用时,需要进行单独审核。如今,在 Google Adsense 中新增一个域名,也必须通过审核后才能投放广告。
为了让我的网站通过审核,我尝试了几次,但总是被拒,原因之一是必须要有足够的内容支持。例如,以前我做的工具网站 SlowAPI.com 就是为了放广告特意搭建了一个 WordPress 博客,还水了15篇原创文章(不能抄袭)才最终通过。
这次的个人网站也遇到了类似的问题。由于是个人主页,只放了个人资料和一个教娃编程视频目录,独立/唯一的内容页数不够,几次申请都未通过。连续失败后,还被要求等待冷冻期才能再次申请。后来,我想到一个办法:把之前在 Dev.To 上发布的文章数据以 JSON 格式导出,用 ChatGPT 帮助生成了一个 PHP 页面,展示这些内容。
然而,一开始我只是更新了网站的站点地图/sitemap,而没有在主页添加指向这些文章的链接,结果审核人员无法找到这些内容,又被拒了一次。最终调整后才顺利通过审核。
另:我之前发在Dev.To的水文帐号被封禁了,因为他们不允许我同时发布在其它平台:steemit和我的博客,不过还好他们提供JSON文章数据下载备份。我这人喜欢到处发/cross-posting,因为也是备份的一种方法,就怕哪个平台跑路或者冻结帐号了。
Low Value Content:内容不够。
根据我的经验,博客或网站需要至少15个独立的原创内容页面(没有版权问题或抄袭)才能满足 Adsense 的最低审核要求。
英文:Minimal Adsense Requirement: 15 Unique Posts (Counter Low Value Content)
2024-12-23 19:30:38
statistics.mode() 函数是 Python 中 statistics 模块的一部分,它返回数据集中出现次数最多的单个值(众数)。与 multimode() 不同,mode() 如果数据集包含多个众数(即多模态数据)或数据为空,则会引发错误。
以下是一些示例来说明 mode() 的行为:
statistics.mode(data)
data: 一个序列(例如 list、tuple),其中的元素是可散列的,用于确定众数。
from statistics import mode data = [1, 2, 2, 3, 4] result = mode(data) print(result) # 输出: 2
from statistics import mode data = ["apple", "banana", "apple", "cherry"] result = mode(data) print(result) # 输出: "apple"
如果有多个众数,mode() 会引发 StatisticsError。
from statistics import mode data = [1, 1, 2, 2, 3] try: result = mode(data) except StatisticsError as e: print(e) # 输出: "no unique mode; found 2 equally common values"
如果数据集中没有值重复,mode() 会引发 StatisticsError。
from statistics import mode data = [1, 2, 3, 4, 5] try: result = mode(data) except StatisticsError as e: print(e) # 输出: "no unique mode; found 5 equally common values"
如果数据集为空,mode() 会引发 StatisticsError。
from statistics import mode data = [] try: result = mode(data) except StatisticsError as e: print(e) # 输出: "no mode for empty data"
在 Python 中,术语 multimode 通常指 statistics.multimode() 函数,这是 Python 3.8 中 statistics 模块的一部分。此函数用于找到数据集中出现次数最多的值(众数)。与 statistics.mode() 不同,后者仅返回单个众数(如果数据集是多模态的会引发错误),而 multimode() 可以处理包含多个众数的多模态数据集。
statistics.multimode(data)
data: 一个序列(例如 list、tuple),其中的元素是可散列的,用于查找众数。
返回输入数据中所有众数的列表。如果没有元素重复,则返回所有唯一值的列表,因为在这种情况下每个值都是众数。
from statistics import multimode data = [1, 2, 2, 3, 4] result = multimode(data) print(result) # 输出: [2]
from statistics import multimode data = [1, 1, 2, 2, 3] result = multimode(data) print(result) # 输出: [1, 2]
from statistics import multimode data = [1, 2, 3, 4, 5] result = multimode(data) print(result) # 输出: [1, 2, 3, 4, 5]
多模态支持:可以处理包含多个同频值的数据集。
优雅地处理唯一数据:如果没有重复值,则返回所有唯一值。
灵活的输入类型:适用于任何可散列对象的序列,包括字符串和元组。
data = ["apple", "banana", "apple", "cherry", "banana", "banana"] result = multimode(data) print(result) # 输出: ['banana']
如果数据集很大,计算众数可能会消耗大量计算资源,因为它需要统计所有元素的出现次数。
特性 | mode() | multimode() |
---|---|---|
返回值 | 单个最频繁的值 | 所有最频繁值的列表 |
多模态数据行为 | 引发 StatisticsError
|
返回所有众数 |
空数据集行为 | 引发 StatisticsError
|
返回空列表 |
最佳用途 | 适用于期望唯一众数的单模态数据 | 适用于包含多个众数的多模态数据或任意数据 |
如果不确定数据是否包含多个众数或无重复值,multimode() 是更安全的选择。
英文:The mode vs multimode in Python
本文一共 702 个汉字, 你数一下对不对.2024-12-23 03:15:22
我一直是自己租用VPS服务器,然后搭建各种服务,比如博客就是Apache2+MySQL数据库。一般来说就是默认参数,没有去管,不过最近发现MySQL的性能参数都很保守,不能发挥整个服务器的性能。
然后我就网上搜索了一下,根据参数配置建议,用ChatGPT写了以下Python和BASH脚本。只需要在需要优化的服务器上,跑一下该脚本,然后就会显示参数配置,然后直接把参数添加到MySQL数据库配置参数文件上: /etc/mysql/mysql.conf.d/mysqld.cnf
然后运行: service mysql restart 重启MySQL服务器。
运行了几周,发现效果很好,博客反应速度也快了很多,这很大原因是根据了内存增加了MySQL缓存大小。
把下面的Python脚本存成 mysql_config.py 然后运行 python3 mysql_config.py
def get_total_ram(): with open('/proc/meminfo', 'r') as f: for line in f: if line.startswith("MemTotal:"): total_ram_kb = int(line.split()[1]) return total_ram_kb * 1024 # 转换为字节(bytes) return 0 # 如果未找到 MemTotal,则返回 0 def calculate_mysql_settings(): # 获取总内存(以字节为单位) total_ram = get_total_ram() # 根据总内存(以字节为单位)计算 MySQL 配置 innodb_buffer_pool_size = int(total_ram * 0.3) # 使用内存的 30% key_buffer_size = min(total_ram * 20 // 100, 512 * 1024 * 1024) # 使用内存的 20%,最大限制为 512MB sort_buffer_size = min(total_ram * 25 // 1000, 4 * 1024 * 1024) # 使用内存的 0.25%,最大限制为 4MB read_rnd_buffer_size = min(total_ram * 625 // 100000, 512 * 1024) # 使用内存的 0.0625%,最大限制为 512KB tmp_table_size = max_heap_table_size = min(total_ram * 5 // 100, 64 * 1024 * 1024) # 使用内存的 5%,最大限制为 64MB join_buffer_size = min(total_ram * 2 // 1000, 4 * 1024 * 1024) # 使用内存的 0.2%,最大限制为 4MB table_open_cache = min(400 + (total_ram // 64), 2000) # 根据内存动态计算,最大限制为 2000 thread_cache_size = min(total_ram * 15 // 1000, 100) # 使用内存的 1.5%,最大限制为 100 innodb_log_buffer_size = min(total_ram * 5 // 100, 16 * 1024 * 1024) # 使用内存的 5%,最大限制为 16MB # 以字节为单位打印配置 print(f"MySQL 配置(基于总内存 {total_ram / (1024 * 1024):.2f} MB):") print("将以下内容添加到 /etc/mysql/mysql.conf.d/mysqld.cnf 的末尾\n") print(f"innodb_buffer_pool_size = {innodb_buffer_pool_size}") print(f"key_buffer_size = {key_buffer_size}") print(f"sort_buffer_size = {sort_buffer_size}") print(f"read_rnd_buffer_size = {read_rnd_buffer_size}") print(f"tmp_table_size = {tmp_table_size}") print(f"max_heap_table_size = {max_heap_table_size}") print(f"join_buffer_size = {join_buffer_size}") print(f"table_open_cache = {table_open_cache}") print(f"thread_cache_size = {thread_cache_size}") print(f"innodb_log_buffer_size = {innodb_log_buffer_size}") # 打印自定义设置 print("expire_logs_days = 3") print("max_binlog_size = 100M") if __name__ == "__main__": calculate_mysql_settings()
会打印出类似以下的配置:
innodb_buffer_pool_size = 626468044 key_buffer_size = 417645363 sort_buffer_size = 4194304 read_rnd_buffer_size = 524288 tmp_table_size = 67108864 max_heap_table_size = 67108864 join_buffer_size = 4176453 table_open_cache = 2000 thread_cache_size = 100 innodb_log_buffer_size = 16777216 expire_logs_days = 3 max_binlog_size = 100M
添加到MySQL的配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf 然后重启数据库即可:service mysql restart
以下是完成同样功能的BASH脚本。
#!/bin/bash # 获取总内存大小(以字节为单位) get_total_ram() { # 从 /proc/meminfo 中提取总内存(以 kB 为单位) total_ram_kb=$(awk '/^MemTotal:/ {print $2}' /proc/meminfo) if [[ -z "$total_ram_kb" ]]; then echo 0 # 如果未找到 MemTotal,则返回 0 else echo $((total_ram_kb * 1024)) # 将 kB 转换为字节 fi } # 根据总内存大小计算 MySQL 配置 calculate_mysql_settings() { # 获取总内存(以字节为单位) total_ram=$(get_total_ram) # 计算 MySQL 配置参数 innodb_buffer_pool_size=$((total_ram * 30 / 100)) # 使用内存的 30% key_buffer_size=$(($((total_ram * 20 / 100)) < $((512 * 1024 * 1024)) ? $((total_ram * 20 / 100)) : $((512 * 1024 * 1024)))) # 使用内存的 20%,最大限制为 512MB sort_buffer_size=$(($((total_ram * 25 / 1000)) < $((4 * 1024 * 1024)) ? $((total_ram * 25 / 1000)) : $((4 * 1024 * 1024)))) # 使用内存的 0.25%,最大限制为 4MB read_rnd_buffer_size=$(($((total_ram * 625 / 100000)) < $((512 * 1024)) ? $((total_ram * 625 / 100000)) : $((512 * 1024)))) # 使用内存的 0.0625%,最大限制为 512KB tmp_table_size=$((total_ram * 5 / 100 < 64 * 1024 * 1024 ? total_ram * 5 / 100 : 64 * 1024 * 1024)) # 使用内存的 5%,最大限制为 64MB max_heap_table_size=$tmp_table_size # 临时表大小等于最大堆表大小 join_buffer_size=$(($((total_ram * 2 / 1000)) < $((4 * 1024 * 1024)) ? $((total_ram * 2 / 1000)) : $((4 * 1024 * 1024)))) # 使用内存的 0.2%,最大限制为 4MB table_open_cache=$(($((400 + total_ram / 64)) < 2000 ? $((400 + total_ram / 64)) : 2000)) # 根据内存动态计算,最大限制为 2000 thread_cache_size=$(($((total_ram * 15 / 1000)) < 100 ? $((total_ram * 15 / 1000)) : 100)) # 使用内存的 1.5%,最大限制为 100 innodb_log_buffer_size=$(($((total_ram * 5 / 100)) < $((16 * 1024 * 1024)) ? $((total_ram * 5 / 100)) : $((16 * 1024 * 1024)))) # 使用内存的 5%,最大限制为 16MB # 打印配置(以字节为单位) echo "MySQL 配置(基于总内存 $((total_ram / (1024 * 1024))) MB):" echo "将以下内容添加到 /etc/mysql/mysql.conf.d/mysqld.cnf 的末尾" echo echo "innodb_buffer_pool_size = $innodb_buffer_pool_size" echo "key_buffer_size = $key_buffer_size" echo "sort_buffer_size = $sort_buffer_size" echo "read_rnd_buffer_size = $read_rnd_buffer_size" echo "tmp_table_size = $tmp_table_size" echo "max_heap_table_size = $max_heap_table_size" echo "join_buffer_size = $join_buffer_size" echo "table_open_cache = $table_open_cache" echo "thread_cache_size = $thread_cache_size" echo "innodb_log_buffer_size = $innodb_log_buffer_size" echo echo "expire_logs_days = 3" # 日志过期天数设置为 3 天 echo "max_binlog_size = 100M" # 最大二进制日志大小设置为 100M } # 主函数调用 calculate_mysql_settings
需要注意的是,我在脚本后面加入了一些我自定义的配置,根据需求自行修改即可。在配置文件里,后面定义的会覆盖前面的,这就是为什么要添加到文件尾的原因。
其中最关键的配置 innodb_buffer_pool_size 我设置为使用当前内存的30%,如果服务器只有数据库/博客这个功能,可以适当的提高比例,比如60%-80%。
英文:Python/Bash Script to Print the Optimized Parameters for MySQL Servers
2024-12-23 00:29:53
我前两年就了解到OneKey这个币圈虚拟货币出金卡,不过去年年底才注册使用的。当时还花了99美元一步升级到顶级黑卡。然后这一年陆陆续续用了这卡,但用得不多,主要就用于支持一些VPS主机费还有CloudFlare,ChatGPT Pro等。
这个卡是美国地址,卡号有两个段,Visa 和 Mastercard,不过由于地址是美国的,刷卡可能会有问题。比如我ChatGPT Pro注册帐号是英国的,然后用这卡支付了几个月,突然有一天帐号就被封,被告知:您的付款记录很可疑。
印象中,用这虚拟货币Crypto Card美元出金卡有手续费,但是并没有啥Cash Back返现卡,如果是非美元购物则会有另一笔手续费,所以我很少用这卡出金变现。
前两个月,OneKey宣布关闭:
关于 OneKey Card 服务停用通知
尊敬的用户,为提高服务质量和优化产品供应,我们将按照以下时间表停用 OneKey Card 服务:自 2024 年 9 月 30 日起,我们将停止新注册和充值功能。
2024 年 10 月 31 日,所有剩余余额将安全转入您的钱包,并可随时提取。
到 2025 年 1 月 31 日,OneKey Card 服务将全面停用。
已充值升级的用户将按规定退款至您的 OneKey Card 钱包。具体规则请参考电子邮件和官方 Twitter 公告。感谢您的理解和支持。Notice of Sunsetting OneKey Card Service
Dear Users, to enhance service quality and optimize our product offerings, we are sunsetting the OneKey Card services according to the following schedule:As of September 30, 2024, we will discontinue new registrations and recharge functions.
On October 31, 2024, all remaining balances will be securely transferred to your wallet and will remain available for withdrawal at any time.
By January 31, 2025, the OneKey Card service will be fully decommissioned.
Users who have upgraded with a recharge will be refunded according to the rules to your OneKey Card wallet. For specific rules, please refer to the email and the official Twitter announcements. We appreciate your understanding and support.
OneKey的老板是个中国人,这是他发的推:
抱歉 Card 没有做到大家期望的样子。
这里有很多挑战,想要同时做到小团队低成本运作、低廉手续费、卡段稳定运行、抗黑灰产、合规… 平衡这些因素是非常困难的。
我们仍然相信 Crypto 支付的趋势不可阻挡,也相信监管和政策法规会随之完善进步,感谢理解。🫶
提款最开始把帐号里的USD/美元换成USDT,结果才发现不支持USDT。后来只能再转成美元,换成USDC,又发现USDC支持的网络里没有ETH以太网,最后找了一圈,只能发到摸茶/MEXC交易所,损失了几美元手续费。
OneKey老板竟然是中国人。
在OneKey里美元/USDT/USDC互相转换是会有少量的费用的。
又少了一个出金的渠道,不过这年头,任何和法币挂钩的产业都很容易被查封,毕竟合规,抗洗钱这些事情很麻烦。
英文:The Sunset of OneKey Crypto Card