2021-11
3

差异

By xrspook @ 19:57:44 归类于: 烂日记

在被抽调去检查之前,几天前买的缝纫机润滑油已经到了,但因为检查的原因我一直没去拿,也一直没人收货,同样也一直没付款。这次检查让我彻底戒掉了淘宝、淘特以及各种相关的打卡,因为实在没有时间。一开始我觉得就是出差在外的时候我没有时间,但实际上回到单位以后我依然没有时间,从早上8点一直干到晚上11点,连中午也没有休息,期间只是吃了个早餐午餐和草草用麦片解决我的晚餐。这一天已经丢了那么多个小时进去,那些从前埋下的坑还是没有补回去,真是让人好绝望。之所以这样。

这其中有我的大意,有我的理解错误,但为什么这么多年下来,过来检查我的人都没有给我提出建议呢?如果只是修改一年还好说,要连续三年的都把某些格式全部改掉,这实在太难了。这些东西完全不是数据上的问题,只是填写格式上的理解偏差,但折腾起来真的让人想死的心都有了。

出差这10天,把总公司的直属库全部都走了一遍以后,我才发现8个库点,没有两个库点的做法是完全一致的,各有各的特殊风格。你觉得他不对,他觉得你不对,这么什么才是对呢?理论上需要总公司下铁一般的规则,但实际上连总公司定规则的人也觉得其实这样或者那样都可以。所以当我们建议他们不要那么做的时候,他们觉得他们那么做一点问题没有。为什么数据上已经是0了,依然要结转呢?为什么那个仓一整年都没有存放某种品种的粮食依然要在某个账本上全部划杠,全部写零呢?他们的解释是这个仓可以确定只放这个品种。所以只要没打算让这个仓放其它的品种,那个仓的某个账本就得一直零下去。这种解释也不是完全没有道理,但真有这个必要吗?之所以这样是因为他们就没有经历过这个仓前三个月放一个品种,后三个月可能也放同一个品种,但是却换了个客户这种事情。所以当这个仓出空了以后。到底接下来那几个月还要不要继续写零呢?我个人觉得没有必要,因为有可能这个仓的那几个月放了其它品种的东西。如果按照这种逻辑去补零的话,那么我有100个仓,有5个品种,但实际上5个品种就只可能放在这100个仓里,那么当这个品种正在放在这个仓的时候,其它品种的这个仓的账本是不是全部都要写零呢?如果我有10个品种呢?

我遇到的数据太多了,我有116个仓,而他们只有10个仓不到,这就是我跟他们理解不可能一样的原因。我所面对的情况跟他们所面对的完全不一样。他们不会想象得到居然还会有我这种遭遇。或许当他们有空余仓房的时候,也会做代储或者租仓,但是无论是哪一款,那都是固定仓的,因为他们空闲的仓就那只有那些了。但对我来说不一样,我起码有一半甚至以上的仓房是用来做非储备用途的,而那些仓房是不断的发生变换的。我怎么可以把那些东西写死呢?更重要的是很多合同算钱的时候都不是用仓容来算,而是用实际库存数。即便有些是用仓容来算,但储存地点也可以调整。

如果他们能想象得到到我所遇到的业务的话,估计他们也就可以理解为什么我会建议他们没必要去做那种无用功。一圈过后,我感觉我们和他们好像不活在同一个世界。

2020-07
29

垃圾表格

By xrspook @ 10:49:22 归类于: 烂日记

昨天我看到一张单,上面的东西几乎没有一样是对的。表格的设置一团糟,里面的数据牛头不对马嘴,简直不知道那些人是如何填表的。他们到底是如何从一个路人甲,长进到知道该如何填那些表格的呢?为什么他们填那些表的时候不觉得那个表有问题呢?收表格的人看到表格里信息乱七八糟,对不上的他们也没有上心。明明知道错的,也不叫填表的人去改。真的没办法改吗?如果没办法改的话,为什么没有多一个审核人呢?让我觉得最郁闷的是,那个表上面居然没有一个制表人!没有打印出来的名字,也没有手签的名字。要找人负责,应该找谁呢?是因为没有制表人的签名,找人负责的时候不知道找谁,所以谁的脸都不丢吗?!自己的脸不丢,单位的脸丢光了,为什么这种事情居然会发生呢?外面的审计单位,如果真的翻到这些东西。他们肯定会觉得我们极端好笑。一张这么简单的表上面都错漏百出,其它地方出现幺蛾子太正常了。表里面的数据前后对不上,就更加不用说这张表跟那张表,今年的表跟去年的表能不能衔接,能不能对上。如果这一套东西毫无逻辑可言,这套东西想不出错实在太难了,而且也是根本不可能不出错的,而且出错的东西简直是随机播放,挑战你脑洞的极限。上周我去检查别的单位,同一个数据用在三个地方,三个不同的结果,已经让我很震惊了。一直以来,我们都用昨天我看到的那套莫名其妙的表,要不出错根本是不可能的,出错的效果可能会比上周我去检查的那个单位还要夸张、还要严重。做毫无逻辑可言的事情,即便你再勤快,也是没有用的,因为你的勤快都不得用在考虑非标上面。没有规则,所有东西都是特例,这工作还怎么进行得了!

