go

Excelize 2.3.2 发布, Go 语言 Excel 文档基础库, 2021 年首个更新

走远了吗. 提交于 2021-01-23 13:20:55
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目(GSP)、 2018 开源中国码云 Gitee 最有价值开源项目 GVP 。 开源代码 GitHub: github.com/xuri/excelize Gitee: gitee.com/xurime/excelize 中文文档: xuri.me/excelize/zh-hans 2021年1月4日,社区正式发布了 2.3.2 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog 。 Release Notes 此版本中最显著的变化包括: 新增功能 数据透视表 API AddPivotTable 支持缺省列与多重数据源,相关 issue #710 使用

耶鲁大学教授给研究生做科研的11条“军规”!

谁说胖子不能爱 提交于 2021-01-23 13:04:29
本文译自耶鲁大学Stephen C. Stearns教授的文章“Some Modest Advice for Graduate Students”。他是生态学与进化生物学讲座教授,他开设的公开课《进化、生态和行为原理》非常精彩(部分课程已翻译成中文)。华盛顿大学生物学讲座教授Raymond B. Huey说,唯有这篇文章可以与他自己的文章“如何做一个优秀的科学家”(On becoming a better scientist”媲美,相提并论。 >>>> 一 永远要做好最坏的打算 凡事预则立,不预则废。你只要做一点点的“预”,就可以让你在博士生涯中避免一些灭顶之灾。想吐槽就吐槽吧(Be cynical)。假如你的研究计划行不通,假如某个导师非但对你的研究计划不予支持,甚至嗤之以鼻。那么,你还是赶紧换一个研究题目为妙。 二 别指望教授来管你 现实中,有些教授会去管你,有些则不会去管你。大部分教授估计想管你,但他们整日都忙得晕头转向,不亦乐乎,自己都顾不过来,那有时间去管你呢,爱莫能助。那么,你就得完全靠自己,而且最好习以为常。我这么说有多层含义,其中两个要点是: 1.你最好尽早确定你到底想做什么题目。学位是你要去拿,而不是教授要去拿,你要你自己去争取。当然,导师也不会袖手旁观,导师会给你一些指导,也会在一定程度上帮你解决你在培养程序和经费上的后顾之忧,但是,且记

三年半 Java 后端鹅厂面试经历,最后跪了!

余生颓废 提交于 2021-01-23 09:10:59
经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征。 鹅厂 面试职位: go后端开发工程师,接受从Java转语言。 都知道鹅厂是cpp的主战场,而以cpp为背景的工程师大都对os,network这块要求特别高,不像是Java这种偏重业务层的语言,之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式。所以OS这块吃的亏比较大。 一面基础技术面 电话面试,随便问了些技术问题,最后还问了个LeetCode里面medium级别的算法题,偏简单。 1、redis有没有用过,常用的数据结构以及在业务中使用的场景,redis的hash怎么实现的,rehash过程讲一下和JavaHashMap的rehash有什么区别?redis cluster有没有了解过,怎么做到高可用的?redis的持久化机制,为啥不能用redis做专门的持久化数据库存储? 2、了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?tcp怎么保证有序传输的,讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用(参考quic)? 3、知道udp是不可靠的传输,如果你来设计一个基于udp差不多可靠的算法,怎么设计? 4、http与https有啥区别?说下https解决了什么问题,怎么解决的

三年半Java后端面试经历

邮差的信 提交于 2021-01-23 08:18:01
<p>经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征。</p> <h3>鹅厂</h3> <p>面试职位:go后端开发工程师,接受从Java转语言 </p> <p>都知道鹅厂是cpp的主战场,而以cpp为背景的工程师大都对os,network这块要求特别高,不像是Java这种偏重业务层的语言,之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式。所以OS这块吃的亏比较大</p> <h5>一面基础技术面</h5> <p>电话面试,随便问了些技术问题,最后还问了个LeetCode里面medium级别的算法题,偏简单</p> <ol> <li>redis有没有用过,常用的数据结构以及在业务中使用的场景,redis的hash怎么实现的,rehash过程讲一下和JavaHashMap的rehash有什么区别?redis cluster有没有了解过,怎么做到高可用的?redis的持久化机制,为啥不能用redis做专门的持久化数据库存储?</li> <li>了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?tcp怎么保证有序传输的,讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用?(参考quic)</li> <li>知道udp是不可靠的传输

因用了Insert into select语句,程序员惨遭开除!!!

Deadly 提交于 2021-01-23 06:51:55
作者:不一样的科技宅 来源:juejin.im/post/5e670f0151882549274a65ef 前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,她发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后她就被开除了。 事故发生的经过。 由于数据数据库中order_today数据量过大,当时好像有700W了并且每天在以30W的速度增加。所以上司命令xxx将order_today内的部分数据迁移到order_record中,并将order_today中的数据删除。这样来降低order_today表中的数据量。 由于考虑到会占用数据库I/O,为了不影响业务,计划是9:00以后开始迁移,但是xxx在8:00的时候,尝试迁移了少部分数据(1000条),觉得没啥问题,就开始考虑大批量迁移。 在迁移的过程中,应急群是先反应有小部分用户出现支付失败,随后反应大批用户出现支付失败的情况,以及初始化订单失败的情况,同时腾讯也开始报警。 然后xxx就慌了,立即停止了迁移。

Why net.DialTimeout get timeout half of the time?

一曲冷凌霜 提交于 2021-01-23 05:43:14
问题 This is my test code, I set 6s timeout, but the program execute only for 3s, Why? package main import "net" import "time" import "fmt" func main() { fmt.Println(time.Now()) conn, err := net.DialTimeout("tcp", "google.com:80",6*time.Second) // chinese people can't access google fmt.Println(time.Now()) fmt.Println(conn,err) } Test result: 2016-05-18 16:21:31.325340213 +0800 CST 2016-05-18 16:21:34.32909193 +0800 CST <nil> dial tcp 59.24.3.173:80: i/o timeout 回答1: Your code is OK, your network

Why net.DialTimeout get timeout half of the time?

二次信任 提交于 2021-01-23 05:41:28
问题 This is my test code, I set 6s timeout, but the program execute only for 3s, Why? package main import "net" import "time" import "fmt" func main() { fmt.Println(time.Now()) conn, err := net.DialTimeout("tcp", "google.com:80",6*time.Second) // chinese people can't access google fmt.Println(time.Now()) fmt.Println(conn,err) } Test result: 2016-05-18 16:21:31.325340213 +0800 CST 2016-05-18 16:21:34.32909193 +0800 CST <nil> dial tcp 59.24.3.173:80: i/o timeout 回答1: Your code is OK, your network

Why net.DialTimeout get timeout half of the time?

喜夏-厌秋 提交于 2021-01-23 05:41:07
问题 This is my test code, I set 6s timeout, but the program execute only for 3s, Why? package main import "net" import "time" import "fmt" func main() { fmt.Println(time.Now()) conn, err := net.DialTimeout("tcp", "google.com:80",6*time.Second) // chinese people can't access google fmt.Println(time.Now()) fmt.Println(conn,err) } Test result: 2016-05-18 16:21:31.325340213 +0800 CST 2016-05-18 16:21:34.32909193 +0800 CST <nil> dial tcp 59.24.3.173:80: i/o timeout 回答1: Your code is OK, your network

How do I convert date to the string in go using locale?

你。 提交于 2021-01-22 13:23:39
问题 I convert date to a string this way: d.Format("Mon 02. Jan") and I get something like Fri 27. Jan How can I switch the locale and get the string in other language? 回答1: You can't. The Go standard library does not contain localized month, day and zone names. The names are wired into the time package. For example, the name of the months returned by Month.String() are stored in the unexported time.month global variable: var months = [...]string{ "January", "February", "March", "April", "May",

How do I convert date to the string in go using locale?

江枫思渺然 提交于 2021-01-22 13:22:33
问题 I convert date to a string this way: d.Format("Mon 02. Jan") and I get something like Fri 27. Jan How can I switch the locale and get the string in other language? 回答1: You can't. The Go standard library does not contain localized month, day and zone names. The names are wired into the time package. For example, the name of the months returned by Month.String() are stored in the unexported time.month global variable: var months = [...]string{ "January", "February", "March", "April", "May",