小程序啊小程序

1.小程序的入口是哪里

小程序在微信内没有入口入口是二维码。

这意味着开发者还需要强大的推广能力而且是落地推广能力这让小程序承载的更偏向于O2O模式而非线上导流。

2.会不会有小程序商店

不可能有

张小龙说微信团队从开始就没有做小程序分发的想法小程序一定是没有中心入口、去中心化,“同理分类、排行、推荐的模式在小程序里也是不存在的。因为小程序不存在下载过程所以不需要商店用户查找和搜索的需求会另外解决。

3.订阅关系的问题

小程序没有订阅关系。

张小龙说做小程序不能以收获粉丝为目的小程序没有粉丝数只有访问量的数据。

4.小程序能不能推送消息

答案是不能。

张小龙说如果小程序能推送消息就意味着用户访问的每个网站都推送消息用户会崩溃。但小程序将保留有限的推送能力如果用户确认希望收到某些推送通知那么微信会给商户提供有限的推送能力。

5.小程序能分享么

肯定不能分享到朋友圈但是可以分享到聊天和微信群内。

6.小程序能不能做游戏

现在不能。

7.小程序能被搜索到么

用户能搜索到小程序同时小程序提供的很多服务也是线上的。但微信团队会极力限制这个搜索能力不希望它被滥用。

8.小程序和公众号的关系

小程序和公众号没有任何关系彼此独立。

但很多公众号和小程序可能是同一个企业开发的会存在某种关联比如在公众号里目前用户能看到同一个企业还做了哪些小程序反之亦然小程序和公众号之间可以互相跳转。

9.微信会不会提示线下店面

目前微信会进行轻量的提示让用户感知到附近有哪些店铺提供小程序。

10.小程序什么时候能用

19日正式上线小程序所有微信用户都能够使用。

张小龙说这个时间点1227日晚上才和微信团队商量好这个时间点也是微信提出应用号小程序前身一周年的纪念。

没有入口没有应用商店没有订阅关系也不能分享到朋友圈。。。即用即走,微信很大胆,很有野心啊

ionic学习笔记

登录页面输入框

<label class=”item item-input”>

  <i class=”icon ion-ios-unlocked-outline positive”></i>

  <input type=”password” placeholder=”请输入您的密码”>

</label>

顶部条状的tabs

class=”tabs-striped tabs-top”

grid布局

row和col

col是按百分比的col-50,col-20

下拉更新数据 ion-refresher

上拉加载更多数据 ion-infinite-scroll

$ionicScrollDelegate可以控制滚动scrollTop或者scrollBottom

ionic.wang有中文文档

ionic路由管理

$state:路由状态机

状态迁移的几种方式:

1、$state.go(“state name”);

2、<a ui-sref=“state name”>go state name</a>

3、导航到相关联的url

内联模板

<script type=“text/ng-template” id=“name.html”>

<ion-view>

<p>123</p>

</ion-view>

</script>

加载的模板会放在<ion-nav-view></ion-nav-view>里

<ion-view>用在定义模板的时候

控制是否显示标题栏

$ionicNavBarDelegate.showBar(true);

state可以通过点标记tab.chats或者parent:’tab’来继承模板框架

tab和sidemenu结合使用,应该是把tabs放到sidemenucontent里面去

这样有全局的sidemenu

angularjs和ionic

web storm编辑器

下拉更新

ion-refresher

03里面的demo02 pull-to-refresh有示例工程

angularjs:

ng-app,表示angularjs开始接管

ng-model=“username” 绑定input,类似普通html里面的name=“ username”

ng-bind=“ username” 类似 {{username}}

较普通html不同的是,这种绑定方式可以实时input,实时输出

这就叫双向数据绑定

ng-init,设置一些初始值,一般不用

{{}}中可以写表达式{{num*5}}

ng-controller,指定控制器,angularjs的核心

然后使用$scope元素完成双向绑定

ng-app和ng-controller都是有控制域的

angularjs使用模块,解决控制器污染全局命名的问题

ng-repeat完成循环,如下,将会循环li标签

<ul>

  <li ng-repeat=“p in person”></li>

</ul>

需要用哪个模块,就把模块名加到controller的参数里面,如$http等

$http.get(url).success(function(data) {}).error(function(err) {});

$http.post(url).success()

$http.jsonp(url),跨域请求其中url需要加callback=JSON_CALLBACK

过滤器

{{name | uppercase}}

{{name | lowercase}}

ng-repeat=“p in person | orderBy:’name’ “

