一类创业者基本都是做传统行业的,这类创业者非常大胆,也非常舍得投入.很多时候他们如果看到或者想到一个商机,就会投入成千上百万,先把产品做出来,然后再去想怎么开拓市场. 这类传统行业的老板,问我最多的问题就是,我有很好的产品,为什么就是没有销量,怎么用微信把销路打开? 还有一类创业者,甚至不能叫创业者,只能叫创业爱好者.他们往往每天都会看到或者想到很多商机,然后基本只是停留在想的阶段,几乎从来不执行. 这类创业爱好者问我最多的问题就是,我有个很好的想法,你觉得我应该去创业吗?你觉得应该怎么开始最保…
理解RxJava:(三)RxJava的优点 在第一部分,讲解了RxJava的基本结构.在第二部分,展示了operators的强大之处.但是你们可能仍然没有被说服,也没有足够的理由信服.下面是一些能让你信服的RxJava框架的优点.  错误处理 截至当前,我们一直都忽略onComplete()和onError()方法.它们标志着Observable停止发出items以及原因(不管是成功地完成或是不可恢复的错误). 我们最初的Subscriber有能力监听onComplete()和onError()…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava RxPermissions 动态权限 简介 原理 案例 MD GitHub Demo地址 目录 目录基本使用步骤注意事项和优点API测试案例原理构造方法request 方法申请权限的方法申请结果回调方法 基本使用步骤 RxPermissions是基于 RxJava 开发的用于…
RPC基础以及造一个RPC的轮子需要注意些什么 前言 rpc即远程过程调用,是分布式系统常用的通信方法.远程可以是在一台机器上的不同进程或在不同一个机器上的不同进程.rpc更看重速度,像调用本地方法一样调用远程方法.除 RPC 之外,常见的多系统数据交互方案还有分布式消息队列.HTTP 请求调用.数据库和分布式缓存等 如果两个子系统没有在网络上进行分离,而是运行在同一个操作系统实例之上的两个进程时,它们之间的通信手段还可以更加丰富.除了以上提到的几种分布式解决方案之外,还有共享内存.信号量.文件…
在看文章前,先做个定位,这不是一篇纯粹的技术性文章,可以把它理解成一个叙述文章,记录我开发插件的过程. 开始前简单的吹个牛 vue2 也写了很多年了,多人合作始终避不开用到别人的组件.关键是有些组件没有文档看起来是真的费劲.props还可以直接通过组件看出来,emit,ref,slot代码一多看起来就比较费劲了.也想过一些解决方案,比如每个组件写一个 readme.这就有一个问题,时间太紧了,谁来给你写 readme 哦,开玩笑. 所以如果有一个能够自动解析 vue 组件的东西就好了.在网上搜索…
背景 对于dva这个开发框架,国内从事react的前端工程师多半不会感到陌生,dva完善的开发体系和简单的api,让其被广泛运用到实际工作中.我所在的公司也是长期使用dva作为基础的开发框架,虽然好用,但是随着前端技术的飞速发展,dva似乎陷入停滞了,从npm官网上看其发版情况看,正式版本2.4.1是三年前发布的,最近一次是2.6.0-beta.22版本,也是半年前发布的,因此 附录[2]文章中指出dva未来不确定性高的隐患.除此之外,关于dva的effect是否能支持async/await的讨…
手撸一个springsecurity,了解一下security原理 转载自:www.javaman.cn 手撸一个springsecurity,了解一下security原理 今天手撸一个简易版本的springsecurity,带大家理解下springsecurity的原理: 安全框架的两个特点就是认证和授权,让我们来通过代码了解下认证和授权的处理方式: 1.认证 认证就是指需要登录才能进行系统操作,如:登录qq.微信或者是web系统的登录都是认证的过程 1.1 工程目录 1.2 maven配置p…
class DBDA{ public $host="localhost"; public $uid="root"; public $pwd="123"; public $dbname="mydb";  /** *给一个sql语句,返回执行的结果 *@param string $sql 用户指定的sql语句 *@param int $type 用户给的语句类型,0代表增删改,1代表查询 *@return  返回查询的结果,如果是…
什么是Badge Service 细心的读者朋友一定在很多Github的Repo,npm的package页面看到过诸如 的徽章.这些徽章是干什么用的? 大家看到上文中我引用的Badge的左侧,是Downloads,Build,Dependency之类的,不难猜出,这些Badge是用于一些信息的统计,然后以图片的形式展示出来.比如我的一个小项目Delta是用js写的,我使用了Travis CI来进行持续的编译和测试.每次我checkin了新的代码,Travis CI就会对最新的代码进行build,…
前言 来继续学习SVG,要想深入了解还是要多动手进行实战.关于svg基础可以去看一下我的上一篇文章<SVG前戏—让你的View多姿多彩>,今天就用SVG打造一个精美的UI效果. 正文 先上效果图: 开启线程池,进行绘制 选择省份 我们都知道SVG的文件是纯粹的 XML.如:   [图片上传中...(12345.gif-60d52c-1533723732988-0)] 123.gif 看到这里,我们都明白了.原来里面类似以path的数据进行组装的.只需要进行解析xml就可以了. 解析关键代码:…
潘恒  原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.gdb跟踪调试内核从start_kernel到init进程启动 1.qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明: // -S freeze CPU at startup (use ’c’ to s…
之前写了一个爬虫的包,主要是根据自己写爬虫的情况总结一下. 因为每次都要重复写一些代码,所以提炼出来,类似一个框架的样子吧. 开始是放在自己的项目里引用,但如果换了一个项目,就得重新拷一遍,很麻烦. 后面又学到了,放在site-package里面可以在自己的环境引用,但换一个环境也是不行的,于是想到放到pypi上面,可以直接pip install,就很方便. 记录一下上传包的过程. 先上一个参考文章https://www.cnblogs.com/sting2me/p/6550897.html.这…
首先看一段Map函数的使用代码: Observable.create(new Observable.OnSubscribe<Integer>() { @Override public void call(Subscriber<? super Integer> subscriber) { subscriber.onNext(123); } }).map(new Func1<Integer, String>() { @Override public String call(…
正则表达式之简易计算器 关注公众号"轻松学编程"了解更多. 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:12((1+2)/(2+3)+1)*5.1-3+2**2 import re class SimpleCalc(object): # 表达式检测 def check(self,exp): # 合法字符检测 res = re.findall(r"[^\d\+\-\*/\(\)\.]", exp) print(res) if res:…
上一篇已经把vite插件的基础结构搭建起来了,这一次就来聊聊继续完善开发环境. 完善开发环境 生成d.ts文件 先来修改一下lib/index.ts这个文件 export interface userOptions { name: string; age: number; base?: string; } export function handleOptions(options?: userOptions): string { return `${options.name || "小明&quo…
实用StringBuffer构造字符串 package com.tj; public class MyClass implements Cloneable { public static void main(String[] args) { StringBuffer buf = new StringBuffer("Java"); // Append buf.append(" Almanac v1/"); buf.append("3"); Syst…
理解 随着前端业务的发展, 我们一般在写一个较为大型的vue项目时候,会使用到vue-router,来根据指定的url或者hash来进行内容的分发,可以达到不像服务端发送请求,就完成页面内容的切换,能够减少像服务器发送的请求,让用户进行页面跳转时候能够更快,体验更好 疑问 在初学vue-router的时候,一般人都会有一个印象,router-link以及router-view都是vue原生自带的标签.但是这个印象是错误的,vue-router本质上是一个vue的插件,通过Vue.use(VueR…
目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮…
<ignore_js_op>     同学遇到了更新Android SDK的问题,而且Goagent现在也无法用来更新.就想到了用替代Host的方法,添加可用的谷歌地址来实现更新.    更新Host文件之后的功能:访问谷歌,更新Android SDK 原理分析: 1. github上的一个hosts项目(https://github.com/racaljk/hosts),获取到最新的Host的文件 2. 获取hosts的文本网页(https://raw.githubusercontent.c…
从一个异常探索autowired 的原理. 首先环境是这样的: public class Boss { @Autowired private Car car; } //@Component 加上这个注释,上面的Boss 的Autowired car就会失败,出现下面的异常 public class Car { private String brand; private double price; } xml 是这样的: <?xml version="1.0" encoding=&…
背景 这几天同事写报表,sql语句如下 select * from `sail_marketing`.`mk_coupon_log` a left join `cp0`.`coupon` c on c.code_id = a.coupon_code; 查询出来的结果花了60多秒 数据背景 mk_coupon_log表数据 9368 coupon表数据37735 mk_coupon_log表的coupon_code字段有索引 分析过程 分析原始sql语句 explain select * from…
niubi-job的框架设计是非常简单实用的一套设计,去掉了很多其它调度框架中,锦上添花但并非必须的组件,例如MQ消息通讯组件(kafka等).它的框架设计核心思想是,让每一个jar包可以相对之间独立的运行,并且由zk辅助进行集群中任务的调度. 接下来,咱们就一步一步的来看下niubi-job整个的框架设计与实现. 框架设计概述 讲解之前,让我们先来看一张niubi-job的框架设计图.如下: 可以看到,该图的结构非常简单,只有四个部分组成. web控制台:负责发布任务,监控任务的状态信息,上传…
Redux可是一个大名鼎鼎的库,很多地方都在用,我也用了几年了,今天这篇文章就是自己来实现一个Redux,以便于深入理解他的原理.我们还是老套路,从基本的用法入手,然后自己实现一个Redux来替代源码的NPM包,但是功能保持不变.本文只会实现Redux的核心库,跟其他库的配合使用,比如React-Redux准备后面单独写一篇文章来讲.有时候我们过于关注使用,只记住了各种使用方式,反而忽略了他们的核心原理,但是如果我们想真正的提高技术,最好还是一个一个搞清楚,比如Redux和React-Redux…
基础知识:class卸载.热替换和Tomcat的热部署的分析HotSwap:HotSwap和JRebel原理成熟的热部署技术实现原理:深入探索 Java 热部署 java的热部署和热加载…
说一下前端路由实现的简要原理,以 hash 形式(也可以使用 History API 来处理)为例, 当 url 的 hash 发生变化时,触发 hashchange 注册的回调,回调中去进行不同的操作,进行不同的内容的展示. 直接看代码或许更直观. function Router() { this.routes = {}; this.currentUrl = ''; } Router.prototype.route = function(path, callback) { this.route…
本周新的一天开始了,让我们一起造一个RxJava,揭秘RxJava的实现原理,  强烈推荐这个…
https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid RX (Reactive Extensions,响应式扩展编程)系列包含的组件包括:RxJava, RxAndroid, Retrofit, RxBinding, RxLifecycle, RxBus.     全由Square公司提供. RxBinding:RxBinding就是把 发布--订阅 的模式用在了android控件的点击,文本变化上.…
在 RxJava 1.x 理解-1 中,我们说到了RxJava的简单用法,但是这还远远不够,因为 输入的数据 ---> 被监听者(订阅源)对这些数据进行操作,或者执行响应的处理 --> 产生新的数据,或者事件发送给监听者 --> 监听者执行自己的方法. 其中,RxJava还可以对输入的数据进行变换,产生新数据(可以是复杂的数据),而不是简单的事件触发. 先将数据的提供,进阶一下: rxJava just 使用 /** * rxJava just 使用 * just --> 还是使用…
给RxJava 加入线程控制 -- Scheduler 在 RxJava 1.x 理解-1 中,我们说到了RxJava的简单用法,但是这还远远不够,因为这简单用法是在同一个线程中使用的.比如我们需要在子线程中进行耗时操作,在Android 主线程中进行UI操作,这样才不会导致卡顿的发生. 先上代码: Observable .create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<…
先看下别人实现的最基本的RxJava的实现方式: 在RxJava里面,有两个必不可少的角色:Subscriber(观察者) 和 Observable(订阅源). Subscriber(观察者) Subsribler在RxJava里面是一个抽象类,它实现了Observer接口. public interface Observer<T> { void onCompleted(); void onError(Throwable t); void onNext(T var1); } 为了尽可能的简单,…