BPM一夜之间都成了低代码开发平台

月初中国软件网的记者赵满满筹备一篇BPM的文章,微信联系到我问几个问题,让我重新去关注了一下当下国产BPM的一些现状。

最大的发现是:一夜之间,你去国内的BPM厂商的官网去看,每家都增加了低代码平台的宣传口号。

我搜集整理了一下,比方第一家易正的新口号:Low-Code,流程快速开发平台

奥哲的新口号:低代码开发平台云产品与方案提供商

炎黄盈动的新口号:全球领先的低代码和BPM PaaS服务商

没想到这两年低代码平台的崛起对周边产品的影响这么大,很多时候一个概念出来的时候,边界很难限定,影响也很难预估。

最后附上中国软件网的《低代码、中台化、AI化并发,BPM会成为大赢家?》文章链接。

跟老板学管理#3:没办法解决的先放一放

曾经就几个问题求证老板,确认他是否知道?

老板说:其实很多问题,我知道了,但没有好的解决方案,只能先放一放。

我想这里的问题不仅指事情,也包括人。

很多时候,一个人在一个位置上不合适,在没有好的后备方案的情况下,就先留着。

当有解决办法的时候,放下的还能拿起来。

拿得起,放得下。

说起来容易,生活和工作都需要知行合一。

上海美食打卡:浦东周浦黄大哥羊肉

今天约了高中同学、饭搭子的表弟一起吃早饭,慕名前往周浦的黄大哥羊肉,怕去的晚吃不到,6点钟爬起来去排队。

开车过去30分钟,7点钟不到就到了,但店附近没有停车场,在距离500多米的一个广场停车场停好车,路上看到另一家叫长脚羊肉的店,排队得有30米以上。

拐过路口,找到了黄大哥羊肉店,看起来很简陋,但是排队的人依然很多。

老板一家直接提供服务,很亲民。

老板陪一些本地的老人边吃边聊,喝点小酒。

老板的女儿收钱,估计是太太切肉。

整个流程是先买羊肉和羊杂,然后可以打包带走,多数堂吃顺道点上面条(干和汤两种)和羊肉汤、羊杂汤。

点好以后,我就到院子里找了个位置,不对,应该是等了个位置。

还有些人直接在街上,找个凉阴处,摆张桌子就吃起来。

我点肉没经验,切出来肥肉居多。但吃起来还不算太腻。

特别是羊皮,以前我很反感崇明红烧羊肉还带皮的操作,因为从小就是喝羊肉汤不习惯,可能我们县的没品牌,但菏泽的单县羊肉汤还是有有一定品牌的。现在吃起来带羊皮沾点酱料还是很美味的。

如果比起来以前吃苏州臧书羊肉面,还是臧书羊肉的面好吃。

比起昨天在奉贤庄行的李记羊肉,黄大哥这里只有一种做法,李记就是一个大饭店,黄大哥目前还是小店。

但现在用户为王的时代,谁能低估一个以传统产品为核心的美食品牌呢,谁能低估一个小品牌的潜能呢。

你问我为啥开始美食打卡,写这些流水账的文字。

我想说

以前觉得挣钱不重要

现在才知道

星辰和大海都需要门票

而诗和远方的路费

也都很贵

远了去不了,那先从近处去探索吧

树莓派4的操作系统安装烧录、设置SSH、WIFI、VNC及备份

这篇文章的内容你在网上有一半都可以单独搜索到,但另一半来自于探索和创作。

整个内容的介绍,我用一张图来概括如下

所有的操作步骤,我录制了视频并上传至微信公众号,请点击下图直接观看。

相关的步骤及命令,我也整理到下面

1、烧录工具:官方推荐的Raspberry Pi Imager

2、树莓派OS:官网有4个版本,其中32位有3个,我们演示的安装是Desktop版本,就是介于Full和Lite之间的版本。64位的系统还是Beta版,可从论坛下载,也可以到https://downloads.raspberrypi.org/找。

3、开启SSH:这个是为了在没有额外鼠标、键盘和显示器的情况下,方便远程连接的。只要创建一个名为ssh的文件,没有内容,没有文件后缀。放入烧录上的TF卡根目录即可。

4、配置Wifi:同上,使用命令行去配置,并写到TF卡根目录。文件名为wpa_supplicant.config,内容格式的示例如下

country=CN

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={
ssid="cuiwenyuan.com"
psk="cuiwenyuan.com"
priority=5
}
network={
ssid="wangcaisoft.com"
psk="wangcaisoft.com"
priority=4
}

5、使用路由器的管理界面查看树莓派获取的IP地址,以便远程SSH控制

6、开启VNC:使用raspi-config命令打开图形化配置界面开启VNC,并配置显示分辨率,重启后即可通过VNC进行远程控制。

7、备份系统:使用树莓派自带的SD Card Copier功能进行复制,注意保证两张卡的容量一致。

如何在树莓派4B上设置EMQX开机自启动

上一篇文章《如何在树莓派4B上安装EMQ X Broker》中所提及的EMQX编译安装成功后,还想要让它开启自动启动,这样才能作为一个MQTT服务器来使用。

