自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

翻译 iOS架构师之路:慎用继承

最近在看大神Casa的文章《跳出面向对象思想(一) 继承》,脑洞大开。文章给我们展示了一个随着产品需求不断变化的例子,该例子中通过继承实现不同页面的搜索视图和搜索逻辑的代码复用,随着产品需求的演变,最后导致继承的搜索功能层级越来越深,相互依赖越来越严重,最后导致拔出萝卜带出泥,又随着个性化需求的发展,最后代码变得越来越混乱。相信有经验的开发人员都经历过这方面的痛苦。继承对代码复用来说非常好用,但同

2016-05-28 15:37:15 2395

翻译 基于react-router的单页应用

序现在用react写单页应用基本上都是用react-router做前端路由了吧!最近在使用react-router的过程中遇到了不少问题,在这里总结一下。浏览器url react-router默认提供的history是 createHashHistory ,即它用到的是 URL 中的 hash(#)部分去创建形如example.com/#/some/path 的路由,所以你会看到u

2016-05-28 15:36:24 2969

翻译 计算机程序的思维逻辑 (9) - 条件执行的本质

条件执行前面几节我们介绍了如何定义数据和进行基本运算,为了对数据有透彻的理解,我们介绍了各种类型数据的二进制表示。现在,让我们回顾程序本身,只进行基本操作是不够的,为了进行有现实意义的操作,我们需要对操作的过程进行流程控制。流程控制中最基本的就是条件执行,也就是说,某些操作只能在某些条件满足的情况下才执行,在一些条件下执行某种操作,在另外一些条件下执行另外某种操作。这与交通控制中的红灯

2016-05-28 15:35:32 2201

翻译 网站集成QQ登录功能

最近在做一个项目时,客户要求网站能够集成QQ登录的功能,以前没做过这方面的开发,于是去QQ的开放平台官网研究了一下相关资料,经过自己的艰苦探索,终于实现了集成QQ登录的功能,现在把相关的开发经验总结一下,希望对有这方面需求的朋友有所帮助。一.前期准备首先你需要登录QQ的开发平台注册一个账号,QQ互联平台官方地址:http://connect.qq.com/ 进去后注册一个开发账号,完了登录

2016-05-28 15:34:11 2357

翻译 Objective-C runtime的常见应用

用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block)。开发者可以通过对象来存储并传递数据。在对象之间传递数据并执行任务的过程就叫做"消息传递"(Messaging)。当程序运行起来以后,为其提供相关支持的代码叫做"Objective-C运行期环境"(Objective-C runtime),它提供了一些使得对象之间能够传递消息的

2016-05-28 15:33:37 966

翻译 【Web动画】CSS3 3D 行星运转 && 浏览器渲染原理

最近入坑 Web 动画,所以把自己的学习过程记录一下分享给大家。CSS3 3D 行星运转 demo 页面请戳:Demo。(建议使用Chrome打开)本文完整的代码,以及更多的 CSS3 效果,在我 Github 上可以看到,也希望大家可以点个 star。嗯,可能有些人打不开 demo 或者页面乱了,贴几张效果图:(图片有点大,耐心等待一会)CSS3 3D 行星运转效果图随机

2016-05-27 09:15:32 3318

翻译 扒一扒前端包管理器

好久没有写文章了,前端时间一直瞎忙,最近总算有空闲时间可以好好学习下了,今天和大家分享一下有关前端包管理器的东西,主要把工作中常用的bower与最近一直在研究的browserify、duo以及快过时的component进行了一下介绍与对比,都是干货,希望大家勿喷。啦啦啦,话不多说,开始吧: 一、Bower Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块

2016-05-27 09:14:32 1470

翻译 排行榜妙用——CSS计数器

本来我也是直接每个文字,单独定样式的,感觉这样好累。赶紧搜搜有啥好方法实现,最开始想到的是ol列表,但是没办法控制样式,遂放弃,继续深入。着实让我找到了好方法——CSS计数器CSS计数器先看个简单的例子:DOCTYPE html>html lang="en">head> meta charset="UTF-8"> title>demotitle> s

