实时上传数据备份文件到S3

来源:kawabangga   |   更新时间: 3天前   |   分类: Linux


最近写了一个小工具,用处是可以将数据库的备份文件上传到 S3 上面去。学到了一些很有意思的东西,觉得值得记录一下。

工具的源代码:https://github.com/laixintao/mydumper2s3

最简单的方法,只要将数据库 dump 出来,然后上传到 S3 即可。

但是全量 dump 出来数据库占用磁盘的空间较大,并且上传完之后一般都删掉了。有一种可以不浪费本地磁盘的空间的方法,之前在博客《用 ssh 传输文件》中介绍过。我们可以用管道将 dump 的进程和上传的进程连接起来,这样就不需要本地的磁盘了。

查看原文

手把手教学,如何解决 git 冲突?

来源:kingname   |   更新时间: 9天前   |   分类: Git


Git 是现在使用最广泛的源代码管理程序。一个合格的程序员必须要熟练掌握 Git。在使用 Git 的时候,最让人头疼的问题是什么?肯定是解冲突了。如果两个人修改了同一个文件的相同位置,那么当一个人提交代码并合并到主分支以后,第二个人尝试合并时就会触发冲突。大多数情况下,Git 自己知道如何把两份代码合并起来。但有时候当 Git 不知道应该怎么合并,就会提示你需要手动解决冲突。

我以前学习 Git 的时候,由于没有人跟我一起提交代码,所以我为了模拟两人提交的情况,会把代码 clone 到两个文件夹里面,然后把相同的位置分别做不同的修改,再分别提交。过程非常繁琐。

查看原文

现场打脸:如何使用Selenium批量上传文件?

来源:kingname   |   更新时间: 14天前   |   分类: Python


我们知道,Selenium里面,当我们获得一个 element 对象的时候,如果它是一个输入框,那么我们可以使用.send_keys()方法,模拟键盘按键,发送特定的字符串到输入框中,例如:

input_box = driver.find_element_by_xpath('//input[@class="xxx"]')
input_box.send_keys('账号 xxx')
查看原文

python内置模块urllib介绍

来源:foofish   |   更新时间: 17天前   |   分类: python


urllib 是 python 的内置模块, 主要用于处理url相关的一些操作,例如访问url、解析url等操作。

urllib 包下面的request模块主要用于访问url,但是用得太多,因为它的光芒全都被 requests 这个第三方库覆盖了,最常用的还是parse模块。 写爬虫过程中,经常要对url进行参数的拼接、编码、解码,域名、资源路径提取等操作,这时parse模块就可以排上用场。

查看原文

2020 暑假总结

来源:greyli   |   更新时间: 22天前   |   分类: 思考与随感


最后一次写暑假总结是在2016 年,之后因为不再上学,也就没有了暑假这个概念。今年夏天回家呆了一个月,算是自己给自己放的暑假。

家里的狗生了七只小狗,因为胎盘没及时去掉,死了三只。家里的蚂蚁似乎变多了,在院子里扔一小块饼干或西瓜,过一会就会看到密密麻麻的蚂蚁趴在上面。除此之外,一切几乎都是老样子:狗总是热得吐舌头。西瓜甜不甜要看运气,但价格大都不到城里的一半。附近的工厂有时会在早晨制造噪音,半夜偶尔还会听到邻居用「古法洗衣」时棍子敲打衣服的声音*。

查看原文

公众号如何靠互推涨粉

来源:foofish   |   更新时间: 26天前   |   分类: 公众号


公众号互推是低成本涨粉最快的方式之一。

所谓互推就是互相在自己公众号推荐对方公众号二维码,给对方带来粉丝增长的商业互吹模式。

如何组织互推

互推形式上有单推和多推两种。单推就是你和一个公众号互相推荐,在文章里面只放对方的一个公众号。而多推是由多个公众号参与, 通常在一篇文章里面放6到10个公众号进行互推。

两种推广的效果也各不相同,先来说说多人互推。

查看原文

搞了下Github Profile

来源:dongwm   |   更新时间: 27天前   |   分类: 


上段时间 Github 支持了自定义个人 Profile 页面,如果有一个用户名同名的仓库且包含README.md就会读取其内容显示在 Profile 页面头部。趁着周末我也搞了下自己的 Profile 页面,看看效果:

接着分享一下内容是怎么来的,以及如何自定义 Actions

README.md 本质上还是用 markdown 语法,但是为了更好实现一些样式和结构可以直接写 HTML,但是自定义的限制还是比较多的,例如写的 CSS 不生效,即便用 style 标签写进去也不可以。

查看原文

近况更新

来源:kawabangga   |   更新时间: 27天前   |   分类: 我的生活


好久没写博客了,决定唠叨一下最近的生活和工作,避免这个博客长草。

