首页 文章 精选 留言 我的

精选列表

搜索[AI提效],共10000篇文章
优秀的个人博客,低调大师

Android登陆页面仿拉钩动效,你总会需要它!

哈哈,看到这个标题是不是JH一紧,你可能会说我就没遇到过,但是现在没遇到不代表就遇不到,毕竟设计也是变幻莫测,只有你想不到的,没有你不能实现的,说的这么吊,到底是啥效果?没错就是一个小小的登录页面,大家都有拉勾app吧,看拉勾的登录页做的很是平滑动画,而且带动画效果,所以就有了类似拉勾登录效果,如图: 虽然是个简单的页面,但是涵盖的东西不算少啊,很纳闷为何谷歌一直不提供简单,方便,准确的键盘监听事件?惆怅啊,所以我们只能自己从侧面监听键盘事件了,我们可以监听最外层布局的变化来判断键盘是不是弹起了。闲话不多说,上车吧。 布局文件,大家都能看懂吧。 我们要想监听键盘事件,首先我们想得到的是键盘弹起的时候我们可以去搞点事情,键盘搜起的时候我们再去搞点事情,知道这些还不够,我们还要知道键盘弹起了多少,以及需要平移多少的距离。我们都知道我们的一个页面弹起键盘的时候这个页面的根布局会回调他的监听方法:addOnLayoutChangeListener( );当键盘弹起的时候,我们的布局是变化了,因此会执行这个回调方法,但是前提是必须设置我们的Activity的windowSoftInputMode属性为adjustResize。 我们想让布局整体平移的距离也就是弹起时候处于最底部的view距离顶部的高度减去我们键盘的高度。现在认为只要控件将Activity向上推的高度超过了1/3屏幕高,就认为软键盘弹起 scrollView.addOnLayoutChangeListener(newViewGroup.OnLayoutChangeListener(){ @Override publicvoidonLayoutChange(Viewv,intleft,inttop,intright,intbottom,intoldLeft,intoldTop,intoldRight,intoldBottom){ /*old是改变前的左上右下坐标点值,没有old的是改变后的左上右下坐标点值 现在认为只要控件将Activity向上推的高度超过了1/3屏幕高,就认为软键盘弹起*/ if(oldBottom!=0&&bottom!=0&&(oldBottom-bottom>keyHeight)){ Log.e("wenzhihao","up------>"+(oldBottom-bottom)); intdist=btn_login.getBottom()-bottom; if(dist>0){ ObjectAnimatormAnimatorTranslateY=ObjectAnimator.ofFloat(content,"translationY",0.0f,-dist); mAnimatorTranslateY.setDuration(300); mAnimatorTranslateY.setInterpolator(newLinearInterpolator()); mAnimatorTranslateY.start(); zoomIn(logo,dist); } service.setVisibility(View.INVISIBLE); }elseif(oldBottom!=0&&bottom!=0&&(bottom-oldBottom>keyHeight)){ Log.e("wenzhihao","down------>"+(bottom-oldBottom)); if((btn_login.getBottom()-oldBottom)>0){ ObjectAnimatormAnimatorTranslateY=ObjectAnimator.ofFloat(content,"translationY",content.getTranslationY(),0); mAnimatorTranslateY.setDuration(300); mAnimatorTranslateY.setInterpolator(newLinearInterpolator()); mAnimatorTranslateY.start(); //键盘收回后,logo恢复原来大小,位置同样回到初始位置 zoomOut(logo); } service.setVisibility(View.VISIBLE); } } }); /n_login是登录按钮 这样我们发现是可以实现效果了,但是我想全屏显示,懵比了,发现全屏的时候不回调这个方法了,怎么办?又是查资料一看原来这个也是一个bug,但是有解决方案,AndroidBug5497Workaround。也是谷歌提供的?直接拷贝过来,会发现其实他的作用就是让Activity最外层的根布局,当有布局变化时去响应这个变化mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(); packagecom.wzh.study.login; importandroid.app.Activity; importandroid.graphics.Rect; importandroid.view.View; importandroid.view.ViewTreeObserver; importandroid.widget.FrameLayout; publicclassAndroidBug5497Workaround{ //Formoreinformation,seehttps://code.google.com/p/android/issues/detail?id=5497 //Tousethisclass,simplyinvokeassistActivity()onanActivitythatalreadyhasitscontentviewset. publicstaticvoidassistActivity(Activityactivity){ newAndroidBug5497Workaround(activity); } privateViewmChildOfContent; privateintusableHeightPrevious; privateFrameLayout.LayoutParamsframeLayoutParams; privateAndroidBug5497Workaround(Activityactivity){ FrameLayoutcontent=(FrameLayout)activity.findViewById(android.R.id.content); mChildOfContent=content.getChildAt(0); mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(newViewTreeObserver.OnGlobalLayoutListener(){ publicvoidonGlobalLayout(){ possiblyResizeChildOfContent(); } }); frameLayoutParams=(FrameLayout.LayoutParams)mChildOfContent.getLayoutParams(); } privatevoidpossiblyResizeChildOfContent(){ intusableHeightNow=computeUsableHeight(); if(usableHeightNow!=usableHeightPrevious){ intusableHeightSansKeyboard=mChildOfContent.getRootView().getHeight(); intheightDifference=usableHeightSansKeyboard-usableHeightNow; if(heightDifference>(usableHeightSansKeyboard/4)){ //keyboardprobablyjustbecamevisible frameLayoutParams.height=usableHeightSansKeyboard-heightDifference; }else{ //keyboardprobablyjustbecamehidden frameLayoutParams.height=usableHeightSansKeyboard; } mChildOfContent.requestLayout(); usableHeightPrevious=usableHeightNow; } } privateintcomputeUsableHeight(){ Rectr=newRect(); mChildOfContent.getWindowVisibleDisplayFrame(r); return(r.bottom-r.top); } } 使用方式,如果我们设置了全屏,就去加载它,不设置不管: if(isFullScreen(this)){ AndroidBug5497Workaround.assistActivity(this); } ... publicbooleanisFullScreen(Activityactivity){ return(activity.getWindow().getAttributes().flags& WindowManager.LayoutParams.FLAG_FULLSCREEN)==WindowManager.LayoutParams.FLAG_FULLSCREEN; } 接下来就看具体动画事件了,键盘弹起来的时候整体向上平移,LOGO缩小,键盘收起的时候整体下移,并且LOGO恢复原来大小。这里用到的都是属性动画,只有属性动画我们才可以实现真正平移效果。 我看网上很多人使用addOnLayoutChangeListener()去监听键盘事件,但是这个方法回调的太频繁,比如本例特效,输入框后面有文字时候显示清除的图标,如果用这个方法那么也会执行一次,可能会影响你的动画,当然你也可以去记录第一次的高度让他不会走逻辑,但是我觉得也不是很靠谱,虽然我这个方法也不是很棒 ๑乛◡乛๑~。 最后贴上源码: 如果有什么问题欢迎指出,我将给出例子地址,包含另一种实现方式就是用scrollview滑动到最底部的方式来实现平移效果~ 作者:wenzhihao123 来源:51CTO

优秀的个人博客,低调大师

Unsloth Dynamic 3.0 GGUF 发布,同体积下准确率再提 10%

Unsloth 今天发布了 Dynamic 3.0 量化方案,首发 Qwen3.8-27B 量化版本。相比 v2.0,新版本在同等磁盘空间下 top-1% 准确率提升超过 10%,KL Divergence 指标全面优于所有其他量化提供商。 准确率提升来自几个方面:更高质量的 imatrix 校准数据集(从多样化数据源构建,针对 agent 编程、聊和多语言场景优化),更好的层选择策略,以及更多新的量化技术。Unsloth 强调所有优化都是纯后训练量化(PTQ),没有使用 QAT 或 QAD,过拟合风险更低。 最亮眼的数据是下载量:Qwen3.8 的 Unsloth 量化版本仅在 5 天内就达到了 510 万次下载。这个数字说明社区对本地部署大模型的需求正在爆发。 一个新变化是,较小体积的量化版本(UD-Q2_K_XL 及以下,8.37GB 以下)去除了 MTP(Multi-Token Prediction)模块,能节省约 500MB 磁盘空间。如果需要 MTP,可以单独加载 Q4_0 MTP 模块。此外还推出了 UD-IQ1_S 1-bit 量化版本,仅 6.2GB,保留了 72% 的 top-1% 准确率,体积缩小了 89%。 Hacker News 社区的讨论集中在版本管理上——多位用户抱怨 Unsloth 的 GGUF 文件缺乏版本号命名,新旧文件完全同名,需要手动对比 SHA256 才能确认差异。一位用户发现他 4-5 天前下载的 Qwen3.8 Q8 和今天发布的 Dynamic 3.0 版本有不同的 SHA256 哈希值,但文件名完全一样。 Unsloth 还改进了一个容易被忽视但很重要的问题:top-1% 准确率(只看模型对第一个 token 的预测)并不能真实反映推理质量。他们构建了一个 Divergence-300@32 基准——从 Terminal-Bench、DeepSWE、Harbor、MathArena 等数据集中抽取 300 个 held-out 样本,进行 32 个 token 的 greedy 解码,对比 BF16 原始模型和各量化版本之间的输出轨迹差异。这个指标比单纯的 top-1% 更有说服力。 参考来源: Unsloth Dynamic 3.0 GGUFs 文档 HN 讨论帖

优秀的个人博客,低调大师

PublicCMS 网站漏洞 任意文件写入并可提权服务器权限

PublicCMS是目前网站系统中第一个采用JAVA架构 TOMCAT+Apcche+Mysql数据库架构的CMS网站,开源,数据承载量大,可以承载到上千万的数据量,以及用户的网站并发可达到上千万的PV,PublicCMS静态全站html,访问速度极快,模板样式多,可自己设计,第三方的API接口也很多,深受网站运营者的喜欢。最重要的是开源,免费升级,支持动静分离,数据库及时备份等功能。 SINE安全于最近对该PublicCMS的系统进行全面代码安全检测,发现该PublicCMS系统存在网站漏洞,该漏洞可以对网站的任意目录下上传任意格式的文件,比如jar格式,JSP格式,war格式的脚本木马。下面针对于PublicCMS,我们进行详细的分析以及漏洞的如何利用。我们首先来搭建该系统的网站环境,使用Apache +Tomcat+Mysql数据库的一键安装环境包进行搭建,可以使用phpstudy来搭建,快捷,方便,稳定,可以随时切换服务器的环境版本,以及架构搭建好后,我们先登录下网站的后台,如下图: 我们首先来搭建该系统的网站环境,使用Apache +Tomcat+Mysql数据库的一键安装环境包进行搭建,可以使用phpstudy来搭建,快捷,方便,稳定,可以随时切换服务器的环境版本,以及架构。搭建好后,我们先登录下网站的后台,如下图: 那么怎样才能上传到任意文件夹下呢? 比如我要上传到网站的根目录下该怎么弄呢?因为PublicCMS存在可以构造zip文件,并指定解压到任意目录。我们来构造一下ZIP,创建一个文件,名称为:../../../../../../../../apache-tomcat-7.0.81/webapps/publiccms/safe.jsp,然后通过后台上传上去即可。上传后我们访问网站根目录下safe.jsp 直接执行命令如下图: PublicCMS网站漏洞是如何产生的呢? controller目录下\admin\cms\CmsWebFileAdminController.java代码里的uzip调用方式上出现了漏洞,该系统采用的是dounzip的方式去调用,dounzip是解压缩常用到的,所以上传ZIP文件的时候,自动解压缩了。导致我们可以构造特殊的文件名,来将我们的脚本木马上传到网站任意目录下。 该代码通过获取targetPath的上传路径值与压缩文件里的名字进行自动拼接,在拼接的这个过程当中,../ 可以对目录进行跨站。网站漏洞产生最根本的原因就是在处理这个压缩文件的时候并没有对压缩里的文件名进行判断与过滤,导致可以使用特殊的文件名进行定义,并传入到服务器后端执行代码,通过上传JSP木马后门,可以直接对服务器进行控制,危害性较高。 关于PublicCMS网站漏洞修复 已讲该漏洞报告给PublicCMS官方(天津黑核科技有限公司),并告知漏洞产生的具体细节,官方已对该漏洞进行了修复,请使用该PublicCMS网站的客户,尽快升级到最新版本即可。专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.

优秀的个人博客,低调大师

关于容器,你应该提的13个问题及应该知道的答案

当从一个计算环境转移到另一个计算环境时,容器是如何使软件可靠运行的问题的解决方案。以下是关于这个你需要了解的流行技术。 Docker在2013年一炮而红,自那以后持续引起IT界的兴奋。 Docker提供的应用程序容器技术承诺将像几年前的虚拟化技术一样改变IT运营的方式。 以下是与该技术相关的13个最常见问题的答案。 什么是容器以及你为什么需要它们? 当从一个计算环境转移到另一个计算环境时,容器是如何使软件可靠运行的问题的解决方案。这可能是从开发者的笔记本电脑到测试环境,从预发布环境到产品,以及可能从数据中心的物理机到私有云或公共云中的虚拟机。 Docker的创始人Solomon Hykes说:“当支持软件的环境不相同时,会出现问题。你将使用Python 2.7进行测试,然后在生产中运行Python 3,然后会发生奇怪的事情。或者你将依赖某个SSL库的版本的行为,而后另一个版本将被安装。你会在Debian中运行测试,而在Red Hat上进行生产,然后各种怪异的事情发生了。” 他补充说:“不仅仅是不同的软件可能会导致问题。网络拓扑也可能不同,或者安全策略和存储可能不同,但软件必须在它上面运行。” 容器如何解决这个问题? 简单地说,一个容器由整个运行时环境构成:一个应用程序,加上它所有的依赖关系,库和其它二进制文件,以及运行它所需的配置文件,统统捆绑在一个包中。通过对应用程序平台及其依赖关系容器化,OS(操作系统)分布和底层架构的差异被抽象了出来。 容器和虚拟化有什么区别? 有了虚拟化技术,可传递的包可以是一个虚拟机,它包含一个完整的操作系统以及应用程序。运行三个虚拟机的物理服务器将有一个管理程序并且在它上面运行着三个独立的操作系统。 相比之下,一个用Docker运行三个容器化应用程序的服务器运行单个操作系统,并且每个容器与其他容器共享操作系统内核。操作系统的共享部分是只读的,而每个容器都有自己的挂载方式(即访问容器的方式)进行写入。这意味着容器更轻量级并且使用的资源远远少于虚拟机。 容器还有什么其它好处? 容器的大小可能只有几十兆字节,而具有自己的整个操作系统的虚拟机的大小可能是几千兆字节。因此,单个服务器可以托管的容器数量远超虚拟机。 另一个主要好处是,虚拟机可能需要几分钟才能启动其操作系统,并开始运行它们托管的应用程序,而容器化的应用程序几乎可以立即启动。这意味着容器可以在需要时以“即时”的方式实例化,并且在不再需要时可以消失,从而释放其主机上的资源。 第三个好处是容器化兼顾了更大的模块化。应用程序可以拆分为模块(如数据库、应用程序前端等等),而不是在单个容器内运行整个复杂的应用程序。这就是所谓的微服务方法。以这种方式构建的应用程序更易于管理,因为每个模块都相对简单,并且可以对模块进行更改而无需重新构建整个应用程序。因为容器非常轻便,所以只有在需要时单个模块(或微服务)才会被模块化,并可立即使用。 Dockers和容器有什么区别? Docker已经成为容器技术的代名词,因为它在普及上最成功。但容器技术并不新鲜; 它已经以LXC的形式被集成到Linux超过10年了,并且FreeBSD监狱(FreeBSD jail),AIX工作负载分区(AIX Workload Partitions)和Solaris容器也提供了类似的操作系统级虚拟化。 有标准的容器格式吗? 早在2015年,一家叫做CoreOS的公司就制定了与Docker容器规范不同的App Container Image(ACI)规范,当时有这样一个风险,就是新流行的容器运动会与对手的Linux容器格式产生碎片化。 但同年晚些时候宣布了一项名为“开放容器项目(Open Container Project,OCP)”,后来更名为“开放容器计划(OCI)”。在Linux基金会的支持下运作,OCI的目的是为所有的平台开发容器格式并制定容器运行时软件的行业标准。OCP标准的起点是Docker技术,Docker向该项目贡献出其代码库约5%的代码,使项目可以顺利展开。 该项目的赞助商包括AWS、谷歌、IBM、惠普、微软、VMware、Red Hat、甲骨文、推特和HP以及Docker和CoreOS 为什么这些公司都要参与开放式容器计划? OCI的想法是确保容器技术(如容器格式)的基本构成要素被标准化,以便每个人都可以利用它们。 这意味着组织可以专注于开发支持在企业或云环境中使用标准化容器所需的附加软件,而不是耗费资源开发竞争性容器技术。所需的软件类型包括容器编排和管理系统以及容器安全系统。 有没有免费的开源容器管理系统? 有,最有名和使用最广泛的免费且开源的容器管理系统可能是Kubernetes,它是一个起源于谷歌的软件项目。Kubernetes提供了部署、维护和扩展容器化应用程序的机制。 现存的有哪些商业容器管理解决方案? Docker企业版也许是最有名的商业容器管理解决方案。它为在企业Linux或Windows操作系统和云提供商上运行的应用程序提供了一个集成的,经过测试和认证的平台。 但还有很多其它的,有几个值得注意的是以Kubernetes为核心的专有软件层。这类管理软件产品的例子有: ·CoreOS的Tectonic预封装了构建谷歌风格的基础设施所需的所有开源组件,并增加了其它商业功能,例如管理控制台,企业SSO集成以及企业就绪的容器注册服务(registry)Quay。 ·Red Hat的OpenShift容器平台(Open Shift Container Platform)是一种内部部署的私有的平台即服务产品,建立在由Docker支持的应用程序容器核心,由Kubernetes在Red Hat Enterprise Linux的基础上提供编排和管理。 ·Rancher Labs的Rancher是一种商业开源解决方案,可以在任何基础架构上轻松部署和管理生产中的容器。 容器有多安全? 很多人认为,容器比虚拟机安全性更低,因为如果容器主机内核存在漏洞,那么它可以提供一种进入共享它的容器的方法。管理程序也是如此,但由于管理程序提供远远少于Linux内核(通常实现文件系统,网络,应用程序进程控制等)的功能,因此它的攻击面更小。 但是在过去的几年里,为了增强容器的安全性开发了大量的软件。 例如,Docker(和其它容器系统)现在包括一个签名的基础架构,允许管理员签署容器镜像,以防止不可信的容器被部署。 然而,可信任的签名容器不一定可以安全运行,因为在签名后容器中的一些软件可能会被发现漏洞。因此,Docker和其它容器提供容器安全扫描方案,可以就容器镜像是否有任何可被利用的漏洞而通知管理员。 更专业的容器安全软件也被开发出来了。比如Twistlock,它提供的软件可以配置容器的预期行为和“白名单”进程,网络活动(如源和目标IP地址和端口),甚至是某些存储实践,以便可以标记任何恶意的或意外的行为。 另一家专业的容器安全公司Polyverse采用了不同的方法。它利用了这样一个事实,容器可以在几分之一秒内启动,以便每隔几秒在已知的良好状态中重新启动容器化应用程序,将黑客必须利用在容器中运行的应用程序的时间最小化。 哪一个Linux发行版适合用作容器主机? 如果Linux发行版的预期用途只是充当容器主机来运行容器,那么它们大多数都是功能上臃肿的。因此,很多Linux发行版本被设计为专门用于运行容器。 一些例子包括: ·Container Linux(以前的CoreOS Linux)—为容器而构建的第一个轻量级容器操作系统之一。 ·RancherOS –由容器构建的简化的Linux发行版,专门用于运行容器。 ·Photon OS - 最小的Linux容器主机,被优化在VMware平台上运行。 ·Project Atomic Host - Red Hat的轻量级容器操作系统拥有基于CentOS和Fedora的版本,Red Hat Enterprise Linux中还有一个下游企业版本。 ·Ubuntu Core - 最小的Ubuntu版本,Ubuntu Core被设计为用于物联网设备和大规模云端容器部署的主机操作系统 如果是Windows环境会怎么样? 除了在任何运行3.10(或更高版本)的Linux内核的Linux发行版上运行,Docker还可以在Windows上运行。 这是因为在2016年,微软在Windows Server 2016和Windows 10中引入了运行Windows容器的能力。这些是为Windows设计的Docker容器,并且它们可以在任何Docker客户端或微软的PowerShell中进行管理。 (微软还引入了Hyper-V容器,这些容器是运行在Hyper-V虚拟机中的Windows容器,用于增加隔离度。) Windows容器可以部署在Windows Server 2016的标准安装中,精简的Server Core安装或Nano Server安装选项,专门用于在容器或虚拟机中运行应用程序。 除了Linux和Windows之外,Docker还在流行的云平台上运行,包括亚马逊的EC2,谷歌的 Compute Engine,微软的Azure和Rackspace。 容器最终会取代全面的服务器虚拟化吗? 由于一些重要的原因,这在可预见的未来不太可能。 首先,仍然有广泛的意见认为虚拟机比容器提供了更高的安全性,因为它们提供了增强的隔离级别。 其次,可用于编排大量容器的管理工具还不如管理虚拟化基础架构的软件(如VMware的 vCenter或微软的System Center)全面。对这类软件进行了大量投资的公司在没有充分理由的情况下不太可能放弃他们的虚拟化基础架构。 也许更重要的是,虚拟化和容器也开始被视为互补技术而不是敌对技术。这是因为容器可以在轻量级虚拟机中运行,以增加隔离度,进而提高安全性,并且因为硬件虚拟化可以更轻松地管理支持容器所需的硬件基础架构(网络、服务器和存储)。 VMware鼓励投资虚拟机管理基础架构的客户在其轻量级虚拟机上的Photon OS容器Linux发行版上运行容器,而这些轻量级的虚拟机可以在vCenter进行管理。这是VMware的“VM中的容器”策略。 但是,VMware还引入了所谓的vSphere集成容器(vSphere Integrated Containers ,VIC)。这些容器可以被直接部署到独立的ESXi主机,也可以像虚拟机一样被部署到vCenter Server。这是VMware的“容器作为虚拟机”策略。 这两种方法都有其优点,但重要的是,能够在虚拟化基础架构中使用容器而不是替换虚拟机,这往往是很有用的。 作者:佚名 来源:51CTO

优秀的个人博客,低调大师

Linux服务器漏洞防护测试 可SUDO提权到管理员

linux一直以来很少有漏洞,稳定,高效,安全.深受网站,app运营者的喜欢与青睐,很多网站服务器的运营技术和运维,在维护服务器的同时都会使用sudo命令来做安全,殊不知sudo近期被爆出漏洞,并登上CVE-2019-14287级别,可见漏洞的危害性较大.Linux漏洞,目前来看使用centos系统的服务器,以及网站都会受到该漏洞的影响,我们SINE安全建议大家尽快升级sudo的版本到最新的1.8.28版本,将损失降到最低.防止网站,服务器,APP因为LINUX漏洞被攻击.CVE-2019-14287 sudo漏洞到底是为何产生,到底什么是SUDO,我们SINE安全技术来跟大家讲解一下,SUDO是linux系统的管理命令,可以允许用户在不需要切换账号的情况下,使用sudo的命令来运行root的命令,减少root的登录与管理,让操作linux centos系统更方便.同时可以将服务器的安全加强. 而该漏洞可以将sudo配置的用户可以使用默认的配置规则来使用任意的用户账号来执行root管理员命令,攻击者利用绕过规则的方式将恶意命令传入到服务器中进行执行.从而绕过root权限,进行攻击服务器 我们SINE安全技术以实际的漏洞测试为基准,发现大部分的linux服务器系统存在/etc/sudoers/目录,如下图所示一样,其中白色字体ALL后面跟的就是用户的组与可以使用sudo root命令的所属账号.那么该如何利用linux漏洞呢? 首先用户需要有sudo的权限,并配置文件允许任意的账户ID来允许命令的执行,达到以上条件后.我们来构造执行命令,使其绕过root权限,执行管理员的命令.代码如下: sine my.ini = (ALL, !root) /usr/bin/vi,可以直接允许使用VI命令编辑文件,sudo -u#-1vi就可以以root的管理员权限编辑文件了,具体的linux漏洞POC复现过程看下图: 目前受影响的linux版本是小于1.8.28的sudo版本都会受到该漏洞的攻击,危害较大可导致服务器被攻击,被入侵,并提权,如果服务器里运行网站,APP,数据库的话,很有可能数据泄露,数据篡改等攻击问题的发生.请各位网站服务器的维护人员,尽快升级sudo到最新版本,修复漏洞,将损失降到最低,安全不可忽视.

优秀的个人博客,低调大师

【技术专栏】传播业强身三步走:控成本、管创意、提效率

“听了很多道理,不如业者最实际的分享。” 本周起,《商旅专家》于微信公众平台开辟全新【技术专栏】板块。经验丰富的业界大佬将基于自身在行业的所得所感,通过此平台陆续与我们的读者开展分享。 今天的内容,我们邀请北京鱼鹰软件有限公司副总裁樊瑞力先生,谈谈他眼中传播行业的强身之法。 樊瑞力 北京鱼鹰软件有限公司副总裁 为什么叫传播业?我们也一直在找一个什么样的词把这几个细分行业都囊括进来,发现唯有传播能更贴合一些。不管是叫传播还是大营销行业,追根溯源我们做的事情都是为了甲方客户去传播、传递、销售某个产品、某种想法做的动作,所以我们暂且都叫传播业。 图1 我们观察到的传播行业现状 1.因甲方的需求趋于整合营销,乙方业务纷纷多元并跨界。公关的做影视和数字营销、影视传媒公司的炒IP、会展会务公司向上做公关。 2.互联网带来的采购价格透明和数据积累分析,未来会出现以细分区域、物料、服务等中央集采平台。 3.活动、创意、技术的创新保鲜期变短。 4.甲方的在追求活动形式、交互、体验之上更重视ROI转化。 5.传播公司(广告、公关、会展、传媒等)逐步参与甚至作为甲方的营销渠道,由项目制合作转为利益分成。 传播企业想要持续发展不管是技术还是业务模式的持续创新,前提对内要做到成本的合理控制及效能的提升。 抛开行业,企业管理在中国经历了企业资源计划-ERP(大规模集约化生产)时代到流程管理(流程优化效率提升)时代到现在的互联网(信息和业务的协作)时代。 在日常的运营模式上看,过去企业是典型的金字塔型的管理结构(图2)。传播行业是典型的项目型企业,或者叫以项目运作为主线的行业(图3)。销售拿单就是个售前项目,是非常典型的大客户复杂销售,需要BD,创意,设计,供应商,高层组成联合项目组提案才能得到来自甲方的合同。拿到合同后又是售后执行项目,同样需要AE,创意,设计,活动执行,采购,各类供应商等协同执行,完成交付并最终拿到甲方回款。 传统企业: 图2 传播业: 图3 那么,在日常的运营管理过程中有哪些快速有效的方法能提升我们的内部管理效率呢? 管理的前提是呈现 管理者每天花费大量的时间基本都是在做一件事情,就是了解情况,甚至是索取。只有这样才能做出相对准确的决策。然而绝大多数管理者每天还是在“不知道”或者“不能快速知道”中烦恼。单子来了批不批?不知道。项目变更了毛利率变没变?不知道。这个月公司赚了多少钱?BU赚了多少钱?不知道。预算超没超?不知道。该不该给供应商付款?不知道。不是不能知道,是不能即时的结构化的呈现,这些都会影响决策和决策者的效率。 高效的前提是统一 1.统一工作语言。统一客户名称,编号,叫法。统一合同编号,业务不同编号不同。统一动作语言,减少“靠谱”、“还行”、“挺好”的词汇沟通。 2.统一业务规范。安排一次各业务部门参加的一天的会议,找来一个大白板,从获取商机开始一直到收款结项绩效发放,把业务流程完整的画出来,再来谈如何优化。 统一的前提是机制和架构 公司要有支撑“统一”的架构和配套的机制支撑,项目型公司最多的管控方式都是大平台小团队,行政、人事、财务、采购作为平台部门,其他业务人员按项目在这个统一支撑平台上自由组建为一个个独立的小团队。前两天,《商旅专家》的主编贾子入先生在一次分享中提到MICE行业的去中心化,是针对行业生态链模式的建议,映射到内部运营管理中就是打破部门壁垒,通过机制和架构让每个组织可以自生长。管理上有个说法叫管理半径,每个人的管理半径是7个人,也就是说最佳的团队应该是在7个人这个规模左右。 实时算清帐 传播业在财务上是大进大出,100万收款,需要花出去80万。毛利率的控制需要非常细,不然一方面保证不了毛利,另一方面现金流压力会更大,更无从谈起资金计划。报价无基准,预算控不住,合同不变更,追加单满天飞,每个项目结束都要采购,运营,项目经理加财务算几天账。所以,实时的清楚项目、部门、产品、供应商的各种收付款计划及报表是所有管理的前提。 所有业务流程和架构标准后,就需要有工具和系统支撑这些流程高速运转及沉淀。鱼鹰软件经过一年全国的走访调研发现传播行业整体管理信息化水平偏低,目前大部分企业还是停留在OA层面,传统的OA解决了审批等基本协同问题,但未涉及到核心的报价,采购,供应商,预算等核心业务管理。因为行业规模,过去鲜有软件厂商针对这个传播行业做业务运营解决方案,还是集中在通用OA和专业的工具软件,例:签到、订房系统等。但企业的真实需求是存在的,所以很多企业选了自行找技术团队开发或者在OA基础上做深度定制开发。自行开发可以完全满足各类个性化需求定制,短期内可以满足企业的需求,但是开发团队是项目制,产品的拓展性、可变更性、稳定性会是企业快速发展及求变中的坑。 对于任何企业的信息化建设来讲,都是个过程,不是一次性工程,行业在变,业务在变,组织在变,信息化就要跟着及时调整。管理软件也是工具,核心在于能IT和管理的融合形成1+1>2的效能。 以上,在企业不同的发展阶段关注的重心不同。我们把企业发展过程中的管理划分为三个阶段:第一个阶段是创业阶段,管理是靠热情和老板,第二个阶段是发展阶段,管理是靠系统和规则,第三个阶段是规模阶段,管理是靠文化。 不管是从传播、MICE、DMC、TMC、数字营销行业生态还是发展趋势来讲,在信息平等的时代,唯有苦练内功才是发展的必要基础。 本文出处:畅享网 本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册