2016-05-27 09:13:32 2147

翻译 属性动画和Activity、Fragment过渡动画等

主题是关于动画的,但是不是什么动画的内容都包括。先泛泛的介绍一下,然后详细的介绍一下翻代码找见的一个好玩的动画的使用。以下的内容包括Android 3和Android 3.1等引入的API,在使用中请注意版本。代码都是用Kotlin写的。如果你用的是新版的Android Studio。创建项目之后,按下快捷键Shift+Ctrl+Alt+K就会自动把代码从java转换成Kotlin。之后按

2016-05-27 09:12:31 1165

翻译 js仿手机端九宫格登录功能

最近闲来无事把以前无聊时开发的小东西拿出来和大家分享下,写的不好的请指出,我会及时修改。谢谢。 功能及方法逻辑都注释在代码中。所以麻烦大家直接看代码。 效果如下:  话不多说直接上代码: js部分:  首先我们先画出两个九宫格,一个用于登录和首次设置滑动密码使用,另个用于再次设置滑动密码,用于与第一次输入的滑动密码进行对比,判断两次密码是否一致 第一个九宫格 

2016-05-27 09:07:47 1385

翻译 Chrome 监听 console 打开

这个算是 Chrome only 其他的我没测试,也不想测试。因为我的控制台脚本仅仅在 Chrome 下加载。如果你需要全平台,那么这肯定不是你需要的结果。需求其实我很早就想折腾这个了,但是,,因为懒,拖了很久,直到周末,我看到服务器上统计,发现流量翻了一倍,结果访问量还是一样的时候,我才下决心折腾。知之为知之不知谷歌之一开始,谷歌一番,发现有两种思路。第一个是 sindr

2016-05-26 09:18:18 1907

翻译 移动开发之设计稿转换页面单位尺寸

在写这篇文章之前,我询问了在唯品会和腾讯的童鞋、以及公司里面前端大神(深哥),对于设计稿切图的详细方法,经过对比验证,得出设计稿转换页面单位尺寸方法步骤。我分别询问下面四个问题:1. 设计稿的单位是什么,一般大小是什么?2. 页面长度单位用什么,px、em、rem,还是混合,如果用rem,html的font-size是多少?3. 设计稿转换成页面长度的方法?4. 如果做媒体查询,合

2016-05-26 09:17:20 2980

翻译 [python]新手写爬虫v2.5(使用代理的异步爬虫)

开始开篇:爬代理ip v2.0(未完待续),实现了获取代理ips,并把这些代理持久化(存在本地)。同时使用的是tornado的HTTPClient的库爬取内容。中篇:开篇主要是获取代理ip;中篇打算使用代理ip,同时优化代码,并且异步爬取内容。所以接下来,就是写一个:异步,使用代理的爬虫。定义为:爬虫 v2.5为什么使用代理在开篇中我们爬来的代理ip怎么用?在需要发送请求的

2016-05-26 09:16:24 4512

翻译 巧用location.hash保存页面状态

在我们的项目中,有大量ajax查询表单+结果列表的页面,由于查询结果是ajax返回的,当用户点击列表的某一项进入详情页之后,再点击浏览器回退按钮返回ajax查询页面,这时大家都知道查询页面的表单和结果都回到了默认状态。 如果每次返回页面都要重新输入查询条件,或有甚者还得转到列表的第几页,那这种体验用户真的要抓狂了。 在我们的项目中,写了一个很简单的JavaScript基类来处理lo

2016-05-26 09:15:32 3030

翻译 jquery选择器案例