那怎么办呢,怪我Linux基础太差,找了好多教程,试了不下十遍,终于成功了。首次成功是在Ubuntu下,因为Ubuntu也是树莓派官网推荐的OS之一,所以先从这个基于Debian的流行操作系统开始的。网上很多都是针对Ubuntu 18及老版本的,找了好久因为新版本是用SystemD来管理服务了。

设置操作视频

已上传至微信公众号,请直接点击文章链接观看:https://mp.weixin.qq.com/s/8naZNoS87yZN7r26Qfo7bw

准备工作

因为树莓派默认没有安装VIM,需要自行安装sudo apt install vim,本部分的VIM功能,记住i是进入编辑模式,ESC退出编辑模式,:是进入命令号模式,进入命令行后w是写入,q是退出。

开始设置

第一步在rc-local.service增加服务

sudo vim /lib/systemd/system/rc-local.service

VIM打开后,在最下面增加如下代码

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

第二步是在rc.local增加emqx启动命令

sudo vim /etc/rc.local

打开后,在exit 0前面增加以下代码

echo "EMQX auto starting" > /usr/local/emqx.log
cd /home/pi/emqx-rel/_build/emqx/rel/emqx/bin && sudo ./emqx start

第三步给rc.local增加可执行权限

sudo chmod +x /etc/rc.local

第四步给EMQX目录增加权限

sudo chmod -R 777 /home/pi/emqx-rel/_build

最后一步启动服务

sudo systemctl enable rc-local.service

设置完毕重启后,就应该能看到服务的日志

服务的状态也可以看到如下

服务相关命令

启动服务
sudo systemctl start rc-local.service
禁用服务
sudo systemctl disable rc-local.service
服务状态
sudo systemctl status rc-local.service
重新加载服务
sudo systemctl daemon-reload

如何在树莓派4B上安装EMQ X Broker

跟师新生命的创始人大石头玩树莓派下的.NET Core有几个月时间了,一直想从零开始写一些入门的东西,但看了淘宝、京东还有哔哩哔哩等平台上很多入门的教程了,就一直没动手。

这不因为要在物联网方面做些探索,遇到第一个问题就是MQTT的服务器端的安装,但官网没有针对树莓派版本的下载,只能自己编译。

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。

EMQ X Broker 在全球物联网市场广泛应用。无论是产品原型设计、物联网创业公司、还是大规模的商业部署,EMQ X Broker 都支持开源免费使用。

我先是在4B 1G的版本下编译,遇到了OTP的版本问题,以为升级一下树莓派的OS就行了,没想到在4B 4G版本安装了2020-05-27的full版本之后,还是默认版本达不到Erlang OTP版本21.3以上的编译要求。

OTP release 21.3 or later is required. Version in use: 21.2.6。

就只好先安装OTP了,这个倒是很快,不过如果你网络慢可能会在安装时失败,这时就再执行一下安装就行了

wget https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_22.1.6-1~raspbian~buster_armhf.deb
sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb

因为当前EMQX的版本是V4.1.1,所以我就用以下命令进行下载和编译了,大概半小时就可以完成。

sudo git clone -b v4.1.1 https://github.com/emqx/emqx-rel.git
cd emqx-rel && sudo make
cd _build/emqx/rel/emqx && sudo ./bin/emqx console

安装成功,可以用以下命令进行服务和仪表盘的查看

Quick Start
# 启动emqx
./bin/emqx start

# 检查状态
./bin/emqx_ctl status

# 停止emqx
./bin/emqx stop

启动后可以通过浏览器访问仪表盘:http://localhost:18083
默认用户名是 admin,密码是 public

现在划重点了,上述步骤在树莓派的Raspberry Pi OS (32-bit) with desktop and recommended software版本(Full)下很顺畅,但Raspberry Pi OS (32-bit) Lite那可是千辛万苦,因为很多依赖项都没有安装。

如果你是lite版本,可能这一行(sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb)命令会报依赖错误,

请按建议使用sudo apt –fix-broken install,此时需要漫长的等待,下载600多M的文件。

如果一次不成功,继续使用sudo apt –fix-broken install直到成功。

成功后再执行上一行erlang安装命令,安装成功后,还得安装Git,使用命令sudo apt-get install git,可能编译的时候,会报错,需要重新编译一下,我是编译了两次才成功,要下载下来编译好的文件到本地,还需要手动安装sfp:sudo apt-get install vsftpd。

目前还没有在2020-05-27 64位版本和2020-05-27 Raspberry Pi OS (32-bit) with desktop下进行编译,有兴趣的朋友可以自己尝试。

当然了,我也附上EMQ X Broker V4.1.1 树莓派版本的编译压缩包,可自行下载解压缩研究。

wget http://raspberrypi.cuiwenyuan.com/emqx-raspberrypi-v4.1.1.zip
sudo unzip emqx-raspberrypi-v4.1.1.zip
cd emqx-raspberrypi-v4.1.1
sudo ./bin/emqx start

如何正确地指出别人的错误?

本篇文章内容核心来自卡耐基《人性的弱点》这本书。