还可以筛选 ng-repeat | filter

$scope作用域

controller可以嵌套,对应$scope就是继承关系

另外有一个$rootScope

如果外部的setTimeout方法要实现$scope的变化,或者是监听$scope的变化

使用$apply或者$watch方法

但是可以使用angularjs内置的$timeout方法,更简单,不需要用$apply方法

监听数据变化特别好用,比如在计算运费的时候

$scope.$watch($scope.sum,function(newVal,oldVal) {

//console.log(newVal); 

//console.log(oldVal); 

$scope.iphone.fre = newVal >= 100 ? 0 : 10;

});

{{sum()}},数据绑定里面可以执行方法

$scope.sum() {return total;}

angularjs的工具方法

angular.isArray, isString 等等

angular.uppercase()

如果要初始化两个ng-app,需要用angular.bootstrap来加载

模块之间的依赖还可以从[]中加入

比如

service.js中有angular.module(‘starter.services’, [])

controller.js中有angular.module(‘starter.controllers’, [])

然后在app.js中写入

angular.module(‘starter’, [‘ionic’, ‘starter.controllers’, ‘starter.services’])

其中ionic是插件,另外两个是其他文件中的module

学习ionic和cordova

osx环境下

安装nodejs,0.10.26版本的就好,太新或者太旧都不好用

node -v和npm -v查看安装是否成功

安装ionic和cordova

npm install -g cordova ionic

ionic实际上就是基于cordova和angularjs的一个框架

ionic start [project name]创建一个项目

首先看index.html,是主页面,里面引入了angularjs, cordova等js支持,此外还有app.js, controllers.js, services.js三个文件,这三个文件构建了app的应用逻辑,app是主程序,包含一些设置和启动脚本,services是数据支持部分,也就是model部分,用于提供数据的增删改查操作,controllers用于控制,包含业务逻辑控制代码

ionic platform add ios

ionic build ios

然后进文件目录,project name/platform/ios用xcode打开就好了

如果装了ios-sim,可以继续

ionic run ios 或者

ionic emulate android等

修改www中的文件,主要是css,img,js,templates

其中css控制样式

js里面app.js控制页面跳转

.state(‘tab.friends’, {

    url: ‘/friends’,

    views: {

      ‘tab-friends’: {

        templateUrl: ‘templates/tab-friends.html’,

        controller: ‘FriendsCtrl’

      }

    }

  })

控制的是tab页面,friends页的形式,在tab-friends这个view里面显示templates名字叫tab-friends的html,然后控制器叫FriendsCtrl

controller.js控制逻辑

$scope是全局变量,定义一些数据和方法

另外还有$ionicTabsDelegate等,注意传递参数

controller里面可以console.log输出,或者直接alert

services.js提供数据等

页面都在templates里面,用到的一些模板的语法,有一些特定的框架和元素,以ion-开头的

注意js中的.controller,  .factory等,多个之间没有任何符号,直接换行即可

最后有分号

直接用ionic serve,开启浏览器调试模式,所见即所得

ionic popover的css, 4388行,opacity为什么是0呢?

leancloud,集成云存储,通信等,移动开发不再需要后台,json数据交互

ionic连接leancloud也非常简单,申请好账号,得到appid和appkey之后

在index.html中引入两个js

<script src=”https://cdn1.lncld.net/static/js/av-mini-0.6.1.js”></script>

<script src=”https://cdn1.lncld.net/static/js/av-core-mini-0.6.1.js”></script>

然后在app.js中

.run(function($ionicPlatform) {

  $ionicPlatform.ready(function() {

    //里面,添加AV初始化即可

    //leancloud

    AV.initialize(‘vGdoW****beS1D’, ‘5LubapRJ*****lcQw8zx2’);

  });

})

阿里云ubuntu安装ejabberd

突发奇想在阿里云的ubuntu上搭建一个ejabberd服务器,也学一学XMPP,百度和谷歌了一下发现还是有很多攻略的,但是都说得不是很清楚,于是自己结合搜索的结果和自己的尝试在这里记录一下安装过程

1.安装ejabberd

这个比较简单,ubuntu下直接sudo apt-get install ejabberd就会静默完成

两个目录比较重要:/etc/ejabberd这里面有配置文件ejabberd.cfg,后面配置会用到

/usr/lib/ejabberd这里面有ebin目录,是后面放mysql连接扩展的

另外有的攻略里面说这下面的priv目录里有ejabberd mysql数据库初始化sql文件,我没有找到,后面是在别处下载的

2.配置mysql

