技术文章

vue的双向数据绑定

荒凉一梦 提交于 2021-02-17 02:16:18
  这篇文章我会仿照vue写一个双向绑定的实例,主要实v-model , v-bind , v-click 1、原理   Vue的双向数据绑定的原理大家可能或多或少了解一点,主要是通过 Object 对象的 defineProperty 属性,重写data的 set 和 get 函数来实现的。    2、页面结构    包含了  一个input,使用v-model指令 一个button,使用v-click指令 一个h3,使用v-bind指令。 我们最后会通过类似于vue的方式来使用我们的双向数据绑定,结合我们的数据结构添加注释: 首先我们需要定义一个myVue构造函数: 为了初始化这个构造函数,给它添加一个 _init 属性: 接下来实现 _obverse 函数,对data进行处理,重写data的set和get函数: 并改造_init函数 接下来我们写一个指令类Watcher,用来绑定更新函数,实现对DOM元素的更新。 更新 _init 函数以及 \_obverse 函数: 那么如何将view与model进行绑定呢?接下来我们定义一个 _compile 函数,用来解析我们的指令(v-bind,v-model,v-clickde)等,并在这个过程中对view与model进行绑定。 至此,我们已经实现了一个简单vue的双向绑定功能,包括v-bind, v-model, v

mtk-preloader代码分析

末鹿安然 提交于 2021-02-17 02:15:43
这里简单介绍了preloader的启动流程,ATF的实现部分可参考https://blog.csdn.net/chenying126/article/details/78638944 1.链接器脚本link_descriptor.ld定义了preloader的入口函数 OUTPUT_ARCH(arm) ENTRY(_start) 2.init.S定义了_start,并跳转到main执行 .globl _start _start: b resethandler /* * 设置svc32模式 * 禁止中断fiq&irq * clear BSS * setup stack * 跳转main执行 */ ...... entry : LDR r0, = bldr_args_addr   B main 3.main函数,截取了部分代码 void main(u32 * arg) { /* get the bldr argument */ p_bldr_param = & bldr_param; //_start函数中将bldr_args_addr作为参数传给main,这里为0 memcpy(( void *) p_bldr_param,( void *) *arg, sizeof (bl_param_t)); //必要的硬件初始化 mtk_uart_init(UART_SRC_CLK_FRQ,

mtk preloader

守給你的承諾、 提交于 2021-02-17 02:15:20
preloader按照mtk的说法是MTK in-house developed loader,也就说是mtk内部开发的一个loader,那么单独编译preloader也是可以的,使用命令./mk project_name n pl。 来源: oschina 链接: https://my.oschina.net/u/2963604/blog/1635640

运行swift命令,报401 Unauthorized错误

拥有回忆 提交于 2021-02-17 02:14:29
错误描述: 安装配置完swift后,运行swift list命令,报如下错误: Account GET failed: http://172.80.80.146:8081:8081/v1/AUTH_f3df03ae27a54dbbad2920b07a5462a9?format=json 401 Unauthorized [first 60 chars of response] <html><h1>Unauthorized</h1><p>This server could not verify t 运行swift stat命令,报如下错误: Account HEAD failed: http://172.80.80.146:8081:8081/v1/AUTH_f3df03ae27a54dbbad2920b07a5462a9 401 Unauthorized 通过Google查找401 Unauthorized error,大部分文章都说是由于proxy-server.conf配置文件配置项缺少或错误导致的,但我尝试添加或修改,问题依然存在。 解决办法: 修改Keyston使用UUID tokens,找到/etc/keystone/keystone.conf文件,查找token_format配置项,将其值修改为UUID,之后运行service keystone restart使配置生效

Oracle executeBatch异常 ArrayIndexOutOfBoundsException

安稳与你 提交于 2021-02-17 02:14:05
使用ojdbc14 10.2.0.4 进行批量写入数据到oracle时,写入的字段有140个,每1000条执行一次executeBatch,日志中出现大量异常ArrayIndexOutOfBoundsException信息,具体以下: java.lang.ArrayIndexOutOfBoundsException: -32377 at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java: 2673 ) at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java: 10689) 从日志信息来看,应该是oralce jdbc驱动内部setupBindBuffers方法中出现了数组越界异常。在网上找到一个帖子,通过他的思路得到了解决方案。 The 10g driver apparently keeps a global serialnumber for all parameters in the entire batch, with a "short"variable. So you can have at most 32768

Linux route指定静态路由配置