在进行blog数据转换的时候,我更加明白到执行标准的重要性。blog是一篇一篇的写出来的,但是,要让一个blog真的体现出价值,必须积累到一定程度。这个积累必须有一定的规则,内容可以天马行空,但是组织方式得有一个套路。哪些元素是一个模式的,哪些地方不能用奇形怪状的符号,这些都是规则,只有把这些规则都严格遵守了,一篇一篇的blog加起来才是一个知识体系。只有每篇blog的内容都符合系统的识别要求,不让系统有歧义处理错误,这些文章叠加起来才能真的起到作用,而不会在往后的使用过程中导致各种瘫痪。我是个标签狂人,我会用你想到想不到的东西做标签。从前我的标签非常五花八门,各种稀奇古怪的符号都有。这让我在数据转换过程中尝尽苦头。如果我单纯地只用中文或外文的组合没有问题,因为在数据转换过程中,不会让系统产生歧义。但如果我用了一些我觉得很普通的标点符号,问题就会很大,制造出来的麻烦超乎我想象。这就是规则的重要性,如果当初我知道这些规则,我绝对不会用那些符号作为标题、分类或者标签。我知道了这些东西的危险性,所以我不用了,但我的那些同事,根本不知道他们那个非标表格的危险性,还继续一直套用。作为一个旁观者,我瑟瑟发抖啊!

不是每个人都会在工作问题上斤斤计较。随大流是绝大多数人的做法。没有进行拿来主义的经验做法是害人害己的,用之前想一想,就那么难吗?

2020-07
9

状况连连

By xrspook @ 10:35:47 归类于: 烂日记

你永远都不知道纠结的路上会出什么状况。一路平坦不好玩,5分钟就能所有问题,那是无聊的节奏。老blog的重新上线是我近段时间一直在纠结的东西。要做的事情很多,应该如何开展?做这些事的步骤应该是怎样的?谁轻谁重?

首先我做的是处理blog的核心——内容。文字我是有的,我有大把大把,但里面也有非常多连我自己都说不上到底是什么的东西。有可能长文被阉割了,但我自己毫不知情,有可能是消息从其它网站上复制粘贴过来了,带入了一些我根本没有意识到的乱七八糟代码,不同网站连换行都不一样。有些是“br”,有些是“br/”,有些是“br /”,有些是“BR”,有些是“BR/”,仅仅是“b,r,/,空格”的排列组合就有多得你想不出的效果。如果这在HTML里,都不是问题,但我做静态blog的第一步是从html到markdown,该死的“strong”在html2text的脚本里是不允许期间有换行的,在这个脚本里,连续两个br就能自动匹配正路的p,但如果遇到稀奇古怪的“/”和空格呢?在我的python转码脚本里,我用了很多行去处理那些排列组合的问题,正则的、非正则的替换用了好多遍,所以脚本运行速度只可能在我一次又一次的增加新规则之后变得越来越慢。理论上,这些东西都是不存在,但事实就是这么残忍。除了html的问题,还有yaml以及文件名字符要求的问题。转义字符出现就丑陋了。丑陋归丑陋,字符不对,那是直接编译不出来的节奏。出状况这种事简直不计其数。我也不知道自己到底改了多少个版本,理论上脚本修改这种事我应该放在坚果云文件夹里进行,但因为我生成数据的文件夹和我的脚本文件夹一致,显然那就太消耗同步流量了,所以我大胆地把脚本放在了坚果云以外修改,那是一个错手就没得救的玩命。其实我完全可以把输出的文件夹设置在坚果云以外的地方,但我就是没有这么干。要把BlogBus和点点的数据匹配为WordPress的格式,然后再用WordPress格式的数据转化为markdown。为什么我要有WordPress这个步骤呢?起码但我学会了XML到另一个XML的规律后,不静态blog的时候我还能退回WordPress,虽然那意味着我导入数据的时间将是个天文数字。没经历过这些纠结,我就不会深切体会到好好码字,不要不规范乱写的重要性。从前,尤其是一开始在BlogBus写blog的时候,我总把网上看到的东西直接复制到编辑器里,这样过于简单的操作让我付出了非常多整理的代价。后来的点点几乎没有这种问题,现在我更加是极少会直接复制粘贴网上的东西到我的blog里发布,即便有时会截取一段,基本上都是保证无格式纯文本的。现在我知道了,但当时我不知道,成长是需要付出代价的。我仅仅是在处理自己的东西,所有坑都是我从前挖下的。如果我是被迫要帮别人擦屁股,估计我早就把那个人诅咒死几万年了。

内容基本确定下来后,一开始我觉得应该不会太难的静态blog主题原来也不好找。首先是样式得对上眼,其次是渲染速度要快。有些主题连单机渲染都会让我的电脑崩溃掉,连测试都无能,真的是什么都不用说了。我几乎得出一个结论,如果某个主题大于5MB,基本上无需考虑了,那些10MB左右的,更加会让我电脑宕机。不是人人都会遇到这种事,宕机与否的测试基于我需要渲染的文章有接近3900篇,不是人人都有这样的体量,这还是建立在我已经放弃了6100多篇图片内容已经失效,光文字意义不大的文章上。

