-gMIS持续优化更新, +InSiteSearch站内搜索

-gMIS 部署和应用的场景越来越多,最近在考虑为所有gMIS承载管理的数据库系统增加一个站内搜索功能, +InSiteSearch 。前因是在 2017年11月份的更新中,我们设想“层级目录导航是“传统”的,属于 Yahoo 时代的产物,未来的导航应该是 Google 式的智能导航。
未来拟开发一个 gMIS 域内全文搜索引擎,这样用户就无需使用或者记录层级目录。” (-R/p2SM)。 约半年后,我们实现了这方面的一个探索。

主要动机可以类比为Yahoo时代的目录搜索与Google时代的全文检索,当 -gMIS 所管理的对象超过一定数量级后,管理人员面临的问题就自然而然地迷失在多层复杂的目录式的导航中,如何有效地定位到目标功能模块成为迫切需要解决的问题。(在Google出现之前,用户想找某个主题/关键词的内容,需要去Yahoo的站点目录里去逐层逐级的查找相应的站点,Yahoo提供的网站目录满足了当时的需求)

站内搜索也被称之为局域网搜索Intranet search /Onsite search有别于互联网搜索Internet search. 其目的是搜索网址内部通常不公开的,格式化或者非格式化的内容。-gMIS 针对此项的规划远景是集成一个智能助理。

  1. 站内搜索InSiteSearch主要思路

    格式化数据的搜索是一个老课题。相对于非格式化数据,比如常见的网页数据,格式化数据有得天独厚的优势,我们能确切的预先知道,数据的格式、类型与规模。
    在获得这些之后又该怎样实现站内搜索呢?
    大致有两个思路,列如下。

    一是将待搜索的数据,读取到某个index service上实现对数据的indexing,当有某种关键词进行搜索时,按indexing的数据进行相应数据的返回。
    这种方式,是事先、同步地将所有格式化数据同步到indexing 服务,并实现相应的增删改的操作同步。
    也即,在格式化数据库/表之外,需要独立的建立一套应对全文搜索的数据结构存储系统,通常为 keyword–>pagelist 结构,也即某个待搜索关键词会对应一个包含该关键词的文档列表,其中列表的排序规则为某个权重值,其主要指标是为了表名当前关键词与当前文档的依存关系。
    若无意外,该indexing的数据存储结果将同等尺寸于原始格式化数据。
    另外一种思路,也即,是否可以为待搜索的数据提供某种roadmap(路书、地图),当有某种关键词进行搜索时,知道在什么地方以什么方式进行搜索。而实际数据的增删改人保留在原数据库/表中,当下的站内搜索InSiteSearch只是提供某种ShortCut服务,该服务能够实现以较为经济的、智能的方式,帮助调用者以较合理地方式返回预期的搜索内容。
    可以设想,在这种思路下,系统不需要创建一套indexing服务,也不需要额外地复制全部格式化数据副本作为待检索的对象。
    也即,当触发在全域进行某个关键词进行搜索时,InSiteSearch知道该关键词最可能出现在某些数据表的数据字段项上,而不太可能出现在其他字段项或者其他数据表相应的字段项上。
    这种路书(地图)导引式的搜索辅助设施,将极大地提升搜索范围和搜索精度,在格式化数据的搜索上,很好的契合了搜索需求的应用场景。

    两相比较,在 -gMIS 中,我们选用了,基于路书的指引式站内搜索方式。

  2. 站内搜索InSiteSearch的实现方式

    依据前述讨论,我们在 -gMIS 中实现了基于导引式地站内搜索实现。其主要操作内容如下。
    A. 创建 insitesearch 表
    用于存储当有基于某个关键词进行搜索时,所依赖的数据表路径。
    insitesearch表的生成主要依赖 /act/insitesearchsort.php 程序。
    该程序读取当前数据库连接下的所有数据表,并分析每个数据表的每个字段,如果发现当前字段数据可被检索字符串类型,通常为char(4-255),则将该数据库、数据表的数据字段记为待检索字段。
    以此循环所有数据表的所有数据字段,生成待检索数据字段列表。
    当有待搜索关键词递交到系统程序时, /extra/insitesearch.php , 站内搜索引擎程序按图索骥地逐个待搜索数据库、数据表、数据字段的进行检索。
    根据当前页的size设置,搜索到N个结果时,自动返回给调用者,以此形成翻页功能。

    B. 增加站内搜索入口
    对应地,我们在 进入系统主页和list view识图页面,在顶部导航栏增加了对 站内搜索 的接入功能,若用户需要进行站全域站内搜索,只需将待搜索关键词递交给搜索模块即可实现该功能。

    C. 动态更新搜索源
    辅助地,我们在 

    Π 首页  桌面 & 系统配置 → 搜索源配置 | 搜索源配置 

    增加了对 搜索源的配置与管理,在该模块可以实现对待搜索列表的手工更新与配置。当有新的数据模块被手工添加到当前数据库时,可以通过 “更新搜索源列表” 来实现对待搜索资源列表的更新与维护。

    D. 精细化操作的黑白名单设置
    同样地,我们在

    Π 首页  桌面 & 系统配置 → 搜索源黑白名单 | 搜索源黑白名单

    额外地增加了对待搜索源的黑白名单设置,以满足特性的运营需求,比如当某个数据库的数据表的数据字段被程序规则判定为“黑名单”时,可以在此将相应的条件设置为允许“白名单”;同样地,当某个数据库的数据表的字段被程序判断为“白名单”而通过系统检测,可以在此将相应条件设置为“黑名单”,以阻止其进入待搜索队列。

  3. UI批量更新与优化
    单条记录更新模块,增加了行间距,当字段之间跟容易识别;
    字段名称加粗显示,区别与字段值、字段备注等信息;
    列表显示时,增加了 break-all 属性,数据表默认不再撑破窗口,在纵向滚动和横向滚动中选择其一,仍不能排除某些情况下,纵横项同时滚动的可能;
    更新GTAjax,修正增加对 Array.sort 的支持;
    增加对List View下的活跃记录的所有字段值加粗显示,响应鼠标事件;
    增加对JavaScript更多的异步调用,页面提速更快;
    bugfix for getSelectOption;
    +checkSQLKeyword
    +allow multiple order fields

  4. 增删改查搜算
    截至 InSiteSearch 功能发布以后, -gMIS 的核心功能已经由 增删改查 升级为 增删改查搜算 (Create, Retrieve, Update, Delete, +Search, +Statistics)。
    其中”搜” 指的是增加了站内搜索功能,而算 则是指 -gMIS 中的数据透视功能,可以轻易地实现对目标数据表的各种维度的数据统计计算功能。
    可以预见 -gMIS 将从普通的通用信息管理功能逐渐升级改进,增加更多的商业智能功能模块,为业务运营支撑提供更多的信息数据与决策支持。

  5. GitHub 被 Microsoft 收购
    会影响到 -gMIS 在 -Github 的托管与开源吗?

 

