从最初的构思到实践,先后涉足了多种开发技术,包括 [MVC](ASP.NET Core MVC 概述 | Microsoft Learn[1])、[Razor Pages](ASP.NET Core 中的...在这漫长的过程中,网站版本更迭近 10 次,每一个版本都凝聚着站长的心血与探索,这段充满挑战的历程详细记录于 分享我做Dotnet9博客网站时积累的一些资料 - 码界工坊[4]。...它以低代码、跨平台、开箱即用的卓越特性,打破了传统开发的局限,真正实现了一处代码,多处运行的高效模式。...当响应发送完成后,服务器端组件和相应的呈现器状态会被自动丢弃,最终在浏览器端仅留存纯净的 HTML。 这种模式的优势是多方面的。首先,它极大地降低了托管成本,为网站运营者减轻了经济负担。...所有文章您都可以修改 如果文章有错别字、语病,或有误导的地方,或您有什么补充,可点击页头右上角“我要编辑、留言”进行PR,十分感谢! 最新一个对文章 .
撰稿 | 言征 Ariel Miculas,是一位开源贡献者,目前在思科任职软件工程师,最近他在自己的博客上开喷Linux内核:“为什么我贡献了问题和补丁代码,最后贡献者的名单里却没有我?”...然而让他气愤地是,他的第一个内核贡献却被内核维护者被无情剥夺了。...https://elixir.bootlin.com/linux/v6.5.5/source/include/linux/sched.h#L746 Ariel兴奋地总结了找到这个Bug的方法:通过自定义内核模块显示了写入...实际上,Ariel已经向他发送了两个修复该问题的补丁:发送到安全邮件列表的原始补丁和另一个版本 (与第一个完全不同),第二个版本解决了在回复最初提交的内容时收到的一些建议。...一旦他对我的工作的正确性感到满意,他就合并了补丁,一切都很好。我从未要求过,也没有得到过任何荣誉。” 希望这样的情况能够得到改善,否则会让一些开源贡献者们失去对“开源”的热爱。
3.总结 通过使用Spark原生的Thrift包在CDH5.16.1和CDH6.1.1环境下部署均失败了,由于原生Thrift包与C5和C6中hive包的兼容性导致无法部署成功。...jar包并且包含相应的hive依赖放到CDH,启动失败。...2.使用Spark官网的方式选择hadoop版本,hive版本,使用mvn编译,编译失败。 3.使用cdh的Spark2.4的pom文件引入thrift依赖,使用mvn编译,失败。...5.搭建独立于集群外的Gateway,将thrift服务以及相应的Hive依赖都独立出去,服务可以启动,提交任务失败。...6.使用网易开源的Kyuubi,也失败,主要是因为Kyuubi还没支持Hadoop3+Hive2。
小勤:大海,为什么我从Excel文件夹导入的数据重复了? 大海:数据给我来试试看?...Step-01:新建查询-从文件夹 确定后,我们看到文件夹里有3个文件: 这里,显然是因为将合并工作表和数据源放在了同一个文件夹下,所以Power Query将合并工作表也显示了出来,并且...Table 和DefineName的情况在Excel中可通过以下方法识别(以下2图不是本文涉及的数据导入操作步骤): 了解这些内容之后,我们就可以按需要去选择数据以避免重复了。...Step-06:展开数据 Step-07:将第一行提升为标题行 Step-08:删除不需要的列 Step-09:删除不需要的空行 Step-10:数据上载 小勤:原来Excel里还隐藏了这么多东西...知道了。好在从Power Query的每个步骤里出来的结果都是看得见摸得着的东西,还比较容易理解,只需要操作上注意筛选一下就行了。
搭了个V**,但是默认V**没有在做转发,用的iptables做的nat转发,可是每次重启,都需要重新执行iptables命令。...# 查看网卡信息 ifconfig 我看到我ppp0的IP地址是192.168.10.1,所以iptable的nat规则如下 # 把192.168.10.0/24这个网络的请求,转发到eth0网卡上面...sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE 其实这句iptables我都忘了怎么写,也不记得再哪里找到的...history | grep iptables 记录在博客了,再也不怕服务器重启了~~ 谁教一下我怎么让他重启也能自动运行呗!
我的网站被攻击了,发现友圈最近出现这种情况的还不少,真是神奇了,这事也能扎堆发生。...分享出来给大家,万一以后用得着呢~ 故事背景 我的一个小网站最近总是收到云监控报警,一个部署在4核8G单机上的小网站。 查了log发现,我是被流量攻击了。 我招谁惹谁了呀,烦死了。...昨天半夜11点收到报警短信,搞到了半夜12点,太耽误我睡觉了。 调研了一下云平台的安全服务,还挺贵,弃疗了。 我还是自己写吧,不是为了提升技术水平,单纯的为了省钱!...实现思路 首先,我的小网站访问量不高,如果某位大哥一天访问超过10次我就觉得有鬼了。 除非你是在爬我的数据~ 还是你就是吃饱撑的!...的ip 编写定时任务,每10分钟执行一次封禁ip脚本 思路是如此的清晰,奈何我并不擅长编写shell脚本,于是请教了群里的大佬,最终的实现如下: 具体实现 1.
代码层面从功能上看没有任何问题但是投入使用后却让我头大问题描述====系统上点击数据录入功能在全局监控中会受到相关消息的通知。...我们1W个用户同事在线的可能有5000+ 。 那么我们需要5000次以上的反射着肯定是吃不消的。这也是为什么本文开头说功能正常不代表业务正常。解决方案====这就是量变引起质变。...在多客户的情况下我们的设计弊端就暴露出来。这里也是笔者自己给自己挖坑。既然找到问题我们就好解决了。下面我们对代码做了一下改动我将数据缓存起来。因为在同一批次推送时本来也应该保证数据一致性。...而且我们系统对数据实时性也是可以接受一定时间延迟的。我在这里又加上缓存这样就解决了我们循环的问题经过测试本次改动在CPU上大概优化了100倍。...总结==功能开发完成仅仅代表功能的实验没有问题单用户和多用户完全是两种不同的用户形态。我们功能设计初期就应该尽量考虑数据量的问题唯一做的好的地方是我通过责任链模式将数据解析隔离出来。
我们都知道,数据库中的数据,只要应用程序员不主动删除,就可以任意次读写,多少次都行。数据库还对外提供了很漂亮的接口——SQL ——让程序员操作数据。...调用方的责任太大。 于是消息队列(MQ)就出现了,程序A把数据往消息队列中一扔,完事走人,程序B想什么时候读就什么时候读,极其灵活。...可是传统的MQ也有问题,通常情况下,一个消息确认被读取以后,就会被删除。如果来了一个新的程序C,也想读之前的消息,或者说之前一段时间的消息,传统MQ表示无能无力。...Kafka出现了,它也是一个消息队列,但是它能保存很长一段时间的消息(因为在硬盘上),队列中每个消息都有一个编号1,2,3,4.... ,这样就支持多个程序来读取。...例如:程序B读到了编号为3的消息, 程序C读到了编号为5的消息, 这时候来了一个新的程序D,可以从头开始读。
如果说这个例子里分类是八比二的话,那么只会有 20% 的用户终止了与公司继续接触,剩下 80% 的用户则会继续使用公司产品。 但问题是,这 20% 的用户流失可能对公司非常的重要。...精度 = 所有正确预测 / 全部预测 精度计算了所有预测中正确所占的比例,直觉告诉我们这么算确实没问题,可是到了不平衡数据集上,情况就变得复杂了…… 举例来说,你从市场部那边拿到了过去一年的客户流失情况数据...去年总共有十万的客户,其中有两万的客户流失了。现在,如果说我们预测全部的十万客户都留存到了年底,这就意味着你的精度是 80,000/100,000,足足有 80%!但实际上你一个客户流失都没有预测到。...成功的预测将为模型加分,而失败的预测也会有一定的扣分。...还是用之前的例子,如果我们成功预测出所有的流失客户,没有错过任何一个,那么我们将拥有: 没有假负:20,000/(20,000+0)= 100% 如果我们错估了五千的客户,那么召回率将下降,但计算式的分母不变
没有什么比一门新的编程语言更令开发者兴奋了,不是么? 因此,我在 4、5 个月之前开始学习 Go。在这里我将告诉你,你为什么也要学习这门新语言。...在这篇文章中,我不打算教你怎样写 “Hello World!!”。网上有许多其他的文章会教你。我将阐述软硬件发展的现状以及为什么我们要学习像 Go 这样的新语言?...硬件的局限性 摩尔定律[3]正在失效。 英特尔公司在 2004 年推出[4]了第一款具有 3.0 GHz时钟速度的奔腾 4 处理器。...另一方面,Go 于 2009 年发布,那时多核处理器已经上市了。这也是为什么 Go 是在考虑并发的基础上构建的。Go 用 goroutine 来替代线程,它们从堆中消耗了大约 2 KB 的内存。...这太酷了!!! 用 Go 编写的代码易于维护 我告诉你一件事,Go 没有像其他语言一样疯狂于编程语法,它的语法非常整洁。
运行在JVM中也是一样的,那你可能会有疑问,既然将类型擦除了,那为什么我声明的泛型为String类型时,不能往里add一个整型的数据呢?...一般作为初级工程师知道这些就算合格了。 我们往深一层研究下,难道我们一定不能往声明泛型为String的list中增加一个整型元素吗?...但是我能改成下面这样吗?...如果到这里你基本上都会的话,我觉得完全具有中级工程师的能力了。...2、不能用来方法的重载 为什么呢?举个例子: ? 如上图所示,在不同的泛型作为参数时,编译器编译时进行类型擦除,那参数不就一样了吗?那还谈什么重载呢!
作为一个新人,谈谈我面试过程中犯过的一些错吧,或许对你也有点收获。 提前批笔试 腾讯提前批的面试应该是一个月前就开始的,我第一个投的公司就是腾讯了,人生的第一次笔试和面试也献给了腾讯。...5、为什么索引能加快查找效率? 6、说说B+树是怎么分裂、合并的,知道具体步骤逻辑吗? 7、你项目用到redis,知道跳跃表吗?说说他是怎么实现的,查找时间复杂度?...(我下面说一下我是怎么扯的) 心想,扎心了,其实我不大知道究竟要分析啥,好吧不管三七二十一了,然后我开始扯了: 1、如果cup一直很高而其他地方内存,IO很低的话,那很有可能项目里面有某些东西在疯狂运行...(我说其他的不知道了),描述下这些具体的通信方式(我有些具体的给忘了,大致描述了几个) 8、说说快速排序的思想,删除单链表倒数第二个节点,你会怎么做? 9、了解MySQL事务吗?...不过这个项目我自己没实操过,看视频的,很短,几个小时而已,用到了redis等,不过我已经准备了很多redis相关的知识了,怎么优化的也准备好了。 现实是,呵呵,我被怼的体无完肤。
为什么我们要在 makefile 里读取 version 呢?...有完善的部署脚本 在 TubiTV,我们使用 ansible 部署系统。在已有的 ansible 脚本中加入 elixir 的支持并不难。...网上有 open source 的 ansible galaxy elixir 脚本,可以拿来主义;对于有代码洁癖或者不能直接拿来主义的,自己写也并不困难。...在我目前的这个项目中,我已经提供了模块级的 hot reload,整个 project 级的 hot reload 没有那么迫切,所以这一块我并没有妥善的思考。...在 ansible 脚本中,我为我的服务生成了 systemd 的配置文件。这样,服务的重启的接口就很统一了。
我曾一度思考过继续做数据库是不是一个正确的职业选择。与数据库行业的成熟稳定相比,互联网业务蓬勃发展,对数据库能力和性能的要求与日俱增,一场解决水平扩展的战争悄然开始。...我认为答案是肯定的,过去二十年技术的发展已经探索和解决了各个子问题,现在是综合解决这些问题,大大降低数据使用门槛的时候了。...3 构建云原生分布式 Data Warebase 的要素 为什么要把 Database 和 Data Warehouse 放在一起呢?我们先考虑一下反过来的问题:为什么要把数据库、搜索、和数仓分开?...高吞吐的分布式事务是个有挑战的问题,可能给系统带来一定的额外开销,这也是大家(包括我自己)曾经一度认为数据库和数仓必须分开的原因之一。我们在此深度剖析一下数仓场景的写入问题。...几次失败后,她终于意识到:杂志不过是一部坏掉的 iPad!也许,终有一天我们会认识到:现行的数仓或数据库实际上都是能力不完整的 Data Warebase!
这里还有数据库相关的优质文章:快戳我,快戳我?...第三步打开MySQL文件夹,就是D盘的那个 ? 第四步管理员身份运行环境变量.bat ? ? 完事了。 输入mysql -uroot -p试一下 密码不用输入,直接跳过。 ?...=D:\\Mysql\\mysql-8.0.19-winx64\\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。...大概率是data初始化失败,即没有完成操作就关闭了.bat 请删除mysql根目录下的data文件夹,然后手动在运行cmd运行以下代码。...=D:\\Mysql\\mysql-8.0.19-winx64\\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。
半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我叫他发下代码我看,如下,十分简单的代码。...他用了 OkHttp 的异步 enqueue 的请求,并在成功后更新了 textView 的 text。 明确一点: okhttp 的同步异步的回调都是在子线程里面的。...那么这样来说,按照我们被一直灌输的原理: 子线程不能刷新UI,上面这段代码妥妥地爆错啊。 而我要说的是: 上面的代码不一定爆错,它还会稳稳的顺利执行。 你十分怀疑了? 你可以尝试下。...原因 在看到他发给我的代码,onCreate 里面的部分,一切已经明了,这也是我之前面试几年经验的人设过的坑。下面我直接讲原因,源码分析那些你们自己去看吧,你应该去看。...子线程不能更新 UI 的限制是 viewRootImpl.java 内部限制了 void checkThread() { // 该方法是 viewRootImpl.java 内部代码 if (mThread
上周四至今,我大概有 50-70% 的时间在造一个轮子,一个叫 merlin 的工具。 事情的起源是这样的 —— 我们内部的一个重要服务,要升级到 elixir 1.5。...那位说:如果一个 cluster 里有几十台机器,每台都这么 build,费时费力,中途出问题的几率也增大很多啊 —— 为什么不直接在 CI 工具,比如 travis 里完成 build,生成一个 tarball.../ elixir 时宜的部署方案。...过去的几个月,在北京和旧金山,我面试过不少程序员。...之前被同僚们奉上的「宇宙中心编程小王子」原来只是穿了层皇帝的新衣,禁不起一捅。 殚精竭虑之下,轮子终于被建造完毕,痛定思痛,你重新捧起原先已快要烂熟于胸的代码。
我在 2013 年编写了自己的第一个 Node 程序。(它是用 CoffeeScript 写的。) 那个时候,Node 的优势主要体现在三个方面: 第一个是“无处不在的 JavaScript”。...他告诉我他熬了一宿,四处踱步、发散思维、画图、做实验。早晨他做了点瑜伽,然后一个白天很快就过去了。到最后,他终于在数据结构上取得了一些突破。 我当然要问了:“Sacha,为什么总要关注数据结构呢?”...像这样的 I/O 操作不就是你用到 async 的地方吗?我是否以某种方式在 REPL 中关闭了异步?难道 Elixir 不是异步的吗?...我认为这就是为什么这么多的人将这些语言描述为“乐在并发中”的原因所在。这就是当你在数据结构方面取得突破,干掉 400 行的复杂逻辑时获得的那种喜悦。...原文链接: https://acco.io/i-escaped-node 今日好文推荐 工作之余加班加点开发的项目被MD5“夺走”,两年诉讼终失败 Python之父:Python 4.0可能不会有了
领取专属 10元无门槛券
手把手带您无忧上云