博客 页面 13

ubuntu安装node

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

 

使用Hammer.js获取点击位置在元素中的相对坐标

https://github.com/hammerjs/hammer.js/issues/572

var bb = e.target.getBoundingClientRect();
// Correct, but will not work with touch.
var position = {
    x: e.pointers[0].layerX,
    y: e.pointers[0].layerY,
}
// Correct and works with touch.
var position2 = {
    x: e.center.x - bb.left,
    y: e.center.y - bb.top,
}

 

ionic/cordova推送通知

https://ionicframework.com/docs/native/push/

https://github.com/phonegap/phonegap-plugin-push

经研究以上推送插件,需要配合推送服务器才能使用。由于我APP中已经有Mqtt长连接了,我想直接利用MQTT来实现推送。
群友指导可以使用本地推送插件:
https://ionicframework.com/docs/native/local-notifications/
https://github.com/katzer/cordova-plugin-local-notifications

blinker——三分钟实现手机控制Arduino/esp8266/esp32

blinker是一个物联网接入方案,旨在让大家可以畅快DIY自己物联网设备
ios、android都支持,本地、远程都支持,蓝牙、WiFi都支持
可自己拖拽布局设备控制界面,自由打造你的物联网设备

Blinker官方网站:https://blinker.app
github:https://github.com/blinker-iot
QQ群:301438087
社区支持:https://www.arduino.cn/forum-132-1.html

快速开始

blinker支持多种主流通信方式,如:蓝牙 、 WiFi ,理论上只要是支持蓝牙或者WiFi的设备,都可以使用blinker连接

使用WiFi接入,当设备和手机在同一个局域网中,为局域网通信,其余情况,使用MQTT远程通信
我们提供了对主流硬件平台支持,点击你希望使用的设备和接入方式,即可查看快速接入教程

blinker是什么?

blinker是一套跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。可用于智能家居、数据监测等领域,可以帮助用户更好更快地搭建物联网项目。 

关于blinker DIY

blinker DIY是基于blinker,面向个人开发者的物联网设备开发方案,开发者可以使用它轻松快捷的开发物联网设备。

blinker具有以下特性:

  • 其由服务器端、app端、设备端组成,可以部署到几乎所有物联网平台
  • app端支持ios、android
  • 设备端可以使用蓝牙、WiFi、MQTT等方式接入,支持Arduino、freeRTOS、mbed OS、Linux等开发平台
  • 服务器端可以部署到阿里云、腾讯云、OneNET、百度云、AWS、google cloud等平台
  • 通过界面布局器,DIY用户可自己拖拽布局设备控制界面,自由打造你的物联网设备
  • 通过专属SDK,认证用户可以使用Blinker开发自己的产品,并用于商业用途

blinker能做啥?

  • 快速开发物联网 / 智能家居 / 无线遥控项目
  • 手机 / 语音助手 控制设备
  • 蓝牙ble / 局域网WiFi / 远程MQTT 接入设备

blinker APP和支持库

blinker库封装了不同硬件平台的底层代码,提供了一套物联网设备开发api。
开发者不用再考虑网络适配、不用再烦恼硬件差异,只用更好的聚焦业务逻辑,即可进行畅快的物联网开发。
使用blinker库,无论开发者使用何种硬件、何种开发方式、何种云平台,开发起来都大同小异。

APP下载

Android下载:
点击下载
或在应用商店搜索“blinker”下载安装
已上架的android应用商店有:Google Play、腾讯应用宝、360应用商店、三星应用商店、锤子应用商店
需要Android 5.0以上版本才能正常使用
IOS下载:
点击下载
或在app store中搜索“blinker”下载

硬件开发

code push提示zip is not define

使用code push下载更新后,报错:zip is not define
一开始以为是权限问题,尝试了各种方法,都没有解决
后看java源码,提示调用的zip.unzip时zip没有定义
又看package.json里面是有cordova-plugin-zip的
又发现/src/plugin里没有cordova-plug-zip,遂安装,问题得以解决。

发现是安装code posh时安装的zip,但cordova-plug-zip没有被写入config.xml,所以run android时没有安装

第一次创业失败总结