gmis-logo-201606

-gMIS 是一种基于 -GWA2 的通用管理信息系统(Management Information System)软件,具有可配置的输入和输出接口。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS),客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统等等。
实现零代码开发、快速搭建各种管理信息系统(MIS).

-gMIS is a -GWA2 based Management Information System (MIS) software with configurable input and output interfaces.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems, etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a minute.

Lower Costs, Better Productivity.
降低成本, 提高效率.

发表在 -gMIS, 服务器运维, 编程技术, 计算机技术 | 标签为 , , , | 2条评论

愛自己悅己容2nd插座保护套儿童防触电插孔安全塞防护盖宝宝婴幼儿插头插座孔插板ChatGpt 与人工智能AI对话Wikipedia维基百科

商业组织忠诚与职业道德

最近在读《Investments》(投资学, -R/G2SS )第十版,在其中“Excerpts from CFA Institute Standards of Professional Conduct”章节提到CFA对客户第一条要“Loyalty(忠诚)”,对雇主的要求中第一条也是要“Loyalty(忠诚)”。尤其是对客户的忠诚里,要求必须把客户利益的优先级放在自己的利益前面。这听起来与某些党派的对组织忠诚、先人后己的要求很相似,如果是这样,是不是觉得“党性”要求不那么苛刻?

