未来 APP 形态猜想

大胆预测一下未来的应用程序形态,原生 APP 即传统 C/S 模式的应用程序将是未来的趋势。目前虽然基于浏览器 B/S 应用非常多,PWA 在 Google 的大力推广发展下已经逐步普及,但我还是觉得原生应用才是未来。 操作系统的发展 Windows、Mac 在桌面市场上已经没有敌手了。他们未来应该会做全平台的统一应用,全平台指的是移动端、PC 等设备上操作系统平台的统一,微软在这方面似乎已经先行一步。在不久的将来,开发者只需要开发一套代码,程序就可以跑在该操作系统平台的任何设备上。 操作系统也会为应用程序在打开、切换方式上做优化,让用户可以更方便地进行切换和管理。可能会很类似目前在浏览器上切换页签一样的用户体验。 浏览器的尴尬处境 目前主流的浏览器虽然在编程规范上已经逐渐统一、标准化,并拥有了一些原生应用的能力(比如可以通过 PWA 实现离线、通知等),但其归根结底还是没法为开发者带来“一次编写,到处运行”的便利,用户也需要在不同设备上重复安装 APP,相同 APP 在不同设备上的使用方式也没法得到一致的体验。 浏览器的“手”伸得再长,也还是运行在操作系统上,其作为一个“应用沙箱”显....

More...

关于简书社区的简书钻

简书钻 首先,这让我想起了天涯钻 :trollface: 简书钻 - 简书积分系统升级公告 - 简书 稍微再挖了几篇相关文章,大概是简书和一个叫 Fountain 的组织达成合作,通过 Fountain 的公链发币: 简书也要来区块链割韭菜吗 - 简书Fountain 白皮书 v0.95 - 简书 社区贡献的价值 简书也开始发币了,但可惜他们没有讲清楚用户最关心的事情:所谓社区贡献的价值到底是什么。 我认为简单来说,在大部分用户看来,社区贡献的价值基本等价于现实货币,也就是在平台上创作的内容是否能够变现。币圈公知李笑来曾经说过:“傻逼的共识也是共识,赚到钱就是成功”,话糙理不糙。在少部分用户(核心用户)看来,社区贡献才真正是社区产生的价值,可以在社区内通过社区币/通证的方式进行交换流通。这两者都可以看成是社区共识,也就是用户和社区达成了某种程度上价值取向的一致。 回报和增发 说回来,简书这次发币有点“作”,除了未来的价值问题没有介绍清楚外,还有个较为致命的问题:简书钻的总量上限没有公布,也就是说存在无限增发的可能。 从简书下线积分系统我基本可以断定,简书钻是无限增发的,不然....

More...

创业的第一个秋天

如果你是第一次看这个系列的文章,可从第一篇创业的第一个春天看起。 秋天是收获的季节,但我这个码农做得不够好。 黑客派 黑客派注册数和流量还在稳定提升中,目前日 PV 20K 独立 IP 7K,靠挂广告已经能够回本服务器、带宽等费用。最近一个月 Google Adsense 广告费有小几百刀,办了个光大的卡来西联收款,不求一夜暴富,只求细水长流。在这个 IT 社区泛滥同质化严重的情况下,能收支平衡也不错了,知足常乐吧。 智能机器的 UGC 是有意义的吗?对于内容运营,我会继续坚持一直以来的观点,内容都是真实用户产生,不做“开局一个站,内容全靠编”。因为做小编太难了,我不是那块料 :joy: 链书 随着这波炒币热潮的退却,很多圈钱的项目已经套现离场。有价值的项目开始进入长跑阶段,链书虽然没有融资,但会一直坚持运营下去,不断改进优化。 对了,V 用了大概 3 天时间实现了个链书的快应用,目前已经上架了小米、 OPPO、ZET、Vivo、金立,其他手机平台也会陆续上线,大家可以在负一屏或者应用商店搜索“链书”来体验(搜不到的话过两天再试试)。另外,关于快应用简介可以看这里。 BND BND....

More...

协慌网,一个汉化 Stack Overflow 的网站

