手把手教你写一个全功能全拼输入法

时间不多还要陪老婆睡觉,我准备直入主题,本文会手把手教你写一个智能的全拼汉语输入法。 其实是语言无关的,我也不打算把具体的代码放出来,我之前用ios实现过一个,效果很棒,可惜ios写涉及数据结构的代码真的是蛋疼,后来放弃维护了。 好的,一步一步手把手来,不涉及什么算法,也不难理解。 第一部分 拼音分解 第一步,用户输入一串拼音,假设是这样的: woshiyimingshuaibichengxuyuan (预期结果:我是一名帅比程序员) 首先,当然是要把拼音分解开,这一步其实有一些深入优化的点,不过就普通的拼音分解来说,其实一个正则足够了。 »

芋头 芋头 访问数:5308

第二期 杭州 Node Party 总结

PS:关于往期和下期活动的各种信息,可以关注 github 上的 repo :GitHub - Hangzhou-Node-Party/slides: Slides for each party. 上个月的 9 月 25 日 下午 2 点到 5 点,第二届杭州 Node »

芋头 芋头 访问数:4508

【杭州】Node Party 第二期,9月25日下午,大搜车不见不散

很可惜的告诉大家,本次活动报名已满,报名放出几个小时就报满了,只能说大家热情太高,下次报名我们也会尝试收费,以此筛选真正热衷 Node.js 开发的开发者。感兴趣的同学可以加群时刻关注下次活动信息。 另外,如果您想跟大家分享自己的话题,直接联系我,二维码在文章最后。 关于杭州 Node Party 杭州 Node Party 是由大搜车(Souche Inc.)发起的一个面向 Node.js »

芋头 芋头 访问数:4037

第一届搜车 Node Party 总结及PPT

本周末(8月7日)下午2点到5点,第一届搜车Node Party成功举办。这是我们第一次举办对外分享,难免经验上有些不足,没有专业的主持人,也没有完善的时间控制,最后三个分享占用了所有时间没有预留自由交流的环节。本次活动报名130人,审核后到场大概60人左右,可见杭州工程师对Nodejs的关注度还是很高的。希望活动能够持续办下去,下次希望有更多兄弟公司的同学站出来分享他们的Nodejs应用。 关于分享这件事,其实真的需要勇气。短时间内,很难把自己做过的事情很有条理的讲出来,思路也很难做到完美,更难保证自己讲的东西不是大家已经很熟悉的或者不屑一顾的。所以有时候不要想太多,勇敢的站出去,你讲的东西总会对人有帮助,这就够了。 这次主要分享了三个话题, »

芋头 芋头 访问数:6881

构建一个类jq的函数库

jqfree 虽然团队里用上了vue,但是某些情况下可能仍然需要操作DOM,或者是需要一些诸如变量类型判断、时间解析函数、url解析函数、浮点数四舍五入小数位和获取随机位数字符串的辅助函数。而本篇就是教你怎么构建这样一个山寨版的库,只要400行代码,你就能体验写一个库函数畅快的感觉! jqfree core var $ = function(selector, context) { return new $.fn.init(selector, context); }; $.fn = $.prototype; $.fn.init »

我脑海中的优秀技术团队

文中的“我”,其实不是一个单纯的角色,它可能会包含多层含义,不管是我作为一个团队的管理者,还是我作为一名技术团队的普通员工,都会对自己的团队有一些期许,一些定义,一些要求,而这就是今天我们要谈论的话题。希望这些思考能够对管理者或者求职者有些帮助。 团队的首先组成就是人,那我理想中的技术团队中的人应该是怎样的呢?作为团队的负责人,其实对于人这方面的把关我一直是非常严格的,对于进入到我团队里的成员,通常需要有以下品质,这就是我对技术人的理解。 1.好奇心。 你为什么做技术?一些人是为了糊口,一些人只是不知道自己能做什么,而另外一群人,则是因为好奇心,对未知领域的探索, »

芋头 芋头 访问数:29705

跟我一起部署和定制 CNPM——自定义包存储层

