再有两天就进入2018了,想想还是要准备一下明年的工作方向.回想当初开始学习函数式编程时的主要目的是想设计一套标准API給那些习惯了OOP方式开发商业应用软件的程序员们,使他们能用一种接近传统数据库软件编程的方式来实现多线程,并行运算,分布式的数据处理应用程序,前提是这种编程方式不需要对函数式编程语言.多线程软件编程以及集群环境下的分布式软件编程方式有很高的经验要求.前面试着发布了一个基于scalaz-stream-fs2的数据处理工具开源项目.该项目基本实现了多线程的数据库数据并行处理,能充分…
Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始…
本文作者: 伯乐在线 - debugtalk .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 转载地址:http://blog.jobbole.com/101221/ 背景 最近新加入DJI的某项目组(以下均已M指代),需要从零开始搭建功能自动化测试平台. 简单地说,M是一个典型的移动互联网产品,客户端包括iOS和Android,并在app中通过WebView嵌入了H5,后端基于Ruby on Rails实现. 当前阶段,M项目除了Rails Server端采用Jenkins+RSpec…
MongoDB是一种文本式数据库.与传统的关系式数据库最大不同是MongoDB没有标准的格式要求,即没有schema,合适高效处理当今由互联网+商业产生的多元多态数据.MongoDB也是一种分布式数据库,充分具备大数据处理能力和高可用性.MongoDB提供了scala终端驱动mongo-scala-driver,我们就介绍一下MongoDB数据库和通过scala来进行数据操作编程. 与关系数据库相似,MongoDB结构为Database->Collection->Document.Collec…
作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5529153.html 操作系统: Windows 10 环境配置: Node.js Java SE Development Kit Android SDK Visual Studio Emulator for Android(可采用其他模拟器,真机,或者Chrome浏览器模拟) Visual Studio Code(官方推荐三款IDE) 安装命令: npm install -g ionic@beta…
作为一种通用的数据库编程引擎,用Streaming来应对海量数据的处理是必备功能.同样,我们还是通过一种Context传递产生流的要求.因为StreamingContext比较简单,而且还涉及到数据抽取函数extractor的传递,所以我们分开来定义: case class JDBCQueryContext[M]( dbName: Symbol, statement: String, parameters: Seq[Any] = Nil, fetchSize: Int = , autoCommi…
akka在alpakka工具包里提供了对cassandra数据库的streaming功能.简单来讲就是用一个CQL-statement读取cassandra数据并产生akka-stream的Source.这是一个支持reactive-stream协议的流: object CassandraSource { /** * Scala API: creates a [[CassandraSourceStage]] from a given statement. */ def apply(stmt: S…
MongoDB是一种文件型数据库,对数据格式没有硬性要求,所以可以实现灵活多变的数据存储和读取.MongoDB又是一种分布式数据库,与传统关系数据库不同的是,分布式数据库不支持table-join,所以在设计数据库表结构方面与关系数据库有很大的不同.分布式数据库有一套与传统观念不同的数据模式,在设计库表结构时必须从满足各种数据抽取的需要为主要目的.关系数据库设计要求遵循范式模式(normalization)库表结构,在抽取数据时再通过table-join联结关系表.因为分布式数据库不支持tabl…
在akka-alpakka工具包里也提供了对MongoDB的stream-connector,能针对MongoDB数据库进行streaming操作.这个MongoDB-connector里包含了MongoSource,MongoFlow,MongoSink.我们只使用MongoSource,其它两个我们直接用mapAsyc来创造.下面是MongoSource的定义: object MongoSource { def apply(query: Observable[Document]): Sour…
现代信息系统应该是避不开大数据处理的.作为一个通用的系统集成工具也必须具备大数据存储和读取能力.cassandra是一种分布式的数据库,具备了分布式数据库高可用性(high-availability)特性,对于一个实时大型分布式集成系统来说是核心支柱.与传统的关系数据库对比,cassandra从数据存储结构.读取方式等可以说是皆然不同的.如:cassandra库表设计是反范式的(denormalized).表结构设计是反过来根据query要求设计的,等等.幸运的是自版本3.0后cassandra…
前一段时间我们探讨了SDP的一个基于集群的综合数据平台解决方案,由多种数据库组成,包括:JDBC, Cassandra 及MongoDB.其中Cassandra和MongoDB属于分布式数据库,可以在集群中任何部署节点调用.而JDBC数据库则是非分布式的,无法部署在多个节点.假设我们把每种数据库的数据处理功能以微服务microservice形式提供出来的话,任何从其它集群节点对JDBC数据库微服务的调用都需要进行数据的序列化(serialization).虽然Cassandra和MongoDB是…
本文是<Inside the C++ Object Model>第三章的读书笔记.主要讨论C++ data member的内存布局.这里的data member 包含了class有虚函数时的vptr和vtable的布局情况. 1. 开头几个小问题 1.  首先回答一个问题: 一个空类,sizeof是多少?答案是1.因为编译器会生成一个隐晦的1bytes,用于区分,当该类多个对象时,各个对象都能在内存分配唯一地址. 2.  还有虚函数表的指针vptr,可能在类的开始,也可能在类的结尾.通常是类的…
简单来说:JDBC是一种开放标准的跨编程语言.跨数据库类型编程API.各类型数据库产品厂商都会按它的标准要求来提供针对自身产品的JDBC驱动程序.最主要的这是一套成熟的工具,在编程人员中使用很普及.既然我们的目标是开发一套标准的大数据系统集成API,那么采用JDBC系统数据接口可以沿用业内丰富的技术资源.覆盖更多类型用户的编程需要,以及降低使用门槛.对于scala编程语言来讲,ScalikeJDBC是一套最合适满足我们下面开发要求的工具库,因为它可以用最简单易用的方式来实现JDBC的基本功能.…
小白:小程,你知道有些iOS程序是没人性的吗?老是不按我的意愿来运行! 小程:我怎么知道你的意愿就是有人性的? 本文解决一个问题:修改别人的二进制程序并运行起来. 让别人的程序按你的意愿来运行,文明一点的做法就是拿到源码后加上自己的修改再生成新的程序并安装. 小白:哇,这句话好长,你能一口气说完吗? 但是,很多情况下我们是没有源码的,那怎么办呢? 一个办法是把执行程序的指令或者数据改掉:另一个办法是让程序执行到自已的代码上,再把流程或内存值给改掉.最终,让程序按自己的想法来运作. 小白:还能让程…
对于移动APP来说,客户端(iOS或android)的界面开发是必不可少的工作.为了减轻界面开发的工作量,也为了提高开发的速度,选择一个良好的界面框架,是有意义的. iOS开源的界面框架有很多,比如cocoaui.yykit.qmui_ios等. 本文介绍QMUI_IOS界面框架的使用. qmui_ios,按github上的描述,这是一个致力于提高UI开发效率的解决方案. qmui_ios的官网是:http://qmuiteam.com/ios,官网详细介绍了qmui的使用跟它的功能. qmui…
WPF是什么 WPF是微软的新一代图形引擎系统,全称为Windows Presentation Foundation,从.NET3.0版本开始引入,为用户界面.2D/3D 图形.文档和媒体提供了统一的描述和操作方法,它提供了统一的编程模型.语言和框架,真正做到了分离界界面设计人员与开发人员的工作,同时它提供了全新的多媒体交互用户图形界面. WPF的核心理念是以数据驱动UI,传统的GUI界面都是由windows消息通过事件传递给程序,程序根据不同的操作来表达出不同的数据体现在UI界面上,这样数据在…
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可. Linux的man手册共有以下几个章节: 代號 代表內容 使用者在shell中可以操作的指令或可执行档 系統核心可呼叫的函数与工具等 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc) 装置档案的说明,通常在/dev下的档案 设定档或者是某些档案的格式 游戏(games) 惯例与协定等,例如Linux档案系统.网络协定.ASCII code等等的說明 系統…
开发环境: arcgis jsapi版本4.9 由于我们这套代码是基于vue,webpack开发的,会有少数vue代码,但总体不影响 里面还有些我们公司的js库和html css,给出的代码不能百分百直接运行,主要还是接口的总体介绍 代码中常见且不知来源的变量说明: this.map和this.mapView:就是地图的map和mapView this.apiInstance:这是公司框架封装的用于实例化arcgis jsapi对象的,不是必须的,例如new this.apiInstance.E…
ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1.关键字 char :定义一个8位的变量,就是一个字节.short int :定义一个16位的变量,就是两个直接 int :定义一个32位(一般情况下)的变量,就是四个字节. float :定义一个精度为6位小数点的浮点型小数,超过精度的数据会有偏差,本身即有符号型. double :定义一个精度为1…
一.前言 各位看官好,这是本人第一篇技术博客. 写博客的契机是因为原来配的环境在虚拟机扩容后莫名奇妙崩了(具体情况我以后会写),为了以后的自己特此从头开始记录.以前都是作为一个读者,这次终于有机会能够分享自己的理解,也算是因祸得福吧哈哈.那么闲话少说,接下来正式进入正题 二.基本环境 系统:Ubuntu20.04(LTS) 题外话:网上很多版本的教程使用的是18.x版本,我之前用20.10版本(结果崩了).所以这次吸取教训,用新的稳定的版本 三.安装依赖 在(虚拟机中)装完系统后,最好把软件源配…
前一段时间一直沉浸在函数式编程模式里,主要目的之一是掌握一套安全可靠的并发程序编程方法(concurrent programming),最终通过开源项目FunDA实现了单机多核CPU上程序的并行运算.但是,虽然通过在终端实现并行运算能充分利用多核CPU的计算能力把数据处理运算分布到前台可以大大减轻后台服务器的压力,提高系统整体效率,对现今大数据普遍盛行的系统计算要求还是远远不足的,只有通过硬件平行拓展(scale-out)形成机群并在之上实现分布式运算才能正真符合新环境对软件程序的要求.那么,下…
根据上篇关于MongoDB-Engine的功能设计方案,我们将在这篇讨论里进行功能实现和测试.下面是具体的功能实现代码:基本上是直接调用Mongo-scala的对应函数,需要注意的是java类型和scala类型之间的相互转换: object MGOEngine { import MGOContext._ import MGOCommands._ import MGOAdmins._ def mgoExecute[T](ctx: MGOContext)(implicit client: Mongo…
scalikeJDBC可以通过配置文件来设置连接池及全局系统参数.对配置文件的解析是通过TypesafeConfig工具库实现的.默认加载classpath下的application.conf,application.json和application.properties文件.作为尝试,我们可以在resource/application.conf文件里进行h2和mysql数据库的JDBC驱动参数定义: # JDBC settings db { h2 { driver="org.h2.Driver…
之前介绍过BIND的基本使用啦.关于BIND的入门级使用方法见:http://www.cnblogs.com/anpengapple/p/5877661.html简易教程系列,本篇只讲BIND安装. 本来源码安装不想介绍了,但是最近重装的时候,还是爆出来好多问题.唉,apt方式装习惯了,生成配置文件的脚本都是按照apt的目录和用户来的,源码方式有些坑.所以,还是介绍一下吧(有些部分是直接照前面扒下来的). 首先,因为需要开启DNSSec,所以必须要安装openssl.如果不需要装,或者已经安装好…
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET 的大趋势下,加入了诸多新特性.我计划先从 创建 ASP.NET Web 项目 时的新特性入手,一步步讲述这些新特性. 由于小弟不善写作,因此计划中的文章以翻译为主,但由于部分来源的文章是在 Visual Studio 2013 正式发布前写就的,因此我也会在翻译时对文章内容进行适当的修订和补充.如果…
上一篇文章<<企业需要BI吗?>>发表后,有一些网友反应:BI现在还不火:BI仅仅在一些大企业有用武之地,中小型企业只能是望其项背,遥不可及了:BI仅仅是一些花拳秀腿而已,如果真要实战,还需要一段时间等等之类的说法,这对于满怀信心的我,就犹如在热情的秋季,突降一场暴风雪,几乎泯灭了我所有的热情.这样也好,可以让我们清醒一下,冷静地想一想:企业要上BI,有哪些困难在前面?需要先满足哪些方面的条件才能真正发挥它的效益,才更有价值?下面我简单地分析了一下,总结得不全面,望各位砖家,悠着点…
ScalikeJDBC在覆盖JDBC基本功能上是比较完整的,而且实现这些功能的方式比较简洁,运算效率方面自然会稍高一筹了.理论上用ScalikeJDBC作为一种JDBC-Engine还是比较理想的:让它处于各种JDBC工具库和数据库实例之间接收JDBC运算指令然后连接目标数据库进行相关运算后返回结果.一般来说,各种JDBC工具库如ORM,FRM软件通过各自的DSL在复杂的数据库表关系环境内进行数据管理编程,最终产生相关的SQL语句即(prepared)statement+parameters传递…
在上一篇博文里我们把JDBC-Engine的读取操作部分分离出来进行了讨论,在这篇准备把更新Update部分功能介绍一下.当然,JDBC-Engine的功能是基于ScalikeJDBC的,所有的操作和属性都包嵌在SQL这个类型中: /** * SQL abstraction. * * @param statement SQL template * @param rawParameters parameters * @param f extractor function * @tparam A r…
android studio,简称AS,是集成开发环境,所谓集成,就是集编辑.编译.调试.打包等于一体.简单来说,通过AS,就可以开发出在android系统上运行的APP. 我使用的是macos系统.在这个网站寻找AS来安装:https://developer.android.com/studio/,这个网站的最下面有提到对电脑的最低要求. 下载3.2版本,安装. 安装后就可以启动as,如果是覆盖安装,比如从2.3升级到3.2,那可以按向导的指引,使用之前的偏好设置. 这时as这个ide已经安装…
你知道你登录时所在目录吗? 知道根目录下有哪些子目录吗? 知道如何切换用户吗? 知道如何添加用户吗? 如果你不知道,那就可以了解一下本章节啦! 前言:你知道Linux有多少发行版吗,如下图所示: 1.用户登录所在目录 1.普通用户登录 当以普通用户登录Linux系统时,你是否发现在命令行头部出现以下内容: [loginName@localhost ~]$ //其中loginName是指你登录的名称,$表示当前用户是普通用户 不知道你是否好奇波浪号“~”代表什么意思,这是表示当前目录的意思,那当前…