内容好了,主题好了,还得考虑把网站托管在哪里。要免费,要速度快,要可以绑域名,要服务器稳定。对一个女人,对一个习惯于货比三家的人,这实在又是一个大纠结啊啊啊。

2020-07
7

吐槽逆天格式

By xrspook @ 9:18:37 归类于: 烂日记

统一格式是非常有必要的事,但是一直以来,格式这种东西都非常难统一。正是因为格式很乱套,所以汇总的时候就很头痛。昨天我算见识到了一个闲得相当蛋痛的表格。Excel里明明可以调节列宽和行高,我的那个同事却喜欢把4个单元格合并为一个。整个表都是这么整法,一开始我只是关注上面的数据,当我检查完上面的数据以后才发现这么逆天的格式。不知道她为什么会想出这种极端无厘头的东西。她有把Excel,当做是Excel吗?!她不过是把那当作是一个画图的东西,如果按照这种逻辑,她是不是应该在Excel里画一些抽象画呢?说不定梵高之类的什么都比不上她。能做出如此逆天的表格,只能说明一个问题,她完全不懂Excel的思路,几乎可以说是对牛弹琴。这些表格如果打印出来,是看不出问题的,但是,一旦见识过原貌,我简直是五体投地。

对上一次见识这么厉害的表格,是十几年前的那些系统导出数据表。为了控制行距和列距,不知道为什么他们合并了好多单元格,也隐藏了不少单元格,同时也对很多单元格设定了格式。所以从一开始做导出,我就发现,每次格式都好奇怪,尤其是如果导出数据很多,格式必然会崩溃。明明不需要那么多格式,明明不需要那么多颜色,为什么要做合并?为什么要去格式控制?

我的那个同事,如果她平时是极少接触表格的,我不会这么震惊,问题是,她的工作根本离不开数据,但是,她居然这么外行地对待数据。看到以后,我真的很生气。来这个单位已经一年了,即便没有人告诉你应该怎么做,你每天都对着那些东西,难道你就不会自己长进一些吗?另外一个让我非常不理解的是她所在的科室,跟她相处得最多的同事,为什么就没有提醒过她不应该这样呢?会看的看门道,不会看的看热闹,反正,大概其他人觉得数据本身没有问题,格式什么的都是小事。正是因为他们觉得格式是小事,所以那个格式乱套的表格其实数据也有重大的纰漏。因为我是一个很手贱的人,所以可以复制粘贴的地方我绝对不会敲键盘,如果我需要敲键盘,那个数据我需要起码三次以上的复核。在一个合并单元格里,她怎么又可能把数据轻松地复制粘贴过去呢!这些逆天的格式,她是在整死自己,也在整死别人。

之所以我会有这种看法,之所以我会有这种思路,因为我除了是个搞统计的,我也是个搞编程的。我完全明白前台跟后台的区别,我也完全明白明细数据跟汇总数据到底是什么鬼东西,而这些他们不懂,他们没想过要把这些搞懂,因为他们完全没有意识到自己应该在那方面努力,又或者即便意识到了,也觉得既然可以得过且过,无所谓了。聪明这种东西,如果不用在正路上,始终一天会被笨鸟超越。我觉得,我就是其中的一只笨鸟。

但是,也正是因为我知道得太多,所以当我看到别人的所作所为以后,我会实在忍不住吐槽或者发飙。

2020-04
13

制表符

By xrspook @ 19:14:09 归类于: 扮IT

题目本身很简单,对我这种新手难就难在完全靠自己去摸索格式。这本书之前根本没说过要怎么输出制表符,一个制表符不能解决问题的时候要连续用2个,幸好这里两个就够了,如果超过16个字符,还得3个或以上制表符。于是明明很简单的print输出里面除了套个必须有的while以外还得来一对if-else分开整除了和有尾数的情况。为什么出题的人就这么喜欢超纲呢?????

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import math
def mysqrt(a):
    x  = 10
    while True:
        y = (x + a/x) / 2
        if abs(y - x) < 1e-11:
            break
        x = y
    return y
def test_squre_root():
    print('a\tmysqrt(a)\tmath.sqrt(a)\tdiff')
    print('-\t---------\t------------\t----')
    a = 1
    while a < 10:
        if mysqrt(a)%1 == 0:
            print(str(float(a))+'\t'+str(float('%.11f'% mysqrt(a)))+'\t\t'+str(float('%.11f'% math.sqrt(a)))+'\t\t'+str(float('%.11e'% abs(mysqrt(a)-math.sqrt(a)))))
        else:
            print(str(float(a))+'\t'+str(float('%.11f'% mysqrt(a)))+'\t'+str(float('%.11f'% math.sqrt(a)))+'\t'+str(float('%.11e'% abs(mysqrt(a)-math.sqrt(a)))))
        a = a + 1
test_squre_root()
© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress