池子:笑果不值得

 

昨天,池子又在微博向笑果文化扔了一个炸弹:

 

池子在微博控诉笑果文化违约,而且还拖欠了他的演艺报酬,池子抗议之后,笑果就把池子“雪藏”了,停了所有工作不说,还不给解约,就这么一直耗着,池子申请了仲裁想把钱要回来,结果笑果反手也来了一个仲裁,索赔3000多万。

 

池子一下子就蒙了,我这是打工来了,还是当爹来了?

 

池子:笑果不值得

 

更魔幻的是,笑果竟然用银行“大客户”的特权,悄悄从银行搞到了他两年来的账户流水当违约证据。

 

池子又蒙了:有钱人现在路子都这么野吗?

 

池子:笑果不值得

 

万万没想到,明星段子手竟然也走上了漫漫讨薪路。

 

谁能想到,出来打工还能赔钱呢?

 

本以为自己算个厨师,干到最后,让人把自己装盘里给端上了桌。

 

池子:笑果不值得

 

01

 

池子的烦恼和最近吵得沸沸扬扬的阅文事件很像,都始于一个“奴隶合同”。

 

池子进公司的时候一定是签了演艺经纪合同的,而且按照惯例,基本上都有排他条款。

 

池子和笑果背后的矛盾其实很早就开始了,池子刚火起来没多久,明显感觉到公司有意识的淡化他的存在。

 

《吐槽大会》《脱口秀大会》这两档王牌节目上出现的频率越来越低,有时候干脆只是出来露个脸,这时候矛盾其实就已经在积累了。

 

估计公司是想压一压他,于是就不给业务,不安排工作,也不能出去自己找活儿,就是熬你,如果熬不下去,自己敢私底下出去接活儿,公司会各种收集你违约的证据,反手就是一个诉讼,赔到你掉裤子为止。

 

池子:笑果不值得

 

笑果为什么一定要跟池子撕破脸呢?

 

池子已经不仅仅是池子了,他代表一种工具,代表破坏规矩。人能走,但规矩不能坏,不然剩下的那群员工纷纷效仿,还怎么管?

 

杀鸡儆猴,杀一儆百,规矩是需要有人来献祭的。

 

鸡也觉得自己没有必要被杀,但是公司里的一堆猴子等着看呢。

 

毕竟学好不容易,学坏一出溜。

 

池子:笑果不值得

 

02

 

在江湖上混有个规矩,凡事都要给自己留一手。

 

这就好比跟人干架,上来就突突突把子弹打光了,弹尽粮绝,还怎么跟敌人打持久战?

 

池子这次是有备而来,你打你的,我打我的,违约的事情只字不提,节后第一天,池子就直接律师函伺候:

 

池子:笑果不值得

 

 

揪住取证违法和侵犯隐私这个点,反手就是个一键四连。
  • 微博曝光,舆论施压

  • 公安局报案

  • 银保监会等政府监管机关投诉

  • 要求相关方进行赔偿并公开道歉

曝光、报案、投诉,一气呵成。
中信银行吓得不敢含糊,连夜发了一个声明:违规操作,员工处分,支行撤职。
池子:笑果不值得
时间,态度,处理措施,节奏好到不像话。
笑果也不敢轻举妄动,赶紧发了一个声明:公事公办,无可奉告。   池子:笑果不值得
吃不准池子的后面操作,两个猪队友很快就蔫了下来。
 
池子敢直接给笑果和银行发律师函,应该是手里留了证据。但是牵扯到很大的利益,两边又有很多信息还没披露,暂时不要轻信任何一方,既然上了仲裁,就再等等仲裁的结果,让子弹飞一会儿。
 

池子:笑果不值得

 

03

 

私底下跟朋友了解,笑果今年日子相当不好过,因为疫情,线下的演出停摆,直接损失了一大笔进项,而且原计划年初是有两个巡演和一些现场演出的,但是大部分也泡汤了。
 
线下的演出是很重的,得提前预定场馆,酒店,机票也会有不少损耗,估计是逼得没办法了,前段时间还搞了一个脱口秀直播,但也是杯水车薪,效果寥寥。
池子这边的形势也很不乐观,笑果为什么千方百计走后门也要拿到池子的银行流水?
 
是因为爱吗?不是,主要有两个目的:
 
1、确认池子的经济能力,能支付多少违约金;
2、看池子是否“接私活”,是否违反了演艺合同上的排他条款;
 
流水是一个很关键的证据,只要上面两个点被坐实了,池子肯定是要赔偿违约金的,笑果的赢面很大,如果公司下手狠的话,一般会打两个点,一个是税务,一个就是违约。
 
个人跑出去接私活,账目和税务出问题的概率很大,如果笑果咬着不放,池子很可能会在这吃亏,而且开始就把账单流水寄过去,多多少少也有一些威慑的意思。
 
但是笑果下了一步蠢棋,没有走正规的途径,绕过池子,直接用关系从银行拿了流水明细出来,也不知道是不是平时走后门走多了,有正路子也不会走了。
 

池子:笑果不值得

其实正规途径做仲裁保全,根本就不需要什么银行流水,立案的时候把财产线索给仲裁委,提出申请,法院就会去处理取证。
结果笑果越俎代庖,违法取得的证据,竟然还敢寄给池子,简直就是千里送人头。
想一想,如果一家公司,不需要通过任何司法机构,直接可以私底下去查你的账,调取你的银行流水,你的每一笔收入和消费都能看得清清楚楚,你能不害怕吗?
 
这种事情只要放出来舆论就一定会炸的,这已经不是侵不侵权的问题,是公司对员工的一种迫害。
万万没想到,现如今打工也成了一个高风险的买卖,越是高级的打工仔,出了问题赔的就越多。
 
平时当牛做马,月入2万,出点啥问题,连本带息就还回去了,不够的还得记账上。
在资本面前,打工仔终究还是势单力薄的弱势群体。

池子:笑果不值得

 

04

 

 

不得不说,中信这个操作也是够骚的,也算是惯犯了,我查了一下中国银行的行政处罚记录,早在18年的时候中信就犯过同样的错误,当时还领了一个行政处罚:
池子:笑果不值得
池子:笑果不值得
但是人家气势足啊,亡羊补牢,补完接着亡,这些还是摆在明面上的,那些上不了台面的事儿就更多了。
按照我对银行业务的理解,一般情况下,想打印某个人的流水,必须得在柜台,有身份信息+密码的情况下才能操作,但凡事都有例外,有些特殊情况,找个权限高的大哥,不用密码也能打出来。
 