# 失败总结
2010年底在乐山开始创业,2012年2月成立公司,至2018年创业七载,终以失败告终。
2016年融资500W,加上营收和政策补助,估计两年烧掉了900W。对一个二十多岁的青年来说,是一次难得、宝贵且沉痛的经历。
失败并不是指破产,或者说不是达到一个特定条件。失败是认输,认识到自己的过错,承认自身缺点。
过去一年,可以用寝食难安形容,无时无刻不在苦恼公司方向、团队聚散等问题。现在终于能做出一个决定,让我无比释然。虽然未来可能还会更糟,但我已经向团队其他成员警示了风险。
以下为我过去两年的总结。

## 方向选择
虽然后面我总结了创业过程中公司管理 和 自身问题。但创业失败的根本原因,是创业方向选择。

### 3D打印行业现状
1.社会、资本对3D打印技术看好的,主要原因是认为3D打印可以通过分布式制造的方式颠覆传统制造。但就目前行业发展、技术发展来看几乎没有可能。
2.目前所有桌面级3D打印机,技术还是不够健全,无法让消费者做到随心所欲,对使用者要求还是较高,且看不到明确的改进方向。

### 对3D打印创业的反思
我陷入了桌面打印机的迷途,没有去探索细分行业应用。3D打印在个别领域,如医疗,仍然有极大的机会,但目前进入较晚,且现有资金无法持续。

### 对硬件创业的思考
硬件行业,离不开生产制造。生产制造除了需要制造业资源外,还需要巨大的资金。创业公司,几百万资金,想把研发、生产、销售,整个链条做完,是不现实的。
对比软件行业,支出的成本几乎都是人工成本。而硬件制造与销售,除了人工成本外,供应链、仓储、物流都会产生巨大的费用。
作为一家技术起步的公司,没有相关资源和资源管理能力,必定会付出极大的成本。
本次创业过程中,墨之坊就是因为妄图把整个链条做完,致使人力、资金分散,才导致的最终失败。

### 对创业方向选择的思考
#### 专注细分市场
创业团队还是应该专注细分市场,足够专才能生存。
这几年,创业和创投都在寻求“颠覆”,但3D打印、VR、AR、区块链、机器学习等,在未来很长一段时间都只会存在于特定应用场景。
从技术企业生存发展考虑,寻求技术匹配的细分市场,及其重要。

#### 路线问题
商品销售几乎都符合两个基本逻辑:
> 1.薄利多销。大众商品采用薄利多销是个必然趋势,你不薄利,竞争对手会先薄利,最终逼迫你薄利
> 2.小众高利。小众商品或技术,销量不大,只有维持高利润才能生存和发展。
大众商品,又会出现供应链、生产、销售等问题,大众商品往往需求是明确的,所有会有很多竞争对手,对于创业公司,仅凭二三十人,几百万资金,很难解决这些问题。
所以创业,通常还是只能走小众高利路线。小众高利的市场,有一家竞争对手时,可能是拼服务,拼技术。但一旦出现了多家竞争对手后,又会陷入价格竞争。
除非有技术上的独占优势,否则妄图挑战以上客观规律都不会有好结果。
综上,创业公司,还是应该走小众高利路线,并且尽可能在竞争对手出现前,或陷入价格竞争前,发展出自身的独占优势。

## 初创企业的生存问题
1.和巨头的竞争
现今技术创业,很容易和巨头碰上。和巨头直接针锋相对,几乎不可能存活。
现在巨头都有各自的生态圈,加入生态圈,先成为附庸,其实是好的策略。
2.和小企业的竞争
天下武功,唯快不破,公司运作也是如此。
和同级别企业竞争,最好还是拼速度,而钱可以加快速度,所以也可以说是拼钱。
3.单点突破
在大小竞争对手夹缝中求生存,还是应该尽可能避免直接竞争,寻求单点突破,不论是技术上的突破还是模式上的突破。

