窜访皖北与连续概率

公历2023年1月21日是中国传统农历2022年的大年三十。
窜访应该成为2022年度新闻中需要重要提及的关键词,无论是在中国大陆还是在宝岛台湾。这源于美国第三号人物众议院议长南希佩罗西女士对中国台湾的官方访问( http://ufqi.com/go/mod=blog&id=2844&tit=长治久安之本与繁荣昌盛之道 )。其实说她是美国政坛第二号人物才更准确些,因为副总统是总统的备胎,在承平日久的日常行政运作中并无实际影响力。
皖北是我的第一故乡。这源于中国传统文化对一个人二十岁之前生活的地方的一种概括——故乡。之后待的再久的地方,都是客居他乡,或者第二故乡、第三故乡。比如我高中从皖北县城毕业后北上北京求学工作已近卅年,故乡依然是皖北。

是的,历经三年的全世界新冠肺炎疫情结束后,我们迫不及待地返乡去看看亲朋好友。幸运的是,尽管历经普遍感染,老少妇孺概莫能免,但大家都拿命硬扛成功度过劫难,成为幸存者。从九十多岁的老舅公到半岁的小婴孩侄儿,都成为抗击疫情的英雄。
返乡窜访,长途驾车游历大半个皖北地区,期间经历颇多,亦有所感慨,兹记录于此。为了有个思路顺序,我打算这次用时间倒叙来讲述。

  1. 连续概率、连赢概率

窜访皖北故乡最终平安顺利返回,多谢神灵保佑,此时后话。

回城落定。娜的阿姨来探访。娜的阿姨、阿姨的女儿、娜自己和我,四个人打两副扑克牌,斗地主。本来由其他人在打牌,我是三缺一时叫上来凑局的。牌技很差,通常是抓一手好牌,被自己打个稀巴烂。

在五局玩牌中,我连续抓了五次当地主。其中最后四五张牌中,都是厉害的大小王和次之的2号牌,距离连胜几乎就是临门一脚的事。遗憾的是,五局中只有一局险胜,其余四局尽是输掉。
亲朋好友在刮鼻子的哄堂大笑中,让我想起连续概率、连赢概率这件事。

每次抓牌,四个玩家中,每个人抓到标记牌做地主的概率都是均等的 1/4, 25%, 如果一个人前一局抓到标记牌做了地主,后一次也抓到继续做地主的概率是多少? 从概率上来看,每一局抓牌,都是单次孤立事件,概率都是均等的1/4, 25%, 连续起来也是这样吗?

理性的,正确的答案是,第六局时,我抓标记牌做地主的概率依然是 1/4, 25% , 不多不少;而我连续六局抓到标记牌做地主这件事发生的概率则是 1/4, 25% 的 6次方, 也即 0.25^6 = 0.00024 , 万分之2.5左右。
这里是有些费解的,我第六局抓拍时,抓到标记牌做地主的概率依然不变地是 25%(这是统计学上的独立概率事件), 而“六次连续抓到标记牌”这件事发生的概率是 万分之2.5 (这是统计学上的连续概率事件).

显然,理解自己的输赢的概率是 25% 或者 万分之2.5的人,在决策时是完全不同的。
行为经济学上说,人是理性的,会做出理性的决策。如果人的决策所依赖的数据错误的或则逻辑推理过程有瑕疵,结论就很难保证是真正意义上的“理性”。
这也能理解,我们当下这个现实世界,还有很多不可思议超乎寻常的非理性。
甚至,近现代中国大陆还在某种程度上取消了或削弱了逻辑科目和逻辑学的教学与研究。

  1. 大强子超市学了南方

早前一点。在去看望三姨家的次日,我返回去接之前留宿在三姨家的 Hanu回来跟我继续下面的行程。考虑到有其他孩子和 Hanu一起玩耍,以及昨日未送些随手礼给老舅,就在去的路上的街面一家超市采买了两厢啤酒和一箱旺仔牛奶。啤酒送给老舅,牛奶留给Hanu和他的小伙伴们。

在大强子超市进门时,我问老板,认得我吗? 老板是个比我年轻些的中年男,回答说认得我,街上谁谁的亲戚。 我觉得满意,脸熟好办事,至少不会被胡乱喊价。于是挑选了啤酒,谈了价格,结算了钱款。我嘱托他,啤酒直接送给老舅家(此处有后话)。

临走时,店主塞了我几包餐巾纸,说是赠送的,备着吧,或者用得着。

还记得我在之前的一篇博客中阐述的,就受不了这种超出预期的小恩惠( http://ufqi.com/go/mod=blog&id=2916&tit=南方让人花钱买个舒服 ),于是对他顿生好感。这拉拢人的生意手法,与江浙南方一带何其相似。
本来我是要去隔壁曾经采买过一次的那个超市,只是那家关门了,不知为何。不过,经此一段,下次,应该是首选他家超市了。

  1. 义人蒙城小伙

再早前一点。去接 Hanu当日,我们的小轿车被娜开走,我本计划开着电动自行车去接 Hanu,只是考虑太慢了,后来改了主意,在短暂熟悉了阿业的小货车之后,我决定试驾他的手动挡小货车去接Hanu。只是没有预料到,这一想法,差点要了我的命。现在想来,极为后怕,可谓又是死里逃生的一劫难。

手动挡小货车开起来也不难,我的驾照考取时,就是手动挡,只是这个小货车的挡位有点模糊,而且离合器需要踩很深几乎到底才能配合完成换档操作。加上无法调座位姿势,开了几公里之后,我就减少换档次数。在下一个转弯路口,我甚至没有做降档操作,凭着减速和紧盯着路口的弯度想着一次快速通过。就是这一鲁莽的行为几乎要了我的小命。

由于考虑离合器、刹车,看着路口拐弯弯度,视线和精力就没有向拐弯后的路面眺望。待我手脚并用,眼神高度配合集中所有精力完成快速拐弯后,突然发现狭窄的路面(四米左右)上正迎面驶来一辆小轿车。
下意识地我快速打方向试图错开可能与小轿车冲撞,可惜小货车的方向盘的角度和力度我都不熟悉,而狭窄的路面也没有空间容我观察方向在哪里了,小货车载着我在霎那间就冲下路面。
当其实大脑一片空白,当我回过神时,车子已经在路边半沟里撞在一棵碗口粗的大树上。车子已自行熄火,我除了感觉腿部顶到前面隐隐作痛,并未大碍,待我回神去看对面会车的小轿车时,已跑得不见踪影。

小货车并没有侧翻,只是冲下乡村水泥路面,撞到树上。惶恐中,我跳下车,检查车况,车前蒙皮有破损,冲撞到前护钢梁后停下了。车前大灯似乎未受损。
逐渐恢复理智和平静后,我安慰自己人没事就好,车子似乎也无大碍。眼下最要紧的是化解这尴尬,把车子拖拉上来、送修,至于去三姨家接 Hanu 回来的任务,暂时顾不上了。

电话求救于 阿业,他很快赶来。颇有经验的他进入车内,发动车子,挂倒挡,试图凭车子自己的动力摆脱泥潭。几次尝试未果,我们兄弟俩垫了些石块在轮胎下,由于湿地路滑,依然无法成功。
只好叫另外的卡车来拖拉,阿业电话呼叫了他的朋友。朋友答应备了拖车绳索,过一会儿就赶来。

这当间,义人蒙城小伙像天使一般地出现了。
我和阿业等候在路边不远处,路上依然车来车往,偶尔有司机减速通过扭头来观看惨烈的现场。甚至有阿业认识的朋友驾车通过,奚落地对阿业说,这是你开的车啊?我厚着脸皮回答,司机是我,并请求他帮忙帮忙拖拉一把。这人直接回绝说,有事,没空,急着赶路,就跑了。

等拖车来的时间很漫长。路上依然车来车往,我希冀能拦下一辆卡车来帮忙一把。但都未能成功。过没多久,我们就放弃了这个想法,不再留意路面上的车来车往。
忽而有辆卡车似乎是走错路口一样,在开过我转弯的路口后,停下,倒车,然后停在距离我们的货车几米远的地方。司机跳下车问,要不要帮你把车拖上来?

这司机就是蒙城县的义人小伙子,他取下他卡车上束捆鸡笼的绳索,结实地绑在我们的小货车上,阿业积极配合,只几分钟功夫,俩人就把小货车拖拽上来到路面中。
感谢,感动,他说自己是隔壁蒙城县的,空车来这里承运活鸡。路过看到我们的情况,主动伸手援助。给钱不要,我留了他的电话,问了他的姓名,他叫 李鑫。大家都匆忙分手,各奔前程。

后来加了微信,他说在外面路上跑车,遇到急难愁盼的事,经常会有,帮人一把,一桩小事,不足挂齿。我发了红包,他亦不收取。
我感慨,背静离乡廿年有余,听到家乡的消息负面居多,今次遇到蒙城小伙,令人大为欣悦。我回复 李鑫,表示向他学习,在以后路遇急难愁盼的的事情时,一定会施以援手,绝不做壁上观。

和前一节大强子超市的善举并列,也许我的家乡在变好,也许中国在年轻一代的推动下也在不断改进。

  1. 卜卦先知的老舅

最早前。返乡的次日,我们去三姨家(外婆家)看望。中午酒席。大舅(老舅)闻知远在北京的外甥窜访回来,欣然入席,把酒言欢。
酒肉几巡,各个面红耳热,攀谈逐渐热烈。对新冠疫情肺炎的痛骂,对美好生活的向往,谁谁家挣了大钱,谁谁家结婚了,谁谁家离婚了,还有新添子丁,老辈过世等等家长里短。

老舅和大妗子家里供奉了神仙,平日里也有善男信女去拜。我早前就知悉这些,只是自诩为高级知识分子的我,对这些只是止于寒暄。
这种认识直到老舅预言我母亲过世时,嘎然而止。

2014年,由于春节没有回老家,我清明节前后返乡(2014年03月05日),自然要探望三姨家,自然要和老舅喝酒,那日更是欢乐,还有大姨夫也闻讯赶来相见作陪。
那日,老舅望着已经开始血液透析并渐次维持病情的我母亲,对我说:
“恁妈也就是mei(麦)前mei(麦)后的事。”

当其时,我只是应承着呵呵地笑,不理解他说的是什么事,也没有多问我妈怎么了。
两个月后,2014年05月底,我的母亲血液透析引发脑部出血并发症,不治身亡。我奔丧回家,亲朋哭声一片一片又一片,再无往日里我每次返乡后的推杯换盏饮酒作乐。取而代之的是,对母亲无限的悲痛与哀思,没有母亲,就没有我。不只是这具肉身,还有不服输的精神,不偷懒的品格。
母亲安息次日,天降大雨,滂沱地下了一晚。安葬完母亲,两日后老家开始收割麦子,我帮着抬运麦子。
这时我才想起大舅在清明节说的上面那句话。

2022年腊月底这次窜访皖北并与老舅再次吃酒。我对他又几分敬意和惧怕。仗着酒意,作为外甥,我戏虐地问老舅,都说你手下有(天)兵(天)将,可曾帮助过我们吗?
老舅说,“我们这一大家子,不会有意外事故的伤残身亡的事,….”

次日,如上面所叙述的,我驾驶着阿业的小货车,差点与迎面的小轿车相撞,冲下路面后,差点侧翻,差点前面一点冲撞大石头,差点下面一点是水塘沟。
万幸地,没有与小轿车相撞,没有撞上大石头,也没有掉水沟里,一棵不大不小的树“温柔地”拦下了小货车,前蒙皮破损,人车无碍。
然后,行侠仗义的蒙城小伙也出现在上一节中。

本页Url: http://ufqi.com/go/mod=blog&id=2924&tit=窜访皖北与连续概率


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

户外强光手电筒远射骑行照明男女复合多种维生素矿物质茉莉花茶雪芽 香气扑鼻半高领毛衫男商务休闲男士毛针织衫

南方让人花钱买个舒服

2023年元月初,我、娜和大女儿Yoyo搭火车从北京到上海,开启了长达三年多新冠肺炎疫情之后的返乡探亲之旅。两三周以来,四处自由地游走,享受摆脱桎梏禁足之后的畅通无阻。我和娜自南方旅居北京已廿年有余,此番再次回上海及南方各地,稍微留心,竟然发现些许中国南北方之间的差异来,中国南北方如果有差异的话,在南方让人花钱买个舒服,让人消费起来感到高兴、愉悦,而不是失去金钱和财富的痛苦、虚空,这可以算作非常明显的一点。

以下是关于南方让人花钱买个舒服这一点的旅途见闻,记录于此,以为佐证。

  1. 上海出火车站时卡壳也畅通

我们一行从北京丰台上了火车。火车开出后,我们和家人朋友联系后,行程做了些调整,终到站由常州延长到上海。在手机上可以通过 12306自助软件平台实现对终到站的延长。
抵达上海火车站后下车出站,刷了身份证,系统显示验证失败,不知道是否与我们自助延长终到站有关。
无法自行刷卡出站,只好走人工通道,预设的情景是受到工作人员的刁难,各种盘查身份和票证,甚至可能以自助补票无效的理由,要求我们到站后再次补票.
及转到人工通道后,工作人员刷了身份证,依然显示校验失败,工作人员简单了解情况后,并没有发难,而是选择了相信我的陈述,直接放行。

只有对比了才会体现出差异。这种异常地顺利,让我想起了两周前在北方天津火车站转车的痛苦经历。在天津火车站转车,所有人几乎都需要先出站,然后再进站。在新冠肺炎疫情期间,那种进站手续的复杂度,简直让人崩溃。
我当时由于带小孩,不得不走人工通道。同样是转车的,前面排队的两个,一个是身份证消磁了,另外一个是急着转车去海南,而且火车马上就要发车了。即便乘客心急如焚地怕错过了列车,坐在卡口亭内的工作人员,感觉不到乘客的哀求,不但自己在系统里查询、核对,还叫来旁边同事进行确认,还是拿不准,进而通过电话向远程的领导或同时求证。
焦急的等待,漫长的求证,忍无可忍!

上海火车站的工作人员选择了相信,相信乘客的陈述,快速高效地判断、放行;天津火车站的工作人员可能预设乘客是坏蛋,宁可错杀,绝不放过。天津火车站即便是转车,也要先出站、再进站,选择绝不听信乘客的哀求哭诉,直到自己有把握确定疑似坏蛋不是坏蛋,才肯放行。

  1. 上海地铁疑落下单程票也放行

继续出了上海火车站,我们根据指引搭乘地铁前往目的地。在自助机具上,买到单程票卡,刷卡进站乘车。由于路途遥远,期间需要2两次换乘,Yoyo在搭地铁过程中,发现丢了单程卡。

我们并没有立即责怪她,Yoyo搜身了自己所有的口袋,依然没有发现,幸好我们提前收集了她的身份证,不然遗失了身份证会更麻烦。没了单程卡,我们准备就在目的地出站时补票吧。

经过兜兜转转的地铁,我们到达目的地,Yoyo无法刷卡出站,向工作人员说,遗失在车厢里,现在怎么补票?工作人员听完陈述之后,拿出一个登记簿,让Yoyo在上面登记姓名信息,声明自己丢失了单程卡即可,随即另发了一张让Yoyo刷卡出站,通行。

许久不乘公交车,在我的印象中,票丢了要补,不然无法证明自己买票了,现在上海发达到了这么先进了吗?可以凭乘客的声明就无需补票了。
北京也是这样了吗? 我不确定。

  1. 菜市场买个荤菜赠送素菜

南方的瓜果蔬菜丰富、鱼虾蟹蚌鲜活,菜市场也热闹。经过短暂的新冠肺炎疫情大爆发大家都阳性感染之后,市场几乎恢复到疫情前的熙熙攘攘、购销两旺的场景。

此前听过常住常州的岳父母说,菜市场买菜,称完斤两,算了钱款,店家多会,免费赠送一块生姜或一头蒜或几根小葱,以示友好,以期待客户的再次光临。

前几天 娜的生日, 我们选择在家聚餐,免不了地要去菜市场采买。在熟食摊,买了糖醋排骨,店家在买卖成交之后,还给赠送了一小盒素菜豆腐。这种额外的小便宜,一下子就把我们讨论、纠结、疑虑这糖醋排骨是不是买贵了、口味有没有那么好、卫生干净程度如何,等等这些全都一扫而光,取而代之的是,对糖醋排骨的期待,对所赠送的这盒清烧豆腐的想法。

南方花钱让人买个舒服,这背后可能还要不少学问。
成交后多一份生姜蒜头,相当于干工程项目的,合同签完庆功酒喝完,卖方说,期待合作愉快,下次继续,再多加几十万,表示这份诚意。
这种诚意的表达,与成交前的促销活动相比,明显高出几个段位。买一赠一也好,9折8折也好,这些成交前的 bargaining ,都被买家作为合同要件加以考量权衡。相比较而言,成交后的善意表达,显得弥足珍贵,是真情意的流露,显得含情脉脉。

  1. 麦当劳原谅了小朋友

还在常州,前日晚,我、娜和Hanu去小姑家看望。
回来借了她家的打印机,好大好沉地抱着往回走着,我们选择散步一段路再搭公交车回去。走着走着累了,就到南大街一带,看到有麦当劳,而且客人不多,就想去歇歇脚。

许是我们真走累了,就让Hanu拿着现金去点买两个冰激凌甜筒,第二份半价的那种。
Hanu自然迫不及待地兴奋前去交易。很快成交,许是他太期待了想马上咬一口,双手里拿着俩甜筒和一把零钱往回走,一不小心,一只甜筒就掉落在地面上了。

Hanu立刻意识到自己的不小心,一脸尴尬。我们见望此情此景,也不予置评,只好由他自行笑纳这个小失误,由三人分享两个冰激凌,变作三人分享一个冰激凌也无妨。
回到座位上,正当我们讨论三分冰激凌的分法时,一个服务员小哥哥,就乐呵地拿着一个新的冰激凌送来,说是算店家请客送我们吃一个。

南方的春天似乎来得早,温暖湿润,连小雨后的空气,都显得比往日更加沁人心脾。

我们在食用这个失而复得的冰激凌时,娜指着远处的一张台子问我,还记得吗? 十多年前我们也在这家店吃过东西,就是你准备出国前夕。
我的记忆似乎没她那么好,但眼前这家快餐店,我确实来过好多次,和不同的家人朋友。
我也相信,这家快餐店还有下一个十年,再下一个廿年。

  1. 其他

母亲逝世于2014年,距今已九周年。逢年过节,倍加缅怀先母。她生前对世事的看法,对我的教导百千篇、千万条。“宁向北挪一千,不向南挪一砖” 算是其中多次强调一项。在母亲看来,南方人聪明诡诈,我们北方(山西、安徽北部)人去了,多是耍不过南方人,可能要吃亏的。

中国自改革开放以来已逾四十年,尤其是2000年前后加入世贸组织(WTO),经济上取得突飞猛进地发展。这期间,中国南北方发展似乎并不是齐头并进,反而有种此消彼长的落差。

https://ufqi.com/news/ulongpage.1364.html?tit=中国南北地方差距为什么越来越大
https://ufqi.com/news/ulongpage.1323.html?tit=中国城市版图变更:2020年北方将只剩一座TOP10城市

中国农作物成熟期.png
中国南北方农作物耕作周期

仓廪实而知礼节,衣食足而知荣辱。
或许腰包早早鼓起来了南方人虽然聪明诡诈,也多少顾及颜面,念及人情。
在波谲云诡的商场如战场上,长袖善舞地南方人,在揣摩人心、熟稔人性方面已达到新高度,润化于无声息中,舍小利而逐大得。

无论怎么说,让人花钱买个舒服,消费得欢心愉悦,下次再来的可能性就大多了。常来常往,就成亲朋了,脸熟是个宝。
对于成年的达官显贵来说,莞式服务似乎就是某种短期内无法企及的天花板。做生意的真谛或者不二法门就是,超过预期,好到无形:
http://ufqi.com/go/mod=blog&id=782&tit=好到无形,Best as Air 。

本文链接: http://ufqi.com/go/mod=blog&id=2916&tit=南方让人花钱买个舒服

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

户外强光手电筒远射骑行照明男女复合多种维生素矿物质茉莉花茶雪芽 香气扑鼻半高领毛衫男商务休闲男士毛针织衫

Base62x跨版本跨编程语言的一致性

全中国已经是2022年的隆冬三九,冬天已经来临,春天还会远吗?拿命硬扛地中华儿女正以巨大的牺牲从新冠肺炎疫情的寒冬中艰难困苦地走向新的春天。

我们大约在三年前写下《gMIS吉米斯升级支持IPv4/IPv6双栈网络模式》( https://ufqi.com/blog/gmis-with-ipv4-ipv6-dual-stack/ )一文,简述了在单用户多网络路径的情况下用户基于IP地址鉴权的问题。这类问题的根本原因在于网络基础设施的发展与发达,单一用户可能在多个通信网络间漫游,从而其通信IP地址也不断变化;其次,还在于单一用户可能同时具有不同通信网络的接入通道,从而同时具备了多网络IP的通信能力。

该文的解决思路里也提到在 Base62x, 用于编解码单用户多IP地址的地址编码、安全ID编码等。文章进一步地阐述,今后所有网络应用都将面临这类问题。
最近,我们的所经历的一起网络应用的故障排解过程就应验了这一预见。

有福常在UfqiLong 是我们主力推荐的一个内容推选阅读平台。UfqiLong的用户在发起内容推荐时,需要进行用户身份识别和安全性校验。UfqiLong的用户鉴权是基于 有福工坊UfqiWork的用户服务模块。
UfqiLong是使用PHP写成的程序,而UfqiWork是基于Java语言编制的。他们之间的用户鉴权的传递,依靠用户安全号(Sid).

这次遇到的问题是这样的,我们通过Java语言的接口将用户安全Sid写入到Cache服务,通过Java也能够读取出来已经写入的目标数据。但是通过PHP的接口读取相应的Sid的已经Cache的数据时,总是报错说读取不到。
问题先排除不是Cache服务本身的错误,因为通过Java语言和Cache服务的命令行读取方式,都能够获取相应的数据,而通过PHP语言的接口却无法读取到所Cache的对应的数据。
进一步地分析发现,PHP接口的 Cache读取服务返回的代码表示为 NotFound, Cache服务确实没有找到的 Key 所对应的 Value.

很快问题被 Narrow down到被检索数据的 Key上。无论是 Java 的 Cache服务的 Key , 还是 PHP 接口程序读取 Cache 所使用到的 Key, 都经过了相应的处理,其中对 Key 的处理上,都用到了 Base62x .
Bug被进一步地迁转到 Java版本的 Base62x 和 PHP版本的 Base62x 对相应的 Key进行编码时是否一致,也即 Base62x 的跨版本、跨编程语言的一致性问题。

Base62x 在算法设计上相对简单,采用 64进制的数字编码,码表为 0-9A-Za-z, x1, x2, x3.

在 UfqiLong 的跟踪日志上,很快定位到问题的病灶,Java版本的 Base62x 对 Cache服务所处理的数据的 Key进行编码时,使用的“长度优化”的策略,使用该策略,对纯ASCII字符(0~127,8bits, 1byte以内的范围)进行简单地处理,不做字节及bit操作。比如,字符串 ABCD会被编码为 ABCDx .
ABCD –> 字符串长度优化地 Base62x编码 –> ABCDx

Base62x 还要额外的选项,表示纯数字进制的转换,比如 16进制的数字 ABCD(十进制的 43,981),会被转码为 64进制的数字,转码为64进制的数字后,使用 Base62x表达这一数字是 AlD .
ABCD –> 纯数字进制地 Base62x编码 –> AlD

Base62x 多编码策略

字符串 ABCD 使用最传统的 Base64编码方案的输出为 “QUJDRA==” 。

在 UfqiLong的PHP的 Cache服务接口程序中,PHP的 Base62x 使用了“纯数字进制”的策略。于是问题就产生了。在 Java接口程序和 PHP接口程序读写同一个 Cache服务时,Java写入的 Cache数据,Key=ABCDx, 而 PHP接口程序读取 Cache数据时,Key=AlD 。

Base62x 在编码实现上,力争做到向下兼容,也即后一个版本的总是最大限度地兼容前一个版本,版本的改进主要是性能优化和功能改进。
Base62x在编码实现上,也力争做到跨编程语言的一致性,也即对于同一字符串,使用不同编程语言的实现,其最终输出的被编码的字符串应该是严格高度的一致。
基于这两点, Base62x 在被创制以来,才不断地扩大应用部署范围,日益在更加广泛的软件研发中实现对传统 Base64及其各个变种取代和替换,同时也在替换传统意义上的 Base62 .

除了上面说的这一点, 关于 Base62x 在编码时,对纯 ASCII字符串的处理上,有两种截然不同的策略选择——长度优化的方法和数字进制的方法。
在 Base62x 0.7 及较早的版本中,没有选择,所有的输出都是 数字进制转换的处理方法。
在 Base62x 0.8 及之后的版本中,Base62x 针对纯 ASCII字符串,提供了额外的长度优化的方法,而且这一方法,被设置为默认启用,取代了之前的 数字进制转换的处理方法。

UfqiLong这次遇到的技术 Bug,其原因就是 UfqiLong使用了较早版本的 Base62x的 PHP版本,默认是对纯 ASCII字符串进行数字进制转换的方法;而 UfqiWork则使用了较新版本的 Base62x的 Java版本。 后者默认对纯 ASCII字符串进行长度优化的处理方法。

这种不兼容,显然是软件升级迭代过程中的一次失误。应该在后续极力避免。这一早期版本与后期版本不兼容的问题,只能随着时间的推移,由开发人员在后续升级更新后逐步消除。


base62x
Base62x

Base62x: An alternative approach to Base64 for alphanumeric-only [a-zA-Z0-9] characters in output.
Base62x is an non-symbolic Base64 encoding scheme. It can be used safely in computer file systems, programming languages for data exchange, internet communication systems, etc, and it is an ideal substitute and successor of tradtional Base64 and many variants of Base64 encoding scheme.

Base62x 是一种无符号 [a-zA-Z0-9] 的Base64编码方案。
她可以在计算机文件系统、编程语言数据交换、互联网络通信系统等方面安全地使用,同时是传统算法和各种变种Base64编码方案的理想替代品、继任者。

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

半高领毛衫男商务休闲男士毛针织衫晴山蓝 小米合约机 移动用户显白黑茶色蓝黑色板栗色中华人民共和国民法典

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

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

当全世界的外国都翻过新冠肺炎疫情防控这一篇之后,只有中国还在由于“中国特色”而不得不进行各种自杀式地防控——尽管检测出的病例中,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小时后,不适感消失,左右眼宛如高清望远镜。美好世界重新映入眼帘,本人已经记不得上次看到如此清晰明亮的世界是什么时候了。
九九归一,十全十美。

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

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

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

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

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

口红滋润唇膏户外强光手电筒远射骑行照明男女复合多种维生素矿物质茉莉花茶雪芽 香气扑鼻

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, 编程技术, 计算机技术 | 标签为 , , , , , | 留下评论

茉莉花茶雪芽 香气扑鼻半高领毛衫男商务休闲男士毛针织衫晴山蓝 小米合约机 移动用户显白黑茶色蓝黑色板栗色

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条评论

男女复合多种维生素矿物质茉莉花茶雪芽 香气扑鼻半高领毛衫男商务休闲男士毛针织衫晴山蓝 小米合约机 移动用户