顺着这个忠诚的话题,我捡了几个反例叙述,商业不忠诚及职业不道德的例子示以警示。

  1. 中介员工自己跳单
    做中介的最怕跳单,大意是在居间服务市场,买家和买家通过中介取得联系后自行交易,绕过了中介一方。这在中介市场是严重不允许的,中介居间费用也是中介赖以生存的源泉。所以如果买家、卖家任一方试图绕过中介进行跳单,必遭中介追诉。
    据闻眼下,有某中介组织员工可以自己设定跳单并私吞中介服务费用。当某员工履行职责引荐买家、卖家之后,撮合达成交易收取居间费用,但上报给中介组织的内容却是交易未达成,并以服务费打折、优惠为条件劝诱买、卖双方与自己保持一致的说辞。然后再通过某种方式取消此次买卖标的物的邀约。一切像没发生过一样。
    买家、卖家、中介员工三方均受益,而唯一受损的一方是中介组织。

    类似例子,似乎并不止于中介服务,其他组织中应该也存在,员工利用其组织平台谋取私利,并对组织谎报内容。

    以损害组织利益谋取私利实在罪有应得,却屡禁不绝,大致是人的本性使然,组织如何在一定程度上使之不能、不敢、不想这样?

    也据闻眼下有在不损害组织利益的情况下谋取私利,比如统计数据修改。

  2. 程序“魔法值”修改账单
    统计数据是组织进行商务活动所依赖的根本。实施统计数据修改,一般是内外勾结在一起进行。员工A与外部合作伙伴甲达成利益输送,员工A在其数据底层,通过修改日志、统计数据输出,将原本属于合作伙伴乙的收益算入到合作伙伴甲账上。进而,合作伙伴甲收到额外的空账后再分赃给员工A。
    表面上看,似乎天衣无缝一般。组织总账平衡,不多不少,员工A和合作伙伴甲都受益,唯一受损的是合作伙伴乙,但其并不知情。

    这一犯罪的实施,需要修改生产系统或者统计程序的源代码,而且要通过某种“魔法值”(未经定义的常量,语见《码出高效——阿里巴巴Java开发手册》,-R/92SP )来进行,也即所说的“后门”的一种。

    计算机程序代码通用规范中明确要求不能使用这种“魔法值”,而一些不遵守这样约定的软件通常以“高效”等要求直接在代码中使用这些魔法值,通过使用这样的“魔法值”来满足日益复杂多变的运营需求。久而久之陷入混乱的恶性循环,也为通过这样的“魔法值”修改来实施利益输送提供了温床。

    大型的软件及互联网企业,严格要求这一项,既有技术层面的代码规范、可读性要求,还有言下之意不允许额外的特例出现在代码层,从根本上杜绝了通过“魔法值”来实施犯罪。

    如果某些作业系统程序复杂、多变,且充满了“魔法值”,则这样的犯罪实施起来将得心应手,且死无对证。除了员工A和合作伙伴甲,无人知晓,而利益受损方合作伙伴乙并无感知,也不会发起追诉。

本质上,个体是趋利的,理性的思维又要求个体要遵守商业文明。个体选择扭曲价值观的不忠诚、犯罪,一定是群体的体制机制存在一定问题。列以上反例,大致也能从侧面显示商业环境的恶劣、人性的扭曲和制度的崩溃。

法国经济学家Thomas Piketty在其著作《Capital in the Twenty-First Century 》(21世纪资本)(-R/M2SM )中表示,社会财富正由拥有资产(土地、工厂、设备)等的“地主”向拥有知识与创新的“精英”转移,职业经理人将在财富分配中扮演越来越重要的角色,其对组织的忠诚度似乎也显得格外重要。