CNPM 的自定义包存储层文件系统简称 NFS,我猜是 NPM File System 的意思。 在之前《跟我一起部署和定制 CNPM——基础部署》中提到过,CNPM 配置项里面有一项配置 nfs,它所对应的是一个 NFS 对象。 在同步 package 的时候,CNPM 会把源站的包下载到本地,然后传给 NFS »

搞定爬虫的终极思路

二手车行业就是一个充满爬虫的行业,你Pa我,我Pa你,生生不息,永无尽头,每天半夜的时候看着服务器的资源反而比白天还要多的状况,看着日志里一行一行机器人的痕迹,曾经,我痛苦过,惋惜过,但是现在我却默默不语,掩面微笑。 对付爬虫,分两大部分: 精确识别爬虫,可不能误杀,例如一些内网请求,特征很像爬虫,千万不要纳入爬虫行列。 针对识别出来的爬虫,做什么? 我们反着来讲。 针对识别出来的爬虫,如何处理? 通常,识别出爬虫, »

芋头 芋头 访问数:12598

npm-assistor git tag 辅助工具

npm-assistor npm 包初始化和 git tag 辅助工具。源于搜车前端内部规范化改造,具体指内部功能模块 SDK 化和 GitFlow 流程规范化。Github: https://github.com/plusmancn/npm-assistor 欢迎 star 和 pr Usage 全局安装 npm install »

plusman plusman 访问数:6432

快速搞定网络请求统一前置处理(jQuery)版

有人说用jQuery的全局ajax事件处理可以搞定,不过注意官方的一句话: Global events are never fired for cross-domain script or JSONP requests, regardless of the value of global. 另外,全局的ajax事件好像不能中断,并无法满足需求。 最近,有两个项目,项目中都是用jQuery的$.ajax方法来请求后台接口的。 »

芋头 芋头 访问数:5198

使用数组规避后端渲染页面上javascript变量值报错

问题描述 在后端渲染页面时,如果想要渲染一个javascript变量,且这个变量是一个字符串的话。大概是这样写:($a作为服务端变量) ... <script> var a = '$a'; </script> ... 这样一旦$a值为空时,渲染结果为 ... <script> var a = ''; < »

跟我一起部署和定制 CNPM——基础部署

本章会介绍 CNPM 的基础部署方法。 该文章所对应的 cnpm 目标版本为 v2.12.2,上下浮动一些兼容的版本问题也都不是特别大。 准备 想要部署 CNPM,你需要做以下的一些准备。 部署的宿体,如服务器、云主机、自己的电脑等; 数据库,支持 MySQL、PostgreSQL、MariaDB,如果使用 SQLite 则无需准备; »

大搜车NodeJS日志规范化与分析监控

原由 今天7月10号,到8月10号,正好来搜车前端一年。 刚来这时,还是个 Noder 新手,当然现在也是。那时面对百万行数量级的代码,一旦出个问题又没有错误栈,简直就是梦魇~。当面对线上 bug 时,便是这种窘境,然后本地测试下来,却又是好的,抓狂。 情急之下,先拿 sentry 顶了一段时间,项目主要应用如下: 系统未捕获错误记录 邮件告警提醒 »

plusman plusman 访问数:26996

callback 和 promise 的错误捕获-暗坑集锦

1) 千万不要去尝试 catch callback 的回调错误,错误处理应交由 callbac 函数本身。开发中碰到过框架捕获了 callback 的错误,而且直接湮没了,导致代码出了问题,却不能察觉。 2) 对于进程的 uncaughtException, unhandledRejection 事件,建议结合日志做一些监听处理。 callback 下面是一个 catch callback 回调的错误示例,开发中要避免, »

plusman plusman 访问数:15346

【BUG】宽高1.14em并不一定相等哦(^。^)

前传 我们想要自定义 input[type="radio"] 的样式来符合我们产品的设计稿。 -webkit-appearance 是用来改变按钮和其他控件的外观的一个 css 属性,它没有出现在 css 规范草案中。 我们通过 -webkit-appearance: none 进行样式自定义之后,发现 chrome 下单选框有点扁,一度认为是浏览器版本 BUG,就先忽略了。 前几天,同事发现禁用我们设置的 font-family »