相信很多读者都看过这本书,我在2005年的时候读过。

一开始我以为这本书跟普通“成功学”的书一样,还希望看了就能成就多么伟大的一番事业。

读了之后才知道,这本书更多的是教会我们如何去追求内心的平静,如何将自己的社会关系建立得更加和谐。

看完这本书,我学会了更少的抱怨,更多的脚踏实地的付出。

回到主题,此书中对于如何指出别人的错误,如何提出建议给出了很多很有效的方法。

指出别人错误的正确姿势

  1. 用称赞和真诚的欣赏开始
  2. 教导他人时,要做到让别人不觉得在被教导
  3. 提出别人不知之事要像是提醒别人遗忘之事
  4. 尊重他人,间接的指出人们的过错,使用“如果 xx 那么 xx”
  5. 在批评对方之前,不妨先谈谈你自己的错误
  6. 使错误看起来容易改正
  7. 用请求、建议、商量、赞美、提问的方式进行,别用命令的口吻,保全他人的面子

要想有好的反馈效果,我们通常不是直接指出对方的问题!

如果对方根本没有这个问题,或者有非常合理的原因,那么徒增怨恨。

如果真的存在问题,应该适当引导他,让他自己发现做的不对,然后主动的去改正。

如何正确的向程序员报bug的礼仪

永远不要对程序员说你的代码有bug

他的第一反应是:你的环境有问题吧,傻x你到底会不…

但如果你委婉的说:这个程序和预期的有点不一致,你看看是不是我的使用方法有问题

他本能的就会想:啊!!是不是出bug了

学到了吗?

一个有用的SQL Server拼接合并函数:STUFF

在ERP里面有个仓库的固定默认库位(Fixed Location)表,结构如下:

WarehouseCode, ItemCode, LocationCode

同一个仓库里的料号,可以允许设置多个固定库位,可以设置优先级来区分。

现在需要把一个物料在一个仓库的固定库位取出来,多个的时候用,分割连接在一起。

SELECT WarehouseCode,ItemCode,LocationCode = (
        STUFF((SELECT ',' + LocationCode FROM WMS_DefaultLocation WHERE WarehouseCode = A.WarehouseCode AND ItemCode = A.ItemCode AND Enabled = 1 AND DeletionStateCode = 0 ORDER BY LocationCode ASC FOR XML PATH('')),1,1,'')
    ) FROM WMS_DefaultLocation AS A WHERE A.Enabled = 1 AND A.DeletionStateCode = 0 GROUP BY WarehouseCode,ItemCode

这里用到了STUFF和 FOR XML PATH,本文主要介绍STUFF。

用法及详解

STUFF(param1, startIndex, length, param2)
将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。

1、param1:一个字符数据表达式。param1可以是常量、变量,也可以是字符列或二进制数据列。
2、startIndex:一个整数值,指定删除和插入的开始位置。如果 startIndex或 length 为负,则返回空字符串。如果startIndex比param1长,则返回空字符串。startIndex可以是 bigint 类型。
3、length:一个整数,指定要删除的字符数。如果 length 比param1长,则最多删除到param1 中的最后一个字符。length 可以是 bigint 类型。
4、param2,返回类型。如果param1是受支持的字符数据类型,则返回字符数据。如果param1是一个受支持的 binary 数据类型,则返回二进制数据。

Bose SoundTouch 23.0.0.2933 for Windows下载地址

以前写过一篇《Bose SoundTouch 17.170.80.1819 for Windows下载地址》,近期有人问有没有最新版,我想办法下载到了,因为文件较大,请加我微信,注明Bose,微信发个我您的邮箱地址,我发给你安装文件。

FILE SIZE/文件大小:114 MB

PC running Windows 7, Windows 8 or Windows 10

我的FlowPortal BPM培训提纲及收费标准

FlowPortal这几年一直有10个流程的无限用户的全功能版本,可以很方便在一些中小企业进行小规模尝试,作为起步,在软件方面零风险,零投入。

但是要用好这个BPM软件平台,除了看官网的在线帮助文档,必要的入门培训会大大减轻你的恐惧,极大缩短摸索时间。

这2017年以来,我一直在用的培训提纲,共计16个小时的课程。

Lesson #1、服务器准备、测试环境安装 – 2小时
Lesson #2、BPM架构、基础配置简介 – 2小时
Lesson #3、BPM企业管理器(组织机构、用户、角色、日历、权限) – 3小时
Lesson #4、BPM企业管理器(流程设计器、表单设计器)-3小时
Lesson #5、BPM流程开发基本流程、开发第一个流程 – 1小时
Lesson #6、开发第一个流程(实战课)-2小时
Lesson #7、流程相关权限管理- 2小时
Lesson #8、其它:BPM数据结构分析、高级编程等 – 1小时

疫情之下, 您可以选择给自己充充电,然后把自己公司的企业信息化提升下内功,当机会来临时,守得云开见月明。

按照惯例,我8小时的费用是5000元,需要学习全部内容就是10000元。

也可以根据自身需要选择部分课程,或者预约主题,按照每小时800元收费。