一、预期效果实现一个效果,如下。 品牌列表默认精简显示,单击“显示全部品牌”按钮显示全部品牌,同时列表将推荐的品牌的名字高亮显示,按钮里的文字变成“精简显示品牌”。再次点击“精简显示品牌”回到初始页面。二、实现过程html结构如下:View Code1、初始状态页面加载的时候,只显示前5个品牌和最后一个“其他品牌相机”。所以从第6个开始隐藏后面的品牌(最后一条“其它

2016-05-26 09:14:27 914

翻译 工作室门户网站项目总结

第一次做了一个完整的项目,历时一个月,终于告一段落。下面就分三个方面总结一下这个项目:第一、知道的越多,不知道的才越多。  师兄在群里说起这个项目的时候,我想着这是个提升自己的能力的好机会,便积极接下来了。在讨论时,我们一个基本要求就是界面必须高大上,其实我并不善于设计。在偶然间发现了一幅山水画,就想着用水墨风格作为用户界面的主题。但是两天敲下来,界面与想象中差得太远,而且以前对响应式不熟

2016-05-25 09:20:42 1720

翻译 程序员求职面试三部曲之二:提高面试的成功率

一、选择有招聘诚意的企业  一则好的招聘信息应该是准确、清晰和真实的。任何夸大宣传、提供虚假信息的企业都可以认为缺乏招聘诚意。  我们通过解读企业的招聘信息,主观上能够判断这家企业是否很有招聘诚意,我觉得主要体现为以下两个方面:  1.、浮夸的招聘信息      招聘信息写的是某知名企业,实际却是一家不知名的新公司;          要高学历,要十八样武艺样样精通。招web前

2016-05-25 09:19:56 2599 1

翻译 Ctrl-A全选这点事(C#,WinForm)

所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便。Windows的软件基本都是这样。可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改变一下,不想再封装太多默认功能吧。反正程序员自己加这点功能也不难。      好了,以上是YY。接下来正式开始。      一开始,我在自己的WinForm的某个文本框内按Ctrl-A,它没有

2016-05-25 09:19:06 1887

翻译 iOS学习笔记44-Swift(四)枚举和结构体

一、Swift的枚举枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法1. 简单枚举定义和使用//定义枚举,使用enum关键字enum Method{ case Add case

2016-05-25 09:17:52 2092

翻译 Java设计模式系列之观察者模式

观察者模式 Observer的定义  观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。  这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。第一部分这里有一个例子,是马士兵老师在讲解观察者模式的时候给出的例子,个人认为对理解观察者模式有很大的用处,自己查到的一些博文也写得很好,但是太过于一板一眼了,不便于去理解。具体的例子是

2016-05-24 10:06:23 759

翻译 揭开源码的神秘面纱,让源码从此无处藏身

开始之前,想问一下大家平常开发中用的都是哪些反编译软件呢???说出来也让大家都学习学习。。。    开发过程中,我们总想看一下类的源代码,然后就按住Ctrl,在想看的类上鼠标轻轻一点、呈现在我们面前的现实却是残酷的。就像图片中展示的那样令人郁闷。。瞬间心灰意冷。。。泪奔有木有。。。       没事,我们可以使用反编译软件来查看源代码。LZ一直用的就是jd-gui.exe。。但

2016-05-24 10:05:21 1619

翻译 详解Bootstrap网格系统

bootstrap框架中的网格系统就是将容器平分成12份,在使用的时候可以根据实际情况重新编译LESS/SASS源码来修改12这个数值。bootstrap框架的网格系统工作原理:1、数据行(.row)必须包含在容器(.container)中,以便其赋予合适的对齐方式和内距(padding)div class="container">div class="row">div>div>

2016-05-24 10:03:46 1843

翻译 自定义缓存配置(非Web项目)

在前一篇烂文中,老周简单讲述了非Web应用的缓存技术的基本用法。其实嘛,使用系统默认方案已经满足我们的需求了,不过,如果你真想自己来配置缓存,也是可以的。缓存的自定义配置可以有两种方案,一种是用代码在应用程序中配置,即实例化MemoryCache对象时,可以向构造函数传递一个NameValueCollection实例,数据结构就是key-value形式,这些配置项的名字其实就是MemoryCa

2016-05-24 10:02:42 1248

翻译 如何从乱码中恢复 (下)?

乱码上节说到乱码出现的主要原因,即在进行编码转换的时候,如果将原来的编码识别错了,并进行了转换,就会发生乱码,而且这时候无论怎么切换查看编码的方式,都是不行的。我们来看一个这种错误转换后的乱码,还是用上节的例子,二进制是(16进制表示):C3 80 C3 8F C3 82 C3 AD,无论按哪种编码解析看上去都是乱码:UTF-8ÀÏÂíWindows-125

2016-05-24 10:01:36 10185

翻译 我要用css画幅画(九) - Apple Logo

接着之前的[css]我要用css画幅画(八) - Hello Kitty,这次画的是苹果公司的logo 这次打算将分析和实现步骤尽量详细的说一说。其实之前的也打算详细讲分析和设计过程,不过之前的图比较复杂,如果讲那么细,真是怕要讲到猴年马月。这次的图足够简单,就拿这个图来说明。都是一些简单的基本方法,通过举一反三,可以实现大部分效果。 Github Demo:http:

2016-05-23 09:32:18 1911

翻译 C++中的RTTI机制解析

RTTI概念RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。RTTI机制的产生为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C

2016-05-23 09:31:21 16976 2

翻译 仿微信表情输入

哇哦,好久没有写过博客了,前段时间太忙了。最近项目需求,要实现一个类似微信的的表情输入,于是把微信的表情扒拉出来,实现了一把。可以从这里下载源码。看起来表情输入没有多少东西,不外乎就是用NSTextAttachment来实现图文混排,结果在实现的过程中遇到了很多小问题,接下来会一一介绍遇到过的坑。先上一张效果图:一、实现表情选择View(WKExpressionView)具体的实现就不

2016-05-23 09:30:01 1254

翻译 利用Kinect实现用指尖隔空控制鼠标(源码放出)

简介此程序为利用Kinect实现用手指隔空控制鼠标,是我另一个项目的一部分,因为在另外那个项目中鼠标的click是通过一种特殊的方式实现的,因此这个程序只实现了用手控制鼠标的移动,并没有点击的功能。相比Leapmotion,利用Kinect来控制鼠标可以大幅增加操控范围,使用者可以随意走动,而不是被固定在桌面前。好像很多人需要这个,但是网上为数不多的代码都是Kinect V1的,所以放出我

2016-05-23 09:29:16 6239 1

翻译 从用户体验角度看工具

用户体验作为互联网从业人员,经常会接触到“用户体验”这个词!我们可能为了一个菜单该放在哪里而争论,或一边苦逼的编码一边骂着SB产品经理!我们为别人考虑着“用户体验”,但是对自己一直在用的软件,为什么却这么将就呢?软件=工具作为软件开发人员,使用的软件不在少数,我们都称为工具。即为工具,我们好像就不那么纠结难不难用了!好像工具就应该比较难用才对!而实际上,我们为别人做的软件,对别

2016-05-23 09:28:43 2089

翻译 JAVA使用JNI调用C++动态链接库

使用JNI连接DLL动态链接库,并调用其中的函数  首先 C++中写好相关函数,文件名为test.cpp,使用g++编译为DLL文件,指令如下: g++ -shared -Wl,--kill-at,--output-def,test.def -o test.dll test.cpp#如果cpp中要调用其他dll,需要在命令后面添加相关lib描述  这样就在当路径下

2016-05-22 09:52:44 2594 2

翻译 【.net深呼吸】非 Web 项目使用缓存

从.net 4 开始,非web项目也可以使用缓存技术,故曰:.net 4 乃框架成熟之标志也。对于缓存嘛,耍过 ASP.NET 的伙伴们肯定知道,这么说吧,就是将一些使用频率较高的数据放于内存中,并设置一个过期时间(比如30秒),只要缓存数据还没有过期,下一次在访问数据时就可以直接从缓存加载,而不需要重新读取。你想啊,如果数据是从数据库中读取的,或者通过网络从其他地方获得的,那么,采用缓存技术

2016-05-22 09:52:08 739

翻译 微信支付Native扫码支付模式二之CodeIgniter集成篇

微信支付API类库来自:https://github.com/zhangv/wechat-pay请先看一眼官方场景及支付时序图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5官方API列表:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

2016-05-22 09:51:18 5166

翻译 R语言数据可视化之散点图

散点图简介        散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本。        同时散点图中常常还会拟合一些直线,以用来表示某些模型。回到顶部绘制基本散点图        本例选用如下测试数据集:        绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴。然后调用散点图函数geom_point

2016-05-22 09:50:13 53969

翻译 一个iOS攻城狮的学习之路总结

一、Swift语言介绍Swift是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#、Java、Javascript、Python等多种语言的影子。在2015年的WWDC上,苹果还宣布Swift的新版本Swift2.0,并在之后宣布Swift

2016-05-22 09:49:08 1822

翻译 Socket实现仿QQ聊天(可部署于广域网)附源码(2)-服务器搭建

1.前言     这是本系列的第二篇文章,第一篇文章得到了很多朋友们的支持,在这里表示非常的感谢。对于这一系列文章需要补充的是这只是一篇入门级别的Socket通信文章,对于专业人员来说完全可以跳过。本文只介绍一些基本TCP通信技术并使用该技术实现聊天功能。本篇文章实现聊天服务器搭建,我会把聊天服务器部署到广域网服务器上,到时候大家就可以可以在源码里面打开客户端与我聊天啦!(这只是一个初级版

2016-05-21 09:01:07 4275 5

翻译 Socket小白篇-附加TCP/UDP简介

Socket网络通信的要素TCP和UDPSocket的通信流程图 1.Socket什么是Socket            Socket:又称作是套接字,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为Socket。Socket是对TCP/IP的协议的封装,Socket本身并不是协议,而是一个调用的接口,只有通过Socket我们才能使用TCP/IP。

2016-05-21 09:00:24 2097

翻译 Python处理海量手机号码

一、任务描述上周,老板给我一个小任务:批量生成手机号码并去重。给了我一个Excel表,里面是中国移动各个地区的可用手机号码前7位(如下图),里面有十三张表,每个表里的电话号码前缀估计大概是八千个,需要这些7位号码生成每个都生成后4位组成11位手机号码,也就说每一个格子里面的手机号码都要生成一万个手机号。而且还有,本来服务器已经使用了一部分手机号码了,要在生成的号码列表里去掉已经使用过的那一批。

2016-05-21 08:59:20 5311

翻译 这可能是史上最全的CSS自适应布局总结

标题严格遵守了新广告法,你再不爽,我也没犯法呀!屁话不多说,直入!所谓布局,其实包含两个含义:尺寸与定位。也就是说,所有与尺寸和定位相关的属性,都可以用来布局。大体上,布局中会用到的有:尺寸相关的盒子模型,普通流、浮动、绝对定位三种定位机制,CSS3中的transform、弹性盒子模块、试验中的grid模块。逛园子的时候经常可以看到浮动布局,inline-block布局,弹性盒布局这几个名

2016-05-21 08:56:53 36975 2

翻译 拿到阿里,网易游戏,腾讯,smartx的offer的过程

前言从今年的3月14日阿里的电话面试开始,到现在4月16日在西安悦豪酒店进行的腾讯HR面到现在一个多月了,中间先后收到了阿里,网易游戏,腾讯和smartx的offer,今天早晨刚刚接到了腾讯HR的电话,下午发offer,现在将这个过程记载下来,供找工作,或者其他找实习的同学参考。另外,上学期和女票开始一起刷算法,我Leetcode刷了整整一百道题,她刷的比我还多一些,然后在寒假看了剑指offe

2016-05-21 08:55:47 5220 2

翻译 [PDO绑定参数]使用PHP的PDO扩展进行批量更新操作

最近有一个批量更新数据库表中某几个字段的需求,在做这个需求的时候,使用了PDO做参数绑定,其中遇到了一个坑。方案选择笔者已知的做批量更新有以下几种方案:1、逐条更新  这种是最简单的方案,但无疑也是效率最低的方案。2、CASE WHEN  类似如下的语句UPDATE tbl_test SET val = CASE id WHEN 1 THEN 2 WHEN 2 TH

2016-05-20 09:52:13 5162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除