第一步安装完成之后,应该就可以使用ejabberdctl命令了,可以接status,start,restart等等

首先从https://github.com/processone/ejabberd/blob/master/sql/mysql.sql下载数据库初始化sql文件,放在某个目录下,比如/etc/ejabberd

然后登录到你的mysql,

mysql -uroot -proot

创建一个用户ejabberd

GRANT ALL ON ejabberd.* TO ‘ejabberd’@’localhost’IDENTIFIED BY ‘ejabberd’;

创建一个数据库

create database ejabberd;

使用前面那个mysql.sql文件创建初始表格

use ejabberd;

source mysql.sql

这个时候会发现ejabberd这个数据库里面多了很多表格就对了

3.配置ejabberd支持mysql

修改/etc/ejabberd/ejabberd.cfg文件如下:

注释掉: {auth_method, internal}.
取消注释:{auth_method, odbc}.

取消注释并设置数据库名称和密码:
{odbc_server, {mysql, “localhost”, “ejabberd”, “ejabberd”, “ejabberd”}}.

修改模块如下:在原有模块名后面都增加_odbc
{mod_last_odbc, []},
{mod_offline_odbc, []},
{mod_privacy_odbc, []},
{mod_private_odbc, []},
{mod_pubsub_odbc, [ % requires mod_caps …
{mod_roster_odbc, []},
{mod_vcard_odbc, []},

重启服务

ejabberdctl restart

4.这个时候多半发现ejabberd服务没启起来,通过查看/var/log/ejabberd/ejabberd.log可以看出

=ERROR REPORT==== 2010-06-24 11:35:34 ===
C(<0.37.0>:ejabberd_check:63) : ejabberd is configured to use ‘mysql’, but the following Erlang modules are not installed: ‘[mysql,
mysql_auth,
mysql_conn,
mysql_recv]’
=INFO REPORT==== 2010-06-24 11:35:34 ===
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{‘EXIT’,database_module_missing}}}
type: temporary

原因是erlang缺少mysql模块,需要单独编译

那么从svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql

可以把需要的模块源码下载下来,主要是

mysql_recv.erl

mysql_conn.erl

mysql_auth.erl

mysql.hrl

mysql.erl

这几个

放到某个目录里面后分别使用erlc *.erl编译

可以得到几个文件

mysql.beam
mysql_auth.beam
mysql_conn.beam
mysql_recv.beam

把他们全部放到/usr/lib/ejabberd/ebin里面再次尝试重启ejabberd服务就可以了

5.配置ejabberd管理员用户

ejabberdctl register admin [YourIPAddress] 123456

使用web地址http://ip地址:5280/admin,登录即可开始进行服务器管理了

后面的操作未完待续

参考url

http://www.cnblogs.com/silent2012/p/3610747.html

https://code.google.com/p/ejabberd4joomla/wiki/installing_eJabberd

http://srijan.me/ejabberd-storing-data-in-mysql/

 

Objective-C语法快速参考

大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。

如果你和我一样,对苹果相关的开发:Mac OS X或是iPhone有兴趣,但是第一时间看到Objective-C就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右,而且绝不无聊的时间,你就会对Objective-C有那么一点点了解,至少读读例子不会那么头疼了。

不过假定你要有那么一点点c++、c#或是java的基础,至少能看到c++、c#或是java的源码,能够大致明白说得是什么。

这篇文章不是一篇科技文章,希望你也不要把它当做科技文章来读。文章非常不严谨,但是我相信你能看得懂。

一、XCode、Objective-C、Cocoa说的是几样东西?

答案:三样东西。

XCode:你可以把它看成是一个开发环境,就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。

Objective-C:这是一种语言,就好像c++是一种语言,Java是一种语言,c#是一种语言,莺歌历史也是一种语言一样。

Cocoa:是一大堆函数库,就好像MFC.NETSwing这类玩意,人家已经写好了一堆现成的东西,你只要知道怎么用就可以了。

有些人会比较容易混淆Objective-CCocoa,就好像有些人会混淆c#.NET一样。这两个东西真的是两个不一样的东西。

二、Objective-C是什么?

你可以把它认为是语法稍稍有点不一样的c语言。虽然第一眼望上去你可能会认为它是火星语,和你所认知的任何一种语言都不一样。

先简单列出一点差别:

 

问题一:我在程序中看到大量的减号、中括号和NS****这种东西,他们是什么玩意儿?

1 减号(或者加号)

减号表示一个函数、或者方法、或者消息的开始,怎么说都行。