这种白手起家或靠发明创造而快速巨额致富成为可能的社会,被现任英国首相Theresa May在其演讲中称之为“MeritCracy”(-R/F2SO ),这似乎是对经济学家的发现的印证。 

经理人或员工是人,人本性是自私的,如果一个组织不能抑私扬善,职务犯罪则防不胜防,组织最终将溃于一个个自私的蚁穴。就像一个社会,如果不能弘扬正义、彰显公平,各种犯罪则愈演愈烈,社会最终将泯灭于一件件自私的犯罪下。

发表在 社会生活 | 标签为 , , , , | 留下评论

愛自己悅己容2nd插座保护套儿童防触电插孔安全塞防护盖宝宝婴幼儿插头插座孔插板ChatGpt 与人工智能AI对话Wikipedia维基百科

[转]母亲的舍得

【编按】微信朋友圈传的文章,题目是自拟的,有人说可比语文课的《父亲的背影》,微言大义,是为推荐。

父亲去世10年后,在我的“软硬兼施”下,母亲终于同意来郑州跟着我——她最小的女儿一起生活。这一年,母亲70岁,我40岁。70岁的母亲瘦瘦的,原本只有一米五的身高,被岁月又缩减了几厘米,看起来更加瘦小,面容却仍然光洁,不见太多沧桑的痕迹,头发亦未全白,些许黑发倔强地生长着。 

我们借了一辆车回去接她,她早把居住了几十年的老屋收拾妥当,整理好了自己的行李。那些行李中有两袋面,是她用家里的麦子专门为我们磨的,这种面有麦香。但那天,那两袋面我决定不带了,因为车的后备箱太小,我们要带的东西太多。母亲却坚持把面带着,一定要带,她说。 

她这样说的时候,我忽然愣了一下,看着她,便想明白了什么,示意先生把面搬到里屋,我伸手在外面试探着去摸。果然,在底部,软软的面里有一小团硬硬的东西。如果我没猜错,里面是母亲要给我们的钱。 

把钱放在粮食里,是母亲很多年的秘密。十几年前,我刚刚结婚,在郑州租了很小的房子住,正是生活最拮据的时候。那时,我最想要的不是房子,不是一份更有前途的工作,只是一个像样的衣柜。就是那年冬天,母亲托人捎来半袋小米。后来先生将小米倒入米桶时,发现里面藏着500块钱,还有一张小字条,是父亲的笔迹:给梅买个衣柜。出嫁时,母亲给我的嫁妆中已有买衣柜的钱。后来她知道我将这笔钱挪做他用,便又补了过来。那天晚上,我拿着10元一张厚厚的一沓钱,哭了。那些年,母亲就是一次次把她节省下来的钱放在粮食里,让人带给我,带给大姐二姐,在我们都出嫁多年后,仍贴补着我们的生活。但那些钱,她是如何从那几亩田里攒出来的,我们都不得而知。这一次,即使她随我们同行,也还是将钱放到了面袋里,在她看来,那是最安全的。

面被带回来后,我把钱取出来交还母亲,母亲说,这是我给童童买车用的。童童是她的外孙,这段时间他一直想要辆赛车,因为贵,我没有给他买,上次回老家,他许是说给母亲听了,母亲便记下这件事。2000块,是她几亩地里一年的收成吧,我们都不舍得,但她舍得。记忆中,母亲一直是个舍得的人,对我们,对亲戚,对左邻右舍,爱舍得付出, 东西舍得给,钱舍得借,力气也舍得花。有时不知道她一个瘦小的农村妇人,为什么会这样舍得。母亲住下来,每天清晨,她早早起来做饭,小米粥、小包子、鸡蛋饼……变着花样儿。中午下班我们再也不用急赶着去买菜,所有家务母亲全部包揽。阳台上还新添了两盆绿莹莹的蒜苗,有了母亲的家,多了种说不出的安逸。 

母亲带来的两袋面,一袋倒入桶里,另外一袋被先生放到了阳台上。过了几天,我却发现阳台地板上的那袋面被移到了高处的平台上晾晒。先生是个粗心的人,应该不会是他放的,我疑惑地问母亲,她说,啊,我放上去的,晒晒,别坏了。我一听就跟她急了,那平台, 一米多高 ,那袋面,六七十斤,身高不足 一米五,体重不足90斤的母亲,竟然自己把它搬了上去。我冲她大喊,你怎么弄上去的?那么沉,闪着腰怎么办?砸着你怎么办?出点儿什么事怎么办……一连串地凶她。她却只是笑,围着围裙站在那里,等我发完脾气,小声说,这不没事吗?有事就晚了!我还是后怕,但更多的是心疼。直到母亲向我保证,以后不再干任何重活,我才慢慢消了气。 

母亲来后不久,有天对先生说,星期天你喊你那些同学回家来吃饭吧,我都来了大半个月了,没见他们来过呢。先生是在郑州读的大学,本市同学的确很多,关系也都不错,起初还会在各家之间串门,但现在,大家都已习惯了在饭店里聚会。城市生活就是这样繁华而淡漠,不是非常亲近的,一般不会在家里待客了。我便替先生解释,妈,他们经常在外面聚呢。母亲摇头,外面哪儿有家里好,外面饭菜贵不说,也不卫生。再说了,哪儿能不来家呢?来家才显得亲。然后,母亲态度坚决地让先生在周末把同学们带回家来聚一聚。我们拗不过她,答应了。 

先生分别给同学中几个关系最亲近的老乡打了电话,邀请他们周末来我们家。周末一整天,母亲都在厨房忙碌。下午,先生的同学陆续过来了,象征性地提了些礼品。我将母亲做好的饭菜一一端出,那几个事业有成、几乎天天在饭店应酬的男人,立刻被几盘小菜和几样面食小点吸引过去。其中一个忍不住伸手捏起一个菜饺,喃喃说,小时候最爱吃母亲做的菜饺,很多年没吃过了。母亲便把整盘菜饺端到他面前,说,喜欢就多吃,以后常来家里吃,我给你们做。那个男人点着头,眼圈忽然就红了,他的母亲已经去世多年,他也已经很久没回过家乡了。 

那天晚上,大家酒喝得少,饭却吃得足,话也说得多。那话的内容,也不是平日在饭店里说的生意场或单位里、社会上的事。很少提及的家事,被慢慢聊起来,说到家乡,说到父母……竟是久违的亲近。那以后,家里空前热闹起来。母亲说,这样才好,人活在世上,总要相互亲近的。 

母亲来后的第三个月,一个周末的下午,有人敲门,是住在对面的女人,端着一盆洗干净的大樱桃。女人有点儿不好意思地说,送给大娘尝尝。我诧异不已,当初搬过来时,因为装修走线的问题,我们和她家闹了点儿矛盾。原本就不熟络,这样一来,关系更冷了下来,住了3年多,没有任何往来。连门前的楼道,都是各扫各的那一小块儿地方。她冷不丁送来刚刚上市的新鲜樱桃,我因摸不着头脑,一时竟不知该说什么好。她的脸就那样红着,有点儿语无伦次,大娘做的点心,孩子可爱吃呢……我才恍然明白过来,是母亲。母亲并不知道我们有点儿过节儿,其实即使知道了,她还是会那么做,在母亲看来,”远亲不如近邻”是句最有道理的话。所以她先敲了人家的门,给人家送小点心,送自己包的粽子,还送自己种的新鲜小蒜苗……诚恳地帮我们打开了邻居家的门。后来,我和那女人成了朋友,她的孩子也经常来我们家,奶奶长奶奶短地跟在母亲身后,亲好得犹如一家人。 

邻居们,不仅仅是对门,前后左右,同一个社区住着的许多人,母亲都照应着。她常在社区的花园和先生同事的父母聊天,帮他们照顾孙子。不仅如此,还有物质上的往来,母亲常常会自制一些风味小点,热情地送给街坊四邻,这也是母亲在农村生活时养成的习惯。小点心虽然并不贵重,却因有着外面买不到的醇香味道,充满了浓浓的人情味。 

有一次,得知先生一个同事的孩子患了白血病,母亲要我们送些钱过去。因为是来往并不亲密的同事,我们只想象征性地表示一下,母亲却坚决不答应,说,人这辈子,谁都可能会碰到难事,你舍得帮人家,等你有事了,人家才会舍得帮你。孩子生病对人家是天大的难事,咱们碰上了,能帮的就得帮。我们听了母亲的。 

在母亲过来半年后,先生竟然意外升职,在单位的推荐选举上,他的票数明显占了优势。先生回来笑着说,这次是妈的功劳呢,我这票是妈给拉来的。我们才发现,最近我们的人际关系竟然空前好起来,那种好,明显地少了客套多了真诚。一个字都不识的母亲,只是因为舍得,竟不动声色地为我们赢得了那么多,是我们曾经一直想要赢来却一直得不到的。再想她说过的话,你舍得对人家好,人家才会舍得对你好。于她,这是一个农村妇人最朴实本真的话;于我们,无疑是一个太过深刻的道理。 

温煦的日子里,我很想带母亲到处走走。可母亲因为天生晕车,坐次车如生场大病,于是常拒绝出门。那个周末,我决定带她去动物园。母亲说,没有见过大象呢。动物园离家不远,几站路的样子。母亲说,走着去吧。我不同意,几站路,对一个70岁的老人,还是太远了。可她又坚决不坐车,我灵机一动,妈,我骑车带你去。母亲笑着同意了。我推出车子,小心地将她抱到前面的横梁上,一只胳膊刚好揽住她。抱的时候,心里一疼,她竟然那么轻,蜷在我身前,像个孩子。 

途中要经过两个路口,其中一个正好在闹市区。小心地骑到路口,是红灯,我轻轻下车,还未站稳,却有警察从人流中穿过来,走到我面前说,不许带人你不知道吗?还在前面带。说完,低头便开罚单。母亲愣了一下,攥着我的胳膊要下来,我赶忙扶稳她,跟那个年轻的警察说了声对不起,解释说,我母亲晕车,年纪大了,不能坐车,我想带她去动物园看看…… 

警察也愣了一下,这才看清我带的是一位老人,还不等他说什么,母亲责备我,你怎么不告诉我城里骑车不让带人呢?然后坚持要下来。我正不知所措,那个警察伸手一把搀住了母亲,大娘,对不起,是我没有看清楚, 城里只是不让骑车带孩子,您坐好。然后他忽然抬起手,向我认认真真地敬了个礼。接着,他转身让前面的人给我腾出一个空间,打着手势,阻止了四面车辆的前行,招手示意我通过。我带着母亲,缓缓地穿过那个宽阔的路口,四面的车辆静止行人停步,只有我带着母亲在众人的目光里骄傲前行。 

那是我有生以来第一次受到如此厚重的礼遇。因为母亲,因为舍得给予她一次小小的爱,一个萍水相逢的年轻警察,便舍得为我破例,舍得给我这样高的尊敬。这礼遇,是母亲送给我的。 

母亲是在跟着我第三年时查出肺癌的。 结果出来以后,有个做医生的朋友诚恳地对我说,如果为老太太好,不要做手术了,听天命尽人事吧。这是一个医生不该对患者家属说的话,却是真心话。和先生商议过后,决定听从医生的安排,把母亲带回了家。又决定不向母亲隐瞒,于是对她讲了实情。母亲很平静地听我们说完,点头,说,这就对了。然后,母亲提出要回老家。 
母亲在世的最后一段时间,我陪在她身边。药物只是用来止疼,抵挡不了癌症的肆虐。她的身体飞快地憔悴下去,已经不能站立,天好的时候,我会抱她出来,小心地放在躺椅上,陪着她晒晒太阳。她渐渐吃不下饭去,喝口水都会吐出来,却从来没有流露过任何痛苦的神情,那些许黑发依旧倔强地蓬勃着,面容消瘦却光洁,只要醒着,脸上便漾着微微的笑容。那天,母亲对我说,你爸他想我了。妈,可是我舍不得。我握着她的手,握在掌心里,想握牢,又不敢用力,只能轻轻地。梅,这次,你得舍得。她笑起来,轻轻将手抽回,拍着我的手。但是这一次,母亲,我舍不得。我说不出来,心就那么疼啊疼得碎掉了。母亲走的那天,送葬的队伍浩浩荡荡,从村头排到村尾,除了亲戚,还有我和先生的同学、朋友、同事,我们社区前后左右的邻居们……很多很多人,里面不仅有大人,还有孩子,是农村罕见的大场面。 
队伍缓缓穿行,出了村,依稀听见围观的路人中有人议论,是个当官的吧?或者是孩子在外面当大官的……母亲这一生,育有一子三女,都是最普通的老百姓,不官不商。母亲本人,更是平凡如草芥,未见过大的世面,亦没有读过书,没有受过任何正规教育,她只是有一颗舍得爱人的心。而她人生最后的盛大场面,便是用她一生的舍得之心,无意间为自己赢得的。 

发表在 社会生活 | 标签为 | 留下评论

愛自己悅己容2nd插座保护套儿童防触电插孔安全塞防护盖宝宝婴幼儿插头插座孔插板ChatGpt 与人工智能AI对话Wikipedia维基百科

apache tomcat: mod_jk missing uri map

接续此前的 “嘗試 Apache + Apache Tomcat (簡稱 Tomcat)融合” , -R/H2SL , 出现异常,在 https 下tomcat可以接管解析jsp页面,但在http却不行,于是使劲检查如下。

apache tomcat: mod_jk missing uri map

首先排除了所有因为url格式不匹配的情况下,在 conf/extra/httpd-jk.conf  打开日志为 trace :

# Our JK log level (trace,debug,info,warn,error)
JkLogLevel trace

需要检查,URI的匹配的写法,在 

conf/extra/uriworkermap.properties

中进行修正:

# java ??
/*\.jsp=balancer 

如果仍有问题,需要进行下面的配置命令的检查。

JkMountCopy On 

的设置,这一语句通常需要在所有 VirtualHost 和 SSL 的 VirtualHost 里面,

涉及到的Apache Httpd的配置文件有

conf/extra/httpd-vhosts.conf 
conf/extra/httpd-ssl.conf 

 

发表在 服务器运维, 编程技术, 计算机技术 | 标签为 , , | 留下评论

Wikipedia维基百科

-gMIS 中操作同时并发操作和管理多个数据库multiple databases

如前所述,我们实现了 -gMIS 中可以同时并列/并行/并发管理多个数据库的目标数据表,
“-gMIS 更新多库连接及工作流workflow” , -R/b2SI ,

新近部署了一个 -gMIS 的应用实例,也涉及到跨数据库的信息管理系统,于是归集整理了在 -gMIS 中操作多个数据库的使用步骤,列如下,备忘。

  1.  inc/config.class 中添加数据库配置信息
    ….
    # db slave info
    $conf[‘dbhost_slave’] = ‘127.0.0.1’; 
    $conf[‘dbport_slave’] = ‘3306’;
    $conf[‘dbuser_slave’] = ‘dbuser’;
    $conf[‘dbpassword_slave’] = ‘dbpassword’;
    $conf[‘dbname_slave’] = ‘dbname’; 
    ….
  2.  inc/conn.class 中创建数据库连接所需的对象
    ….

    class Db_Slave{

        var $mDbHost = “”;

        var $mDbUser = “”;

        var $mDbPassword = “”;

        var $mDbPort = “”;

        var $mDbDatabase = “”;

        function __construct(){

            $db_suffix = ‘_slave’;

            $gconf = new Gconf();

            $this->mDbHost = $gconf->get(‘dbhost’.$db_suffix);

            $this->mDbPort = $gconf->get(‘dbport’.$db_suffix);

            $this->mDbUser = $gconf->get(‘dbuser’.$db_suffix);

            $this->mDbPassword = $gconf->get(‘dbpassword’.$db_suffix);

            $this->mDbDatabase = $gconf->get(‘dbname’.$db_suffix);

        }

    }
    ….

     

  3.  class/gtbl.class 中添加所需指定数据的连接对象

    在类的 __construct 方法中,在调用父类的 __construct 之前,
    ….

    if($args[‘dbconf’] == ‘default’){

        $args[‘dbconf’] = ‘Db_Master’;

    }

    else if($args[‘dbconf’] == ‘slavedb’){

        $args[‘dbconf’] = ‘Db_Slave’;

    }

    ….

  4.  在管理界面设置数据表所需连接的数据库名称(别名)
    在 Π 首页  桌面 & 系统配置 → 菜单调整 | 菜单调整 路径中增加针对某个被管理对象表时,指定所需连接的数据库.


    在 菜单管理中,增加对被管理对象时,设置所需链接的数据库.

 

-gMIS 是一种基于 -GWA2 的通用管理信息系统软件,具有可配置的输入和输出接口。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS),客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统等等。
实现零代码开发、搭建各种管理信息系统(MIS).

Lower Costs, 降低成本; Better Productivity, 提高效率.

发表在 -gMIS, 编程技术, 计算机技术 | 标签为 , , , | 2条评论

李宁体育用品汽車老司機愛自己悅己容2nd插座保护套儿童防触电插孔安全塞防护盖宝宝婴幼儿插头插座孔插板

信息加解密与摘要Encryption and Message Digest

这篇短文最早写在 -Maimai 上,后来转发到 -Linkedin 上,再后来备份到 -Wordpress-wadelau 上,现在再复制到 -Ufqi-Blog 上。

关于账号密码的保存,昨天回复的仓促,重理一下。

先区分是加密和信息摘要,两者区别是内容是否可逆。能从密文恢复到原文的是加密,不能的是消息摘要,或信息摘要。加密又可分为算法加密和使用秘钥加密,区别是在加解密过程中是否使用“秘钥”。置换、交换、取模异或等可看做无秘钥加密,仅依靠某种算法实现加密。

使用“秘钥”加密又分为对称加密和非对称加密。区别是对称加密收发两方用同一个密钥,非对称基于一对密钥: 公钥和私钥。发方用收方的公钥加密,收方用自己的私钥解密密文;或者发方用自己的私钥加密,收方用发方的公钥解密。

回到密码保存这个话题,明文存储不是人干的事。密文存储是业界标准做法。至于密文是加密后内容,还是明文的消息摘要,一般从形式上可以判断,消息摘要多会生成一个由0-9, a-f的字符串。密文则各种字符串形态均有,如 -base62x 的输出。

消息摘要一般能满足账号密码保护需求,但自从md5被碰撞算法找回原型后,md5就不安全用在密码上了。这方面可以选升级的md6, sha1, sha256, sha512, sha1024等。

至于加密的对称算法,有很多。加密的非对称算法,也有不少,多用rsa。

加解密,矛和盾。哪个锐利,哪个坚厚?

%e5%8a%a0%e5%af%86encrypt%0a%e6%b6%88%e6%81%af%e6%91%98%e8%a6%81digest%0a%e7%bc%96%e7%a0%81coding%0abyxenxin-201608

发表在 Base62x, 编程技术, 计算机技术 | 标签为 , , , , , , | 留下评论

山羊绒围巾女冬英伦百搭围脖双面格子加厚保暖披肩迪士尼母婴显白黑茶色蓝黑色板栗色三元牛奶