这时候就能显示大客户的好处来了,有“钞能力”就是不一样。
 
结果遇上笑果这么个猪队友,出了问题,沿着审批线回溯,直接把人家支行行长都给撸了下来。
 
我怀疑笑果已经穷到没钱请律师了。
 

池子:笑果不值得

池子也是命好,没碰上真正狠辣的老江湖,都是拿着财产线索,先私底下找渠道拿证据把事情坐实。
这就相当于提前看了对方手里的底牌,申请仲裁的时候,写的模糊一点,不要着急亮出来,等到正式开庭的时候,再申请调查取证。
东西还是一样的东西,在庭上坐实,这样一来,相当于开局就丢一个王炸,对方就完全没有反应时间,更不会在网上寻求支援,妥妥的赢。
笑果手里本是一手好牌,无论怎么打,都能让池子不好过,结果非得把王炸拆开出,我一度怀疑笑果里是不是藏着银监会的卧底。
 
05
池子随李诞一路走来,看起来更像是笑果的二号人物,为什么说退出就退出了?
 
查了一下笑果文化的股权结构,发现:台前的李诞其实根本不是笑果的“真正核心”,池子更不是。
刨除企业间的投资关系,李诞不过是笑果文化里的3号位,而且还是并列的,持股比例是5.04%。
池子:笑果不值得
我们的贺叔叔,也就是贺晓曦才是笑果真正的2号位,明面上持股6.7%,并且持股7.05%的笑乐文化,贺叔叔手里还有50%的股权。
池子:笑果不值得
池子:笑果不值得
笑果文化CEO贺晓曦
王建国在段子里面吐槽,李诞在市中心有了自己的大house,出入都有专车接送,真正有些李总的气派了。
大家喜欢叫李诞为蛋总,这是成立的,不过,这个总,不是老总的总,是“总监”的总。
根据我了解到的信息,叶烽才是笑果文化的董事长,贺晓曦是笑果文化的CEO,而李诞则是这家公司的内容总监。
至于池子,他只是一个签约艺人,一个打工仔,一个内容产品,而且还仅仅是“若干艺人之一”。
中国新式脱口秀宇宙中心的掌门人,他姓叶。
 
池子要是想通这个道理,可能就不会这么跳了,亏池子的父母足够努力。
池子:笑果不值得
06
笑果文化这家公司不仅赚钱,短短4年的时间,就融了6轮。
 
但是那些从开始就在的元老级参与者,比如王思文,史炎,程璐这些人,根本就没有上海笑果文化的股权,他们有的是这家认缴资本才约13.3333万,总共在笑果文化占股才7.05%的笑乐(上海)文化传媒中心。
 
卡姆在节目里天天哭着喊着要50%的股权,别说50%,更别说是卡姆,看看那些元老,你就会自己问自己:
我配钥匙吗?我配吗?我配几把?
 

池子:笑果不值得

公司贺老板一个人占了50%,主要演员基本都在1%左右,张博洋之类的更夸张,只有0.23%。
池子:笑果不值得
如果真要按出资额算的话,张博洋大概得出三千多块的投资额,就这还不是实缴,是认缴。
如此看来,中国的喜剧事业,进程确实相当坎坷。
但是就连这零点几,认缴的三千多块,从头捋下来,我也没看见池子。
说实话,对于池子而言,大饼画成这样,吃吐了也是正常反应。
要不说池子得撤呢,池子眼睛虽然小,但是不瞎。
07

 

池子是一个没有被匮乏感折磨过的人,正如陈丹青所描述的,他长着一张没有被欺负过的脸,有一股子傲劲儿,做事情混不吝,敢舍得一身剐,他身上还是存在着某种纯粹的。
但是年轻人的纯粹,在这个世界上有时真的是一钱不值。
当年,池子在北京的书店里面演出,演出结束之后,一个戴着眼镜,眼睛和他一样小的大高个儿找到了他,那个人就是李诞。
此后,两个人的脱口秀事业也开始起飞,只是航线出现了一些夹角:
李诞选择了跟现实合作,而池子选择一直向前。
某一季吐槽大会杀青,大家吃散伙饭,池子很不喜欢这样应酬的场合,也不喜欢喝酒,他觉得李诞喜欢喝酒是为了自我麻痹,而选择麻痹是幼稚的。
池子不想麻痹,他想一直保持清醒,想到什么就做什么,能直着走就一直向前走。
一直往前,听上去挺勇敢,但是走起来却并不容易,不过,少有人走的路也总要有人来走,鲜有人做的事情也总得有人来做。
我看池子最后在微博上说:
“希望在不久的将来,我还能带给大家纯粹的快乐”
我也这么希望。

转自:https://mp.weixin.qq.com/s/HvhlmprOUg916nFHSOCMzQ

花钱给孩子找补习班成绩就能上来?

    90%的上海家长都有这样的问题,以为花钱给孩子找补习班成绩就能上来?

     抱歉,还真不是这样。上海家长都太鸡血,哪个不是舍得在孩子教育上花大钱?

     但我还是得泼你冷水,别以为给孩子打鸡血,疯狂报班,就能上“4校8大”,清北复交更是竞争惨烈!不了解上海中高考政策,不懂上海招生潜规则,没有专业的老师和方法……坑得只能是你家孩子

上海中高考真有那么难?

     传闻中考有一半的人考不上高中,其实不然,上海的高中录达线率为85%,但只有63%的人可以上高中。因为还有22%的人积分不够只能上三校或者出国前也参加了中考,上海中考题目不难,难的是进顶尖高中。

      这意味着,如果你不能通过自招入学,那只有裸考。你只要在中考,不小心做错了一道不算太难的数学题,或者单词拼写错误……就可能和重点中学无缘,就是这么残酷。

     真正的上海尖子生就是万里挑一。他们不仅学习方法高效,而且掌握解题技巧,更重要的是培养了临场不慌的做题习惯,决不允许自己随意出错。

     所以尖子生最重要的不是成绩,是心态!谦卑的态度加自信的性格。二者缺一不可。

     如果是顶尖中学的自招考试,就更能体会到什么叫题目难,尖子生之间的较量,侧重点在于全面,不仅仅是数学和英语,拼的是所有学科无短板,所有学科零失误。

     那成绩一般的初高中学生,是不是就更加没希望了?只要你学会做到真正的手稳,市重点是不难的。

     有些人大不特补,持续排名靠后,那一定要搞清楚孩子成绩上不去的根源!

      我非常反对一些家长的做法,就是不停给找名师一对一或熬夜刷题。但是他们根本不知道,最影响初高中学生成绩,是因为“缺乏信心,学习方法不对,不懂解题技巧,又不会考试”的问题。

      题海战术,孩子们天天疲惫于应付大量的题海战术。听话的孩子会内化功利性理念,学会过分在乎分数,过分在乎成败,经不起波动,心理脆弱,背负沉重的压力。一旦自我承受不了,就会导致感觉人生很累,生活没有意义,甚至出现强迫、焦虑、抑郁等各种严重心理问题。有的孩子,内心不愿意承受,会走向叛逆与对抗,讨厌学习,享乐生活,得过且过,沉溺于网络,与父母老师冲突。       

这就是可怕得青春期病!

今天在课堂,心里想着情郎(姑娘);

今天在课堂,魂飞到游戏上;

今天在课堂,应付爹妈任务忙;

      如今的孩子很多长期被家长包办,神经脆弱,容易想不开。家长从小鸡血,小时候听话,七年级后就不顺从了。这就是青春期病,病中的补课,无效!花钱,也是家长一厢情愿。

   在上海,有人做过统计,95%的补课无效,这不是危言耸听。

    补课应该是让那些处在学习歧途的学生走向正确的方向和轨道,然后,学生就能够健康地向前发展。

     补课应该是补学习习惯,不是补知识!如果仅仅是头疼医头,脚疼医脚,花费再大的精力,再多的时间也难以保证孩子的学业会得到明显的提升。

     补课,不应该从小开始。如果能从小不经常补课,那关键时候的一两次点拨,会有很意想不到的效果。

转自:https://mp.weixin.qq.com/s/r3LoKbhwXv7S1JAlmZ1tYg

一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?

最近网上都在热炒学区房可能要降温的消息?但事实告诉你,并非如此。
 
五一假期,北京二手房市场迎来了一波“狂欢”,在短短36个小时内,丰汇园便有3套千万级的老破小学区房成交,最高单价甚至超过了25万元/㎡。说到这里不得不佩服虎爸虎妈们的战斗力,疫情憋了这么久,好不容易盼到个小长假,人家不出门,不放纵,出手就是几百万上千万,只为给孩子奔个好学区,不让孩子输在起跑线上。
 
这是什么精神?
 
北京楼市的购房热潮,跟最近疯传的“多校划片”不无关系。5月5日,《北京日报》也佐证了这个消息,称北京地区适龄儿童将从5月6日起开始采集小学入学信息,其中“六年一学位”“多校划片”等相应措施也陆续出台。
 
换句话说,就是以后房子不能指定学校了,多校划片锁学位。看上去好像学区房要全面降温了。难道是虎爸虎妈们误判形势买错了吗?
 
01
最后狂欢,学区房的“末路”
 
学区房,一直是个非常特殊的概念,尤其是北京的学区房。
 
毕竟教育资源就那么多,即使是在高度集中的北京地区,学区房也被划分成“西城、东城和海淀学区”跟“非西城、东城和海淀学区”,其间的差距虽不能以马里亚拉海沟计算,却也是一条难以逾越的鸿沟。
 
其中,西城区的学区房更是个“不败的神话”,纵使是在楼市观望情绪严重的2019年,北京各大城区纷纷降价,只有西城区屹立不倒,以高达12万/㎡的房价傲视群雄。在过去几年间,西城区的学区房一直被视为最保值的房产,普遍均价超过10万元。
 
而在2006年,西城区的学区房价还只有8000-10000元。
 
站长特地给大家找来了2006年北京市的人口情况,数据显示2006年北京地区的新生儿为129397人,本地户籍新生儿为63498人,而当年北京市的小学一年级招生人数为73138人。北京地区小学的“户籍招生限制”在2007年放开,2007年招生人数达到109203人,而2007年的新生儿人口在161000人,其中本地户籍新生儿为77700人。
 
到了2016年,随着二胎政策的放开,当年北京新生儿的数量大增,达到了280000人,其中本地户籍173000人,外地户籍107000人。然而同年的小学招生人数却并没有随着二胎政策的落地进一步放开,2016年的小学招生人数为145876人。
 
一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?
 
折算下来,十年(2017年-2016年)的招生人数,只增加了36673人。换句话说,北京的学位有限,即使孩子出生在北京,也不意味着他就能在北京上学,尤其是新生儿人口大增的2016年、2017年。
 
而按照现在小孩的入学年龄来看,这批孩子上学的年龄,也不远了。
 
所以,这几年北京的学区房愈演愈烈,西城、东城和海淀的学区房总是供不应求,不管房子再破再老,基本也都能找到心甘情愿的接盘侠。很多家长买了“定点小学”的学区房,等到自家孩子念完小学,再转手找个接盘侠,没准还能赚点儿钱。
 
再加上过去北京各城区限定的学位时间也不一致,有些地方是“三年一学位”,有些地方是“五年一学位”,甚至有些不限制时间,所以私下里买卖学位都是小意思了,有些家庭落完户后,可能转手就把房子卖了。
 
所以“锁六年学位”这个大招一出来,很多拥有学区房的家庭都傻眼了,尤其是那种拥有多套学区房的家庭。这几天挂牌“甩卖”优质学区房的真不在少数,不少业主也都选择了降价,北京学区房“降温”也是真的降了。
 
我们可以用其他一线城市的情况来倒推一下,被用掉了学位的学区房,降价的幅度可能不会小,毕竟孩子也不是一天念完小学的。其次,北京这些占据优秀学位的“老破小”那不是一般的老破小,有些楼龄都是60年以上了,三四十年楼龄的房子比比皆是,这也意味着购房者很难在银行里边贷到款。
 
咱们按照“六年一学位”来推算,一套老破小的转手次数将被大大减少,也的确算是变向给学区房降温了。北京学区房上次出现如此局面,还是在2016年,那段时间北京发布了新的落户政策,倘若父母无住房,为单位集体户口,需出具单位同意入户证明。
 
而这一批孩子,只能根据集体户口所在地和学位情况,在全区范围内随机派位入学,就近原则——这可以说是动摇到了学区房的“半壁江山”。2016年,西城区的新生儿占北京新增人口的1/10,而到了2017年,就“锐减”成了1/20。
 
一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?
其间利害,自然是可想而知。
 
而此番北京楼市再次捉刀朝向学区房,无疑会迎来一波更大的“地震”。
 
02
多校划片,教育资源有限
 
真正让西城学区房“伤筋动骨”的,是多校划片。西城区将在7月31日之后跟上北京其他城区的步伐,加入到共享校区的阵容中。
 
所谓多校划片,就是把多个(一般三到四个)小学整合成一个学区,学区房指定的小学也从单个变成多个,入学充满了“随机性”。也正是因为这份随机性,让刚刚过去的五一节变成了西城区学区房的“狂欢节”。
 
不少家长都赶在7月31日的政策落实之前给孩子落户西城,不让孩子落后于人。据媒体报道,在5月4日至5日中午这36个小时內,(西城区)丰汇园小区已经成交了三套千万级的老破小学区房,最高单价超过25万/㎡。
 
而在小长假这几天,宏庙小学的学区房成交量在8套-10套/天。
 
家长的一片拳拳爱子之心,简直令旁观者动容,也让无数房产中介看到了希望,觉得可以重塑2017年的“学区房奇迹”。一位来自通州区的家长花1200万元在丰汇园买了个39㎡的地下室,折算下来30.77万/㎡。
 
“火热”是真火热,毕竟2014年北京市的新生儿数量(2020年入学)达到25万人,略次于放开二胎政策后的2016年、2017年,在20年中排到第3位。就冲新生儿的数量,这几年对学区房的需求就不会少。
 
一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?
 
北京市小学的学位,在短时间内很难大增,孩子想要入学就只能看家长们的本事了。
 
毕竟学区房能够提供的“学区”,也就是一个小学的入学名额,为了这个名额争破脑袋的家长有,但是处于观望状态的家长也有。诸葛找房数据研究中心王小嫱表示,“(多校划分)这个政策,肯定刺激了购房者更加迅速的入市,五六月西城区的学区房交易量或将达到一个小高峰。”
 
而在7月过后,处于观望的家长们可能就要占据上风了,而西城区的学区房在短暂的“狂欢”之后,或将面临降温的风险。
 
说到底,还是看后续的政策走向,才能决定学区房价的走势。但无论从哪个角度来说,学区房的属性都摆在了那里,“多校划片锁学位”——直接降低了学区房的流动性,部分学区房的上涨空间乏力,再受到老破小的拖累,可能会导致教育资源的转移。
 
而像某些受采访家长所说的,“白念个重点小学,六年后再赚个几百万”的情况,以后可能也很难再见到了。毕竟就现在的趋势来看,学区房的限制实在太多,老破小的学区房很难突破重围,再度成为“王者”。
 
这并不意味着学区房的房价就会大降,毕竟在广大家长那里,学区永远是刚需。一般来说,优质的教育资源往往是扎堆的,哪怕划片的校区中有一个“名校”,也会让很多家长去赌那1/3或1/4的概率,从而带动房价。这基本是个无解的话题,对于学区房的追捧是世界范围内的,各国都有学区房的概念。
 
说白了还是教育资源的问题,只要教育资源不能“平衡”,那么学区房的概念就不会消失。
 
而现实证明,教育资源其实是很难得到平衡的,北京市区内都有如此大的差距,更不要说那些教育不发达的地区了。前几天,上海市民办华二初级中学在官方公号上推送了一篇名为《到华二初中读书,你真的想好了吗?》的长文,全文充斥着“没钱就别来华二”“来之前先掂量自己”的论调,自然也是引起了网友的口诛笔伐。很快,华二中学就为自己的不当言论道歉了。
 

一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?

华二初中之所以跳出来,究其原因,是上海市最近出台了《关于2020年本市义务教育阶段学校招生入学工作的实施意见》,里边提到“上海民办需全部摇号”。动到了蛋糕,自然也是引起学校的强烈反响。
 
毕竟上海市的顶级初中,基本都是民办学校的天下,而他们周边的学区房也是水涨船高,不少家长从孩子念幼儿园开始就相看中意的学区了,幼升小,小升初,初升高,讲究的是“传承有序”。
 
砸得了重金,才能教得好孩子。
 
03
结语
 
中国的人口出生数量正在进一步回落,2019年我国全年出生人口为1465万人,人口出生率为10.48‰,创下70年来的最低值。同时,2019年的出生人口中,二胎占比为57%,而2018年的二胎占比为50%,2017年为51%。
 
可以看到,二胎需求正在全面释放,但是并未挽回我国的人口出生情况,新生儿数量持续减少。随着老龄化的进一步加重,我国在2020年以后的出生率可能还会进一步下降,有专家预测2030年新增人口可能低于1100万。
 
一天半成交3套千万老破小,“后浪”们还够得上学区房的门槛吗?
 
然而对于教育资源的需求,却并未随着新生儿的减少而降低。
 
由于种种资源的倾斜,未来人口向中心城市转移已经是板上钉钉的事。而根据国家统计局所发布的数据,在2019年末,我国的城镇化率达到60.60%,户籍城镇化率为44.38%。要是放开北京、上海的落户限制,这两地可能还要再度迎来一波“人口爆炸”,对教育资源的需求只会更甚。
 
然而,无论是北京的学区房狂热,还是上海华二发布的长文,都在向大众宣告,它们还没准备好。
 
压力越来越大,门槛越来越高,“后浪”还能浪得起来么?
– 推荐阅读 –

转自:https://mp.weixin.qq.com/s/JanLbAtwsa021yWoRib9LQ

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

 

文 | 某某白米饭

来源:Python 技术「ID: pythonall」

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

psutil 是一个跨平台库(http://pythonhosted.org/psutil)能够获取到系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。主要用来做系统监控,性能分析,进程管理。支持 Linux、Mac OS、Windows 系统。

本文以 psutil 模块获取系统信息开发一个监控 Mac OS 系统的平台。

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

准备工作

技术选择

  • 监控的系统是 Mac OS 系统
  • 监控系统模块选择 psutil 模块
  • Web 框架选择的是 Flask 框架
  • 前端 UI 选择的是 Bootstrap UI
  • 动态可视化图表选择 Pyecharts 模块

安装 psutil

  •  
pip3 install psutil

安装 Flask、pyecharts、Bootstrap

  • Flask 的教程是在公众号文章:Web 开发 Flask 介绍
  • Pyecharts 的教程在公众号文章:Python 图表利器 pyecharts,按照官网 (http://pyecharts.org/#/zh-cn/web_flask) 文档整合 Flask 框架,并使用定时全量更新图表。
  • Bootstrap 是一个 前端的 Web UI,官网地址是 (https://v4.bootcss.com)

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

获取系统信息

CPU信息

通过 psutil 获取 CPU 信息

>>> import psutil
# 获取当前 CPU 的利用率>>> psutil.cpu_percent()53.8
# 获取当前 CPU 的用户/系统/空闲时间>>> psutil.cpu_times()scputimes(user=197483.49, nice=0.0, system=114213.01, idle=1942295.68)
# 1/5/15 分钟之内的 CPU 负载>>> psutil.getloadavg()(7.865234375, 5.1826171875, 4.37353515625)
# CPU 逻辑个数>>> psutil.cpu_count()4
# CPU 物理个数>>> psutil.cpu_count(logical=False)2

在监控平台上每 2 秒请求 url 获取 CPU 负载,并动态显示图表

cpu_percent_dict = {}def cpu():    # 当前时间    now = time.strftime('%H:%M:%S', time.localtime(time.time()))    #  CPU 负载    cpu_percent = psutil.cpu_percent()    cpu_percent_dict[now] = cpu_percent
# 保持在图表中 10 个数据 if len(cpu_percent_dict.keys()) == 11: cpu_percent_dict.pop(list(cpu_percent_dict.keys())[0])
def cpu_line() -> Line: cpu() # 全量更新 pyecharts 图表 c = ( Line() .add_xaxis(list(cpu_percent_dict.keys())) .add_yaxis('', list(cpu_percent_dict.values()), areastyle_opts=opts.AreaStyleOpts(opacity=0.5)) .set_global_opts(title_opts=opts.TitleOpts(title = now + "CPU负载",pos_left = "center"), yaxis_opts=opts.AxisOpts(min_=0,max_=100,split_number=10,type_="value", name='%')) ) return c
@app.route("/cpu")def get_cpu_chart(): c = cpu_line() return c.dump_options_with_quotes()

示例结果

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

内存

通过 psutil 获取内存和交换区信息

# 系统内存信息 总内存/立刻可用给进程使用的内存/内存负载/已使用内存/空闲内存/当前正在使用或者最近使用的内存/未使用的内存/永久在内存>>> psutil.virtual_memory()svmem(total=8589934592, available=2610610176, percent=69.6, used=4251074560, free=387874816, active=2219110400, inactive=2069094400, wired=2031964160)
# 交换区内存 总内存/使用的内存/空闲的内存/负载/系统从磁盘交换进来的字节数(累计)/系统从磁盘中交换的字节数(累积)>>> psutil.swap_memory()sswap(total=2147483648, used=834404352, free=1313079296, percent=38.9, sin=328911147008, sout=3249750016)

在监控平台上每 2 秒请求 url 获取内存负载,并动态显示图表

def memory():    memory = psutil.virtual_memory()    swap = psutil.swap_memory()    # 在 Mac OS 上 未使用内存 = 总内存 - (空闲内存 + 未使用内存)    return memory.total, memory.total - (memory.free + memory.inactive), memory.free + memory.inactive, swap.total, swap.used, swap.free, memory.percent

def memory_liquid() -> Gauge: mtotal, mused, mfree, stotal, sused, sfree, mpercent = memory() c = ( Gauge() .add("", [("", mpercent)]) .set_global_opts(title_opts=opts.TitleOpts(title="内存负载", pos_left = "center")) ) return mtotal, mused, mfree, stotal, sused, sfree, c
@app.route("/memory")def get_memory_chart(): mtotal, mused, mfree, stotal, sused, sfree, c = memory_liquid() return jsonify({'mtotal': mtotal, 'mused': mused, 'mfree': mfree, 'stotal': stotal, 'sused': sused, 'sfree': sfree, 'liquid': c.dump_options_with_quotes()})

示例结果

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

磁盘

通过 psutil 获取磁盘大小、分区、使用率和磁盘IO

# 磁盘分区情况>>> psutil.disk_partitions()[sdiskpart(device='/dev/disk1s5', mountpoint='/', fstype='apfs', opts='ro,local,rootfs,dovolfs,journaled,multilabel'), sdiskpart(device='/dev/disk1s1', mountpoint='/System/Volumes/Data', fstype='apfs', opts='rw,local,dovolfs,dontbrowse,journaled,multilabel'), sdiskpart(device='/dev/disk1s4', mountpoint='/private/var/vm', fstype='apfs', opts='rw,local,dovolfs,dontbrowse,journaled,multilabel'), sdiskpart(device='/dev/disk1s3', mountpoint='/Volumes/Recovery', fstype='apfs', opts='rw,local,dovolfs,dontbrowse,journaled,multilabel')]
# 磁盘的使用情况 磁盘总大小/已使用大小/空闲大小/负载>>> psutil.disk_usage('/')sdiskusage(total=250790436864, used=10872418304, free=39636717568, percent=21.5)
# 磁盘IO 读取次数/写入次数/读取数据/写入数据/磁盘读取所花费的时间/写入磁盘所花费的时间>>> psutil.disk_io_counters()sdiskio(read_count=26404943, write_count=11097500, read_bytes=609467826688, write_bytes=464322912256, read_time=7030486, write_time=2681553)

在监控平台上每 2 秒请求 url 获取磁盘信息,并动态显示图表

disk_dict = {'disk_time':[], 'write_bytes': [], 'read_bytes': [], 'pre_write_bytes': 0, 'pre_read_bytes': 0, 'len': -1}def disk():    disk_usage = psutil.disk_usage('/')    disk_used = 0    # 磁盘已使用大小 = 每个分区的总和    partitions = psutil.disk_partitions()    for partition in partitions:        partition_disk_usage = psutil.disk_usage(partition[1])        disk_used = partition_disk_usage.used + disk_used
now = time.strftime('%H:%M:%S', time.localtime(time.time())) count = psutil.disk_io_counters() read_bytes = count.read_bytes write_bytes = count.write_bytes # 第一次请求 if disk_dict['len'] == -1: disk_dict['pre_write_bytes'] = write_bytes disk_dict['pre_read_bytes'] = read_bytes disk_dict['len'] = 0 return disk_usage.total, disk_used, disk_usage.free # 当前速率=现在写入/读取的总字节-前一次请求写入/读取的总字节 disk_dict['write_bytes'].append((write_bytes - disk_dict['pre_write_bytes'])/1024) disk_dict['read_bytes'].append((read_bytes - disk_dict['pre_read_bytes'])/ 1024) disk_dict['disk_time'].append(now) disk_dict['len'] = disk_dict['len'] + 1 # 把现在写入/读取的总字节放入前一个请求的变量中 disk_dict['pre_write_bytes'] = write_bytes disk_dict['pre_read_bytes'] = read_bytes # 保持在图表中 50 个数据 if disk_dict['len'] == 51: disk_dict['write_bytes'].pop(0) disk_dict['read_bytes'].pop(0) disk_dict['disk_time'].pop(0) disk_dict['len'] = disk_dict['len'] - 1
return disk_usage.total, disk_used, disk_usage.free

def disk_line() -> Line: total, used, free = disk() c = ( Line(init_opts=opts.InitOpts(width="1680px", height="800px")) .add_xaxis(xaxis_data=disk_dict['disk_time']) .add_yaxis( series_name="写入数据", y_axis=disk_dict['write_bytes'], areastyle_opts=opts.AreaStyleOpts(opacity=0.5), linestyle_opts=opts.LineStyleOpts(), label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name="读取数据", y_axis=disk_dict['read_bytes'], yaxis_index=1, areastyle_opts=opts.AreaStyleOpts(opacity=0.5), linestyle_opts=opts.LineStyleOpts(), label_opts=opts.LabelOpts(is_show=False), ) .extend_axis( yaxis=opts.AxisOpts( name_location="start", type_="value", is_inverse=True, axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), name='KB/2S' ) ) .set_global_opts( title_opts=opts.TitleOpts( title="磁盘IO", pos_left="center", pos_top="top", ), tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), legend_opts=opts.LegendOpts(pos_left="left"), xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False), yaxis_opts=opts.AxisOpts( type_="value", name='KB/2S'), ) .set_series_opts( axisline_opts=opts.AxisLineOpts(), ) )
return total, used, free, c
@app.route("/disk")def get_disk_chart(): total, used, free, c = disk_line() return jsonify({'total': total, 'used': used, 'free': free, 'line': c.dump_options_with_quotes()})

示例结果

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

网卡

通过 psutil 获取网络接口和网络连接的信息

# 获取网络字节数和包的个数 发送的字节数/收到的字节数/发送的包数/收到的包数>>> psutil.net_io_counters()snetio(bytes_sent=9257984, bytes_recv=231398400, packets_sent=93319, packets_recv=189501, errin=0, errout=0, dropin=0, dropout=0)
# 获取当前的网络连接 注意:net_connections() 需要用管理员权限运行 Python 文件>>> psutil.net_connections()[sconn(fd=6, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, laddr=addr(ip='192.168.5.31', port=50541), raddr=addr(ip='17.248.159.145', port=443), status='ESTABLISHED', pid=1897), sconn(fd=12, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, laddr=addr(ip='192.168.5.31', port=50543), raddr=addr(ip='17.250.120.9', port=443), status='ESTABLISHED', pid=1897), sconn(fd=6, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_DGRAM: 2>, laddr=addr(ip='0.0.0.0', port=0), raddr=(), status='NONE', pid=1790),sconn(fd=10, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_DGRAM: 2>, laddr=addr(ip='0.0.0.0', port=0), raddr=(), status='NONE', pid=1790),sconn(fd=11, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_DGRAM: 2>, laddr=addr(ip='0.0.0.0', port=0), raddr=(), status='NONE', pid=1790),...sconn(fd=30, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_DGRAM: 2>, laddr=addr(ip='0.0.0.0', port=137), raddr=(), status='NONE', pid=1),sconn(fd=31, family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_DGRAM: 2>, laddr=addr(ip='0.0.0.0', port=138), raddr=(), status='NONE', pid=1)]
# 获取网络接口信息>>> psutil.net_if_addrs(){'lo0': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 30>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 30>, address='fe80::1%lo0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None)], ..., 'utun1': [snicaddr(family=<AddressFamily.AF_INET6: 30>, address='fe80::b519:e5df:2bd4:857e%utun1', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None)]}
# 获取网络接口的状态>>> psutil.net_if_stats(){'lo0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN: 0>, speed=0, mtu=16384), ...'utun1': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN: 0>, speed=0, mtu=2000)}

在监控平台上每 2 秒请求 url 获取网卡IO,并动态显示图表

net_io_dict = {'net_io_time':[], 'net_io_sent': [], 'net_io_recv': [], 'pre_sent': 0, 'pre_recv': 0, 'len': -1}def net_io():    now = time.strftime('%H:%M:%S', time.localtime(time.time()))    # 获取网络信息    count = psutil.net_io_counters()    g_sent = count.bytes_sent    g_recv = count.bytes_recv
# 第一次请求 if net_io_dict['len'] == -1: net_io_dict['pre_sent'] = g_sent net_io_dict['pre_recv'] = g_recv net_io_dict['len'] = 0 return
# 当前网络发送/接收的字节速率 = 现在网络发送/接收的总字节 - 前一次请求网络发送/接收的总字节 net_io_dict['net_io_sent'].append(g_sent - net_io_dict['pre_sent']) net_io_dict['net_io_recv'].append(g_recv - net_io_dict['pre_recv']) net_io_dict['net_io_time'].append(now) net_io_dict['len'] = net_io_dict['len'] + 1
net_io_dict['pre_sent'] = g_sent net_io_dict['pre_recv'] = g_recv
# 保持在图表中 10 个数据 if net_io_dict['len'] == 11: net_io_dict['net_io_sent'].pop(0) net_io_dict['net_io_recv'].pop(0) net_io_dict['net_io_time'].pop(0) net_io_dict['len'] = net_io_dict['len'] - 1

def net_io_line() -> Line: net_io()
c = ( Line() .add_xaxis(net_io_dict['net_io_time']) .add_yaxis("发送字节数", net_io_dict['net_io_sent'], is_smooth=True) .add_yaxis("接收字节数", net_io_dict['net_io_recv'], is_smooth=True) .set_series_opts( areastyle_opts=opts.AreaStyleOpts(opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title="网卡IO/2秒"), xaxis_opts=opts.AxisOpts( axistick_opts=opts.AxisTickOpts(is_align_with_label=True), is_scale=False, boundary_gap=False, ), )) return c
@app.route("/netio")def get_net_io_chart(): c = net_io_line() return c.dump_options_with_quotes()

示例结果

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

进程

通过 psutil 可以获取所有进程的信息

  •  
# 所有进程的 pid>>> psutil.pids()[0, 1, 134, 135, 138, 139, 140, 141, 144, 145, 147, 152, ..., 30400, 97792]
# 单个进程>>> p = psutil.Process(30400)
# 名称>>> p.name()'pycharm'
# 使用内存负载>>> p.memory_percent()12.838459014892578
# 启动时间>>> p.create_time()1587029962.493182
# 路径>>> p.exe()'/Applications/PyCharm.app/Contents/MacOS/pycharm'
# 状态>>> p.status()'running'
# 用户名>>> p.username()'imeng'
# 内存信息>>> p.memory_info()pmem(rss=1093005312, vms=9914318848, pfaults=7813313, pageins=8448)

列出所有不需要权限的进程

def process():    result = []    process_list = []    pid = psutil.pids()    for k, i in enumerate(pid):        try:            proc = psutil.Process(i)            ctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(proc.create_time()))            process_list.append((str(i), proc.name(), proc.cpu_percent(), proc.memory_percent(), ctime))        except psutil.AccessDenied:            # 需要管理员权限            pass        except psutil.NoSuchProcess:            pass        except SystemError:            pass                # 按负载排序        process_list.sort(key=process_sort, reverse=True)
for i in process_list: result.append({'PID': i[0], 'name': i[1], 'cpu': i[2], 'mem': "%.2f%%"%i[3], 'ctime': i[4]})
return jsonify({'list', result})
def process_sort(elem): return elem[3]
@app.route("/process")def get_process_tab(): c = process() return c
@app.route("/delprocess")def del_process(): pid = request.args.get("pid") os.kill(int(pid), signal.SIGKILL) return jsonify({'status': 'OK'})

示例结果

Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控

process.gif

总结

本文以 Psutil + Flask + Pyecharts + Bootstrap 开发一个简单的系统监控平台,可以算做是本公众号内容的一个学以致用。在 Psutil 还有许多方法文章没有列举感兴趣的小伙伴可以去尝试并使用。

转自:https://mp.weixin.qq.com/s/RLTZrS6YMhV2Y5KyZRhcqQ

走,上快手做教育去

♪ 作者|芥末堆 梅初九

♪ 来源|芥末堆看教育

走,上快手做教育去

一、每一天,都有很多人在快手讲课

2020开年,教育行业的最大黑马,应属快手无疑了。

每天晚上7点到10点,打开快手,会看到各个学科、各个学段的老师,开着直播,讲课,每天一个知识点,一个直播间几十上百个老铁学生。

芥末堆自己也在3月底开了自己的快手账号,每天日更三条教育相关的资讯和新闻。非常有意思的是,在快手,芥末堆的用户占比中,12-26岁的用户比例占到了76.3%,其中,绝大部分观众都在如河北保定、山东淄博类的二三四线城市。

而我自己也参加过一次快手官方举行的教育掌门人活动,直播2个小时,直播数据是:收到黄钻320万,得到8100次点赞,直播观看人数46500人。目前,我的个人号粉丝才3000人出头。

这种情况并不是孤例,在快手上,目前已经是普遍现象。原来做线下体能的小飞教练,在快手说健康,他2020年开的号,现在26000粉丝,快手课堂里上架了5个付费视频课。他说:“我每天除了在快手收入平均800多人民币之外。还有一部分转化到线下高价课的客户。”小飞教练线下收费为2000元一小时。

垂直于教育行业的早期投资机构北塔资本,创始合伙人沈文博从2月1日开始,每天晚上十点在快手开聊天室,主题只有一个:来快手,做教育。不光是北塔资本,北塔所投的上百个初创公司,也纷纷在快手上开了自己的号。据内部消息,北塔资本已经陆陆续续投资了几个在快手运营的早期创业项目,其中一个早期项目已经成功实现在快手月收入千万。

二、进化后的快手,正成为教育的流入地

快手大数据研究院发布的“2019快手内容生态报告”,更新了快手的内容生态发展状况,涵盖平台增长、12个垂类发展、生态升级等最新变化。通过分析快手2019年在内容、用户、生态方面的进化,报告归纳了三个最重要的变化:往高处行,向深处游,自当下始。日活用户持续增长,一二线城市成“新用户池”。

在教育领域的表现则为:教育类短视频累计高达2亿,教育短视频作者已超过99万,覆盖用户1个亿。快手官方显然注意到教育领域在快手上的指数增长,2019年9月启动“教育生态合伙人计划”,11月宣布对“快手光合·教育生态合伙人计划”进行全面升级,在春节前拿出66.6亿流量进行精准扶持,助力快手教育账号冷启动。

这是快手第一次正式向“人人皆用户”的万亿级市场教育行业,伸出的第一根橄榄枝。

2020的疫情“黑天鹅”,更是加速了快手布局教育的决心,上线快手教育生态“停课不停学”专栏,联合32家教育机构为K12学生、职场人士等用户提供免费课程。好未来、跟谁学、爱学习、网易有道、学霸君、猿辅导等40余家教育机构与快手达成合作。课程品类涵盖K12、学前教育以及职业教育,课程数量达2万门以上。业内普遍认为,这是“快手教育”进入教育行业的标志性节点。随后,快手趁热打铁,又给予教育行业50亿流量扶持,并与开封市教体局达成合作,针对开封市初三、高三年级学生推出覆盖全科、全免费的假期在线辅导课程。根据官方披露数据,人均听课时长超过30分钟,观看总人次29.8万。

至此,继腾讯、阿里、华为、字节、网易、百度之后,快手成为互联网又一大户进入教育,这个传承千年但仍旧生机勃勃的长青领域。

同时,数万家教育机构,数百万名线下教育从业者,也纷纷蜂拥至快手。

三、疫情期间没开门,但我快手用户百万了

疫情影响对无数线下店产生了巨大影响,一部分危机感极强的教育公司和创始人,敏锐地抓住快手这个机会。

悠贝早教的创始人林丹告诉芥末堆,疫情期间线下业务全部暂停,“我们发现了快手的下沉渠道,尤其是同城这一块非常强,这种属性比较适合人带人,以地域为单位去覆盖用户,和我们的教育业务天然匹配。”从3月开始,悠贝全力奔赴快手,目前在快手上已拥有500多个账号。

对于线下少儿美术品牌宝贝计画创始人杨帅来说,也是如此。“我们的线下店,特殊时期响应政府号召暂不开业,加上短视频红利期,所以选择了快手。”目前宝贝计画的主账号“杨帅教画画-宝贝计画”粉丝数量已达86.7万。在变现上,宝贝计画转化到小班直播课学员,已实现月均30万左右,并且还在增长中。在投入上,宝贝计画也就2个人在做,一个画画老师,一个视频剪辑,纯粹靠内容吸引,没有涨分成本,目前日新增一万以上。“我自己现在每天晚上八点还在快手直播讲艺术大师课。我一直有一个心愿,讲艺术普世普惠更给多人。”杨帅笑着说:“马上没几天我也是百万大号了,没想到在快手这么快就现实照进理想了!”

他们的经历和思考,对于快手的原生教育号“老黄说英语”的老黄来说,在快手做教育更是天经地义的一件事。“我从2016年就开始做快手了。到现在300多万粉丝,我没有团队就我一个人,平均月收入在60万左右吧。”

在“新东方洪哥”还未在快手开直播之前,另外一个教烹饪的新东方教育,已在快手耕耘多年成大户:做视频,开直播,招生获客,品牌宣传。

粉丝数量仅仅是第一步,新入驻的教育公司或是老师们还要同步解决变现问题。林丹告诉芥末堆,目前测试下来,快手上有三个比较合适的变现方式,卖书、卖付费课程,以及接入供应链之后的带货分销。“五月时我们预期是百万量级的收入。”

林丹等并非是在快手第一波吃螃蟹的人,但的确是享受到第一波快手教育红利的人。在最近一次悠贝在快手上的比赛活动中,累计14天,悠贝快手矩阵带动老铁们共同参与,#牛娃养成记#标签中上传作品5573个,累计播放量8312万次。悠贝矩阵整体涨粉4万多,平均每个账号精准涨粉在120上下。涨粉成本略等于无。

四、用户有需求,供给端还是蓝海

林丹告诉芥末堆,“我们很清晰,上快手并不是为了品牌宣传,而是直接作为一个新的生态业务布局来投入。教育在快手这个板块上肯定会越来越好,因为用户上来之后,他的各种需求肯定都有,走过第一轮野蛮生长之后,后面的用户需求也会分门别类和找到更好的产品满足。比起担心快手教育的市场,我们现在更为专注于内部中台能力的构建,以期届时能承接住快手用户的需求满足。”

这就好像沈文博在“场长教育主播圈”聊天室时,总会接到很多从业者咨询时的隐忧:“快手适合做教育吗?”

沈文博的经典回答是:“3亿dau,要啥没有?干就完了。”沈文博认为,“快手+教育为代表的短视频+直播教育是2020年教育领域创业一个最大的机会。”北塔资本已经在重仓快手上的教育创业项目,同时,北塔资本还联合快手官方一起帮助教育创业者发掘在快手上的机会。

本质上,快手目前存在两类用户:一是有进阶优秀产品需求的老铁,二是新涌入的一二线用户。两类用户的共性都是需求有,而目前快手上教育的优质供给不足。

坊间有一种戏谑总结:刷抖音,玩快手。

“玩”和“一起玩”构建出快手的社区社交属性,本质上也天然契合于教育里人和人构建信任的属性。2011年创办的快手,已经形成了自己独特的社区文化——老铁文化。主播和用户之间,长期通过直播互动建立起深厚信任关系,所以,快手用户,当他们喜欢一个主播的时候,他们会在自己的名字后面加上一个后缀:某家军,这就是铁忠粉。对于教育领域而言,这便是极大的优势,教育的核心之一是信任,客户选我,认真交付,继续选我,用户生命周期就可以很长。

教育培训行业两家大公司,新东方、好未来,无一不是这样耕耘出来的。

五、认真做课,普通人也有机会和可能

正因为此,在快手上做教育,就并不是简单粗暴的投放逻辑。

2014年的时候,百度来自教育的投放收入就是新东方好未来净利之和还多一些。他俩加起来30个亿不到,百度教育的广告费,30多个亿。

算起来,这都是血淋林的吃骨者,教育领域高居不下的获客之痛,基本上盘剥走了整个行业收入的40%,甚至更多。

但是目前,在快手,这笔费用投入是不存在的。所需要做的事情非常简单:认真做号,认真拍视频,认真开直播。给到用户物超所值的在线付费课程和服务。

一位不愿透露名字的独角兽创业公司创始人告诉芥末堆,“我们内部算过一笔账,把过往的市场投放费用预算,转到快手m

1.观念转变挑战,即为开篇提到的,教育领域目前大部分感知都是快手土味、娱乐化、不适合教育等等。在撰写本文之前,我在自己的朋友圈做了个小调查:票圈调查,留言你对快手教育的观点。得到的回复是:没印象类+2;不清楚类+5;快手不是只有老铁吗类+7;杂而不精类+4;少数头部玩家和手艺人的机会类+1;势不可挡类+1。

我个人微信超过5000好友,99%是来自教育各个领域的从业者。这虽然不是严谨意义上的批量市场调查,但我认为它有一定的典型代表:如何看待快手。

2.组织迭代挑战。对于中心化运作的教育机构而言,快手做号的组织形态在根本上发生了变化,更像是类mcn机构且去中心化。老师与机构的关系很大可能不再是纯粹的雇员拿课时费的关系,老师在视频和直播的同时,也完成了原本销售和市场的招生获客工作,包括售后服务和长期客群维护,也都发生了本质变化。如何以新的更适合快手生态逻辑的组织方式来调整和发展业务,也是一大挑战。

当然还有一个原因,对于近几年惯于烧钱迅速获取市场的在线教育而言,在快手上做教育,未必显得太慢了。对于已经初步被工业化作业的部分教育公司而言:批量大额投放广告,巨量callcenter团队转化,老师在线服务,班主任和辅导老师跟单客户续费。这样的流水线作业和迅速起量,更为性感也更受资本青睐。快手不然,快手需要耕耘。教育的慢与教育市场的快。我想这应该是教育行业留给官方待思考和解决的核心问题,尤其对于想成为教育新基建的快手而言。

这是快手自己的挑战。并且,快手同样也需要思考自己的边界:是选择成为教育的新基建之一,生态维护者,还是像隔壁家一样,相信大力出神迹,有用户、数据、团队、充足资金,教育的什么品类看着不错有前(钱)景,自己也下海做做?

但无论怎样,正如一位在快手上做了很多年的素人老师所说,“快手挺适合做教育的。一个认认真真的教育主播,哪怕成不了百万千万大号,但是有个10万20万粉丝,每个月就算只通过打赏和卖课,也能月入1-2万。快手,是每个普通人的机会和可能。”

走,上快手做教育去

本文作者:梅初九 

芥末堆 跑堂小二兼首席外卖官

产品讨论狂人,商业模式爱好者。

转自:https://mp.weixin.qq.com/s/5CUsNOT44LCMU7AC-GT4cw