人生的感悟

前些天发生了两件事,让我感慨良久,引发我对人生的思考。记录下这两件事,希望对我,对我身边的人有一个启发。

第一件事:当我和另一个同事结束了培训的项目之后,领导在微信群里发了一个红包,我首先看到,点了开红包,一看,霍,39.82。心想这么大的红包,有转念一想领导肯定发了一个大红包,剩下的估计是我的好几倍。就想着这件事,一直到很晚,另一个同事才看到,抢完之后一看0.18.我这才知道原来我几乎抢到了所有的红包金额。

感悟:孔子说人之初心本善,荀子认为人心本恶。这两个对错我不知道,我只是感觉,人性是贪婪的。我抢到了很大的红包,却还认为剩下的更多,这就是人性的贪婪。

另一件事:笔记本屏幕坏了拿到店里修,师傅一看说是屏幕坏了需要网购一个新的,然后找一个修电脑的换屏幕20块钱。我新想好歹也是理科生天天都和电脑接触,换一个屏幕就不需要找专业人士了吧。
买回电脑之后直接动手换,当插上屏幕电源之后听见一声清晰的电流,然后屏幕不亮了。再怎么折腾都不亮了,无奈只能再拿去店里维修。师傅说你这是换屏幕时没有断电,电池没有卸下来,主板击穿了。后面修主板又花200。

感悟:专业的人做专业的事情,换屏幕20块人家是赚的经验,就值这个钱。自己不专业的动手,反而花的更多。

昌盛:
别人说的简单是他已经重复了无数次之后熟能生巧

本文转载于网络 如有侵权请联系删除

相关文章

  • 京东一面:分布式 ID 生成方案怎么选?写得太好了!

    背景在分布式系统中,经常需要用到全局唯一ID发生器,标识需要存储的数据。我们需要什么样的ID生成器?ID生成器除了是数据的唯一标识以外,一般需要在系统中承担更多的责任,概括起来有以下几点。唯一性:“全局唯一”vs“业务唯一”?分布式系统使用唯一的ID生成器,会有非常严重的申请互斥问题。互斥加锁意味着成本和性能的下降,不容易去实现一个高性能高可靠的架构。在业务系统中,往往也不需要全局唯一的ID。比如在通讯系统里,聊天消息不需要全局唯一,标识一条用户发出的消息的ID,只要保证用户唯一性即可。因为消息本身归属于某一用户,因此用户唯一已经隐含了“全局唯一ID(=用户ID+消息ID)”。时间相关:“秒级”vs“毫秒”?时间是天然唯一的,因此也是很多设计的选择。但对于一个8Byte的ID而言,时间并没有那么多。你如果精确到秒级别,三十年都要使用30bit,到毫秒级则要再增加10bit,你也只剩下20bit可以做其他事情了。每秒一个或者每毫秒一个ID明显是不够的,刚才说到还有20bit可以做其他事情,就包括一个SequenceID。那时间用秒还是毫秒呢?其实不用毫秒的时候就可以把空出来的10bit送

  • LeetCode 1797. 设计一个验证系统(map)

    文章目录1.题目2.解题1.题目你需要设计一个包含验证码的验证系统。 每一次验证中,用户会收到一个新的验证码,这个验证码在currentTime时刻之后timeToLive秒过期。 如果验证码被更新了,那么它会在currentTime(可能与之前的currentTime不同)时刻延长timeToLive秒。请你实现AuthenticationManager类:AuthenticationManager(inttimeToLive)构造AuthenticationManager并设置timeToLive参数。generate(stringtokenId,intcurrentTime)给定tokenId,在当前时间currentTime生成一个新的验证码。renew(stringtokenId,intcurrentTime)将给定tokenId且未过期的验证码在currentTime时刻更新。如果给定tokenId对应的验证码不存在或已过期,请你忽略该操作,不会有任何更新操作发生。countUnexpiredTokens(intcurrentTime)请返回在给定currentTime时刻

  • [Rust] 命名习惯

    [Rust]命名习惯通用习惯CamelCase:首位是大写字母的单词,没有分隔符; snake_case:使用下划线作为分隔符,小写单词; SCREAMING_SNAKE_CASE:使用下划线作为分隔符,大写单词; 缩写被认为是一个单词:在CamelCase中,使用Uuid而不是UUID; 在snake_case和SCREAMING_SNAKE_CASE中一个字母(除非是最后的单词)永远不会被当成一个单词, 所以使用btree_map而不是b_tree_map; 但是使用PI_2而不是PI2(这点儿要注意)。元素习惯Cratessnake_case(butprefersingleword)Modulessnake_caseTypesCamelCaseTraitsCamelCaseEnumvariantsCamelCaseFunctionssnake_caseMethodssnake_caseGeneralconstructorsneworwith_more_detailsConversionconstructorsfrom_some_other_typeLocalvariablessn

  • MyBatis与设计模式的激情碰撞

    我曾跨入山巅,也曾步入低谷,二者都使我受益良多!I'vebeentothetop,andI'vefallentothebottom,andI'velearnedalotfromboth!最近一直在研究MyBatis的源码,MyBatis作为国内最为经常使用的持久层框架,其内部代码的设计也是极其优秀的!我们学习源码的目的是什么呢?一方面是对该框架有一个很深入的认识,以便在开发过程中有能力对框架进行深度的定制化开发或者在解决BUG的时候更加得心应手!一方面是学习代码里面优秀的设计,看看这些成名多年的框架,他们的开发者是如何设计出一个高扩展性、低耦合性的代码呢?然后在自己的开发场景中应用。今天我们就来讨论一下,在MyBatis内部,为了提高代码的可读性究竟做了哪些设计呢?当然,如果你对MyBatis的代码特别熟悉,作者在文中有错误的地方欢迎指出来,因为作者还没有完整的通读MyBatis的源码,大概看了70%左右,后续看完之后,作者会考虑出一期关于MyBatis源码的解读,一方面是加强作者对于MyBatis源码的理解,一方面是让大家更好的学习MyBatis,话不多

  • 别人家的年会 :)

    hi,各位周五晚上好。你们公司年会开了吗?听说别人家(微信)今天开年会了。送上最简短总结:每人大红包2888(80%,因为还有另外3种金额) 阳光普照顶配iPhoneXSMAX(其实每年都是) 小龙当众说今年年终远超往年,要吓傻大家一起来感受一下别人家的年会到此为止,我是羡慕嫉妒恨的分割线方案优化:由于图像传输的网络延时,造成用户看到的画面显示与实际动作不同步,体验较差。故方案优化为用另一台显示器实时显示摄像头画面,电视显示识别结果。考虑到美观性以及分屏显示可能会给用户带来理解上的困惑,经过多方衡量,最终方案是把电脑显示器去掉。Demo展示效果如下,视频已压缩至4.1M,请放心观看:-)场内端为LED大屏幕构造飞船内部场景,采用第一视角透过大舷窗望向外太空来构造空间的真实感。签到成功点亮头像,通过微动效使得每一个宇航员都是浮动的,隐喻失重状态。签到完成后BOSS宣布晚会开始,画面逐渐转换为上帝视角,飞船发射驶向遥远的外太空,寓意IBG出海探索海外业务。会场内页面会持续整个晚会,其中涉及到抽奖等多个转场逻辑,都需要做到自然转场。为了给开发同学更好的传达页面间的转场关系,特制作了页

  • PowerBI 轻松测试电脑性能 帮您选电脑

    小伙伴问罗叔这两天去哪里了,怎么文章少了。罗叔不是在写文章,就是在憋大招,憋得难受,先上一个简单的哈。概述圣诞节要到了,很多人问如何选择一台可以快速运行PowerBI的笔记本?有人说要打游戏,还有人是为了学习,还有人是看了罗叔的口号,一个人一天时间一台电脑一套方法玩转一个亿的数据,但他说他电脑老是卡,努力了2019了想考虑升级一个配置。那今天我们就来扯一扯,如何用PowerBI来帮助你选择一台玩转PowerBI的性能跑车。如果你没有米买更好的装备,请用你的米来投资自己,在明年给自己升级装备。装备配置罗叔给点建议:1、预算驱动,不要超过自己的预算2、CPU越快越好,建议i7或以上3、内存8到32G均可4、硬盘是固态硬盘,大小不限5、显卡不要求注意:请不要乱花钱,入门时需要的不是配置,是思路和方法;在入门后需要大量实践的时候,会真正建立企业的模型;在基本驾驭了PowerBI这头野兽以后,确实可能会加载上千万乃至上亿的数据,你已经具备了升级配置的条件;不差钱的随意。如何检测假设您即使是一个小白,方法如下:1、下载PowerBIDesktop,官方网站2、下载DAXStudio,www.dax

  • 线上一次大量 CLOSE_WAIT 复盘

    最近,我在压测线上的一个长连接服务时,发现服务端出现大量的CLOSE_WAIT状态长时间不会释放,并且伴随着goroutine暴增,这里做个复盘,介绍下排查思路。说起CLOSE_WAIT,就不得不再复习一遍TCP的状态变迁:出现CLOSE_WAIT本质上是因为服务端收到客户端的FIN后,仅仅回复了ACK(由系统的TCP协议栈自动发出),并没有发4次断开的第二轮FIN(由应用主动调用Close()或Shutdown()发出)。 而且观察到服务端的CLOSE_WAIT状态RECV缓冲区基本都有数据:说明服务端还没有调用recv读取,并且在客户端关闭连接后,CLOSE_WAIT依然不会消失,只能说明服务端HANG在了某处,没有调用close。 接下里就需要打印出服务的调用栈信息,看下服务端究竟在干什么:goroutineprofile:total1380684 816132@0x430ecf0x40766a0x4076400x40732b0x7f1bfc0x7f0ed70x8018420x9349a80x45e091 #0x7f1bfbgithub.com/gomodule/redigo/r

  • 干货 | 携程实时智能异常检测平台的算法及工程实现

    作者简介陈剑明,携程网站运营中心数据分析高级经理,负责网站容量规划、ATP基线预测及RCA损失计算、成本分摊、运维数据仓库建设,利用机器学习和深度学习相结合,进行运维方向的数据分析与预测。本文来自陈剑明在“2018携程技术峰会”上的分享。在运维领域,异常检测是很重要的基础,决定了告警的数量和质量,也影响了发现异常之后所需要采取的行动的可靠性。 然而实际生产环境下异常的判断往往带有主观性,准确率、召回率等指标缺乏客观依据,标注成本又高,导致误报和漏报始终都是一对矛盾的存在。 本文主要介绍我们在这些已知问题基础上,进一步优化“异常检测”算法的探索和成果,并介绍了如何解决告警实时性的工程技术方案。 一、引言日常工作中我们经常会接收到频繁的异常告警,处理起来眼花缭乱,容易遗漏问题点。如何降低误报率,让有限的注意力集中在真正需要关注的异常上? 在机器学习领域异常检测是个很大的主题,传统的统计学方法就有很多,深度学习领域也有不同的算法模型来检测异常,很多论文都对此做过研究和探索,然而直接借鉴并不能让我们获得理想的效果,需要一种方法可以帮助我们: 降低报警总量到可以人工逐个处理的程度不能以增加漏报真

  • OpenCV实现0到9数字识别OCR

    使用OpenCV对0到9数字进行识别,实现简单OCR功能,基于CA(轮廓)分析实现特征提取,基于L1距离计算匹配实现数字识别。在排除干扰的基础上,识别精度可以达到98%以上。整个算法分为两个部分,第一部分是特征提取,提取的特征实现了尺度不变性与轻微光照与变形干扰排除,第二部分基于特征数据进行匹配实现了相似性比较,最终识别0到9十个数字。第一部分详解:算法的第一部分主要是实现以下功能,提取42个特征向量,用其中40个向量做匹配识别,另外两个向量做辅助检查。比如0跟1的横纵比有明显差别。特征提取的主要步骤如下:1.图像去噪声与二值化2.轮廓发现与ROI区域分割3.水平与垂直投影,提取20个向量,并归一化4.网格分割5x4,提取20个向量,并归一化5.宽高比与空白比,总计42个向量提取完成预处理通过高斯模糊去噪声,然后通过全局阈值实现图像二值化,使用轮廓发现提取ROI矩形区域,对每个区域完成3~5步,实现特征提取,其中水平与垂直投影演示如下:对ROI区域的水平与垂直投影分别分成10个BIN,考虑到浮点数划分,每个BIN长度不一定是整数,这样就通过权重进行按比例分割像素点。完成每个BIN的前景

  • 国产AI绘画海克斯科技——爱作画AIGC开放平台

    继AI写作之后,AI绘画技术在今年彻底火了。去年年底,CLIP模型和Diffusion模型的完美结合,很好地跨过了AI绘画的技术门槛,让AI绘画效果实现质的飞跃,直接达到可商业落地的效果,这一重大技术突破也让AI绘图火出了圈。国外,谷歌、微软、Meta等科技公司纷纷下场,DiscoDiffusion、DALL-E2、StableDiffusion、Midjourney等AI绘画平台已经陆续打开AI绘画市场。国内,越来越多的相关产品也如雨后春笋般不断冒出。10月底,一家叫爱作画的国内AIGC开放平台测试版悄悄上线,靠着对“专业性”的坚持和“更丰富的AI玩法”在一众强劲的对手中杀出重围。更专业的AI创作开放平台,为用户提供更多功能让普通人都能快速上手,为专业人士最大化的提供AI技术辅助是爱作画平台始终坚持的理念。从页面的简洁清爽、产品交互设计的简单明了无一不体现了这点。爱作画的操作非常简单,只要输入你想要的画面关键词,然后等待几秒钟就可以生成不同风格、独一无二的创意画作。除了输入关键词外,用户还可以选择喜欢的风格、艺术家、图片尺寸、图片数量等参数来指定作品的风格、数量等等,每一个参数的改变

  • Dubbo-聊聊通信模块设计

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理DubboSPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计 通信模块介绍 Dubbo通信模块主要的目的就是解决客户端以服务端通信的问题,核心代码都在dubbo-remoting模块,该模块提供了多种客户端和服务端通信的功能。Dubbo的通信主要包括是三部分:Exchange、Transport和Serialize,对于序列化部分的设计在单独的模块中,我们再单独聊,这篇文章主要聊Exchange、Transport设计。 对于Dubbo来说没有自己的网络框架,使用现有第三方类库,因此需要设计一套标准API来兼容多种不同的通信框架,dubbo-remoting模块的结构就是目前Dubbo兼容的所有的通信框架。 在整体模块设计上,dubbo-remoting-api是其他模块上层抽象,其他子模块都是依赖第三方NIO库实现dubbo-remoting-api模块的。因此我们想要了解清楚dubbo-remot

  • 一个WPF开发的打印对话框-PrintDialogX

    今天五月一号,大家玩的开心哦。 1.介绍 今天介绍一个WPF开发的打印对话框开源项目-PrintDialogX,该开源项目由《WPF开源项目:AIStudio.Wpf.AClient》作者推荐。 欢迎使用PrintDialogX,这是一个开源项目。免费用于商业用途。 用于C#的自定义打印对话框,可实时预览。您可以选择打印机并设置份数、方向、颜色、质量、比例、每页张数、双面、纸张尺寸、纸张类型、纸张来源等。它也很优雅。 2.你为什么使用 这是功能强大且美观的自定义打印对话框。在最新版本里它几乎可以提供任何打印设置。它几乎可以做Windows默认打印对话框可以做的任何事情。但它们之间的不同之处在于这个自定义打印对话框具有实时预览功能。您可以在调整设置时预览打印结果。因此,您可以使用它来代替Windows默认的打印对话框,这甚至比它更好。 3.截屏 4.如何使用 PrintDialogX很容易使用,您可以在代码文件夹中找到一个示例,下面截图只是站长替换了示例中的文字为中文,不影响您参考。 5.协议 项目基于MIT协议. 参考:MIT许可证 MIT许可证之名源自麻省理工学院(

  • 2PC/3PC到底是啥

    讨论 提到2PC/3PC首先想到的是它是一致性协议,而且经常把它和Paxos协议放在一起比较,并且经常看到这样的说法"世上只有一种一致性算法,那就是Paxos",2PC/3PC并不是严格意义上的一致性协议,很少被用在处理一致性上;但另一方面又经常看到2PC/3PC和分布式事务放在一起讨论,并且大部分的关系型数据库通过两阶段提交(2PhaseCommit2PC)算法来完成分布式事务。 先大致了解一下分布式事务和一致性 分布式事务 分布式事务:是指会涉及到操作多个数据库的事务。其实就是将对同一库事务的概念扩大到了对多个库的事务。目的是为了保证分布式系统中的数据一致性。分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。 两类一致性 说到一致性大家更多的应该想到的是CAP里面的A表示的一致性(一个数据分片的多个副本之间的数据一致性)就是数据一致性;但我觉得还可以有另外一种理解就是ACID中的A(一个事务在执行之前和执行之后,数据库都必须处于一致性状态)就是状态一致性或者叫操作原子性。 其实这里说的状态一致性或

  • CodeBlocks wrong

      codeblocks官网   Q1.中文乱码 系统是win,用的是codeblocks编辑器,指定的原文件编码是UTF-8 编译后运行,发现中文在控制台里显示全是乱码 A1: 对此有解决办法,通过给g++编译器加两个参数即可 -fexec-charset=GBK-finput-charset=UTF-8 第一个参数意思是字符串所使用的编码,也就是中文在控制台中以gbk显示,这样就不会乱码了。第二个参数,可能不需要加,加了第一个参数后还有乱码可以试试这个,意思是指定源文件的文件编码。 这两个参数在codeblocks菜单栏-设置-编译设置选择GNUGCCCOMPILER在下面有一个“其他选项”卡,在里面讲两条指令复制进     Q2: "Anexceptionhasbeenraised!Theapplicationencounteredanerrorat C:\Codeblocks\src\sdk\configmanager.cpp,online239.Theerrormessageis:TinyXMLerror:Erro

  • postgres 基础备份-->pg_start_ backup与pg_stop_ backup (一)

    一,备份须知   备份前要保证开启了归档   关于pg_start_backup(摘:https://blog.csdn.net/pg_hgdb/article/details/78505641)   pg_start_backup()和pg_stop_backup()是postgreSQL提供的一种备份方式,由于无法并行备份,现在已经逐渐被pg_basebackup工具(postgresql9.1之后)所替代。今天主要说一下,这两个命令做了什么工作。 pg_start_backup() 1、强制发生一次checkpoint点。将未写到磁盘上的脏数据全部刷到磁盘上去。这样从这之后产生的日志就是记录整个数据块。可以“确保”恢复的正确性。 2、置写日志标志为:XLogCtl->Insert.forcePageWrites=true,这样wal日志将会记录整个数据块。避免了在进行备份时候(读操作——旧数据)持续向数据库写入数据(写操作——新数据)造成的前后数据不一致。 细心的读者会发现我将“确保”恢复的正确性带上了引号,这是为什么呢? 想要知道为什么不能真正确保数据恢复正确

  • 将字符串中重复的字符删去

    方法:1、遍历字符串,将重复的字符变为0;    2、根据字符是否为0,刷新字符串 #include<iostream> usingnamespacestd; //让每个字符最多出现一次,删除重复的字符串 voiddelete_repeted_char(char*p_src) { intlength=strlen(p_src); inti,j,n; //把所有重复的字符全变为0 for(i=0;i<length;i++) { if(!p_src[i]) continue; for(j=i+1;j<length;j++) { if(p_src[i]==p_src[j]) p_src[j]=0; } } //根据字符是否为0刷新字符串 for(n=i=0;i<length;i++) { if(p_src[i]!=0) p_src[n++]=p_src[i]; } p_src[n]='\0'; } intmain() { charsrc[50]; cout<<"输入字符串"; cin>>src; delete_repeted_ch

  • LG7882 [Ynoi2006] rsrams【阈值法,分块,莫队】

    给定长为\(n\)的序列\(a_1,\cdots,a_n\),\(m\)次询问区间\([L,R]\),求其所有子区间的绝对众数之和。 \(n,m\le10^6\),\(1\lea_i\len\),时限\(8.0\text{s}\)。 若固定绝对众数是\(x\),要求多少个子区间的\(2[a_i=x]-1\)之和\(>0\),取前缀和之后问题就是区间顺序对计数。 优化当然考虑对出现次数\(c\)根号分治。对于总和\(>0\)的区间\([l,r]\),在前缀和\(=0\)的位置分段,每段都满足第一个元素是\(1\)且所有前缀和\(\ge0\),或者左右翻转的情况。所以我们枚举每个\(1\)的位置\(p\),向前后分别扩展出后缀和/前缀和均\(\ge0\)的极长区间\((l,p]\)和\([p,r)\),将区间\([l,r]\)合并到同一个连通块,此时顺序对只会在一个连通区间内出现,且这样的区间的总长是\(\mathcalO(c)\)的。 对于长度\(>\sqrtm\)的区间,只有\(\mathcalO(n/\sqrtm)\)个,分别计算贡献到询问,就是在这个区间内做\(

  • 使用Go开发一个简单的服务器程序

    最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都觉得JS是反人类的。后台就用了go处理,数据存储使用的mongodb。怎么说来着,从生成数据的角度来讲,这东西把C#+SQLCE甩出好几条街。生成go+mongodb大约,10秒左右,而后者只是大约需要5分钟。当然,这个完全是写法问题。因为是写一条,就保存一下,如果C#那边一次保存的话性能也不会很差。但考虑的部署问题,因为GO只要2个exe和一个mongodb就可以搞定,而C#需要IIS。比较烦 1packagemain 2 3import( 4"encoding/json" 5"fmt" 6"log" 7"labix.org/v2/mgo" 8"labix.org/v2/mgo/bson" 9"net/http" 10"strconv" 11) 12 13typeRoomstruct{ 14Idbson.ObjectId`bson:"_id"` 15Namestring`bson:"name"` 16Typestring`b

  • 测试linux是否能访问外网

    方法1 curl-lhttp://www.baidu.com 方法2 wgethttp://www.baidu.com

  • PO批处理号

    Classes>InventUpd_Estimated>updateAutoDimBatchId

  • UBUNTU环境编译内核

    1.编译的环境配置和库需要 编译需要最起码的GCC、make、和root权限,库依赖需要ncurses,安装ncurses命令如下:sudo apt-getinstallbuild-essentialkernel-package  libncurses5-dev2.为了证明内核更改,需要自己先查看内核版本:uname-r3.从www.kernel.org下载最新最新内核。4.将下载好的内核解压后进入zhanghaijun@zhanghaijun-Inspiron-1420:~$cdlinux-3.9.2/5.使用makemrproper来清理旧的配置。6.使用makemenuconfig进行内核定制,文件系统要根据自己需要来定制。7.使用makedep来做准备(目前这步可以不用)8.使用makebzImage来进行编译内核。(此过程较长,我自己编译约为25分钟左右。)9.使用makemodules编译内核模块,此过程会更长。10.使用makemodules_install安装内核模块11.使用makeinstall将新内核编译到系统。

相关推荐

推荐阅读