大约从5月份开始,我们项目进入了“闭关室”,几乎是封闭开发的状态,但是我没想到的是,到现在我都没有从闭关室里面出来。这几个月的工作中经历了很多事情,大多都不顺,但是总之还是坚持到现在。最有意思的是我在很短的时间内换了 4 个老板:一开始的老板突然就转岗了,我直接汇报给老板的老板;2天后,老板的老板“拥抱变化”了,我就汇报给老板的老板的老板;最近老板的老板的老板招来一位转岗过来的博士,博士就成了我现在的老板。

查看原文

没有知识存在的荒原

来源:greyli   |   更新时间: 1月前   |   分类: 思考与随感


最近打开知乎的链接经常看到 404 页面:

想象一个这样的场景:一个不了解 404 含义的用户,访问某个知乎的网址,结果看到提示「你似乎来到了没有知识存在的荒原」。咦,原来知乎是没有知识存在的荒原?想想就很有意思。以前没有细想它的文案,现在发现这其实是一个预言:知识要么都被你的审查官删掉了,要么就被混进越来越多的垃圾信息里,这样下去知乎恐怕真的要变成知识的荒原了。

查看原文

property的AttributeError的传播问题

来源:dongwm   |   更新时间: 1月前   |   分类: 


去年我写过一篇你用对 hasattr 了嘛?介绍过被 property 装饰的方法内部抛错会引起 hasattr 的结果为 False。

今天又遇到了一个 AttributeError 向上传播的问题 (Python 2),一起来看看

先上代码:

In : class T(object):
...:     @property
...:     def name(self):
...:         print(self.missing_attribute)
...:         return 42
...:     def __getattr__(self, name):
...:         raise AttributeError(name)
...:

In : t = T()

In : t.name
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-afc812d51b9a> in <module>()
----> 1 t.name

<ipython-input-4-a0ba2d3a6446> in __getattr__(self, name)
      5         return 42
      6     def __getattr__(self, name):
----> 7         raise AttributeError(name)
      8

AttributeError: name

In : [k for k in dir(t) if not k.startswith('_')]
Out: ['name']
查看原文

超链接跳转费

来源:greyli   |   更新时间: 1月前   |   分类: 思考与随感


昨天有人给《Flask 入门教程》书稿源码提交了一个PR,主要的修改是在书中的链接前后添加了空格。比如:

改成了:

我一直对这个排版风格持观望态度。如果合并的话,那就要在以后的书稿更新甚至所有网络写作中保持这个习惯,再三考虑之下,我还是决定暂不这样做。最主要的考虑是添加空格会影响阅读体验,好像本来平淡无奇的超链接突然自带聚光灯。一来在观感上突兀,二来会影响阅读的流畅感(大多数情况下链接文字本身也是句子的一部分)。

查看原文

Reaper 使用 ReaFir 插件对音频降噪教程

来源:kawabangga   |   更新时间: 2月前   |   分类: 我的生活


最近和Luke录制了一期播客。本来我们是买了一个话筒寄给嘉宾的,但是这个话筒不知为啥有电流声。所以就临时改成用手机录音了,出了点状况,导致最终出来的音质不是很好,Luke 的音轨底噪有一些强。放弃这一期不发布实在可惜,一筹莫展之际,我把剪辑好的 Mp3 文件发给最近一直在催更我的朋友听了,他说他用 iMovie 降噪之后听着还可以。这让我重新看到了希望,我去找了一些 Reaper 的降噪教程,想尝试对 Luke 的音轨进行降噪。最后的效果还不错,所以这里将我学到的降噪技巧分享一下,方便制作播客的兄弟们参考。

查看原文

公交邻座的抖音

来源:greyli   |   更新时间: 2月前   |   分类: 思考与随感


每次出门在公交和地铁上都不自觉的偷看别人的手机屏幕。尽管这样做不对,但是好奇心还是让我忍不住偷偷张望。当然,我不会去看别人的聊天记录和支付密码,大多数时间都是在看抖音。抖音、快手们争相接过了电视的接力棒,以一种更高效的方式来对人类进行信息投喂(他们称之为算法推荐)。我像躲避电视一样躲避这类被动灌输的信息流,我知道自己一样抵挡不住,所以我只在偶尔出门的时候陪公交和地铁邻座的陌生人(偷偷)瞟两眼。

查看原文

Google BBR 拥塞控制算法简单介绍

来源:kawabangga   |   更新时间: 2月前   |   分类: 程序开发笔记


最近在网上看了一些 BBR 的资料,简单玩了一下,这里做一个记录。

BBR 是一种拥塞控制算法。拥塞控制算法的目的简单来说就避免将过多的包发到网络上,造成网络堵车。假如现在网络上比较拥堵,那么 TCP 就使用拥塞控制算法来让发送端发的慢一些。如何在不造成网络拥堵的情况下,又能利用带宽快速发送数据,就是拥塞控制算法要解决的问题了。

这篇文章介绍了常见的拥塞控制算法。一般的拥塞控制算法是通过丢包来认为网络中是否发生拥塞的,这样的问题是,网络是存在一定的概率因为错误而丢包,就会导致无法充分利用带宽;另外一个问题是网络有可能会有 buffer 存在,导致发送端认为的网络容量因为没考虑到 buffer 比实际的要高。

查看原文

不知道取什么标题之任天堂理财

来源:dongwm   |   更新时间: 2月前   |   分类: 


早就想水一篇,无奈实在太忙了。今天终于抽出点时间写写疫情这段时间理财的故事,以及过程中我觉得有意思发生的故事和感悟。

先说结论吧,靠它 (们) 小挣一笔要靠天时地利人和:疫情、推特、海淘经验、技术手段。挨个来说

由于对国内环境的不信任,小孩出生不久我就开始学习海淘屯奶粉尿不湿,算是比较早海淘的一拨人,不过当时完全没想着挣钱,就是自用。再之后就是在黑五等活动费期间从美亚、纽巴伦官网等买 Ps4、MacBook、鞋子等等,有时候也会去 eBay 拍一些喜欢的绝版的限定的东西。

查看原文

不知道取什么标题之战胜脱发

来源:dongwm   |   更新时间: 2月前   |   分类: 


这篇文章跟大家分享一下我的脱发以及如何找到治疗并且取得很不错成效的经历,如果你发量优秀没这个烦恼现在就可以结束阅读了哈 (^▽^)

我这个博客过去一直在写技术性文章,今天说这个「脱发」脱纲了,不过考虑到身边认识的程序员朋友、同事,(我特别观察过)很多人或多或少都会有脱发这个问题,觉得很多人都可能遇到且没有找到正确的治疗方案,就有了这一篇。

回溯起来,我从大学时代就开始掉头发,这些年一直都没有间断的掉,每次洗头发之后都可以看到水里会飘一层头发,不过我的心态一直还算比较正常,没有特别担忧过。有这种放松的心态主要是因为在三十岁之前整体掉的头发和新增的头发还是很平衡的:虽然掉但是没有显的发量变少。

查看原文

FlaskCon 2020 参会指南

来源:greyli   |   更新时间: 2月前   |   分类: 活动与游记


FlaskCon是由社区举办的免费线上 Flask 会议,欢迎 Flask 的使用者和爱好者参加。这是一份非官方参会指南,希望可以帮到你。

会议时间

基于演讲者优先的考虑(因为听众可以看录播),为了让演讲者不用半夜爬起来演讲,所以有了现在的日程时间:

议题

一共收到 44 个议题申请,按照两天的时间安排,最终只保留了 18 个。大致分为下面几类:

查看原文

关于 Kubernetes 和容器化的一些随想

来源:manjusaka   |   更新时间: 2月前   |   分类: 水文


这段时间在不少群里争论过关于 Kubernetes 和容器化的一些事,干脆总结下一些碎碎念作为一个概括吧。本文仅代表个人立场,不代表商业观点

目前很主流的一个观点,是能上容器尽可能上容器,说实话这个想法实际上是有一定的合理性的,去 review 这个想法,我们需要去看一下容器这个东西,给我们带来了什么样的改变

容器首先毫无疑问,会给我们带来非常多的好处:

那么,看起来我们是不是可以无脑用容器?不,不是,我们需要再来 Review 一下,容器化后我们所要面临的一些弊端:

查看原文

Python 工匠:在边界处思考

来源:piglei   |   更新时间: 2月前   |   分类: 


这是 “Python 工匠”系列的第 15 篇文章。[查看系列所有文章]

2016 年,Linux 操作系统的创造者 Linus Torvalds 参加了一场TED 访谈节目。整个节目的前半部分,主要是他在讲如何在家光着膀子写出 Linux 的故事,没有涉及太多编程相关的事情。

不过在访谈快结束时,突然出现了一个有趣的环节。主持人向 Linus 提问道:“你曾说过更愿意和那些有着好的代码品味的人共事,那在你眼里,什么才是好的代码品味?”

查看原文

JavaBean, POJO, DTO, VO, 傻傻分不清楚?

来源:kawabangga   |   更新时间: 3月前   |   分类: Java


关于这些概念,网上有很多解释,大多数都是胡说八道。我在 Stack Overflow 上看到了一个版本,认为这个理解是比较合理的。

太长不看版:

DTO 和 VO 用途是一样的,大多数语境下都可以互相替换。JavaBean 是一个惯例,DTO 和 VO 都遵循了这个惯例,所以他们都是 JavaBean. DTO, VO 和 JavaBean 都是 POJO.

Sun 推出了一个JavaBean 的惯例,遵循了这个惯例的 Java 对象都是 JavaBean. 所以首先要理解的是,JavaBean 并不是一个实现,也不是接口,只是一个惯例。

查看原文

本页内容使用均遵循相关开源协议,部分内容获得作者本人授权