## 公司管理
公司管理上犯了很多错误,错误看似不大,但日积月累也会产生深远影响。
### 不够专注
一直知道,但经常把自己陷在无尽的工作中,停下整理思路,才知道公司已经在进行这么多事情了,整个战线拉的太长,人力资金都太过分散。
### 财务问题
我知道资方知道后可能会骂死我,但我还是想老实交代,并深刻反省。
没有进行财务管理,是作为CEO最大的失职。长期陷于开发工作,不了解财务风险,不了解薪资结构。没有适时思考薪酬、资金分配、融资等问题,对公司大额款项支出也没有审批。
### 妄图快
硬件研发真是快不得,一图快,就会产生很多问题。
研发没完善,启动了生产,生产没理顺,启动了销售。导致多个环节混乱。
### 不够集权
需要听取大家的意见,但重要决策还是需要独断。
将人事、财务、研发、营销,都交予合伙人全权负责,是我对大家的信任,但也是我的失职。
很多决定对未来的预估不够充分,且没有建立审批制度,致使很多工作越来越繁杂,偏离了公司主要路线。
### 自身问题
所有问题,归根到底都是人的问题。企业所有问题,归根到底都是CEO的个人问题。
#### 理想主义
没有在其他公司上过班,是我的重要缺陷。我对优秀公司的理解都存在于学生时期接触书本上,一直以来向往是Google、3M这类公司,这类公司的宣传上,通常会将其创造力的来源渲染成优秀的企业文化,和宽松自由的工作环境。在很长一段时期我对此深信不疑,并身体力行的在公司建立宽松自由的工作环境。
但结果一次一次打脸,员工非但没有因为宽松自由的制度更好工作,反正养成了松散的毛病,还对公司制度提出异议,造成公司内部矛盾。
公司效率没有提高,部分人员还抱怨颇多,我自己却累死累活。这是自己太过理想主义,对人性预计不足的恶果。
反观国内如日中天的企业,基本都在实行996一类的工作制度,极大的提高了企业运转效率。虽然员工薪资较高,但紧凑的工作安排、较长的工作时间,也将人力成本压到了极低。
#### 情商过低
创业初期,我一直都是直言直语,希望大家尽快明白我的意图,不浪费不必要的时间,但往往是适得其反。
后来,较为收敛,但又造成了不够果断的问题,每次决策,顾虑颇多,经常想着要对员工负责,经常考虑创始团队、员工的积极性,而不阻止大家的错误工作和尝试,或者想阻止时已发现太晚。
绮文之前有个观点,智商高的人,不需要情商也可以做成事。我部分同意,但在作为CEO,在公司管理过程中我意识到高情商也是极其重要的。
我是个智商平庸的人,在过去几年里,由于我有毅力,能坚持,因此技术能力还算一流。但作为CEO,却是不入流的。究其原因,还是情商过低。
智商高可以做技术,情商高可以做销售,智商情商都高,才能做管理。公司的人事管理、决策执行上,都需要极高的情商。
智商是先天的,情商是长期培养的。在情商提升上,我认为自己是没有救了,现有团队中也有没有智商情商兼具的人。好在团队长期合作,已经有了一定默契。未来工作中,我也会尽量找一个管理能力优秀的助手,来弥补我这个缺陷。

appcenter cli用法

ionic code push文档:https://ionicframework.com/docs/native/code-push/
微软 appcenter文档:https://docs.microsoft.com/en-us/appcenter/distribution/codepush/

推送更新:

$ ionic cordova prepare android --prod
$ appcenter codepush release-cordova -a coloz/blinker -d Production

指定推送更新的版本:
appcenter codepush release-cordova -a coloz/blinker -d Production -t 1.0.1

每次release后推送更新:

$ ionic cordova build android --prod --release
$ appcenter codepush release-cordova -a coloz/blinker -d Production

每次发布了release版本后,都要推一次,否则会检测到上一个版本的更新

一些记录:
1.code push只能更新同一版本号的内容,所以其是一种修补工具,不适合发布大版本.
2.微软的服务不知道会不会被墙
3.

code push cli使用方法

code-push login http://api.code-push.com

code-push app add blinker-android android cordova

 

 

ionic热更新

文档有点多,刚开始很懵逼

ionic native文档:https://ionicframework.com/docs/native/code-push/

ionic示例:https://github.com/ksachdeva/ionic2-code-push-example

code-push gihub:https://github.com/Microsoft/cordova-plugin-code-push

微软文档:https://docs.microsoft.com/en-us/appcenter/sdk/getting-started/cordova

https://github.com/lisong/code-push-server

除了微软插件外,还有个插件:

https://github.com/nordnet/cordova-hot-code-push

https://github.com/nordnet/cordova-hot-code-push-cli

 

国内使用实际上就两个方案:

cordova-hot-code-push和cordova-plugin-code-push

最终我选用了cordova-plugin-code-push 配合code-push-server实现

 

 

 

ionic禁用IOS滚动回弹效果和右滑返回

禁用滚动回弹

<ion-content no-bounce></ion-content>

<ion-content class=”no-scroll”>

 

禁用右滑返回

this.navCtrl.swipeBackEnabled = false;