#Hello Edgerunners, welcome to the Night-City.

Welcome!

CSS: rem

最近花了点时间修改博客的页面效果,第一次用 CSS 里的 rem 单位,顺便总结一下。 我们知道,在设置字体时常见的 px 和 em。 px px 是很常用的单位,比较稳定和精确,但也存在一些问题,例如当用户改变了浏览器字体胆小时如果使用 px 为单位,就会打乱页面布局,为了解决这样的问题,我们有了 em 单位。 em em 值是相对于父元素的值,在使用 em 时需要知道其父元素的属性,或者设置为 1em。 body {     font-size: 50%;     /*10 ÷ 20 × 100% = 50%*/ } h1 {     font-size: 2.4em;     /*2.4...

Android : ScrollView 联动

ScrollView 联动,就是指多个 ScrollView 中有一个滚动时其它 ScrollView 也随同滚动的效果。并不是什么复杂的事情,最近自己在写一些东西时用到了,所以顺便分享一下。 与 iOS 不同的是,在 Android 并没有提供获取 ScrollView 滚动距离的方法,也没有提供监听方法。但幸运的是,Android 是开源的,查看源代码可以找到这样一个方法: protected void onScrollChanged(int x, int y, int oldx, int oldy) 的确是个好消息,但你也可能留意到了,这一个 protected 方法。那么,我们自己...

Android: 在 Mac 中生成 keystore

在 Mac 中生成 keystore 其实也很简单, 虽然 Android Studio 中有这个功能, 但不少小伙伴还在用 eclipse 呢。 打开终端进入 Java 安装路径 cd /Library/Java/Home/bin/ 生成到指定路径 keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000 -keystore 指定路径/文件名.keystore 例如, 生成到我的桌面, ~/Desktop/demo.keystore: keytool -genkey...

UNIX/Linux : awk 清理重复行

最近遇到一个需求,就是要清理掉文本中重复的行。这看起来并不是什么困难的事情,你可以使用 Python、Ruby、Perl 甚至 C 来完成这项任务,轻而易举。 但是,作为一个处女座的程序员,并不能满足于此。在 UNIX 世界中,还有一个很基础同时也是很强大的工具 —— awk。 awk '{ if (!seen[$0]) print $0; seen[$0]++ }' 但这依然不够简洁,我这样想的一个重要的原因是,在 awk 中对很多操作都有预设,因此你并不需要明确的告诉它每一件事。例如,awk 会认为你希望循环处理文本的每一行,或者它会认为你希望打印处理结果。 现在,删掉...

HTML: 自动跳转

常见的几种自动跳转页面的方式, 以 3 秒后跳转到本博客为例: JavaScript setTimeout <script type="text/javascript"> // 3 秒后跳转到指定的页面 setTimeout(window.location.href = '{{ site.url }}', 3); </script> HTML meta 标签 <meta http-equiv="refresh" content="3;url={{ site.url }}/&quo...

OS X : 像 iPhone 一样的充电提示音

用 iPhone/iPad/iPod Touch 的同学肯定对充电时的提示音不陌生,但是,有没有想过在 Mac 上也听到同样的声音呢?如果你想过,却不知道怎么实现,今天就让我来告诉你。 首先,为了体现我们的高端之处,我们打开终端工具。 接下来,输入下面的指令: defaults write com.apple.PowerChime ChimeOnAllHardware -bool true; open /System/Library/CoreServices/PowerChime.app 这其实是两条指令,如果你愿意,你可以把他们分开: defaults write com.apple.P...

Xcode: The meaning of Debug Navigator icons

Looks like Apple finally documented it in the Process View Display section. Here's a link to the image: {% assign icons = site.url | append: '/assets/images/posts/content/debugnav.png' %} ...

MongoDB Primer 001: 介绍与安装

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 Web 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 特点 它的特点是: 高性能 易部署 易使用 存储数据非常方便 主要功能特性有: ...

MongoDB Primer 002: 基础概念

在进一步学习之前,首先来了解一些 MongoDB 基本概念,即文档、集合、数据库。通过这个表格也许可以更好的了解它们: SQL MongoDB 说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,MongoDB不支持 primary key primary key 主键,MongoDB自动将_id字段设置为主键 数据库 文档 集合 元数据 数据类型...

iOS 9 : 3D Touch

随着 Force Touch 在 iDevice 中的应用,3D Touch 也成了诸多公司积极适配的新功能,它为 iDevice 设备带来了预览(Peek)和敲击(Pop)以及压力感应等全新的操作体验。 关于其他 iOS 9 的特性与功能,有兴趣的朋友可以参考我博客中的 iOS 9 适配系列。 更多关于 3D Touch 的内容请参阅 Getting Started with 3D Touch 和 iOS SDK Release Notes for iOS 9.1。 《苹果开发3D Touch的幕后故事 开发难度超乎想象》 对于开发小伙伴们来说,我们的关注点主要涉及以下几个部分: P...

iOS 面试题: Binary search tree

最近遇到和看到的一些面试题。 我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree? search的时间复杂度是多少? Binary search tree 二叉搜索树主要由四个方法: * search: 时间复杂度为O(h),h为树的高度 * traversal: 时间复杂度为O(n),n为树的总结点数。 * insert: 时间复杂度为O(h),h为树的高度。 * delete: 最坏情况下,时间复杂度为O(h)+指针的移动开销。 可以看到,二叉搜索树的dictionary operation的时间复杂度与树的高度h相关。所以需要尽可能...

iOS 面试题: GCD Queue

最近遇到和看到的一些面试题。 GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的? 主队列 dispatch_main_queue(); 串行 ,更新UI 全局队列 dispatch_global_queue(); 并行,四个优先级: background,low,default,high 自定义队列 dispatch_queue_t queue; 可以自定义是并行: DISPATCH_QUEUE_CONCURRENT 或者串行 DISPATCH_QUEUE_SERIAL ...

What's this?

The Night-City version of Hotodogo inspired by Cyberpunk 2077. Not finished yet.

Pinned Message

The Founder and CEO of Infeca Technology.

Developer, Designer, Blogger.

Big fan of Apple, Love of colour.

Feel free to contact me.

反曲点科技创始人和首席执行官。

开发、设计与写作皆为所长。

热爱苹果、钟情色彩。

随时恭候 垂询

Outer Square Inner Square