2019-01-16 biezhi
后端开发中大家肯定遇到过实现一个线程安全的计数器这种需求,根据经验你应该知道我们要在多线程中实现 共享变量 的原子性和可见性问题,于是锁成为一个不可避免的话题,今天我们讨论的是与之对应的无锁 CAS。本文会从怎么来的、是什么、怎么用、原理分析、遇到的问题等不同的角度带你真正搞懂 CAS。 继续阅读 »
2017-11-01 Quanyin Tang
<img data-src="/Source/images/post-content/post-example.png" class="lazyload" alt=" " /> 作为组里的一名研一新生,跟着师兄们去南京参加第20届亚洲第一性原理电子结构计算会议(The 20th Asian Workshop on First-Principles Electronic Structure Calculations)。作为小白,没有口头报告也没有Poster,抱着学习的态度去参加会议,收获颇多。 继续阅读 »
2014-09-27 Xie Jingyi
事实上我也不知道发生了什么,大概是几天前插了“小度Wifi”的缘故。没有任何征兆地,Wifi就用不了了。 其实我也不知道原理,大概是某个驱动被刷掉了。 下面是从网上找来的答案: sh sudo apt-get install wicd-daemon 做个记录。 继续阅读 »
2015-04-15 浩阳
content {:toc} 百度前端学院的第一次任务笔记,HTML、CSS 基础。主要有 CSS 工作原理,选择器的使用,常用属性,行高属性,盒模型与定位,最后根据设计图实现4个页面。 任务 任务: HTML、CSS基础 继续阅读 »
2014-01-14 W.Y.
算法原理 设有一组关键字{K1, K2,…, Kn};排序开始就认为 K1 是一个有序序列;让 K2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列;然后让 K3 插入上述表长为 2 的有序序列,使之成为一个表长为 3 的有序序列;依次类推,最后让 Kn 插入上述表长为 n-1 的有序序列,得一个表长为 n 的有序序列。 具体算法描述如下: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下一位置 4. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置 5. 将新元素插入到该位置后 6. 重 继续阅读 »
2014-01-17 W.Y.
最近整理了一些常见的排序算法,资料基本上都来自网上,大部分参考了维基百科,分析了常见算法的原理,并举例分步说明,有的还给出了排序动画演示,但没有涉及算法复杂度等方面的概念,最后对每一种排序算法都给出了至少一种 JavaScript 的实现方法(因为我是做前端方面的,所以只给出了 JavaScript 代码)。 由于自己能力和经验有限,难免出现某些纰漏和错误,欢迎指正。 日本程序员 norahiko,写了一个排序算法的动画演示,非常有趣。另外,今天一同事告诉我有一个排序算法的舞蹈,请点击【程序员的艺术:排序算法舞蹈】。 常见排序算法 - 冒泡排序 (Bubble Sort) 常见排序算法 - 快速排序 (Quick Sort) 继续阅读 »
2018-04-04 findneo
note of https://www.ichunqiu.com/course/56927 Hacking三步曲 理解系统(Understanding) 系统性的基础课程学习,深入理解计算机系统运作机制。 破坏系统(Breaking) 学习与创造漏洞挖掘与利用技巧 重构系统(Reconstruction) 设计与构建系统防护 基础课程学习 核心基础课程——计算机的工作原理 体系结构 CPU的设计与实现 机器指令与汇编语言 指令的解码、执行 内存管理 CMU 18-447 Introduction to Computer Architecture https://www.ece.cmu.edu/~ece447/s15/dok 继续阅读 »
2016-04-04 Piasy
本文继上篇 ItemDecoration{:target="_blank"} 之后,是深入理解 RecyclerView 系列的第二篇,关注于 ItemAnimator,主要是分析 RecyclerView Animators{:target="_blank"} 这个库的原理,然后总结如何自己编写自定义的 ItemAnimator。本文涉及到的完整代码可以在 Github 获取{:target="_blank"}。 继续阅读 »
2016-10-16 浩阳
content {:toc} 简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序)。这个算法生成的随机排列是等概率的。同时这个算法非常高效。 本文主要介绍这个算法的来源、演变、原理。并举出一个例子为大家清晰的描述每次迭代过程。最后使用 JavaScript 代码将算法实现。 继续阅读 »
2017-06-06 Jamling
PHP
使用Token来做身份认证在目前的移动客户端上非常流行,Token这个概念来源于OAuth认证,主要是在服务端实现。关于相关的原理,同学们自行百度。在这里,我简单介绍一下我是怎么具体实现的,重点描述token生成、token识别及token缓存。 生成Token 服务端接收客户端传递的username和password等请求,在数据库中检查,如果用户名密码匹配的话,表示登录成功,服务端生成并返回一个token访问令牌。 ```php public function login() { $data = array_merge($this->request->post(), []); // 继续阅读 »