比如c#中,一个方法的写法可能是:

private void hello(bool ishello)

{

//OOXX

}

用Objective-C写出来就是

-(void) hello:(BOOL)ishello

{

//OOXX

}

挺好懂的吧?

不过在Objective-C里面没有publicprivate的概念,你可以认为全是public

而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。

2 中括号

中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。

比如C#里你可以这么写:

this.hello(true);

在Objective-C里,就要写成:

[self hello:YES];

3 NS****

老乔当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是NextStep这一套函数库。

这些开发NextStep的人们比较自恋地把函数库里面所有的类都用NextStep的缩写打头命名,也就是NS****了。比较常见的比如:

继续阅读“Objective-C语法快速参考”

信息安全学习笔记(5)

两天没来写了,不是偷懒噢,而是前两天学习的主要是前沿技术的东西,都是大学的时候学过的,所以也没有太多可以记的。相关知识都可以在云计算,物联网,操作系统等课程中学到。

大概列个提纲吧:

云计算

架构部署模式:公有云,私有云,团体云,混合云

按业务交付模式:Software as a Service,SaaS;Platform as a Service,PaaS;Infrastructure as a Service,IaaS。

动态资源调配:网络资源,计算资源,存储资源,安全资源。

与Google的服务器群组不太一样,虚拟化技术是现在云计算的基础

云计算安全威胁:旁路边界防护,多用户滥用,跳板攻击,管理员权限滥用,未加固虚拟镜像

云计算安全建设:缺乏统一标准,虚拟机之间的攻击,不同安全级别的服务,

—–

物联网技术

—–

信息安全

PS:老师用note II就可以在局域网内session劫持,还是很可怕的

wifi密码设置WPA2要比WPA安全,WEP是最不安全的

—–

系统安全

WIndows,Linux,应用安全,web安全等

邮件系统中使用PGP,是RSA公钥加密

—–

访问控制中:

强制型访问控制有

BLP-保密性

Biba和Clark wilson-完整性

Chinese wall-混合型

访问控制矩阵 – 自主型访问控制:ACL和CL

—–

BLP模型中,简单规则是,向下读,不能向上读(S读O,S》O)

*-规则是,向上写,不能向下写(S写O,O》S)

Biba模型中,完整性的,向上读,向下写

—–

单点登陆,Kerberos协议,获得票据许可票据,获得服务许可票据,获得服务

集中式访问控制技术:RADIUS,TACACS,TACACS+,Diameter

审计是一次性,周期性的,三个部分:日志记录器,分析器,通告器

监控是实时的

—–

CISP知识体系

信息安全保障概述:信息安全基本知识,信息安全基本实践

信息安全技术:密码技术,访问控制与审计,网络安全,系统安全,应用软件安全,安全攻防,软件安全开发

信息安全管理:信息安全管理体系,信息安全风险管理,信息安全管理措施

信息安全工程:信息安全工程原理,信息安全工程实践

信息安全标准法规:信息安全法规与政策,信息安全标准,信息安全道德规范

—–

信息是一种资产,具有价值

信息安全就是保护信息的保密性,完整性和可用性

信息安全管理的相关标准27000系列:27001,引入PDCA模型,是信息安全体系要求

27002,7799-1,17799都是实践准则

27003,信息安全管理实施指南

信息安全管理体系:ISMS,Information Security Management System,从风险评估开始

—–

PDCA模型,又叫戴明环,规划和建立Plan,实施和运行Do,监视和评审Check,保持和改进Action

特点是:循环,组织部分,个人均可采用,阶段总结

风险就是威胁利用脆弱性对资产造成不良后果

项目      风险管理     风险评估

目的:降低风险      确定风险等级

周期:所有阶段      单个阶段

计划:PDCA            按需要

—–

风险管理内容:建立背景,风险评估,风险处理,批准监督;监控审查,沟通咨询

常用风险处置方法:减低风险,转移风险,规避风险,接受风险

风险管理贯穿信息系统生命周期:规划,设计,实施,运维,废弃

—–

应急响应的六个阶段:准备,确认,遏制,根除,恢复,跟踪

信息安全应急响应编制方法:总则,角色及职责,预防和预警机制,应急响应流程,应急响应保障措施,附件

信息安全事件分级方法:系统损失,社会影响,信息系统的重要程度

灾难恢复规划的过程阶段:风险分析,业务影响分析,确定灾难恢复目标,制定恢复策略,灾难恢复策略的实现,灾难恢复预案的制定、落实和管理

