眼睛视物模糊诊断为白内障需要手术治疗

时光在病态疫情防控中过得忽快忽慢。这期间排除困难去北京同仁医院问诊了眼睛视物模糊的病症,初步诊断为核性白内障,需要进行手术治疗。本篇尝试记录这一前后历时两个月的眼睛白内障手术治疗过程。

当全世界的外国都翻过新冠肺炎疫情防控这一篇之后,只有中国还在由于“中国特色”而不得不进行各种自杀式地防控——尽管检测出的病例中,70%以上都是无症状感染者( 2022年11月22日0时至24时,北京新增388例本土确诊病例和1098例无症状感染者,重庆市新增本土确诊病例215例和无症状感染者6728例,广东省新增本土确诊病例353例和无症状感染者7951例 )。无症状感染者是一个极具艺术的描绘,言下之意是这种病毒是不通过专项检测就无法获知被感染,就是说它对人体没有任何影响,不会导致人体有任何不适的症状。那么,对这种人畜无害的病毒还进行自杀式地封城禁足防控还有什么意义呢?病毒一直潜伏下去不发作,直到人体自愈,可以算作良性吗?

不过翻开我国不算长的历史,全民捕杀麻雀这种无厘头的运动也搞了四五年,对新冠肺炎疫情的防控搞个七八年也不算太过头。可怜吾国吾民,遭遇此大不幸。上次写生活类的记录还是三个月前: 长治久安之本与繁荣昌盛之道( https://ufqi.com/blog/long-peace-and-prosperity-flourish/ ) 。

2018年底、2019年初以来,个人感觉眼睛看不清东西了,尤其是近两年,情况越来越糟糕。2021年夏天回江苏常州,通过调整近视眼镜度数也无法改进视力后。验光师建议前往医院做进一步的检查。由于疫情防控,出行各种受限,2020年夏秋、2021年春天分别前往医院眼科进行检查。
没想到眼科检查可以细分到七八十来项,而越是到后期,关于眼睛的各种检查项目越多越细,比如确诊为白内障需要进行手术时,术前的眼睛检查多达十好几项,检查的各种费用几乎占到手术费用的1/3到1/2左右。

起初的眼科检查,分别在北京潞河医院(前期1次问诊)和北京友谊医院通州院区( 前期2次问诊 ),各种检查指标均显示眼睛正常,佩戴近视镜后的矫正视力 0.7 左右,在可接受的范围,无需做进一步的介入治疗,也不可诊断为白内障疾病。

及至2022年春夏,视力感觉进一步下降。散步时无法看清对面来人的脸部,认不清人。孩子放学时,接孩子认孩子无法看清脸,需要靠衣服的颜色来辨认哪个是孩子,如果哪天都穿了校服,就看书包或者鞋子的颜色。更有甚者,一张圆桌上用餐,看不清坐在对面的人的脸部,认不清人。
一定是哪里出问题了,结合网上搜集的资料,所遇到的情况很可能是白内障的早期表现,视物模糊。于是本人再次就医( 前期3次问诊 ),2022年夏天挂号北京朝阳医院的眼科专家号,主任医师看完了初步诊断,眼科各项指标正常,但晶状体轻度浑浊(白内障的学术说法或者指标?)。
医生建议可以考虑进行白内障手术,清除浑浊的晶状体,而且提示目前受疫情影响,全国各地患者无法轻易进京看病,该院目前手术排期较快,请考虑。关于做手术,对自己动刀子,还是没有十足的信心和把握,毕竟是眼睛,心灵之窗容不得一丝半点的马虎。可视力下降已经是可以感知到的速度了,看不清电视上的人了,看不清电脑屏幕上的字了,几乎脸要贴在屏幕上了也看不清了。


第一次问诊。迫不得已,本人再次突破疫情防控,前往北京同仁医院眼科进行复查。眼科细分下的白内障门诊的何渊医师的号很难挂上,网页上的资料介绍,她经手的白内障病例已经9000多,很快会突破一万例,多次尝试还是有了。
何渊医师对本人的首诊进行的很快( 后面才觉得快是常态 ),矫正视力有 0.6、0.7 是可以接受的,眼睛各项指标正常,除了晶状体轻度浑浊。目前不建议手术,需要再观测白内障的发展情况再决定是否手术。

于是找到不对自己动刀子的理由,继续在模糊的世界中挨下去。同时辅助的点滴医生推荐的一款中药眼药水,希望能有所改善。不过刚滴了几次,就差不多扔了,本来就对中药不信任,这种药水加重了本人的这一认知。
苦挨了两个月,考虑到视物模糊已经严重影响了学习、工作和生活,2022年9月决定再次去北京同仁医院复查视力。

第二次问诊,2022年9月中旬,再次挂了北京同仁医院眼科何渊主任医师的号,复查白内障症状。
这次复查矫正视力已经没有 0.6、0.7了,而是下降到0.3,0.4,医生看了晶状体,的确是浑浊了,但还是不能确诊,于是进一步地开列了七八项眼科检查项目。叮嘱这些项目做完,有了结果之后再次问诊,基本可以决定是否需要手术。

第三次问诊,北京同仁医院,何渊医师看了各种检查结果,排除了近视、散光、青光、眼底、眼压、泪道、玻璃体、结膜、角膜、巩膜、视网膜等各种干扰因素,锁定视力下降视物模糊是由于晶状体浑浊一个成因导致的,进一步地推断,如果进行晶状体摘除和人工晶状体植入大概率可以有效改善视力。
医生建议可以考虑做白内障手术,现在轮到患者做决定了。
事情发展到这一步,似乎没有第二个选项了,于是选择决定做手术。
出乎意料的是,接下来不是安排手术时间,而是开具了更大更多的眼科手术前检查项目。
更出乎意料的是,在这些检查项目做完之后,也不是安排手术时间,而是要先去看内科医生,进行手术前的会诊。

第四次问诊,北京同仁医院,在完成名目繁多的各项眼科术前检查之后,问诊了内科医师,根据其中部分检查结果,内科医生判断,该患者目前适合进行白内障手术。

第五次问诊,北京同仁医院,何渊医师看了术前眼科检查的各种结果,结合内科医生的适合手术的意见,开始讨论手术的安排。
一是人工晶状体的选择,通常有单焦点和多焦点的选择,进口和国产的选择,医生会根据患者的各种检查数据,推荐1-2项选择,对于多数人来说,单焦点的国产足以满足需求。
关于晶状体的选择,网上有很多资料,只是当时本人并为此做功课。
不过遗憾的是,人工晶状体没有收缩扩张的能力,不如母体自然生长的晶状体,既可以读书看报,也能够远眺群山。人工晶状体要么选择看清近处(无法看清远处),要么选择看清远处(无法看清近处)。
二是时间的预约,白内障手术被北京同仁医院被成之为日间手术——不需要住院,但需要走住院的流程。
紧接着是 2022年十一国庆节长假,手术被安排在过节后的第一周。

第六次问诊,北京同仁医院东区日间手术中心,下午的白内障手术,通常要求上午11点半前去办理各种术前的手续,排队排号大致的时间段。
真正漫长的流程是从下午手术登记开始,然后是各种名目的再次检查、等待。包括血压、眼底、视力等等,当然还有核酸——疫情防控需要。
进入手术区后又是一系列的检查和准备,各个环节几乎都有不同程序的点滴眼药水的操作。
单例手术大约持续20分钟左右。
期间本人全过程都是清醒的,刺眼的高强度光束打到因麻醉无法闭合的眼睛里,而且要求不能随意转动眼球来躲避强光。本人也能感觉到角膜被切开的动作,甚至能看到晶状体植入后,稍稍移动一点,整个世界就跟随着转动。

直到此时,患者才能明白,在签署手术知情书时,读到的骇人听闻的描述不是瞎说胡说,而是真切的描述。白内障手术,也包含任何其他手术,都是对身体的一次有伤害的创伤,包括身体的和精神的,不到万不得已,绝不选择。
这一点,在术后最初的24小时里,痛苦的体验尤其明显。
根据主刀何渊医师的描述,手术快结束时,机器从眼球中撤离过程中,我稍微转动了一下眼球,这样无知的转动,可能导致我晚上回去休息时眼睛有“磨”的感觉。

实际情况是,晚上回去后,眼部麻醉的麻药逐渐消散,眼睛开始疼痛肿胀,躺在床上几乎无法睡眠。辗转反侧的挣扎,无法找到一个舒服的睡姿,痛苦地清醒着直到凌晨3-4点钟,期间多次要求爱人反复看看术后注意事项。好几次疼痛到要连夜赶往医院处置,但最终忍住了没去。
无论谁再对你说,白内障手术是个小手术,无痛,请不要相信,那是骗人的。

第七次问诊,北京同仁医院,术后次日一早,还要挣扎着爬起来去医院做第一次复查。
正常人,无法体会到病痛中睁眼和闭眼这样的动作,会疼痛到出冷汗!
接下来是按时点滴眼药水,想象不到,术前术后的各种眼药水,足足有6-7种之多,而且每一种的点滴时间和次数又各个不同,几乎在术后一周的静养中,天天就忙着点滴眼药水。
术后48小时过后,不适感开始消失,睁眼闭眼不再疼痛,手术的左眼惊奇地能看清世界了,久违的,高清的世界,全都是高清大片的感觉!
这种能够清晰明亮地看到世间万物的观感,可以抵消之前的种种痛苦煎熬。

由于初期睁眼闭眼都疼痛难忍,索性就躺在床上不触痛处。迫不得已需要饮水,上洗手间等,就紧闭双目,抹黑盲人一样前往。切实地体验到盲人生活的不便和健康视力的可贵。
两相比较,盲人世界与明亮世界,简直是天壤之别,云泥之差。
这也似乎能体验到在 weibo.com 上,武汉医院的艾芬医生因为在 爱尔眼科医院做的晶状体植入手术失败,而痛恨万分。这也能理解,北京同仁医院何渊医师在实施白内障手术前,多批次大量地做各种检查和进行会诊的必要性。甚至在首诊时,视力还能凑合时,不建议患者进行手术。

第八次问诊,术后一周的复查,向何渊医师报告体验良好。手术的左眼睛进步到高清时代,未手术的右眼还是一片模糊。
于是预约对右眼的白内障手术,处于安全考虑,左右眼选择大致相同的晶体和参数。
补做术前检查血液常规,再加上疫情防控的核酸。

第九次问诊,第二次白内障手术,右眼。
由于第一次的经验教训,这次手术全程积极配合,忍耐,不敢再转动眼球,尽管机器的强光依然很强烈。手术完成也是出了一身的汗水。
尽管这次何渊医师说一切顺利,没有提醒任何异样。但术后回家休息,晚上依然有疼痛难挨的感觉,所幸疼痛的烈度和持续的时间,都较上次左眼有所减缓和缩短。

第十次问诊,第二次术后次日复查,右眼。
一切顺利,尽管术后次日,睁眼闭眼的动作,仍有疼痛感。
术后48小时后,不适感消失,左右眼宛如高清望远镜。美好世界重新映入眼帘,本人已经记不得上次看到如此清晰明亮的世界是什么时候了。
九九归一,十全十美。

第十一次问诊,第二次术后一周复查,右眼。
一切顺利,说些感激的话给何渊医师,询问怎么赠送“秒手回春”的锦旗。医师回答不需要,在何渊医师的相应网页下点赞回复评论。医疗也越来越数字化。
关于人工晶状体无法远近视力兼顾的情况,可以通过佩戴眼镜进行辅助。

至此,漫长的眼睛视物模糊诊断为白内障需要手术治疗过程完美成功。前后历时大半年,经历了四家医院,多位医师。主体在北京同仁医院,前后问诊十一次,历时两个月。她们都很专业、敬业,也很辛苦,中国人太多了,而医疗资源与患者又产生了严重的错配。

当本人在电脑面前写这篇文章的时候,距离最近一次右眼手术已经过去差不多一个月了。本人选择的晶状体是看近清楚,所以已经不需要佩戴眼镜了。可以当我需要看远处的电视,或者窗外的风景,或者外出驾车时,还需要戴上眼睛。

根据医生的建议,未来还需要两个月,视力才能恢复稳定下来。这期间还要注意用眼卫生,避免剧烈运动,静养为主。
希望明天会更好。

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

床上电脑桌大学生宿舍上铺懒人可折叠小桌子家用寝室简约学习书桌京东制作护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏捐助乌克兰Help Ukraine

GWA2Python吉娃兔Python语言生产就绪版本发布

2022年11月1日,我们很高兴地宣布,GWA2Python吉娃兔Python语言生产就绪版本已经发布。
经过历时两个多月的编码与移植, GWA2吉娃兔绝大部分核心功能均已经由Python编程语言实现,现在开始起,编程用户可以使用Python语言,经由GWA2吉娃兔开发框架,设计开发各种应用程序了。

为保持一致性和兼容性,Python语言版本的GWA2吉娃兔,提供了与 GWA2 Java, GWA2 PHP, GWA2 Perl 等完全相同的API ,用户迁移时,几乎没有学习成本,平滑无缝地在需要使用Python语言的环境中,快速部署、开发GWA2应用程序。

1.- GWA2的核心思想设计与接口实现

GWA2Python 的核心从接口定义中展开, inc/WebInterface.py 中定义了主要方法:
set/get
setId/getId
setTbl/getTbl
setBy/getBy
execBy/rmBy

作为一个应用程序的基础类/父类, inc/WebApp.py 则具体实现了这些核心方法,并提供了该应用程序可能使用的其他第三方服务,如数据库, 文件系统,缓存服务等等,这些具体的基础设施和服务,也分别在 inc中做了预置。
inc/Dba.py
inc/Filea.py
inc/Cachea.py
….

针对某一个具体的设施或服务,我们也按照在此前博客日志中提到的五层分级进行了系统设计和代码实现(GWA2Python吉娃兔改进简答为何需要软件开发框架, https://ufqi.com/blog/gwa2python-with-multiple-db/ ),比如在最常用的数据库服务中,我们预置了相应的驱动程序和连接程序:
inc/Dba.py
….inc/Conn.py , 负责数据库主机连接
….inc/DbDriver.py , 负责数据库服务的接口定义
….inc/MySql.py , 负责具体数据服务的实现,如 MySql数据库
….

以上是 GWA2的核心,也是 GWA2Python的核心部件,当具备这些基础设施和服务后,基于其上的面向任务的开发将如虎添翼,宛如GWA2吉娃兔的口号Easy那样, 轻松启动,快速产出( Easy along, swift yield )。

2.- 部分 efinance 的示例代码

同时,如同我们在2022年9月份的博客日志( GWA2 in Python吉娃兔发布Python语言初始版本, https://ufqi.com/blog/gwa2-in-python-first-release/ )中提到的:
“2022年9月新近,我们在研发 有福金融UfqiFina ( ufqi.com/finance )时,发现一个核心功能的类库有开源程序可用,而且是用 Python写成的,这的确是多路需求都汇集到 Python编程语言上了。”

我们在 GWA2Python中集成了 efinance 的Python类库,使之能够轻易地读取到金融数据。在即日发布的GWA2Python 生产就绪版本中,我们分享了一些简单地的例子程序,其中有些程序多半是基于集成、连接 efinance 类库而写的。相信,如果有其他程序开发者也碰巧需要部署 efinance 并在希望用 Python程序与现有的其他程序做对接,无疑,GWA2Python会是一个参考。

efinance 本身的应用与编程,可以在 GitHub上参考示例代码或者相应的手册。

3.- GWA2 Python的命令行调用方式

此次发布的 GWA2Python 生产就绪版本是一个命令行调用方式的软件框架。关于命令行模式和浏览器模式,请参考之前的博客日志( 🍃GWA2Java新增Cmdline命令行和JavaBean运行时模式,https://ufqi.com/blog/gwa2java-cmdline-javabean/ )。

简单地说,命令行模式调用 GWA2Python的入口程序与命令:
shell or cmd> cd GWA2Python
shell or cmd> python index.py “?mod=financefund&act=list”

这些在命令行下的核心类库与功能,也可以在Web服务器中使用,只是可能需要做一些针对Web服务器特征的适应性调整。
比如在Web应用服务器 Apache 或者 Nginx中,如果要访问某个基于 GWA2Python的应用程序,相应的访问路径:
http://HOST/path-to-GWA2/index.py?modfinancefund&act=list

我们会在稍后的时间发布 GWA2Python 的Web服务器版本, 敬请期待.

全文首发地址:https://ufqi.com/blog/gwa2python-production-ready/ , -R/b2SR


GWA2吉娃兔

-GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architecture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 可以轻便构建各种网络应用程序,
包括复杂的在线购物商城、在线医疗、在线教育、 旅游交易平台、社群或者社交网站和新闻资讯网站等,
也包括各种企事业单位网上门户,在线交互及服务作业系统等.
还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部.
-GWA2 是为数不多的支持跨开发语言的应用框架,目前支持 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y 
Easy Along, Swift Yield
轻松启动, 快速产出.

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

床上电脑桌大学生宿舍上铺懒人可折叠小桌子家用寝室简约学习书桌京东制作护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏捐助乌克兰Help Ukraine

GWA2Python吉娃兔改进简答为何需要软件开发框架

在2022年9月份的更新中,我们发布了 GWA2 in Python的初始预览版本。目前该版本正在不断功能完善与改进中,即将发布生产就绪版本。在之前的Blog中,我们绘制了 GWA2 Python中的面向对象的实现,参考下图。
GWA2 in Python的类与对象的继承关系( https://ufqi.com/blog/gwa2-in-python-first-release/ )。

GWA2 in Python

在上图中,实体对象类 FinanceFund 在访问路由控制器的 ctrl/financefund 中被调用。实体类FinanceFund继承基类 WebApp, 基类WebApp实现了基础接口 WebInterfance, 而基类接口WebInterface则继承了 Python原因的抽象基础类 ABC(Abstract Base Class)。

如此以来,从 Python 语言视角完整地实现了类与对象的继承关系, ABC –> WebInterface –> WebApp –> FinanceFund –> FinanceFundBase …

这次我们以一个从数据库中读取数据记录的实例来回顾上面这些类与对象的关系,并尝试回答为何要在软件开发过程中使用软件开发框架。
下图中,GWA2 in Python 数据库读取及数据流转,

GWA2 Python数据库读取及数据流

在路由控制器 ctrl/financefund 中,实例化的 FinanceFund 的对象 ffund 调用放 ffund.getInfo 试图访问数据库中的一条数据记录;
ffund.getInfo 进一步地调用父类 WebApp.getBy;
WebApp.getBy 根据调用参数,识别出是默认从数据库中读取;
WebApp.getBy 将请求分发给 Dba, Dba被激活并初始化——使用哪个连接服务,使用哪种数据库驱动接口;
Dba.select随之被调用;根据所选连接及数据库驱动接口程序进行下一步;
MySql数据服务及接口程序被选择并调用,MySql.readSingle 被调用;
MySql.readSingle 触发内置的 mysql.connector 相关的方法读取数据并返回:

数据按之前的流程逐步向上顺序返回,直至最终抵达 路由控制器 ctrl/financefund 那里。

这里令人不能直观而形象地理解的是,为何要经过这么繁琐的过程进行数据记录的读取?
实际上,在路由控制器 ctrl.financefund 中直接引入 mysql.connector 并根据相关指令语句完成,填入服务主机信息,创建连接,组装SQL,递交查询,解析数据,返回数据….
这样也是可以的,直接写更容易理解,也可能速度上因为少了类与对象的封装、数据流转步骤而稍微快一些。

这实际上要回答为何在软件开发过程中要使用开发框架。简而言之,软件开发框架是一种代码开发、组织与管理的方法。软件开发框架是以极大地提高软件开发效率、运行效率,同时降低软件维护成本、总持有成本为目标的。
在开发层面,代码需要复用,同样功能的代码,只需写一次即可在整个软件中调用;
在组织层面,使用面向对象的方式,尽可能地映射完整的物理世界的分类与层级:
在运行层面,提供便捷的配置,可接受的安全性、健壮与鲁棒性:
在维护扩展层面,可方便纵向升级优化,可便利地横向扩展;
…..
为了更好地开发软件、组织和管理软件代码,我们需要遵循一定的开发规范和规则,这些规范和规则,以一种成套系的形式呈现出来的,就是软件开发框架。

比如,当我们可以在 ctrl/financefund路由控制器中写数据库连接的账户信息时,我们不那么做,是由于这些敏感信息不应该散落和分布在各个路由控制器中,既有安全隐患,也不利于集中统一管理,假如未来某一天需要更换/切换某个数据库的账号信息时,不能逐个文件的一一进行修正。
我们不在每个路由控制器中建立对数据库的连接,还由于这些代码与其他路由控制器是重复的,不应该同样的代码重复不断的复制着写。同时,我们还要考虑数据库连接可能要有连接的复用,连接池的管理与调度等问题。
再次,我们不在路由控制器中写入建立数据库的连接,还要考虑在未来某一天我们切换某个数据库连接时,需要修改每一个路由控制器文件,这是一种繁琐且容易出错的过程,应该极力地避免。
第四,我们还要考虑,如果未来面对变化,我们从A类数据库切换到B类数据库时,程序是否能够正常、无缝地运行下去。

反之,如果我们提前规范了这些开发行为,提前预留和相应的操作空间,则上面的任何层面的改动,对下游依赖不构成影响。
我们可以在配置文件中,轻易地修改数据库账号信息,下游所有的程序无需做任何改动;
我们可以在数据库连接中,轻易地复用数据库连接,进行复用,甚至多个数据库进行轮询;
我们可以轻易地的将同类的A数据库切换为A类另外一个数据库;
我们可以轻易地地将A类数据库切换为B类数据库;
….

这些相对完整、完善的高可用、可扩展、可升级的设计思想及相应的软件代码的实现,构成了软件开发框架。
读取数据库是最常用的场景之一,实际上,GWA2 在设计和代码实现中,不但考虑到数据库,还考虑到比如缓存、文件、网络等各种外部资源的调用。针对这些外部资源的使用,都遵循了与数据库读取相似的逻辑,下图是 GWA2 内置缓存的处理逻辑与数据流转过程。

GWA2 内置缓存控制器( https://ufqi.com/blog/gwa2-java-built-in-cache-with-pool-flowchat/ )。

GWA2 built-in Cache

GWA2 支持更多数据库连接控制器( https://ufqi.com/blog/gwa2-filea-and-perl/ )。

GWA2 with multiple databases

GWA2支持更多文件系统及驱动的接入。

GWA2 Multiple File Systems

从上述描述可以看到,针对各种外部资源,GWA2 在操作过程中,某个继承了基础父类 WebApp 的实体对象类在运行中,读取方法 WebApp.geyBy 根据参数决定调用哪种外部资源,然后相应地外部资源管理器被激活调用,如Dba, Cachea, Filea 等等。

当资源管理器被激活调用时,需要识别使用哪种驱动程序连接到那个主机服务上去。
相应的资源驱动程序被调用,通过统一的接口方法进行实际的资源读取。
与读取方法类似, 基础父类 WebApp.setBy 则是将相应的数据写入到外部资源中去。

全文首发地址: https://ufqi.com/blog/gwa2python-with-multiple-db , -R/V2SX


GWA2吉娃兔

-GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architecture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 可以轻便构建各种网络应用程序,
包括复杂的在线购物商城、在线医疗、在线教育、 旅游交易平台、社群或者社交网站和新闻资讯网站等,
也包括各种企事业单位网上门户,在线交互及服务作业系统等.
还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部.
-GWA2 是为数不多的支持跨开发语言的应用框架,目前支持 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y 
Easy Along, Swift Yield
轻松启动, 快速产出.

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

京东制作护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏捐助乌克兰Help Ukraine老板选址BossXuanzhi

GWA2 in Python吉娃兔发布Python语言初始版本

GWA2吉娃兔是一种跨编程语言的网络应用开发框架,在构建之初我们设想一套软件代码的组织、管理和使用方式方法,并希望这些设计思想能够使用各种常用的编程语言进行实现。
近二十年来较为流行的面向对象编程(Object Orientation Programming)的思想,在GWA2吉娃兔的设计和实践中也得到充分体现。
截至目前2022年下半年,GWA2吉娃兔已经可以使用Java, PHP 和 Perl 进行各种网络应用程序的开发,既可以支持基于B/S的应用程序的后端(服务器端),也可以是基于命令行的后端计算或服务。也即 GWA2 in Java, GWA2 in PHP 和 GWA2 in Perl. 已经是开箱即用的状态了。
GWA2吉娃兔

Python版本的GWA2的开发一直在我们的规划和任务表上。最早在十年前的2018年,我们即着手进行各种准备工作。同时也密切注视在日常软件研发过程中的 Python程序的部署和应用。毫无疑问的,Python语言本身最近几年取得了较大的发展,基于Python的各种类库也日渐丰富。其核心是最接近自然语言的程序表达为其日渐流行开来奠定了基础。

一个月多前的2022年8月8日,我有感而发地写了微博,感慨小儿子hanu在小学学校兴趣班 Python入门中经过短暂的熟悉已经可以操控Python的 Turtle类库进行画图应用的设计了。差不多前后脚,顺利入读清华附中朝阳学校的长女儿yoyo也开始选用 Python作为高中信息科目的编程语言。这么说来,我们家已经有三口人要跟 Python编程打交道了。

我对 Python的接触较早,大约六七年前着手准备人工智能的论文,其中需要做些实验时,能够快速上手的人工智能应用的类库,多数都是使用 Python语言开发的。这可能与 Python中对集合(Set)数据类型的支持姣好,对数学矩阵的计算较为便利。
再早前,我们在开发 UfqiNews有福新闻 ( ufqi.com/news )时,发现较为靠谱的中文分词类库,具有开箱即用便利条件的,也是用 Python写成并发布开源的 Github上。
2022年9月新近,我们在研发 有福金融UfqiFina ( ufqi.com/finance )时,发现一个核心功能的类库有开源程序可用,而且是用 Python写成的,这的确是多路需求都汇集到 Python编程语言上了。我们需要将 GWA2 in Python摆上日程表前列。

Python 最引人注目的地方是在命令行下可以交互式的执行语句,有些类似在SQL查询终端,能够随时交互式进行“编程”,并不是软件研发所关注的OOP或者MVC等。
然而如果要组织和开发、管理和维护一套软件,必需进行一些针对代码开发、管理和使用的方式方法,OOP经过多年的发展已经成熟而稳定,MVC等软件开发实践经验也成为业界标准。
我们着手进行 GWA2 in Python的开发时,首先要梳理的是 Python对代码组织和管理的功能,对OOP思想的具体实现API等等。

Python OOP

稍微梳理一下,我们发现 Python代码大致按照 Package — Module — Class — Methods — Variables 这样五个层级进行组织和管理的。其中每一个上级对下级都是一对多的关系。一个Package(目录)下面可以有很多个Module(文件)和子Package(目录),一个Module(文件)中可以有多个Class(实体,代码块),进一步地,一个Class(实体)可以有多个Methonds(方法或功能函数Functions,代码块)…

关于OOP在 Python中大致是在类的声明中通过参数方式来实现继承关系。作为所有类的基类,除了 Object,Python还提供了抽象基础类 Abstract Base Class (abc.ABC) . 有了这些基础支撑,我们就可以方便地将 GWA2 的设计思想使用 Python来实现。

GWA2 in Python 基础核心类和文件
inc/WebInterface.py
inc/WebApp.py
mod/FinanceFund.py
ctrl/financefund.py

Classes in GWA2 in Python

在我们发布的 GWA2 in Python 的初始版本中,我们给出的样例程序如上图所示。我们设若要创建一个 “?mod=financefund” 的应用( ufqi.com/finance )入口。
1) 创建控制器入口程序 ctrl/financefund.py ,
2) 在控制器程序 ctrl/financefund 内引入对象类 mod/Financefund.py
3) 在创建对象类 mod/Financefund 时,引入基础类 inc/WebApp.py
4) 基础父类 inc/WebApp 是超级接口 inc/WebInterface.py 的具体实现.

熟悉结构、熟悉的程序、熟悉的API,一切都是 GWA2 style.
在 Python的世界里,我们也可以自由地使用 GWA2 所有的API及工具,就像我们可以在 Java中使用 GWA2 in Java, 在 PHP 中使用 GWA2 in PHP, 在 Perl 中使用 GWA2 in Perl一样。现在所有的这些,都可以通行通用。

在各自的编程语言环境下,都可以使用类似:
myObject.getBy
myObject->getBy

关于访问路径的路由及模块动态调用,Python里没有类似 PHP 中的 include 内置方法那么便利地将各种代码块拼合到一起再执行,甚至是变量也是 include 方法内外共享作用域的。Python 提供了内置方法 __import__ 也可以行使类似 Java Servlet 中的 include 内置方法一样, 只是 Java Servlet 中 include 允许携带便利的 request 和 response 通道来实现变量传递。

由于没有直接的显示的通道能够在 Python 的方法 __import__ 内外进行变量数据的传递,根据 Python 的官方建议,可以 import 引入一个共有的 Module , 类似于在 PHP 和 Java 等编程语言中, 我们可以在 Python中将 inc/Config 作为共享的Module,来实现这样的功能。
同时,通过在 __import__ 前,设置类似于 GWA2 Java 的 crossPage 页面间数据传输对象一样,将所有需要在Python 模块间传递的数据,放入 crossPage 中。对应的在接受端的 Module中,开始前和结束后,通过将 crossPage数据拆解和封装,然后经由 Config的全局共享通道进行数据传递。
最后,在 __import__ 方法体之后,通过 crossPage 将执行完成的结果数据取回,进一步地交给负责输出的功能模块。

2022年9月,GWA2 in Python的初始预览版本已经发布在 Github上,同步镜像在 gitee 上也有。欢迎大家试用尝试、继续补充完善,共建美好软件研发框架。


全文首发地址: https://ufqi.com/blog/gwa2-in-python-first-release/, -R/t2SU


GWA2吉娃兔

-GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architecture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 可以轻便构建各种网络应用程序,
包括复杂的在线购物商城、在线医疗、在线教育、 旅游交易平台、社群或者社交网站和新闻资讯网站等,
也包括各种企事业单位网上门户,在线交互及服务作业系统等.
还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部.
-GWA2 是为数不多的支持跨开发语言的应用框架,目前支持 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y 
Easy Along, Swift Yield
轻松启动, 快速产出.

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

京东制作护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏捐助乌克兰Help Ukraine老板选址BossXuanzhi

长治久安之本与繁荣昌盛之道

进二十年来,开这个Blog网络日志,很少写政论文章。专业不搭,也无所积累,所以能写的主题大致都是计算技术相关的,偶尔也会夹杂一些生活随笔。虽然也有一些历史杂记,多几篇都是读着觉得不错,就转载来了共享之。这次打算开一个较为宏大的题目,写写对国家社会宏观层面的一些感性的认识。所谓处江湖之远,忧庙堂之高,以期有后进小生在参政议政之前,能够读到,大家多一些共识,少一些分歧,善莫大焉。

促使我动笔斗胆写这篇的,还有下面这一笔要记录下来。2022年8月2日,在几十万人的瞩目和网络跟踪下, 美国众议院议长南希佩罗西的专机22:40分按预期顺利降落在台湾台北松山机场。原本叫嚣着一旦南希佩罗西的飞机试图进入或者降落台湾台北,中国政府将使用武力战斗机伴飞或者将她的专机驱逐驱离或者击毁击落,并没有出现。
“玩火自焚”、“搬石头砸脚”、“后果自负”、“拭目以待”各种嘴炮战足足喧嚣了半个月,然而时间到了之后,一切都没有发生。美国说到做到,议长访台就去访台,而中国政府除继续发新闻稿“严正抗议”外,再无实质作为。一时间滑天下之大稽,颜面尽失。诚如满清名臣左宗棠所云:“说硬话,办软事,实乃误国之贼也”。
尤其国内民众对“中美开战”事件,高度关注,微博平台 weibo.com 一度因此大流量冲击而崩溃宕机,这是流量高峰期的春节晚会期间都不曾有的网络故障。(后经多方信源披露,此次站点及应用崩溃,是主动关停进行舆论控制的行为,非是流量太大而不足以承载。)

人类社会发展文明进步,从原始狩猎,到发明和制作更多工具得以筑屋定居、驯养动植物,从而完成原始社会向农业社会的转变。在漫长的几千年的农业社会发展中,借着蒸汽机的发明和创造,人类从牛耕人织的农业社会迈入工业社会。
在知识的传播、思想和科学技术的大道上,人类发现了电子,创造了电力,从而实现了从蒸汽工业时代迈向电子电气化时代。
电气时代后期,人类又一次发明创造了信息社会,万物互联,地球村形成,全球一体化、大一统,势在必行。
这个简短的人类社会发展过程中,起到决定性作用的始终是发明创造和使用工具,是科学技术。科学技术的发展,其先导往往是思想和文化。思想和文化引领着科学技术的发展,科学技术又反向推进着思想文化的进步。

现当代的科技发展史已经证明,只有在自由的无拘无束的思想氛围中,发明创造才能成为可能。发明创造首先是在思想上没有禁区,可以天马行空、肆无忌惮地空想、假象和幻想,然后依据现有的科学理论和技术工程条件去验证、去应用、去转化。
或者可以较保守地说,越是自由散漫的思想环境和社会氛围中,发明创造也就越是积极活跃丰富;反之,越是压抑钳制的境况下,发明创造也就越是消极低微稀落。
在思想封闭文化愚昧的地区或时代,以科学和技术为代表的生产力也是低下的;相反,在思想逐步开化或者文化稍微宽松多元的地区或时代,生产力会随着有明显地进步与提升。
我们的读历史,或者生活直接感受,能够发现,现在社会发展的“日新月异”的速度,比之前一代或者几代要快的多得多。

自由的社会环境的获得并不会天生的,而是需要处心积虑地创造。这可能源于我们作为人的本性,在生物系的食物链的顶端,我们的基因里似乎早就写死了要控制、要把握、要征服。而自由社会往往需要让步、要容忍、要妥协。人可以去征服一座高山,攻克一个科学难题,但不能征服、控制另外一个人;同样地,一群人可以填海造山,上天入地,但不能征服、控制另外一群人。

当我们人类在生物系抵达食物链的顶端时,对手已经只有我们的同伴了。是尊敬对手和谐共生,还是彼此搏杀你死我活,两种不同的选择就演化成了自由社会和专制社会,私有制社会和公有制社会,民主共和社会和君主独裁社会。这种差别同时也体现在强调个体权利的右派和强调集体利益的左派之间,也体现在是人权大于主权,还是主权大于人权的回答上。
专制社会与自由社会是有天生的“不共戴天之仇”。这主要取决于两方面的原因:
1. 专制社会的本身的排他性和对权力的无限贪婪 ,
2. 民主社会对专制社会的掐尖与收割。

专制社会排他性——一神论的政教合一

几乎所有的专制与极权社会都需要控制舆论,通过对舆论的控制,消除不同政见,消灭不同思想、文化,实现对人的思想的集中统一的控制与管理。所谓“洗脑”,是一个很形象的说法,不允许众说纷纭,只能一个核心思想、一种声音腔调。凡是与之不同的杂音,都需要消除,而且是肉体的消灭。
这种认识和行为,不但在政权内部、领土之下是如此,打开国门放眼全球,专制独裁者也看那些人畜无害的民主社会个个都不顺眼,乱七八糟的人,乌烟瘴气的事——世界人民始终处于水深火热之中。这些林林总总在急于扩大自己的领土征服更多臣子的祸心下,一副世界大同人类救世主的面目出现在国际社会的舞台上,表面光鲜、辞藻华丽,无论是看起来,还是听起来,都很蛊惑人心。

无论是家里有矿,还是通过某种生意,专制独裁政体一旦获得了一定的经济发展,必然将触角伸向外部世界,攫取更多的领土和奴隶。这是对权力具有无限贪欲的领导集体的毕生追求,也是维系这个专制独裁整体继续运转下去所必需的。
尽管每一个专制独裁政体的实质都是纸老虎,但就一时一地来说,世界往往拜服于它的淫威之下。一是它总是通过宣传系统把真实问题掩盖的很密实,二是它得以立足的军事武力在一定程度上让人无法直视。尽管随着时间的推移,专制独裁社会没有或者较低频次的发明创造,专制独裁政体基于科技力量的军事武力会逐日退化、弱化,但由于密不透风地宣传管制,外界只能凭空猜测。
尤其是,当面对诸如民主社会这种对手时,要大多数民众投票决策,大众看到和听到的都是专制独裁社会外表多么的光鲜,现在让我们去跟它开战,把握有几成?
不到万不得已,人畜无害的民主社会是不会去主动开战的。

所以,专制独裁政体害怕的不是民主社会,它的真正的敌人是另一个专制独裁社会。如同两个黑社会团伙一样。另一个专制独裁社会可能在外部的另外一个地区,也可能是在内部的某个团伙,多数情况下,专制独裁社会会被另外一个专制独裁政体社会吞吃掉,或者内部的另外一个团伙取而代之,循环往复。整个氛围就是丛林发展,弱肉强食,成王败寇。
除非它得到民主社会的接管与救济,经过漫长的过度与成长,逐渐蜕变为民主政体社会。

民主社会对专制极权政体的人才掐尖与财富收割

民主政体社会,可以用人畜无害来形容的,源于她的决策是公开而透明的,允许思想文化的多元,允许众说纷纭,莫衷一是,乱七八糟,乌烟瘴气。
“尽管我不同意你说的每一个字,但我尊重你说话的权力。”
自由社会对个体的无限友好,持续地吸引着所有人的目光。只此一点,自由社会便有了对专制社会悄无声息地“打击”——专制社会精英人群持续移民出,社会财富持续流出。

人群的觉醒,良知的启蒙,对自由的向往,专制社会顶尖精英人才持续流向自由社会。
互联网络的普及与发展,极大地促进了信息的流动的速度与效率。越来越多人的可以较低成本轻易地获取事实或真相。基于正确的逻辑推理和事实与真相,越来越多人会逐渐觉醒,逐渐对基于公有制的专制独裁社会的失望,直至彻底抛弃。
而且越是受教育年限长、受教育层次高的人群,对基于公有制的专制独裁社会越是更早地认识到其与人类文明社会发展背道而驰,与普世价值格格不入。

于是一些个体,在某个顿悟的清晨,开始选择用脚投票计划肉身翻墙——移民。这类人通常都是具有一定知识储备和科学素养的人才,而且同时具备一定的财富。如果类似的人群日渐增多,无疑对专制独裁政体来说,是一种千里之堤溃于蚁穴式的损害。
历史上,太多类似的例子,尤其是近现代,精英人群不断涌向自由社会是不争的事实。而且即便是专制独裁政体的主要领导者,也会考虑在自由社会为自己谋划后路、退路。
这背后的原因,既有良知的启蒙、认识的觉醒,也有对公有制的失望,对自由社会的向往。

有恒产者有恒心,无恒产者无恒心。专制体制个人朝不保夕,社会财富不断流向自由社会。
专制独裁社会的立根之本是公有制,也只有如此其才能立足。
只有将所有生产生活资料都“公有”——归属于某一级权力所有者之后,其他人才会因为失去所有赖以生存的生产生活资料(土地、资本等),而不得不像奴隶一样依附于权力所有者,以期获得必需的生产生活资料。
尽管随着人类文明整体的进步,专制独裁政体做出某种媾和与让步,允许奴隶小量或局部的拥有一些非必需生产生活资料,但也伴随着高压恐吓政策,宛如一把悬在头顶上的利剑,随时劈向那些拥有私产的奴隶。

所谓上有政策下有对策。在看清了专制独裁社会的本质之后,精英人群,不管是专制独裁社会中的奴隶,还是参与其中的“奴才”——各级管理者,都逐渐总结出一套从专制到自由的成功之路。而且这一成功模式是可以复制,也不断地在被复制和传播中。
从专制社会到自由社会的个人成功模式:
1.努力学习——2.出人头地——3.赚取权力或与权力媾和——4.权力变现为金钱财富
——5.设法转移财富到自由社会——6.肉身移民——7.颐养人生

这对专制独裁来说,几乎是一种釜底抽薪式的打击,日久天长,再丰富的自然资源和社会财富,也会被这种蚂蚁搬家式的财富转移给掏空挖净。曾经的帝国荣耀最后只剩下白茫茫一片,一地鸡毛。

至此,专制独裁社会自创立第一天起就开始衰落,出道即巅峰。背后的原因是:
1. 扼杀异见,扼杀创新,从而消灭或者基本消灭发明创造,基于科技的生产力不增反减,开始逐日下滑,军事武力随之式微;
2. 自由社会不断地吸纳专制社会的人才,抽取其财富,专制社会不断地沦为明白事理的统治层和不明事理的暴民奴隶。而明白事理的统治层又各自在自由社会谋划自己的退路和后路。

如果没有自由社会的救济,专制社会中的统治层会逐渐转移到自由社会,专制社会最终会只剩下一群暴民奴隶,他们中彼此会继续厮杀,产生新的统治层;新的统治层继续在吸取财富后人财一并转移到自由社会;剩下的暴民奴隶继续彼此厮杀,产生下一代新的统治层, …. 循此往复。
生活在暴民努力中的人群,像打怪升级的斗争一样,在精致的利己主义下,披着天下为公的外衣,努力赚钱赚学分,争取早日从专制社会毕业,升级转身到自由社会中去。
没有自由社会的救济,专制社会可能是长夜一千年、一万年,永无天亮之时、光明之日。
而自由社会的人群,除了同情恻隐之心,有何动力去解放救济他们呢?

只有一种可能,某个专制社会的统治者权力欲望无限大到要领导世界时,就会动手去“解救”某个自由社会。这个时机,就是自由社会反向救济专制社会的良机。
如前述所言,专制社会尽管表面上光鲜亮丽威猛刚毅,实则是纸老虎,但独裁者信赖下面人一直报来的好消息,以为真,就会膨胀到动手开战。实际上,没有发明创造基于科技的生产力逐日低下,低下的生产力是无法造就强大军事武力的。
一动手就露怯,无论是军事武力,还是国力财力,专制社会都无法对抗自由社会,这也是全人类的希望所在。
我们也殷切希望,在每一个被动出击的时刻,自由社会能击败独裁者,彻底地将一个专制社会救济成自由社会。
如此善莫大焉。
长治久安之本在于容忍异见、尊敬对手、妥协谈判,
繁荣昌盛之道在于鼓励创新、保护私产、捍卫人权。

发表在 社会生活 | 标签为 , , , , , , , , | 4条评论

得力彩色铅笔油性彩铅学生用专业手绘48色水溶性彩铅笔24色画画笔36色小学生安全无毒水溶款绘画素描儿童铅笔医用外科口罩一次性医疗专用口罩防尘透气成人三层防护透气医生床上电脑桌大学生宿舍上铺懒人可折叠小桌子家用寝室简约学习书桌京东制作

GWA2吉娃兔🐇引入PNOO关于排序字段的顺序

距离2022年06月上一篇Blog差不多过去一个月了( UfqiFina有福金融更新:JavaScript的数据类型强制等, https://ufqi.com/blog/ufqifina-javascript-tofixed/ )。

GWA2吉娃兔在研发与部署中,持续改进升级优化,日益健壮强大。近期的一个主要改进升级是在Page Navigator分页导航模块引入了PNOO关键词。
PNOO, Page Navigator Order of multiple Order-by fields, 分页导航中的排序字段的顺序。

之前的组合配对关键词 PNOB,
PNOB, Page Navigator Order By , 分页导航中的某个排序字段,
之前的组合配对关键词PNSK,
PNSK, Page Navigator Search Key, 分页导航中的搜索字段,
之前的组合配对关键词OPPNSK,
OPPNSK, Operator of PNSK, 分页导航中的某各搜索字段的操作符.

问题的背景是,当我们使用 GWA2中的Page Navigator模块通过地址栏的请求参数进行数据库SQL查询语句的组装时,除了使用构造条件的 PNSKxxx=yyy 这样的关键词, OPPNSKxxx=yyy 这样的操作符,还会使用到 PNOBxxx=0|1 这样的条件来设置查询结果的排序。相关参考: GWA2吉娃兔🐇升级增加搜索模糊语法支持, https://ufqi.com/blog/gwa2-fuzzy-search/ 。

PNOBxxx=0|1 会最终映射到数据库SQL查询语句中的 order by xxx 。 由于地址栏请求的参数是以Hash列表方式从客户端传递到服务器端,所以当有两个以上的排序条件时,Hash列表的数据并不能区分出先后关系来。相反地,在数据库SQL语句中, order by xxx, yyy 和 order by yyy, xxx 是有明显先后顺序区别的。前者是针对结果集先按xxx进行某种排序,然后在这个基础上再按yyy进行排序,后者则刚好相反。

如此以来,GWA2吉娃兔的Page Navigator需要某种机制,在处理多个排序条件时,确需知道这些排序字段的先后顺序。鉴于Hash列表数据无法确保先后顺序,我们考虑引入一个新的关键词 PNOO 来完成这一任务。
在前端地址栏发起请求时,如果指定了多个排序条件,需要额外地通过 PNOO来指明这些排序条件的先后顺序,也即,
pnobfielda=1&pnobfieldb=0&pnobfieldc=1&pnoo=fielda,fieldb,fieldc

这各请求将构造一个如下的SQL排序语句,
order by fielda desc, fieldb, fieldc desc

如果不启用 pnoo 参数进行指定顺序,则Page Navigator按Hash列表默认的顺序执行,向前兼容所有版本。
目前,这一优化改进已经在 GWA2 Java 和 GWA2 PHP 中实施,在随后的版本中,开发者可以调用PNOO来设置在多个排序字段条件下的各个字段的先后顺序。
在代码层面的实现逻辑是,在mod/PageNavi.class 中的 getOrder 里,增加先检查当前请求是否包含、预设了 PNOO, 如果没有预设,说明是之前的老旧版本,不支持新功能 PNOO,排序按默认顺序执行。
如果检测到包含、预设了PNOO,则说明是新版本,有对PNOO的支持,进一步地拆解出带顺序的排序字段,然后顺序执行、安排排序字段的升降设置。

题外1.
实际应用开发中,多个排序条件同时使用的场景并不多,而且其效果也并不明显。比如按价格排序之后再按重量排序,或者反过来,按重量排序之后再按价格排序,这样的结果集与只使用其中一个排序条件来看,差别并不特别明显。细微之处只在于价格相同时,再看重量的大小。多数情况下,价格与重量是正相关或者负相关很强的两个字段。大概只有在两个不相关的排序字段组合下,效果才会明显一些。

题外2.
数据库SQL查询语句 order by 有时候需要按条件地组合排序字段,比如根据数据的状态字段决定排序是按Id、状态本身、创建时间或者更新时间等。例如,

… ORDER BY
CASE
WHEN ali.LIVE_STATUS IN ( 0, 1 ) THEN
ali.LIVE_STATUS
END DESC,
CASE
WHEN ali.LIVE_STATUS = 3 THEN
ali.LIVE_START_TIME
END ASC,
CASE
WHEN ali.LIVE_STATUS = 2 THEN
ali.CREATE_TIME
END DESC

题外3.
始于2022年02月24日俄罗斯侵略乌克兰的战争还在持续,好消息是英勇的乌克兰人还在顽强地抵抗入侵者,国际支援与志愿军还在源源不断地涌入抗战一线,坏消息是乌克兰实际上丢失了一小部分边境领土。叠加上英国首相约翰鲍里斯因幕僚诚信问题被迫宣布即将下野,日本前首相安倍晋三因不明原因在竞选演说中遇袭身亡,民主自由世界蒙受了极大的损失,遭遇到巨大的挑战。
道长且阻,行则将至。

除了键盘侠打嘴炮,我们还可以真金白银地支持发生在乌克兰的自由与奴役相对决的反侵略战争。捐助乌克兰网站: https://u24.gov.ua/ .

题外4.
如果一切顺利,yoyo将完成初中学业,从东北师大附中朝阳学校以优异成绩毕业,荣获北京市三好学生称号,即将在2022年秋天入读清华大学附中朝阳学校(高中校)。
Hanu将毫无悬念的从二年级结业,在2022年秋季开始小学三年级的打怪升级之路。

全文首发地址: https://ufqi.com/blog/gwa2-pagenavi-pnoo/ , -R/x12Sc


GWA2吉娃兔

-GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architecture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 可以轻便构建各种网络应用程序,
包括复杂的在线购物商城、在线医疗、在线教育、 旅游交易平台、社群或者社交网站和新闻资讯网站等,
也包括各种企事业单位网上门户,在线交互及服务作业系统等.
还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部.
-GWA2 是为数不多的支持跨开发语言的应用框架,目前支持 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y 
Easy Along, Swift Yield
轻松启动, 快速产出.

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

UfqiFina有福金融UfqiWork有福工坊UfqiNews有福常在Google Books