前提是你 提交于 2021-02-17 02:13:29
route 显示并设置 Linux 中静态路由表 说明: route 命令用来显示并设置 Linux 内核中的网络路由表, route 命令设置的路由主要是静态路由。实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同事位于两个网络的网关来实现。 在 Linux 系统中设置路由通常是为解决一下问题: 1) 该 Linux 系统在一个局域网中,局域网有一个网关,能够让机器访问 Internet ,那么就需要将这台机器的 IP 地址设置为 Linux 机器的默认路由。需要注意的是,直接在命令行下执行 route 命令来添加路由,只是临时生效,当网卡或者机器重启之后,该路由条目就失效了。只有刚添加在 /etc/rc.local 中添加 route 命令来保证该路由设置永久有效。 选项 and 参数: 选项 解释英文 解释中文 -A -c operate on the kernel’s routing cache. 打印将 Linux 核心的路由缓存 -n 不执行 DNS 反向查找,直接显示数字形式的 IP 地址 -e 以 netstat 格式显示路由表 -net the target is a network 到一个网络的路由表 -host the target is a host. 到一个主机的路由表 参数 解释英文 解释中文 add add a new route.

基本锁到分布式锁

ε祈祈猫儿з 提交于 2021-02-17 02:12:49
锁的机制一般都是用于多线程安全中,多线程竞争统一资源 一、 java的 synchronized: lock: java.util.concurrent.locks lock.lock(); try{ // 处理 }catch(Exception ex){ // 捕获异常 }finally{ // 释放锁 lock.unlock(); } 二、JMM的volatile锁关键字。 保证可见性,保证线程不从自己的副本中读值,都强制从主工作区读取值! 三、数据库的锁 select * from table where ? lock in share mode;//共享锁 select * from table where ? for update;//排他锁 悲观锁:觉得我在操作的时候一定有人试图来篡改干扰我,很悲观,所以会给加上一个排他锁。 乐观锁:觉得别人对我当前操作的影响无所谓,非常乐观,即便出现了冲突,让用户决定和承担,所以只会加共享锁! 四、分布式锁 本地锁在分布式架构中就实效了,所以分布式需要自己特定的分布式锁的概念: 基于数据库实现分布式锁:当我们要锁住某个方法或资源的时候,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。(同Redis一样,不过数据库的操作会比Redis慢,因为Redis是基于内存缓存数据库) 基于缓存(Redis等)实现分布式锁;

主动撤离一线城市,北京到杭州

隐身守侯 提交于 2021-02-17 02:12:26
#主动撤离一线城市# 一个「北京->杭州」的真实案例。 昨天晚上和一位群友F吃饭,他专程从北京来杭州办理户口,周日到,住一晚,周一现场确认,办完赶回北京上班,大概是这么个流程。 F是「中产之路」某群一位群友,之前在群里问过怎么办理杭州户口问题,我恰好有位校友做户口代办服务,就牵了线,他这次来杭州,是因为办理户口迁入的过程中,某个环节必须当事人现场确认。 为他牵线后,他又问了一些杭州买房方面的问题,虽然没有实质上帮上忙,他还是非常客气,要请我吃饭,说了好几次,不好意思再推脱。 最后约在网易附近的一个大商场,跟我住所不远,时间定在5:30,他在一楼门口等我,小伙子人很帅气、干练,见面后直接领我到4楼餐厅,菜都上好了,直接开吃,吃完饭又到钱塘江边散步。 去年也有一位读者L,第一次见面,也是约在江边。他是高我两级的一位校友,江西人,研究生毕业后回到家乡地市运营商,工作了五六年,他说因为跟老丈人不和,从中作梗,弄得一地鸡毛被迫离婚。他不甘于现状,也想为儿子留下点什么,就离开了运营商,到上海一家通信咨询公司上班,那会他在杭州出差。 因为输入不高,L也想转行到互联网,学习了许多大数据知识,光阿里就面试了好几次,都没通过,问我意见。他83年的,我说不要再做技术了,转行过来从零开始跟年轻人贴身肉搏,没有任何胜算。 我建议他寻找跟之前工作经历有关联的机会,后来又面试了几个工作,包括嘀嘀在南昌的运营经理

一线城市到二线城市发展-尴尬啊

邮差的信 提交于 2021-02-17 02:12:11
离开了工作5年多的北京,上个月19号回到西安,西安的软件发展不景气啊,死气沉沉,合适的职位太少了,半月过去了,工作还没着落。。。。,全是些外包和小公司,高级软件工程师招聘的职位少,面试几家死压工资,工资还不及北京的三分之二,痛苦啊,我是不是应该再回北京呢 来源: oschina 链接: https://my.oschina.net/u/1428558/blog/276923