Stack Overflow(SO)及其 Stack Exchange 站群想必在 IT 圈无人不知吧?对于我这样的搬砖工来说,没有 Google 可以,但是没有 SO 和 GH 是万万不行的。 SO 的价值毋庸置疑。由此,不断有类似中文版的 SO 出现,目前影响力较大的可能就是 SF 了。另一方面,也陆续有人在做 SO 某个类别下问题的翻译汉化,主要以博客文章、GH 仓库来实现。SO 全站的高票问题更是精华中的精华,这些问题是全世界开发者们最常见的,其高票答案言简意赅、发人深省。 “汉化 SO 上高票问答”的想法我能从网上能找到的最早记录是在 2010 年,当时的 SO 还没这么优秀,这足以说明其价值。这些年来一直有人在讨论汉化 SO 的可行性和必要性,其中有一种观点我嗤之以鼻: 连英文都看不懂的人就别写程序了 说这样话的人可能忘了语言只是一种工具,不是目的。如果有得选,我肯定选择适合我自己的工具。如果汉化的 SO 问答内容能被我搜到,我想它一定能在最大程度上帮助到我。 当然,这个想法除了讨论,也早有人付诸于实践了,可以说 SO 翻译站从生到死的案例举不胜举(你肯定没听说过,不然....

More...

Java 正则中的非捕获组

正则表达式中的非捕获组(non-capturing group)用于匹配但不“保存”匹配结果,出现在正则表达式模式中的 (?:pattern) 这部分就是非捕获组。 我试了几个在线的正则表达式测试工具,返回的匹配结果都是“整个组”,不是非捕获组。 Java 中 Matcher#group() 返回的是 group(0),也是整个匹配结果,如果要返回第一个非捕获组,需要用 group(1)。 Pattern pattern = Pattern.compile("([0-9]+)(?:st|nd|rd|th)?"); Matcher matcher = pattern.matcher("1st 2nd 3 4th"); while (matcher.find()) { System.out.printf("%3s %s\n", matcher.group(), matcher.group(1)); } 输出: 1st 1 2nd 2 3 3 4th 4 另外,使用非捕获组时需要注意结尾的 ?,在上面例子中 ([0-9]+)(?:st|nd|rd|th)? 说明该非捕获组是可选的,如....

More...

《提问的智慧》精读注解版

大学期间,我看过《大教堂与集市》、《提问的智慧》以及影片《操作系统的革命》,它们对我后来的职业生涯产生了重要的影响。其中《提问的智慧》是篇长文,几十分钟就能看完,此文作者 Eric Steven Raymond(ESR)也是《大教堂与集市》的作者,著名的黑客,开源先驱。他在 2001 年第一次发布《提》后一直对此文进行着更新维护,以保证它尽量适用于最新的情况,比如与时俱进地加入新章节、修复 URL 地址、更新翻译版链接等。 今天我又读了一遍《提》,作为一个开源项目的维护者,感慨万千。下文是我对《提》的 部分 注解,如果你时间有限,可以通过该注解版进行有限的了解。但还是强烈建议你精读一遍《提问的智慧》,英语好的同学可直接看原文 How To Ask Questions The Smart Way。 下面按照原文章节进行注解,标题即原文章节标题。再次说明,我仅仅是注解了《提》中的部分内容,有时间的话请一定要看原文。 声明 该小节 ESR 建议项目维护者在用户指南文档的显著位置标注: 本指南不提供此项目的实际支持服务! 我们已经深刻领教到少了上述声明所带来的痛苦。因为少了这点声明,我们不停....

More...

百度不限速下载器 BND2 技术架构简介

BND2 简介 BND2 是一款图形界面的百度不限速下载器,支持 64 位 Windows 和 Mac,仅提供给黑客派会员使用,下载地址:https://share.weiyun.com/5Z32JP8 高速下载原理 通过 PCS API 获得文件、下载链接通过 Aria2 实现高速下载 和百度网盘下载相关的内容我们就介绍到这里。下面我们主要介绍框架和实现相关的东西,如果你刚好想做一个桌面软件,可以参考借鉴一下。 技术架构 BND2 基于 Electron、React、golang 实现,通过主框架 - UI - 内核的分离实现 UI 以及内核的自动更新。 主框架:Electron 主进程,负责版本检查、账号登录以及管理内核UI:React 实现主界面,编译后上 CDN,通过 Electron <webview> 加载内核:golang 实现的 HTTP 服务,负责响应 UI 请求,管理 Aria2 进程。 编译后可执行二进制上 CDN 提供给主框架拉取更新 为什么选 Electron、React 和 golang 在选择 Electron 之前,我们大致看了下 NW....

More...

创业的第一个夏天

如果你是第一次看这个系列的文章,可从第一篇创业的第一个春天看起。 昆明的夏天让人感受不到热就要到秋天了,我好像又过了一个假的夏天。 BND 百度网盘不限速下载是很多人的刚需,所以 5 月初写了个小工具 BND(Baidu Netdisk Downloader),虽然有点糙但是还算好用。 BND2 计划开始社区投票了,如果你需要请前来投票。 解散 Q 群 真的很不舍啊,An 说这是“断舍离”,真是这样的。解散前夕大概十多个网友找我转让群,我都回绝了。大家主要是觉得: B3log 从此没有组织了活跃度这么高的群解散了太可惜 B3log 会一直存在下去,这是我一直以来在做的事,所以请大家放心好了。具体 Q 群解散的公告详见与此,希望大家以后将大把的时间用在处 CP、找情缘上,而不是用在装逼水群上,老群主言尽于此。 链书 年初有链书这个想法后又边做边想了小半年,6 月初上线了。对于只有程序员的项目,开发完恐怕就真的完了。但我们 B3log 不只有程序员,还有两个运营专员! 我们会陆续上架一些书籍,大家无聊的时候记得来看看。另外,你那里如果有书籍要卖(现阶段说成是"无偿共享"更贴切一些),请....

More...

链书 M1 上线

链书 简介 链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。 链书主要通过如下组件实现服务: 链书社:微信小程序,扫 ISBN 进行书籍上架、购买书籍、快递预约等业务操作黑客派:链书社服务端,实现账号系统、书籍管理、B3T 转账、社区论坛等B3T:B3log 开源社区币,以太坊 ERC20 令牌 动机 让闲置书籍继续发挥社会价值做一个真实落地的区块链应用为 B3T 赋值,扩大 B3log 开源社区影响力 使用流程 微信登录 如果没有黑客派账号,直接通过链书社小程序登录即可如果已有黑客派账号,需要先到个人设置账号中绑定微信,然后再通过链书社小程序登录 交易书籍 卖家使用小程序扫书 ISBN 并设定 x 个 B3T 上架,标明寄付或到付买家需求下单:冻结买家的 x 个 B3T卖家快递书给买家:通过系统联系快递上门取件进行寄送买家签收后系统将 x 个冻结 B3T 解冻并转账给卖家 在这个交易过程中: 卖家主要成本是发快递的人力时间成本,寄付的话还需要支付快递费,收益是获得 x 个自定价的 B3T买家主要成本是支付 ....

More...

关于解散所有 B3log 开源社区官方 QQ 群的公告

所有 B3log 开源官方 Q 群将于 2018 年 5 月 18 日(周五)中午解散。解散的群包括: B3log 开源①:2K 人群B3log 开源②:2K 人群B3log 开源③:300 人群B3log 币圈:400 人群B3log BND:1K 人群B3log Game:100 人群(如有需要,解散前大家可互加好友) 从建立第一个 Q 群到现在已经 8 年有余,但最终我还是不得不做出这个艰难的决定,主要是因为: B3log 开源社区的产品在 GitHub 上通过 issue 讨论更为专业和方便Q 群信息太过吵杂,对于有价值的讨论也无法给自己和后人留下参考管理 Q 群耗费了我们大量的精力,现阶段我们将把精力集中在 B3log 项目的推进上 最终 B3log 开源社区将只保留如下的线上联络渠道: 黑客派: https://hacpai.comGitHub: https://github.com/b3logTwitter:https://twitter.com/b3logosTelegramhttps://t.me/b3log微信公众号:b3logos微博:https://w....

More...

Windows 通过命令行安装根证书

背景 有的时候我们需要在用户机器上将自制的 CA 证书安装到“受信任的根证书颁发机构”下,这样就能使用该 CA 颁发自签名的证书了,以便后续完成一些安全相关的操作。 工具 在命令行安装证书需要用到证书管理器 certmgr.exe,这个二进制可执行文件在 Win10 中 大概 这个路径下,C:\Program Files (x86)\Windows Kits\8.1\bin\x86\certmgr.exe,建议把这个二进制打在程序的发布包中,或者让程序从网络上拉取到本地。 不带参直接运行的话会弹出一个简单的图形界面: 另外,还有个证书管理器 certmgr.msc,看上去功能更多一些,不过这个是纯图形界面的: certmgr.exe 可以通过该工具实现证书的管理操作: D:>certmgr.exe /? Usage: CertMgr [options][-s [-r <location>][SourceStoreName] [-s [-r <location>][DestinationStoreName] Options: -add Add cert....

More...

创业的第一个春天

3 月份家里蹲之后,好几个早晨洗漱都会留鼻血,昆明的春天实在太干燥了。 健康 3 月下旬因为气胸住院了一个星期,自我感觉良好后就要求出院了。养到现在感觉已无大碍,只是不敢怎么运动了(说得自己之前多爱运动一样 :smirk:)。 一年多没体检了,所幸这次住院检查没查出什么不治之症。住院才知道钱花的快,病不起啊!所以,其实人最重要的事情是保护好身体,别生病。 保持身心健康在所有事情里面排第一位。 B3log 开源 B3log 开源的主要产品基本是每两个星期发布一个版本。虽然之前 Sym、Solo 作为业余时间的项目陆续开发好多年了,但现在感觉还是存在很大的改进空间。最近发布频繁网络上曝光比较多,用户多了起来,反馈的问题也变多了。 当然,这是一件非常好的事情,我想无论对我还是对项目而言,这都是从业余到专业的转变,继续保持下去吧 :stuck_out_tongue_closed_eyes: 链书本来计划 4 月份上线的,现在我可以确定 4 月份是上不了了,也不打算挣扎了,5 月份见。 关于收入 托朋友的福,我和 V 接了个外包,加上卖 Sym 商业授权,这两个月的收入还算过得去,但不稳定是个大....

More...

MySQL 迁移 utf8 到 utf8mb4

MySQL 版本和驱动 MySQL 至少是 5.5.3+mysql-connector-java 至少是 5.1.13,修改连接串参数 characterEncoding=UTF-8 历史数据迁移 生成表字符迁移 SQL: SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) AS mySQL FROM INFORMATION_SCHEMA. TABLES WHERE TABLE_SCHEMA = 'your_schema' 生成后执行一把,这样表和列的字符集就改完了。我这里通过修改表的字符集就自动修改列的了,最好自己确认下列是否已经改对。 修改库字符集: ALTER DATABASE your_schema CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; 上面示例代码中的 COLLATE(排序规则)请按需修改。 关于连接串参数 characterEn....

More...

以太坊同步一直“卡着”的原因

用 geth 下载区块数据基本完成(基本追平当前区块高度),如果日志还一直刷如下两句: Imported new state entries .... Stalling state sync, dropping peer 那说明区块数据确实差不多已经跟上最新数据了,但是状态数据还差很多,正在同步。 如果你同步了很久(比如一两天)还是落后主网几十个块,那说明可能是你的磁盘性能不足,因为状态数据同步的瓶颈在磁盘 IO,不在带宽,换个 SSD 再同步就好。 如果你要同步全节点,那一定要用 SSD 磁盘,详细解释说明请看这里。 在区块高度 5244801 时同步完成大概是这么个情况:

More...

以太坊 JavaScript API web3.js 打币

ABI 简介 关于什么是 ABI(Application Binary Interface)请看官网文档。简单来说 ABI 就是外界和合约交互的方式: ABI 用 JSON 描述合约的接口定义用约定好的编码方式进行实际调用 做过 RPC 的同学可以理解为这就是异构平台的 RPC 实现,需要进行接口定义、存根生成、寻址、序列化、网络通讯等步骤就能调用到合约上的函数了。 ABI 的实例请看这里。 web3.js 简介 web3.js 是以太坊 JavaScript API 的官方实现,用它来和以太坊节点进行可编程通讯,基于 HTTP 或 IPC 连接。简单来说 web3.js 就是可以通过 JavaScript 调用本地或远程的以太坊节点,完成网络管理、账户管理、交易等操作。 下面的代码示例基于 web3.js v1.0 开发,请注意不同版本之间的差异。 同步区块 人们都说以太坊发币最大的技术难点就是同步区块,一点儿没错! 试了 ETHFANS 星火计划提供的静态节点也不行,最后还是放弃本地电脑同步,主要问题是我家这里的网络质量太差,很多时候藕断丝连。 后来在阿里云海外节点开了台服务器几....

More...

重装系统后 git 烂了

C:\Users\Administrator>git fatal: open /dev/null or dup failed: No such file or directory Windows 上也有 /dev/null????Google 一圈后发现确实有,是用一个系统服务模拟的: C:\Users\Administrator>sc query null SERVICE_NAME: null TYPE : 1 KERNEL_DRIVER STATE : 1 STOPPED WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 手动启动该服务报错: C:\Users\Administrator>sc start null [SC] StartService 失败 577: Windows 无法验证此文件的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 C:\Windows\System3....

More...

为用户生成有趣的头像

用户注册后需要为其生成头像,大部分站点都是生成这样风格的: 感觉有点单调乏味啊。所幸 Gravatar 可以为我们生成更好玩风格,比如: 只需 HTTP 请求 http://www.gravatar.com/avatar/{hash}?s=256&d=identicon,其中: hash:生成一个随机数填充s:尺寸,像素为单位d:风格,目前可选 identicon、monsterid、wavatar、retro、robohash 等 具体可参考 Gravatar 文档 Image Request。

More...

以太坊相关中文资料整理

文档 区块链技术指南精通比特币以太坊白皮书中文版以太坊官网文档中文版Solidity 语言Truffle 框架 钱包 Mist:以太坊官方出品imToken:移动端轻钱包,中国团队出品Parity:功能强大,需要同步区块数据MyEtherWallet:Web 版钱包,无需同步区块数据MetaMask:浏览器插件,简单好用 区块浏览 Etherscan:功能丰富,有 APIetherchain.org:功能还比较少,可作为 Etherscan 的备用 网络状态 节点统计网络统计 博客与社区 汪晓明对区块链、以太坊的思考:永远的黄家驹深入浅出区块链区块链技术博客以太坊爱好者社区区块链技术中文社区黑客派:编程大杂烩 欢迎大家加入 B3 币圈 QQ 群: 618817478

More...

2017 成为报废程序员的前一年

工作 离开房星 2017 年春节后我便匆匆离开了房星,刚拿完年终奖金就撤了实在有愧。不过现在也只能在这里说说罢了,希望以后还有机会能够和房星的伙伴们合作。 长假 2 月份我和 V 放了个长假,爬了座雪山、重游黄山和杭州,还有和网友 R 见面。还好 V 把这些经历都记录下来了,不然现在没得吹了: 时隔十年再游轿子雪山黄山 - 杭州五日游记 加入国资商城 3 月份加入了国资商城,参与 Java RPC 框架的开发,这是一个基于 Facebook Swift 以及 Netflix Ribbon 的 RPC 框架,主要优势是通过 Thrift/Netty 获得跨平台、高性能以及少侵入。我做的这边是胶水代码,将 Spring、Swift 和 Ribbon 进行整合,干货是 C# 端,并且我老大已经将其完全开源。 6 月后开始投入到云平台的实现中,陆续接触了 EMC ScaleIO、GusterFS 以及 SeaweedFS,虽然基于它们做了一些开发,但是始终是入门后皆浅尝辄止。 技术架构师的未来 对技术方面的追求一直没有变,不过今年产生了一个“奇怪”的想法:技术架构师以后会越来越少,因为需求的....

More...

IPFS 入门笔记

IPFS 是什么 IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。 内容可寻址:通过文件内容生成唯一哈希值来标识文件,而不是通过文件保存位置来标识。相同内容的文件在系统中只会存在一份,节约存储空间版本化:可追溯文件修改历史点对点超媒体:P2P 保存各种各样类型的数据 可以把 IPFS 想象成所有文件数据是在同一个 BitTorrent 群并且通过同一个 Git 仓库存取。 总之,它集一些成功系统(分布式哈希表、BitTorrent、Git、自认证文件系统)的优势于一身,是一套很厉害的文件存取系统。 IPFS 使用场景 IPFS 的发明者 Juan Benet(juan@benet.ai)在 IPFS 技术白皮书中假设了一些使用场景: 在 /ipfs 和 /ipns 下挂载全球文件系统挂载的个人同步文件夹,拥有版本功能文件加密,数据共享系统可用于所有软件的带版本的包管理器(已经实现了:https://github.com/whyrusleeping/gx)可以作....

More...