2020-10
24

已经撸猫撸累了

By xrspook @ 22:48:07 归类于: 烂日记

晚上11点多才睡着,早上7点就开始撸猫,下午还没有午睡的时间。这样的操作,让我到晚上9点多的时候就觉得困。这大概也因为没吃早餐,早上11点多的时候吃了个螺蛳粉,下一餐已经是晚上8点多接近9点的时候。中间的那段时间,没吃东西,也没喝水,就像个骆驼。

我一直觉得,双十一这种东西是很累人的。有时我都搞不清,自己在乎的是那些红包,还是在乎的是面子,觉得自己的等级不能输给身边的人。双11也好,618也好,过去那些年,其实我赢过别人的也不过是一两次而已。如果是单打独斗,还好说,但实际上最终很多东西都必须通过团队解决。我觉得最痛快的那一次要算是今年的618,之前那些即便能满级,运气成分也很大。个人赛和团体赛这两种东西,我觉得是应该彻底分开。当个人赛必须被团体赛的结果左右的时候,一些不必要的付出就来了,比如说买助力什么的。个人赛这种东西,只要你勤快,把任务做完,基本可以确定,可以满级,但绝大多数时候,个人赛受团比赛的结果影响。如果不参加团体赛,又或者团体赛没怎么赢过,几乎可以确定,个人赛是不可能满级的。满级又意味着什么呢?满级,最后那个红包肯定会大一点,但除此以外,那些无数人才抽出几个的大奖,这种好事绝对不会落到我的头上。无论我满级与否,那都与我无关。为了要在双11和618做任务满级,需要花费非常多精力,而实际上,那不过比别人多赚几十块钱而已。赚几十块钱,有很多途径。比如可以在单位加个班,值个班,又或者在内刊里发表一些文章。做这些事,得到的回报是成比例的。相对而言,动动手指,貌似是空手套白狼,实际上效果非常微弱。所以大概这种双11的活动,只会对年轻人有非常强大的吸引力吧,尤其是那些学生。但现在,我们一点都不应该小看学生的消费力。虽然他们还没开始赚钱,但是却很懂得花钱。所以我也有时搞不懂,在双11这些活动里面玩得最顺风顺水、号召力非常强的那些人到底是做什么的。今年淘宝开始双11活动的第1天,那天早上9点多,群里就已经有人升到13级了,而当时,我做完所有任务,仅仅升到9级而已,他是如何做到13级的呢?升到13级,已经是我第2天做完了大部分任务以后才达到的层次了。他为什么可以这么厉害呢?在金币庄园里面我看到,这个网友被淘宝定义为在金币庄园的活动里,击败了他所在地区100%的用户。这个人简直就是神一般的存在,或许她不仅仅是所处的那个地区,甚至在他的那个省份,他的统治力也在99.9%以上。身边的确有这样的人,但是我却无论如何想象不到他是如何做到的。即便我已经竭尽全力,我还是跟他相距非常遥远。我觉得我永远都不能成为第二个他,但即便我成为了他,又怎样呢?他在这方面如此的出类拔萃,在其他方面会如何呢?他在这方面这么优秀机,意味着他在其他方面不可能放那么多时间,毕竟人的精力是有限的。

我很庆幸,今年的双11还有我妈和我一起撸猫。

2020-10
23

我实现这些

By xrspook @ 10:16:14 归类于: 烂日记

渐渐地我越发有点明白自己想要的到底是什么。之所以让我纠结了半天,不知道该如何计算的某些数据,实际上是因为两种性质的东西混搭在一起了。我不知道别人是否真的搞得清,他们是有意糊弄我们的吗?是因为他们知道我们算不清这个,所以这么搞吗?这个问题很困扰我,是因为那个东西把正常的批次跟没有写明批次但要先进先出的混搭在一起。有明确批次的数量计算是不分仓号的,因为通常那意味着好几个仓进同一批货,开始计费的日期定在第1个仓刚开始进货的那天。所以,如果同批次还有其他仓,最后一个仓进货的时候可能已经是3天后,那个仓的免堆期等于要减去三天。如果某个客户所有东西都这么弄,不会有烦恼,因为无论进货还是出货,肯定会带入批次。

