3. 树、二叉树、二叉搜索树 —— Ficow 陪你学算法和数据结构

| 算法&数据结构

在【2. 数组、链表、跳表 —— Ficow 陪你学算法和数据结构】中,Ficow 和您分享了自己的学习笔记。之前学习的链表是一种常见的一维数据结构,但是它的查询时间复杂度较高,所以科学家发明了跳表来解决这个问题。 在利用跳表进行加速的过程中,核心的思想就是【升维】。接下来,让我们开始学习常见的二维数据结构:【树】和【图】。

2. 数组、链表、跳表 —— Ficow 陪你学算法和数据结构

| 算法&数据结构

在【1. 复杂度分析(时间、空间复杂度)—— Ficow 陪你学算法和数据结构】中,Ficow 和您分享了自己的学习笔记。接下来,让我们开始学习具体的数据结构。 【数组】、【链表】是开发工作中使用最频繁的数据结构。【跳表】的使用频率略低,但是也值得我们去学习其原理以及设计思路。在本节中,主要会学到在构造算法时最常用的两种解决问题的方式:【升维】和【空间换时间】。

1. 复杂度分析(时间、空间复杂度)—— Ficow 陪你学算法和数据结构

| Swift , 算法&数据结构

作为一名合格的程序员,我们必须要懂得如何写出高质量的代码。然而,代码的核心其实就是算法和数据结构。在将核心能力提升到一个水平之后,我们就比较容易理解和掌握代码重构、设计模式等看似更高级的内容。 而且,知名的互联网企业(微软、谷歌、阿里、腾讯等)在招人的时候必考的项目就是算法与数据结构。所以,想要在软件开发的路上狂奔,您首先就要提高自己的算法和数据结构基础能力。 我强烈建议您学习覃超老师在【极客时间】上开设的【算法训练营体验课】,我已经亲身学习过并推荐给了朋友、同事们。

掌握这些 Xcode 高频操作,助你早点下班

| iOS , Xcode

【工欲善其事,必先利其器!】虽然 Xcode 是一个比较庞大的集成开发环境(Integrated Development Environment),我们经常要用到的功能其实不多。所以,提高我们使用常用功能的熟练度,就可以有效地帮助我们提高日常的工作效率。 作为一名 iOS 开发者,Ficow 热衷于使用 Xcode 快捷键来提高工作效率。Ficow 将通过本文和您分享个人常用的 Xcode 高频操作以及快捷键,希望对您有所帮助。

基于 scratch 镜像为 Go 后端应用构建最小的 Docker 镜像

| Docker , Go

通常大家构建 Go 镜像都在 Dockerfile 中使用了【FROM golang:latest】命令,然而这样构建出来的镜像【非常大】!!! 如果您希望【缩小镜像的体积】,那么 scratch 镜像会是一个不错的选择。因为,scratch 镜像是一个空镜像! 接下来,Ficow 就根据自己的实际经验来讲解如何【基于 scratch 镜像构建一个最小的 Go 应用镜像】。

iOS 应用通过 MFMailComposeViewController 或 mailto 来发送邮件

| Swift , iOS

在 iOS 开发中实现发送邮件的需求是比较简单的,本文主要提供两种方案: 通过 MessageUI 中提供的 【MFMailComposeViewController】 来在应用内显示邮件编辑页面; 通过 【mailto】 协议来启动 iOS 系统中的邮件应用; Ficow 建议您使用第一种方案,因为它可以让您很轻易地自定义邮件的内容,比如:邮件的主题、收件人列表、抄送收件人列表、正文文本内容、正文附件等等。

使用腾讯云容器镜像仓库代替 Docker 官方的 Docker Registry

| Docker

在国内访问由 Docker 官方提供的 Docker Registry 实在【太慢】,而且【免费的镜像仓库只有 1 个】!现在,Ficow 需要一个镜像仓库用来存储博客后台程序,还需要一个镜像仓库用来存储 App 后端接口程序。所以,Ficow 不得不寻找官方 Docker Registry 的替代品。 目前为止,我找到了两个比较优质的镜像仓库提供方: 【腾讯云镜像仓库】 【阿里云容器镜像服务】 由于 Ficow 的博客采用了【腾讯云服务器】,而且 Ficow 越来越【偏爱腾讯的产品】(阿里云伤透了我的心😨),所以这篇文章只介绍腾讯云镜像仓库。不过,方法应该是类似的,只是某些参数不同、平台提供的控制台页面不同罢了。

在 iOS App 中使用 AVSpeechSynthesizer 合成语音(普通话、英语、粤语等)

| Swift , iOS

Ficow 自己开发了一款 iOS 应用:小粤粤-学粤语,主要用来学习粤语。以前 Ficow 是将应用中需要播放的语音放到了阿里云上的对象存储空间。每次需要播放音频的时候,应用就会去阿里云的对象存储服务器下载音频文件。然而,这些音频文件的质量不是很好,而且音频本身对于调速功能的支持不友好。多次调研之后,Ficow 决定在应用内合成音频。 既然要合成音频,那么就要考虑用什么工具了!目前为止,Ficow 找到了这些比较好用的音频合成工具。快来了解一下吧~

Go Gin curl: (56) Recv failure: Connection reset by peer

| Go , Gin , Bug

使用 curl 请求 Go Gin 服务器 curl http://localhost:8000,响应结果为:curl: (56) Recv failure: Connection reset by peer。然后,使用 telnet 进行测试 telnet 127.0.0.1 8000,响应结果为: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connection closed by foreign host. 好吧,连接被主机关闭了。为什么呢?

零基础学 Swift —— Ficow 陪你学 iOS 开发

| Swift , iOS

说实话,让 Ficow 教您零基础入门 Swift 还是非常有难度的!但是,这个事情不是非得让 Ficow 来做,而且其他人做得比 Ficow 更好! 依我看,做的最好的就是苹果啦!您没有看错,就是【苹果公司】!!!苹果为了普及 Swift,其付出的努力用呕心沥血来形容简直不为过! 最让我觉得赞叹的就是 【Swift Playgrounds】 这个应用,然后就是制作精良的【官方 Swift 文档】!