Go 中"坑爹"的类型转换

go 代码

package main

import (
	"fmt"
	"math"
)

func main() {
	var count uint32
	fmt.Printf("count: %d\n", count)
	fmt.Printf("count - 1: %d\n", count - 1)
	// num := math.Pow(2, float64(count-1))
	fmt.Printf("math.Pow(2, float64(count-1)): %f\n", math.Pow(2, float64(count-1)))
	fmt.Printf("int(math.Pow(2, float64(count-1))): %d\n", int(math.Pow(2, float64(count-1))))
	fmt.Printf("uint32(math.Pow(2, float64(count-1))): %d\n", uint32(math.Pow(2, float64(count-1))))
	fmt.Printf("int32(math.Pow(2, float64(count-1))): %d\n", int32(math.Pow(2, float64(count-1))))
	fmt.Printf("uint64(math.Pow(2, float64(count-1))): %d\n", uint64(math.Pow(2, float64(count-1))))

	fmt.Printf("int64(pow(2,1023): %d\n", int64(math.Pow(2, 1023)))
	fmt.Printf("uint64(pow(2,1023): %d\n", uint64(math.Pow(2, 1023)))
}
[Read More]
go 

为什么程序员更应该支持正版软件?

做对的事情

我始终觉得,程序员应该将更多的精力花费在自己的专业上。如果在自己可接受的范围里面,花钱去支持正版软件,节约自己的时间,提高幸福感,才是正确的事情。

[Read More]
思考 

MantisBT 安装

MantisBT 安装

github 地址 注意,不能从 release 页面下载来安装,要从官网进行下载

下载并解压

# curl -LO https://github.com/mantisbt/mantisbt/archive/release-2.24.1.zip # 这个代码是错误的
curl -LO https://nchc.dl.sourceforge.net/project/mantisbt/mantis-stable/2.24.1/mantisbt-2.24.1.zip
unzip unzip release-2.24.1.zip

安装官方文档

建议详细阅读官方文档,不然将会和我一样遇到一车子的坑。

[Read More]

V2ray 终端代理

V2ray 终端代理设置

我可能是个白痴吧,从业这么久了,都没有研究过在终端加速 HTTP/HTTPS,特别是下载 github 的开源代码,或者使用 brew 更新或者安装软件。

昨天竟然才明白,终端使用了代理之后,ping 不通谷歌或者非死不可是正常的。所以之前的郁闷一下就解决了。下面说说在三个操作系统上简单的设置吧。

Mac

拷贝代理地址

如图,右键选择菜单项,地址就会被拷贝,然后在终端执行就 OK 了。

右键选中Copy代理地址

[Read More]
V2ray 

谈谈我对 Mac 的看法

当初错误的决定

Air 是 2015 年初买的 2014 年的 128GB机器,自己一个人的深圳呆的非常无聊,想买点啥来填补内心的空虚,索性就买了一个 Macbook Air。为啥不买 Pro? 因为当时的工资还不够买一个 Pro,而且看同事用的 Pro,颜值也不是很好,但是当买回来之后,用了一段时间之后,感觉还是视网膜屏幕舒服。其实现有看来,当初应该买个 Pro,最起码用的时候,看着很养眼……

一直闲置的机器

讲道理,上班一直用的 Windows 开发,下班也比较累,几乎用笔记本在家解决一下线上的问题。对于 Mac 真的就是有啥问题,反正凑合能用即可,Mac 上的快捷键到最近我都认不全。

[Read More]
Mac 

Mac 重装之后,删除容器中的其它卷宗

问题

128GB 的机器,重新安装机器之后,安装完一些必备的软件,发现只有 8GB 可用了,要知道我是为了节省一个空间才重新安装的,结果成这样,恶心程度可想而知啊。

如图:
可怜的存储空间

存储空间查看

关于本机 -> 存储空间
发现『容器中的其它卷宗』占用了 70GB+

一番谷歌

Apple 论坛上并没有找到解决方案,让我重启,重启并没有任何改善。

[Read More]
Mac 

go-micro-broker-kafka-demo

困惑

有点小心动要研究一下 go-micro 的 broker,正好在研究 kafka,想找个 demo 尝试一下,但是真让人头大,并没有找到很容易上手的案例,于是自己码一篇来帮助有兴趣研究的朋友。

V2 版本

代码

https://github.com/micro/examples v2 版本下面的 broker/main.go 中增加了一行代码

_ "github.com/micro/go-plugins/broker/kafka/v2"
[Read More]

C++ Mysql null 引发的血案

代码

出错代码段

bool CGameServer::getAccountInfoByUserId(int user_id, UserAccountData& data) {                                                                                          
    if (connectToLocalDB()) {
        log_error("connect to db failed");
        return false;
    }

    TLIB_DB_LINK *pTempDBLink = &m_stLDBLink;

    snprintf(pTempDBLink->sQuery[0], sizeof(pTempDBLink->sQuery[0]), 
        "select bind_mark, account, password, state, device_mark, country, tunnel, \
        register_version, transfer_code, bind_equipment from account_data where \
        user_id=%d", user_id);
    //......
                if (pTempDBLink->stRow[i]) {
                    data._transfer_code = pTempDBLink->stRow[i++];
                }

                if (pTempDBLink->stRow[i]) {
                    data._bind_equipment = atoi(pTempDBLink->stRow[i++]);
                }
   //......
[Read More]
C++  MySQL 

管理后台关于时间的“补丁”

我们管理后台的历史

18年可以新做的项目,要求我们做管理后台,但是我之前没有前端的任何经验,另外两个小伙伴也没有。只是用 Go 做过简单的页面。只接触过一点点模板的东西,要做一个管理后台,难度可想而知。
但是坚持了下来,19年后台经过两三次的框架重构,算是有模有样了吧。

问题显现

刚开始,我们只有国际版本的后台,使用的是 UTC 时间,管理后台上有很多关于活动时间的设置,之前并没有任何关于时间的标准设计方式。所以后台页面传入到后台的时间格式有两种,一种是时间格式字符串,例如 2020-05-20 20:00,另外一种是以时间戳的方式传递给后端

[Read More]