背景

我的强项是后端开发,很少涉及前端开发,一个很重要的原因是前端布局太妖,要实现一个居中需要各种奇技淫巧,而且每个浏览器实现还不一样,前端的布局就像谜一样,你都不知道为啥就可以了,也不知道为啥就不行。直到Flex布局的出现前端的布局终于有点章法了,第一次接触Flex布局是从阮一峰的博客Flex 布局教程,阮一峰写博客的能力确实厉害,通俗易懂又直击要害,建议想要入门Flex都去拜读一下。那么写这篇文章的目的是从一个后端的角度去看Flex布局,如果你看完阮一峰的博客后仍然有一些疑问,那么可以读一读这篇文章。

Flex基本概念

  • 容器和项目

Flex布局包括容器(flex container)和项目(flex item),比如下面这段代码

<div class="content">
    <div class="block"></div>
    <div class="block"></div>
</div>

content这个div就是容器,block的div就是项目

  • 两轴两个方向

Flex核心就是靠两根轴进行布局的调整,其实就是水平和垂直两个方向,只不过在Flex中水平方向称为主轴,垂直方向称为交叉轴,每个方向各有start center end三个方位,其实就是左边中间和右边三个方位。

Read the rest of this entry

介绍

grapesjs是一个开源的网页设计器,你可以理解为在线低配版Dreamweaver,和Dreamweaver不同的是,grapesjs可以灵活的进行二次开发,实际上grapesjs只是构建了设计器最基础的部分,没有二次开发grapesjs也没有意义,如果你恰好有以下需求,那么grapesjs将非常适合你
  • 页面在线设计编辑,并且能自定义组件
  • 可以导出源码
  • 提供属性配置
  • 灵活的二次开发机制

使用

grapesjs使用方法很简单,如果是html页面,可以直接通过导入js和css即可

Read the rest of this entry

背景

某项目接口采用jersey开发,部署在weblogic上,升级JDK至jdk1.7.0_191后所有接口无法访问,返回404 Not Found。

测试

首先怀疑是JDK升级后部分java类初始化失败导致404,但重启服务器,重启应用,重新部署应用都未报错,说明应用启动是成功的,一开始也没怀疑到jersey框架上,因此走了很多弯路,这里就不赘述。到后面所有的猜测都验证后,还是没有解决,于是决定本地用jersey写一个最简单的接口部署上去看下结果。

  • 接口部署到线上weblogic访问404
  • 接口部署到本地tomcat,访问正常
  • 接口部署到其他weblogic环境,访问正常,jdk版本为jdk1.7.0_80
  • 正常的环境将jdk切换至jdk1.8.0_171,访问404

基于以上实验可以看出,**jersey在weblogic环境下,高版本的jdk会报404,tomcat没有这问题**,确定了问题后排查方向就比较清楚,就是搞清楚为什么高版本的jdk会报错。

Read the rest of this entry

背景

相信做过oracle中间件的同学肯定都会遇到这样的情况

  • 忘记weblogic管理员密码
  • 忘记数据库schema密码

项目就像流水一样永不停息,每个项目又有多套环境,每个环境又有超级多的服务器,就产生了超级多的密码,程序员又懒又自负,自以为能记住所有密码,结果往往是悲剧的,幸运的是weblogic帮我们记住了所有的密码,虽然是加密的,但由于weblogic本身也要使用密码进行验证,因此加密必然是可逆的,这篇文档介绍如何进行解密。

在weblogic后台配置文件中,有很多是包含密码的,比如boot.properties,config.xml等,这些密码都被加密过,你看到的形式为{AES}xxxxxx都是密码。

Read the rest of this entry

背景

客户内网环境需要通过vpn连接,vpn只有windows版本,我工作用的都是mac,导致每次要连个vpn都得开虚拟机,而且很多开发软件在windows中没有替代品,导致开发效率很低,总之就是各种不方便,后面才知道windows自带端口转发工具,试用了下效果还不错。

实现

比如对方系统地址http://192.168.25.1:7001,你在虚拟机里设置端口转发到该系统后,就可以使用虚拟机地址进行访问。用管理员打开命令行窗口,输入以下命令

Read the rest of this entry

补丁下载

oracle每个季度都会更新一次补丁,可以从这里下载oracle产品每个季度的补丁,点击去后,在左边找到你的产品,点击右边进入补丁下载

补丁下载需要登录oracle support,你必须先注册一个support账号,进入后在产品列表找到产品

Read the rest of this entry

介绍

Oracle Identity Manager简称OIM是Oracle公司开发企业身份管理应用,主要是负责企业用户信息,组织信息的同步,依靠强大的连接器,OIM几乎可以从任何系统中同步用户,并且同步至任何系统,并且这些工作都是通过配置完成,要在异构系统间中做到配置式的同步,需要对整个系统进行高度抽象,也正因此,OIM有众多新概念,如果不理解这些概念的作用,很难灵活的使用OIM。本篇文章将OIM中常用的概念进行整理,包括以下内容
  • 连接器(Connector)
  • 适配器(Adapter)
  • IT资源(IT Resource)
  • 表单(Form)
  • 流程(Process)
  • 资源对象(Resource Object)
  • 预配(Prepopulate)

Read the rest of this entry

背景

今年至少已经有3个人问了我同样的问题osb很无聊,不能写代码,没有写代码的快感,他们的疑惑我也是能理解,作为一个程序员,做开发不写代码就像厨师炒菜不用锅铲一样,很容易产生来自灵魂的拷问,“我是谁,我在哪,我在干嘛”。先说结论,osb是我从业以来最喜欢的产品,也是我觉得做的最牛逼的产品,这个想法至今没有改变过。我疑惑的是,为什么我们当初学osb的时候没有人有这疑问?

国庆期间陪老婆去散步,看到一排竹子,我跟老婆说,小时候我们很喜欢用竹做枪,野果做子弹,现在已经没人玩了,老婆说,现在小孩有手机,有平板,有电脑,谁还会去玩这个。这个有点像我们当年做开发,没有容器,没有微服务,没有spring boot,所有的开发都得从最基础的做起,很多接口都是直接用servlet开发,要是有人跟我们说有个东西能够不用写代码就可以写接口,肯定是不信的,但osb就是这么个东西,所以当年对osb格外的喜欢。现在程序员,不管前端还是后端都有各种各样的框架支持,一句话,都是给惯的。

那么osb过时了吗?并没有。

Read the rest of this entry

背景

某项目有两个外网的站点a.site1.comb.site2.com需要通过definesys.com进行代理,代理后的地址

  • a.definesys.com => a.site1.com
  • b.definesys.com => b.site2.com

a和b都是托管在vps站点上。

CNAME

接到这个任务时,以为很简单,到definesys.com域名后台增加两个域名,并且将CNAME指向代理的站点即可,但还是想简单了,这里简单介绍下vps托管站点的原理,vps就是大家所说的虚拟主机,相比云服务器,vps具有价格低,部署简单,监控方便等特点,所以很多站点都会托管到vps上,但我们都知道vps供应商不可能一台服务器只部署一个站点,肯定想法设法压榨服务器资源,一台服务器可能部署了上千个站点,那么是如何实现几千个站点都可以通过80端口进行访问,我在之前的这篇文章中有介绍过方法,就是根据访问的host进行路由达到访问不同站点的目的。

Read the rest of this entry

背景

长久以来都想找一个画流程图的工具,有几个需求,可以将组件拖到绘图面板中,并且组件间可以通过线进行关联,在属性面板可以配置组件的属性,这里的组件可能是html的组件,也可能是一个功能,为什么需要这么一个东西呢?如果有这东西,很多想法就可以实现,比如

  • 工作流
  • 服务编排

但一直找不到满意的框架,很大原因就是这些框架颜值太低,直到遇到NodeRed,NodeRed是物联网开发工具,提供可视化界面通过配置就能实现物联网程序的开发,让我感兴趣的是NodeRed可视化界面,颜值高,操作便利,简洁不花哨

因为NodeRed是开源的,也花了一段时间去研究他的代码,想把可视化工具抽离出为我所用,种种原因失败了,既然抽离不出来,能不能自己实现一个?之前从来没想过自己开发一个,但细想觉得并不难实现,可视化界面核心有两点

Read the rest of this entry