在Power Query的世界里,这就意味着要以批次和日期分组。各种仓号数据可以全部加在一起,无所谓。但同时,这个客户又有另外一种情况。如果他进货不是用船,而是用车,每天几千几千吨进货的话,我们跟他们签订的合同是按每天为一个批次。一个批次到达免堆期以后开始计费。现在我们的系统总的来说,根本没分清这种批次,计费完全是人肉计算的。但实际上,这种没有批次的批次,理论上也应该自动带入,入库的时候以日期为批次。所以有可能发生同一个批次有几个仓出库的时候,要以先进先出进行批次划分。进货的时候,一个批次可能有几个仓,但是出货的时候肯定是指定的。所以在这里要以仓好为分类,然后在对入库批次分割数量。比如某一个仓里第1个日期批次用完了再开始用第2个,第2个没用完,就留到以后继续分割。据说用SQL和Power Pivot能解决这个先进先出的问题。但貌似,我看到的Power Pivot的例子没有看到我想要的最终结果,也就是把那个出库数量自动分割成入库批次。先进先出是非常经典的会计问题,只不过我们的人从来都是我觉得我要指定这个,没有用过这些规则,当然也就没有思考该怎么自己动手去计算。一开始没有批次,用先进先出的规则,入库的时候自动添加批次,出库的时候按照入库的批次风格,最终得出来的数据,跟之前一开始就已经有批次的东西可以用同样的规则继续演算。

对我来说,有两个点我没想明白。首先,要怎么在PQ里以先进先出的规则,对出库数量进行批次分割呢?第二,因为实际上我们得到的信息是一个入库日期和出库日期。而这些日期通常都是不连续的,在不连续的日子里也要计算每天库存,到达一定时间之后,要每天计算堆存费。所以,该怎么在不连续的日子里插入一些日期,然后向下填充信息呢?之前我想到的办法是先建立一个日期索引。然后把有数据的东西合并到索引里,这就意味着有些日期可能是没有数据的。接着,把这些东西透视展开,把数据为空的那一列删掉,余下的东西向下填充,然后再把零数据替换为空,接下来再用一个逆透视恢复。这个方法比较笨。但可以一次性实现N个批次的插入和填充,至于速度如何,估计跟电脑的性能有关。我总觉得高手一定不需要用到这种先透视再逆透视的方法。他们是怎么插入日期,然后向下填充数据的呢?

想清楚了这些,离我想要的最终结果就会又近了一些。

2020-10
22

淘宝特价版这个神

By xrspook @ 8:47:28 归类于: 烂日记

当大家都在做同样的事的时候,我经常会有这么个想法:到底我跟大家有什么不一样?我有什么办法能做得比别人好?又或者是我根本没办法,除了勤快,没有别的选择。在那个时候,通常我就会想到,不如我去玩别的吧。618也好,双11也好,其实我都挺害怕的,现在还包括了过年之前那一个月的买买买。

自从有了淘宝特价版这个东西,我才明白到,原来那些东西可以那么便宜。据说上面的东西很多都是厂家直供到消费者,砍掉了中间的差价,所以价格低得离谱,完全是让人怀疑人生的节奏。比如说,几块钱几毛钱,甚至几分钱的东西居然可以包邮那。那些东西在日常生活中,别说包邮,你在大街上根本买不到这么便宜的货,但是为什么他们可以靠这种方式生存呢?这让我很困惑。也正是因为有了那个东西,所以我生活中绝大多数小玩意都不再是念想,不再是618双11的目标。天天都有红包,每几天就有一个大红包。习惯了淘宝拼尽全力做完所有任务才只有几毛钱之后遇到这些红包,让人有非买不可的欲望,所以,每到那个大红包出来的时候,几乎每次我都不得不绞尽脑汁去想自己到底要买些什么。但我也明白到淘宝特价版上面的东西因为价格低得实在太离谱,你不可能在上面买贵重的东西,比如电器之类。你只能买一些零零碎碎的小货品,比如说毛巾,比如说各类塑料制品。吃进肚子里的东西得想一下,当然了,水果除外。这里所说的食品是指经过加工的那些。我已经不记得自己在上面买过多少乱七八糟的小东西。登山扣我在一开始的时候买了好几个,近期买了一些毛巾,我还为我爸买过中性笔。一直以来我都在上面买牙线。到手价两块多就能买200个牙线棒,这简直无法想象。牙线棒这个东西,如果在超市买,200个估计得20块钱,而现在这个两块多钱的东西还是包邮的,质量还很好。买完牙线棒以后,我花了几天去适应,然后,我想买一些牙线试一下,结果现在我已经完全沉醉于牙线棒。淘宝特别版的出现,让我简直想不出自己生活还缺些什么。每天我都会养成个这么的习惯,去淘宝特价版的官方直播遛一圈,看一下他们在卖什么。那些东西里面,我有什么事需要的。大概这就是他们的策略,消费者如果不看,根本不会有购买的欲望,看了不一定买,但是看了又在各种催促之下,就会让人无意之中乱花钱。上面的东西不是所有都很便宜,有赚的也有亏的。

我不知道淘宝为什么要把特价版分离出来,同样的东西。淘宝里搜索不出这么低的价格。这种情况就像我当初不明白为什么要把淘宝和天猫分开。实际上二者都可以买同样的东西,淘宝特价版和淘宝也一样。同样是一家店,非常有可能淘宝能看到的货品种类要比特价版多。好长一段时间在淘宝上买东西前,我都会用微信助手搜索一下有没有优惠,但自从特价版出现了以后,几乎没有这个需要了。

淘宝的出现,几乎可以这么说,开启了我买买买的人生,而淘宝特价款的出现,颠覆了我对便宜的认知。

2020-10
21

批次问题

By xrspook @ 10:57:55 归类于: 烂日记

我以为我完成了任务,但实际上,我并没有做到。

之所以没有碰钉子,是因为我统计的那些数据,刚好那几个月,只有进没有出,也正是因为这样,我才侥幸的逃过一劫,如果仍然以我之前的批次确定方式,出的时候会出现负数。因为出的时候也是一个日期,而那个日期是之前没有过的。真搞不懂这个合同为什么要这么折腾,但或许这不是合同太折腾,而是我没有想到位。现在我想到的其中一个方法,是到了某个免堆期以后,把那些以日期命名的批次一次性转为一个统一的命名批次,比如无。这样那些一天一天积累入库的东西,到达某个时候就会统一混为一体。出的时候也是从这一个大块里一点一点的减出来。所以批次这种东西只出现在入库的某些部分,出的时候这些一点一点积累起来的东西的时候一律是无。

如果那个屌丝东西入了以后,没到免堆期结束就出了呢?理论上。这种东西是完全不应该计算堆存费,但是出的时候,没有带入入的时候的那个批次。所以入的东西一直挂在这里,出的那些则是从大单位里减去。所以理论上,这样算的话,堆存费就会少了。因为那些特例的东西无论是入还是出,都不影响堆存费,因为那些都不计算堆存费,但如果从大单位里减去,堆存费就少了。我非常想知道,那些算不清谁是谁的散货码头单位到底是如何解决这个问题的。如果能分清楚的东西还好说,比如说货柜,算得清什么时候来的,什么时候走的,但散货呢?一个大堆里,最里面的是最开始进的,最上面的是最后整上去的,但实际上出货的时候,你只能从上面到下面。散货码头界定的批次概念到底是每天进多少就一个批次还是说从的第1天开始,就算做一个批次呢?免堆期之内有进有出,这其中的数量,应该如何去计算呢?大概现在我很烦恼的东西是先进先出的问题。这种东西我现在都想不明白该如何用图表示。之所以想不到如何用图去表示。是因为我想不清楚出的是哪个批次。因为那些东西不是一个整数,如果出的数量少于某个入的批次,还好说,但如果跨越了几个批次呢?那几个批次里面,其中某些只是部分,这个东西又应该如何处理呢?之前我就已经稍微了解过先进先出这种东西。批次这东西,之前我也认为应该进行拆分,但这个拆分要怎么判断呢?考虑这个问题,以我现在的水平来说,显然超纲了,但是这是非常实际的问题,不可能避免。从整体来说好像是没有解决方案,但是如果细分到某个堆场估计能说得清。那些东西到底是什么时候进的,货物来源是哪里,出的时候要分开,应该使用什么规则呢?

我觉得我没搞清楚总分的关系,当分组到最细层次的时候一切都好说,但上面的合并要求不同,于是就会分叉出很多不同的东西。

2020-10
20

我要优化提速

By xrspook @ 8:36:19 归类于: 烂日记

当我终于把功能做出来以后,我却嫌弃出结果太慢了,居然要好几分钟。明明最终我想要的是一个表的合并,为了更快,我不得不拆分为两个查询。第2个查询以第1个查询的结果为基础。其实这么操作,无非我是想利用第1个查询已经得到的缓存结果。那个结果已经被我用表格输出。之前我试过从零开始弄第2个查询,结果发现实在太慢了。如果没有那么多的分组,速度还会那么慢吗?如果只是一个求和,根本无需分组,但问题是,每个批次的东西必须分开计算,然后才可以出现分段的结果。说白了,让我纠结的是一个累计求和。

累计求和这种东西的思路在PQ里通常都意味着新增一列,参数设定匹配某行的某些东西,符合条件就把某列的数据求和。所以实际上这是一个筛选的过程。如果数据很多,筛选肯定会很慢,但除了这样,还能有什么方法吗?据说可以用索引的方法。据说索引的方法比筛选的方法快非常多。如果用python的思路去考虑,我觉得筛选是一个列表的操作,而另外一个是字典的操作。如果不用二分法。历遍列表是非常慢的,但如果要立片字典,历遍是轻而易举的事,而且字典的效率比二分法还要高。所以我应该如何建立索引呢?如果筛选的是多条件,索引大法还能继续管用吗?我觉得现在我遇到的问题那些经常接触数据库的人估计已经纠结过了。这不仅仅是Power Query的问题,这是如何运用数据进行弯曲折叠的问题。只要是数据库,无论是SQL还是其他形式,都会有这种烦恼。

昨天我终于经历了一个Excel要跑好几分钟甚至十几分钟才能出结果的东西,我感觉那没多少数据。我曾经试过把那些东西输出,结果发现输出速度非常慢,每秒钟只处理了不到100个。那些数据粗略计算了一下,可能有超过2万条。为什么加载2万条数据会这么慢呢?这是一个令我纠结的结果,如果把最后的分组都做了,输出的数据只有365条,但如果不做最后的分组,有超过2万条。不做分组的话,那个结果可以在软件里直接展示出来,顶多只需要几秒的运算时间,但是不做分组,把数据输出却有超过2万条,即便我不输出表格只输出数据透视表,依然在输出的时候速度非常慢。为什么对2万条数据进行分组会这么慢呢?除了分组,还有其他快速的方式可以对某条件进行求和吗?整个操作之所以这么慢,除了因为分组,还有排序,还有一些,null转化为0,或者把0转化为null的操作,最后,还有一条我自己都觉得应该会很作死的向下填充。那个结果我花了好几分钟才计算出来,如果让高手去解答,估计运行时间会会是毫秒级的,顶多不会超过三秒钟。

一方面,我很想知道如何提升运行速度,直接拿去问人显然是最显而易见的办法,但在这之前,我想自己先思考一下,毕竟走到这一步已经很不容易,我不想在最后一步认输。这让我想起了高中数学老师的某句经典语录,学习数学几个境界里的最后一句——全而不好(前几句是“不懂不会,会而不对,对而不全”)。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress