公司:搜狐
搜狐,是一家互联网中文门户网站。1995年,搜狐创始人张朝阳利用风险投资创建了爱特信信息技术有限公司,1998年正式推出搜狐网。2000年,搜狐在美国纳斯达克证券市场上市。
搜狐开发的产品有搜狗拼音输入法、搜狗五笔输入法、搜狗音乐盒、搜狗浏览器、搜狐视频、独立的搜索引擎搜狗和网游门户畅游。
搜狐是2008年北京奥林匹克运动会唯一的互联网赞助商,也是奥林匹克运动会历史上第一个互联网内容的赞助商。
尽管搜狐在首页标题声称自己是中国最大的门户网站,但其Alexa排名却低于同类门户网站腾讯网和新浪。在2018年其在Alexa的中国排名于第5位,在门户网站中仅次于腾讯。现时为中国五大视频网(优酷、爱奇艺、腾讯视频、芒果TV)之一。
安卓应用跳转回流的统一和复用
作为一个功能复杂的应用,无法避免地需要支持众多路径的回流,比如从Launcher、从Push通知、从端外H5、从合作第三方App以及从系统资源分享组件等。
我们知道,不同的回流路径会通过App的不同入口,带着不同的参数打开应用。而应用需要根据不同的回流路径,及其参数要求,跳转到目标页面,并完成完成相应的操作。在跳转到目标页面时,回流过程往往会被启动页、登入页、新手引导、升级、主页等条件检测和页面中断,导致无法顺利地完成目标页面的跳转和相应的操作。
整个回流过程如果不统一设计,代码会因为涉及的回流入口多,回流操作多,回流中断多,以及业务需求地不断增加和变更,变得复杂且高耦合。
视频审核中多模态应用
在视频审核中,对于特定的违禁视频内容需要进行严格管控和封禁。例如:对于领导人在一些特定时期事件的丑化;视频中出现醒目的广告引导,这些广告最终可能指向境外一些赌博,淫秽网站;再有对于一些像是巴以冲突等时政事件的恶意抹黑。这些都需要审核系统在视频进审时可以快速识别并封禁这些内容。
结合YOLOv8和OpenCV WeChat QRCode打造一款二维码识别器
二维码(QR Code)在现代生活中有广泛应用,从支付系统到信息传递,它们无处不在。本文提出了一种如何识别二维码的方法,主要贡献在于优化处理分辨率较高的图像时,由于二维码在整张图片中占据的比例较小, 传统的OpenCV WeChat QRCode的识别方法表现不佳的问题。
Dubbo框架那些值得细品的设计
Dubbo的内核中只包含了服务调用、集群管理、路由策略等最基础的核心功能。而除了核心之外的其他功能,全都通过扩展实现。包括:序列化、协议、负载均衡、过滤器等。
每个扩展都有一个对应的接口定义,具体实现可以自定动态加载和替换,这样插件式的设计,可以根据不同的业务选择不同的实现,灵活多变。
搜狐新闻HarmonyOS Push开发实践
搜狐新闻作为HarmonyOS的合作伙伴,于2023年12月成功上架鸿蒙单框架应用市场,成为首批鸿蒙应用矩阵的一员。
推送作为新闻类应用的重要组成部分,我们将其纳入到二期功能开发中。本文将推送集成过程中的步骤和经验分享给大家。
Dubbo服务自动Web化之路
代码中的maxBufferSize + extraMaxBufferSize默认大小为2M,而异常中的Unreasonable length = 10053968已经达到了9.58M,远超2M,故抛出异常。
经过搜索,发现该值由系统变量jute.maxbuffer配置,它指定了znode中可以存储的数据的最大大小。
随即将该值调整至20M后,重启所有节点,集群恢复。
那么,这个9.58M大小的数据到底是什么?
如何生成严格递增的分布式id?
在现有分布式系统中,面对增长迅速的业务数据,id生成一直是非常重要的一环。而分布式系统的id生成方案需要满足几个重要特性:容错高可用、高性能高并发、全局唯一。
FlutterWeb启动耗时优化
在产品体验中会发现,跟传统的web端网页对比,还是明显感觉到性能上的差异,特别是启动的过程明显耗时较长。本文将针对Flutter Web项目的做一些启动上的优化和探讨。SDK版本:Flutter SDK 3.19.0。
Android自定义表情删除时卡顿问题的定位与优化
在我们的实际应用中,用户在发布文本时,输入大量表情后尝试从中间删除时,会出现明显的卡顿问题。这种操作可能耗时长达2s,导致用户体验受到严重影响。通过使用 Profiler 分析耗时的方法,我们找到了造成卡顿的原因,并参考了 emoji2 源码提出了解决方案。
初步了解预训练语言模型BERT
BERT是由Google提出的预训练语言模型,它基于transformer架构,被广泛应用于自然语言处理领域,是当前自然语言处理领域最流行的预训练模型之一。
一个能让普通View轻松实现嵌套滚动的控件
在Android的事件分发机制当中,在同一个事件流中,如果由父控件拦截/消费了,那么子控件就没办法再获取到该事件流。这种传统的事件分发机制在嵌套滚动时会有明显不足,就是子控件无法消费父控件没有消费掉的滑动距离(因为起初是父控件接收了滑动事件,那么在同一个事件流中,所有事件都会给到父控件,子控件接收不到事件,也就无法滑动),从而造成嵌套滚动的不连贯(如果想滑动子控件就只能抬起手指结束本次事件流,并在下一次事件中滑动子控件)。使用嵌套滚动机制可以有效的解决上面的问题。它并没有改变事件分发机制,在发生嵌套滚动时,还是先进行事件分发,由父View将事件分发给子View,由子View进行消费。只不过,子View在自己消费之前,会先去询问父View,是否需要处理滑动事件,如果父View需要处理,就先交由父View进行滑动,父View滑完了,子 View 才进行滑动。在嵌套滑动中有两个角色:Child 和 Parent,Child 需要实现 NestedScrollingChild/NestedScrollingChild2/NestedScrollingChild3 接口之一,比如系统控件RecyclerView,而 Parent 需要实现 NestedScrollingParent/NestedScrollingParent2/NestedScrollingParent3 接口之一,比如系统控件CoordinatorLayout。在Android系统中要实现嵌套滚动,子View需实现NestedScrollingChild接口才能和实现了NestedScrollingParent接口的父View进行嵌套滚动。但是,在复杂的业务场景中,子View可能只是普通View(或ViewGroup),其本身并没有实现NestedScrollingChild接口,普通的子View可能是各种各样的控件,而且不止一个。
【low-ui-vue】实现原生可扩展动态表格组件
该文章介绍了如何使用v-for指令生成动态列和行的表格。通过v-for="(column, index) in columns"生成列,v-for="(row, rowIndex) in data"生成行。每个单元格的内容由row[column.dataIndex]决定,通过在表头数据中添加width属性,可以简化代码和防止数据冲突。使用
Android编译优化之kapt优化
KAPT插件会导致编译速度变慢,特别是在使用Glide、Room、Builder等框架时。与APT相比,KAPT速度更慢。为解决这个问题,可以尝试使用KSP,它是一个更快速的解决方案。通过关闭KAPT任务和配置增量编译,可以显著减少编译时间。根据上下文,APT和KAPT都是用于处理Java注解的工具,但KAPT的速度更慢。因此,可以尝试使用KSP作为更快速的替代方案。
用 vue3 + phaser 实现经典小游戏:飞机大战
本文字数:7539字预计阅读时间:30分钟
java类热加载原理及应用
这篇文章讲述了性能优化在Java程序员中的重要性,以及定位性能瓶颈和问题点的困难。作者介绍了通过添加日志来定位问题的办法存在的问题,并提到了使用Skywalking和Arthas来解决这个问题。文章进一步解释了Skywalking和Arthas的原理,涉及到的技术和工具。其中,作者详细阐述了类加载机制、javaAgent机制、字节码技术以及Arthas的实现方法。此外,文章还提到了JDK1.5版本开始,Java增加了Instrumentation和JVMTI功能,用于对已加载的字节码进行修改和重新加载。Agent有两种运行模式:启动时添加参数和动态注入。这些模式通过Instrumentation和ClassFileTransformer实现动态修改Java程序的功能。
客户端动态降级系统
本文字数:4576字预计阅读时间:20分钟