信息安全学习笔记(4)

七、网络安全

链路层=》物理寻址

网络层=》逻辑寻址

传输层=》应用寻址

应用层=》语义

协议是网络中计算机或设备之间进行通信的一系列规则的集合

ISO/OSI七层模型 《==》 四层模型(网络接口层,网络层,传输层,应用层)

TCP/UDP协议,报文中有端口号,直接对应应用

IP协议是无连接,不可靠的

链路层,有MAC地址

—–

IPV6的安全特性:地址数量大,强制IPSEC加密,128位

无线网络安全:802.11和wapi无线网络协议原理及安全特性

BSS->ESS,保证网络不断

安全性能:WPA2 》 WPA 》 WEP

WAPI三元安全架构,802.11i,802.11x,强制加密

3G(TD-SCDMA,CDMA2000,WCDMA)网络原理

—–

网络架构安全

网络安全域,网络边界划分,安全分级保护

IP地址包括网络标识和主机标识,使用子网掩码分开

无分类编址CIDR

—–

网络安全设备

防火墙:边界设备,访问控制

防火墙的功能:静态,动态地址转换,端口地址转换

防火墙分类:包过滤(网络传输),应用代理(应用协议),状态检测(传输)

越底层,开销越小,效率越高

工作模式:路由模式,透明模式,混合模式(可切换,不共存)

包过滤技术:只分析IP,TCP/UDP协议,对用户透明,处理较快,缺点是不能识别应用

应用网关或代理:可检查应用层、技术和协议,缺点是对用户不透明,支持应用有限

—–

入侵检测技术

功能:监视网络流量,Network IDS, Host IDS

以旁路的方式接入到网络中

其他网络安全技术:网闸,入侵防御系统IPS,安全管理平台SOC,统一威胁管理系统UTM等

入侵防御系统IPS=IDS+防火墙,透明方式串联接入网络中

—–

八、安全攻防

攻击的过程:踩点,定位,入侵,留后门,抹去痕迹

DNS欺骗

DNS两种工作模式:递归模式,迭代模式

—–

拒绝服务式攻击,Denial of Service,DoS

分布式DoS,DDoS,借刀杀人

缓存溢出与网页脚本安全

计算机取证

信息安全学习笔记(3)

五、信息安全保障基本知识

20世纪40-70年代,通信安全,加密,防窃听

20世纪70-90年代,计算机安全,口令,美国TCSEC橙皮书,计算机系统分级

20世纪90年代后,信息技术安全,防病毒,防火墙,VPN

现在到未来,信息安全保障,黑客,网络犯罪,信息战等

—–

信息安全指信息本身的机密性,完整性和可用性保持。

美国国防部定义,信息安全保障:完整性,可用性,鉴别性,机密性,抗抵赖性

网络安全模型,CC的信息技术安全模型(功能要求,保证要求)

P2DR模型:策略(响应,防护,检测)

安全包括:Safety和Security

—–

保障的含义,范围:通信安全,网络安全,数据安全;外部环境法律与政策,内部环境

信息安全保障模型:三维关系

生命周期:计划组织,开发采购,实施交付,运行维护,废弃

保障要素:技术,工程,管理,人员

安全特征:机密性,完整性,可用性

—–

信息系统安全保障评估框架:简介和一般模型,技术保障,管理保障,工程保障

—–

六、信息安全工程

信息安全建设必须同信息化建设“同步规划,同步实施”

生产过程的高质量和组织实施的成熟性可以以低成本地生产出高质量的产品

—–

信息系统安全工程能力成熟模型,SSE-CMM

描述了一个组织的系统安全工程过程必须包含的基本特征

完善安全工作的保证,系统安全工程实施的度量标准,评估框架

SSE-CMM覆盖整个产品或系统的生命周期

—–

过程区域,Process Area,PA,是过程的一种单位,由基本实施,BP组成

PA包括三类:工程、项目和组织

过程能力,Process Capability,度量方法

两维模型:域维(由所有定义的安全工程过程区域组成)和能力维(组织实施的能力)

基本实施BP有129个=》过程区域PA共22个=》过程分类

通用实践GP=》公共特征CF=》能力级别0-5级

域维-工程类PA有3种:风险过程,工程过程,保证过程

能力维:0级,未实施;1级,非正规执行;2级,规划和跟踪级;3级,充分定义级;4级,量化控制级;5级,持续改进级

—–

信息安全工程监理模型:

监理咨询阶段过程,控制和管理手段(三控两管一协调),监理咨询支撑要素