LinkedIn联合创始人:硅谷也就700万人,为什么能创建这么多瞩目的公司 ?

0?wx_fmt=jpeg+


很多人不解:现在创业公司这么多,在世界任何地方都有很多人懂技术,营销,也有VC,可以组建团队,那为啥非要在硅谷做呢?作者董飞,整理了 Linkedin 创始人 Reid Hoffman 在CS183C 课程的分享,原标题为《2015年斯坦福创业课程-技术驱动的闪电式扩张(Blitzscaling Session) 1》。在本文中,Reid Hoffman介绍了,Linkedin如何在闪电规模化策略中发展过来的?


背景:2015 年 9 月,CS183C 开课了,这次是 Linkedin 创始人 Reid Hoffman 主讲,课程内容是《Technology-Enabled Blitzscaling》,之前CS183第一期课程主讲是 Peter Thiel,课程内容出版《From Zero To One》, 2014年与硅谷著名加速器 Y-Combinator 合作,课程内容是《How To Start A Startup》。


主讲人Reid Hoffman

Reid Hoffman,LinkedIn联合创始人,曾经担任过PayPal高级副总裁。是硅谷最有名的天使投资者之一,曾经投资过60多家创业公司,包括Facebook和 Digg,投资人,参与投资公司:Flickr、Mozilla、Ning、Technorati、Kiva

Allen Blue,LinkedIn联合创始人及产品管理副总裁

John Lily, Greylock合伙人,前Mozilla CEO,创办Reactivity被Cisco收购


初衷


Silicon Valley is great because it has a unique ability to create startups.

硅谷在全球创新,技术和新产业产生扮演领导角色,这里有无数企业家,风险投资,科技大学,已有的技术公司,它能产生这些公司的秘诀是从 startups 到 scaleups。 最重要的是scaling up at speed。中国和硅谷都很多公司都做到了。当你能迅速扩张,能快速抓住市场,扩大收入和公司规模去面对全球化竞争,我们叫它:blitz-scaling。


建立一个改变世界的公司不是简单做一个牛X的app和找天使融资。它需要创业家去搭建宏大用户基础和业务模式,并且飞速去做到。就像 Mark Zuckerberg 在不到6年时间内把Facebook从车库到世界上最大的互联网服务。


这次在斯坦福的课程是Technology-enabled Blitzscaling,抓住了所有在快速扩张中需要的努力。这是关于创始人如何把伟大的产品扩张到伟大公司的历程。课程结束后也会写一本书就是“Blitzscaling”.


每次课程会覆盖一个从 "household" to "village" to "nation," and points in between. 请到的大咖包括 Sam Altman(后面介绍), Elizabeth Holmes (目前最争议的估值$9B 生物科技公司Theranos创始人), Jeff Weiner, Selina Tobaccowalla, Jen Pahlka.


开篇


0?wx_fmt=png


硅谷则是创业的沃土,有一种你不用担心失败,对失败恐惧的文化。当你尝试做某事但以失败告终时,你无须受到惩罚,可以再试一次,这里聚集充满理想的创始人。


0?wx_fmt=png


硅谷经典模式:

  • 在车库里有个想法;

  • 团队有技术创始人;

  • 做一个新的产品;

  • 为新产品融资;

  • 产品得到市场认可


上面说的也是部分正确。像创始团队,初始产品的正确,融资等都很重要,但似乎缺失了一些做成持久性公司的重点部分。


0?wx_fmt=png


其实现在创业公司这么多,在世界任何地方都有很多人懂技术,比如推广app,病毒营销,也有VC,可以组建团队,那为啥非要在硅谷做呢?


0?wx_fmt=png


0?wx_fmt=png


在超过100亿美金估值的科技公司中,只有2家不在硅谷 (Alibaba and Tencent) 上榜。


如果看一下 top 10% 独角兽 (大于10亿美金估值)有50% 在硅谷。在看 top 60% of all unicorn companies — 47% 在湾区。


0?wx_fmt=png

(最萌的unicorn)


crunchbase是查看公司估值的网站,John强调这些都是paper value。加粗的都是在硅谷:


0?wx_fmt=png


在硅谷也就700万人口,为什么能创建这么多瞩目公司 ?


课程目标


0?wx_fmt=png


不可能有一本教科书教你一步步怎么做大公司,但有一些已经成功人士的策略可以学习。


Network重要性


0?wx_fmt=png


如果你思考为什么硅谷效率如此之高,最重要就是各种network。


不同的网络互相交织发挥非常大的作用,并且创造这些网络就和放大器一样,放大你所作出的努力。在飞速发展的时代,越来越多具有全球影响和划时代意义的公司都刚好诞生在硅谷。就是因为处于一个网络时代,你更容易在全世界范围内以非常快的方式认识更多的人。有人说纽约不也是新兴网络吗,但硅谷领先了60年,这边有成熟投资人,战略指导到产品经理,技术研发到市场销售。后面会看到很多图,一开始都是很平的发展,但到了某一点开始加速,形成很大规模。


0?wx_fmt=png


如果你跟企业家进行过探讨,他们尝试让组织规模尽量与客户规模,收入规模保持一致,因为这样可保持适应能力和持续发展的能力。

一大堆问题

  • 创始人的角色是什么?CEO的角色是什么?董事会功能是什么?

  • 雇用一个管理团队的最好方法是什么?

  • 中层管理人员在组织中的应有作用?

  • 适合市场的产品?

  • 维持和破坏性创新中的作用?

  • 你应该如何应对竞争?

  • 适当的融资策略是什么?

  • 如何做出资金分配的决策?

  • 应该如何思考市场营销和品牌?

  • 如何随着企业发展做不同的销售模式?

  • 您应该如何处理聘用和企业文化?

  • 什么是公司的主要威胁?

  • 关键决策和问题?

  • 你何时以及如何应该担心全球化?

  • 如何获得最大的合作伙伴关系和业务发展?

  • 如何随着时间推动技术和战略变化?


比如说招聘,Workday的首席执行官Aneel,和他的共同创始人David,后者是PeopleSoft的创始人。曾对每个员工进行面试直至公司规模达到500人。因为他们认为,保持这种传统文化很重要,并且直到你全部招募到首批500人,他们都会以一种传统文化进行面试。但是即使是在第500人,也会发生变化,因为他们无法这样坚持到10,000人。


另一个老生常谈的问题——你如何面对竞争?


通常,当创业人在寻找风险投资时,他们会说,“我担心来自谷歌、来自微软的压力”。他们从来不会将一个创业公司考虑竞争对手,其实真正竞争对手应该是其他的创业公司。所有大公司都会有3-5个事情作为他们的真正目标。除非你刚好说“实际上,我想要做的是进行搜索公司创业,”那应该担心来自谷歌的竞争压力。但如果谷歌拥有其200个产品之一,而你刚好在某个层面上与其中存在竞争关系,那么,这其实并非真的很相关的事情。但随着你开始形成公司规模,实际上都在争夺一群客户和收入,那竞争则倾向于来自更大的公司。最后趋势是你不仅仅与创业公司,可能与你同级的其他公司进行竞争,在某种程度上,你还与行业领导者竞争,因为他们存在一定的影响力。而这些竞争对手可能更多关注你这一块。


组织规模和结构


0?wx_fmt=png


这个比喻是不同阶段公司规模,对应“家庭、部落、村庄、城市”,规模不同导致公司发生深远变化,但也有例外,当在Instagram投资时他们甚至没有13个人,但是他们的用户差不多达到1个亿。总有东西打破了常规。


0?wx_fmt=png


There is no one size fits all approach but rather the goal of the class is to provide you with a chessboard of how to think about moving from one level of scale to the next level of scale — and also when to scale in the first place.


在你考虑公司的各个方面时会发生什么情况,人是非常关键,从这里开始着手。


此外你做一个单线程产品,或多线程产品?通常,作为一个创业公司做单线程产品,那什么时候发展到多线程?怎么做决定?


你怎么知道什么是正确的时机?如何进入市场?进入市场是否这么容易?有没有一个计划?例如,面向企业、面向消费者计划?


某些企业非常注重现场销售,某些企业基本通过电话进行,某些公司例如Slack,则是一个全新的模式。


如果你的产品发布没有让你感到窘迫,你的产品发布已经太迟了。速度的重要性以及时间的重要性,以及你进入市场的时机。我们希望打造超级稳健的技术,并且从一开始应用该技术,是我们的OS1策略。但在消费者可能会认为,你可能开发速度太慢,无法快速进入市场。


你如何建立一个产品,然后在发展过程中如何不断重建,这成为了你技术策略的一部分。但是如果你在这个阶段全程这样做,你又死定了。有些模式让你在这个阶段获得成功,将无法在那个阶段获得成功。如何打造一个平台?该平台实际上形成一个开发stack,让每个人的生产效率都得到提高?我们如何利用各种工具来正确实施?


0?wx_fmt=png


Blizscale关键点


1、When do you Blitzscale? What speed you should be operating at is a judgement call you need to make. 如果你决定现在启动加速引擎,而你的商业模式还没做好准备,其实就是你错过一个机会的方式,那就挂了。不是说不要去做,而是你需要有竞争力的方式去做,作出的准备,判断和快速规模化的实施都非常重要。


2、从通才到专才。一开始的5人是需要快速学习去做任何事情,规模大了就需要专才在特定领域去高效运作.


3、三种人在不同的阶段,做事的,管理者,决策者。


4、创新的延续,不仅仅在创业初期要创新,而是持续创新,比如新产品线,如何高效存数据,新的架构。


5、保持适应 vs. 精细运营 — 跑得快意味着在运营上的折衷。当时Paypal 每天 2–5% 用户和交易增长—积累了每周2万封邮件。就很多顾客抱怨,然后他们在两个月内就从0到200个客服才支持了他们的业务增长。


6、全球延伸— LinkedIn 从12个国家开始— 只有真正有需求才去加入新的国家


7、资本驱动 —要么有不错收入去投入要么去融资,如何增长并保持烧钱频率,每个交易亏了多少vs如何花钱去赢得市场。


0?wx_fmt=png


LinkedIn Example


0?wx_fmt=png


每个经历这些阶段的公司,都已经经历过许多不同的路径。其中一些,我们甚至无法找到类似的对象,也许不同与LinkedIn但是你可能在Workday或其他地方找到身影。我们分享在LinkedIn经过的各个阶段的故事。


在公司初期,我们在阶段1花了两年时间在探索产品形态,但最后花了12年多,才发展到我们现在4亿用户。但对于Instagram,Whatsapp等公司成长更快。


0?wx_fmt=png


就是从这个照片开始,当我们在用户增长上达到了一个主要节点时,我们就拍照留念。在2002年,2003年,我们讨论一个理念,如果你能够建立一个职业网络,在其中建立各种信誉良好关系,对各种专业人士提供职业帮助。并且我们设想,当我们拥有一定数量的用户时,人们就会开始使用它来进行搜索。当时雇佣的都是之前的同事,轻量化来管理日常行政。我们每天的所有时间全部努力都是在解决一个问题:对于用户来说,哪些东西是有价值的?


我们在2003年5月发布上线,我们马上就了解到,“产品-市场”匹配实际上对于我们来说意味着什么。上线后招聘人员会立即爱上它,然而,为了达到那个阶段我们需要建立一个临界用户数量,这就是我们第一个阶段所发现的主要内容:关于如何发现这个match。


0?wx_fmt=png


我们必须扩大团队的规模,因为我们已经认识到产品-市场匹配的真正内容。并且,现在我们需要建立最低规模的运营团队,以确保我们能够达到这种匹配。其实是3名共同创始人,在这个阶段,我们从12名员工,扩展到大约30或40名才能够支持正常运营。


我们还加入了一系列新的功能包括客服。然后增加了销售,也就是进入市场功能。还有,我们增加了最低限度的GNA日常行政管理职能,以便能够处理诸如支付薪水等问题,管理员工的福利,这些都是我们运营所必须的最基本部门。


0?wx_fmt=png


在这个时候,我们拥有1300万用户,我们到了“村庄”这个阶段。到了这个阶段,我们同时做两件事情。我们希望能够利用当前的匹配,做好招聘业务,但是,我们还需要开拓其他的匹配,比如我们与招聘人员匹配非常好,这仅代表大约用户的半数。其实对于每个专业人员来说,获得了一个价值定位。


2007年,我们将组织拆分,我们增加了很多额外的管理职能。我们的研发机构拆分,从1个研发机构扩展到5个。每个研发机构都支持不同的东西,它们或者支持现有业务的发展,或者探索新的项目。这就是我们尝试平衡卓越运营绩效和适应能力的方法,我们确保有5个组,其中1个专注于发展,1个专注于收入,而其他3个专注于价值方面的内容。


是否存在其他“产品-市场匹配”?在120名员工的时候,我们引进了一名首席执行官,Dan Nye他来自Intuit集团,他带来海量的知识建立企业业务和销售业务,让一个销售部真正运作起来。


0?wx_fmt=png


“城市”阶段,在2009年,我们基本开始了快速规模化。要记住规模化是我们的主要瓶颈,如果我们不拥有强大的网络是不可能驱动这些发展。我们必须引进所有这些人才,在这5条产品线中继续作出努力。但在那个阶段,顾客使用我们产品的方式和我们的期望又发生了改变。有招聘人员产品,有销售产品,市场营销方案产品,种类繁多。所有这些事情的标准都已经必须提高,我们不得不雇佣人员管理这些关系,我们不得不雇佣销售人员开辟新天地。我们大多数顾客群都来自海外,我们开始寻求美国以外区域的发展,引进新的首席执行官担任此任务。


这也是Jeff Weiner,他会在后半程与我们从阶段4进阶到阶段5。Jeff加入我们,且他做的第一件事。就是他让我们准备好进行快速规模化。我们未曾做过但很重要的事情是定义我们的公司文化和战略,因为之前规模太小并不需要那样做。当你发展成为大公司时,有不同的管理部门以及行政需求,他规定了所有这些东西,这仍然是现在运营一家公司的方式。目前拥有8,500名员工。在2009年至2014年期间,员工数量基本上每年翻一番。


如果有人曾在创业公司工作很长一段时间,你就知道当使用某个代码库长达6年之久它会变得一团糟。我们面临巨大的技术变革,确保我们拥有过硬的技术平台,因此必须改变我们的技术战略。我们主要需要思考如何发展规模,灵活性、以及开发人员生产力,并仍然需要驱动力加速前进。我们必须改变我们的融资策略,在思考如何能够将需要的所有资金,筹集到一起以便能够做些比如并购的事。这时我们不仅要努力争取新一轮的种子期融资而且还要在2011年进行首次IPO,保证我们做好准备向着目标进行必要的并购。


0?wx_fmt=png


我们达到了3亿用户的节点,这就是我们看到的最大改变。办公室和员工分布在27个国家,在美国境外工作的员工数和境内人数基本相当,目前LinkedIn有8,500名员工,超过20亿美元的收入,在中国有独立运作的公司领英等。


0?wx_fmt=png


“家庭”阶段是小团队搭建产品并找到市场的适合点。

  • 产品足够好?

  • 有人在乎这个产品吗?

  • 你能招这个人吗?如何说服他们放弃fb,airbnb加入你?

  • 你怎么付工资还能保证限流


0?wx_fmt=png


当你看着这些不同的规模时,并非你解决了哪些问题,而是你没有解决哪些问题。在创业的路上即使是你拥有上千人的规模时依然会有很多救火问题。就像是你回家的时候却后院起火了,但是你需要知道哪种火灾下,你可以回家,哪些你不能。然后把它分类,知道哪些问题需要处理,而哪些可以忽略。Reid很擅长忽视一些不重要的问题,这是优秀企业家的素质。


建立一个公司需要经历很多问题,你不能预先解决问题。例如在“家庭”阶段,你的数据不会成为你成功的关键,让大家关注你的产品比metrics更重要,但进入到“村庄”或到“部落”阶段,则数据很可能会成为一个关键。


0?wx_fmt=png


Paul Graham,Y孵化器的创始人,写过《做一些非规模化的事情》,讲到一些朴实做法:

  • 跟用户沟通面聊

  • 打电话

  • 为他们下载app

  • 告诉他们怎么signup和使用

  • 跟100个用户这么做


在过去几年发生了很多变化,你处于一个更好的环境能够处理这个问题。你现在都能够获得现成的产品或服务比如用AWS云服务就部署了app,但那些你必须特别专注的事情,依然非常困难。


0?wx_fmt=png


这是Mozilla和我的故事,在左侧时候大家都在四处徘徊,尝试去做他们认为重要的事情,然后开始获得一点吸引力,有些用户关注了,你开始弄明白一些事情,如果在正确的时候打造好一款快速网络浏览器,并且在接下来3-4年,我们发展到大约4亿用户,不管怎么样,我们会看到类似这样的图表,一开始很慢很慢,然后突然加速。


这里是组织部分的不确定性,市场现状的迷雾。这就是你决定什么时候尝试用力踩油门的部分。如果他们在任何其他时间尝试踩了油门,那是不会起作用的。他们可能花了资金,但是那样不会产生什么效果。这样踩下油门则是一个非常难受的事情,并且问题是当你开始快速规模化发展时,所有时间都是艰难的,你无法把任何事情做得很好,你所能做的,就是尝试控制好方向或者保持平衡。


0?wx_fmt=png


我这里拿Airbnb的图表做比方,在图表的左侧花费了很长的时间,在2010年之前的部分都是平的,同样他们正在积累资本跟动力创建一个社区。到2011年,条件开始成熟,其效益开始变得非常好。


讲一个Airbnb的早期故事

他们在纽约市挨家挨户上门,注册用户名,他们从Craigslist表上获得信息和人们取得联系,然后上门并劝说“你应该到Airbnb上发布。”然后创始人来到人们家里说,“你为什么应该关注我网站的原因”。他们也开始意识到,信任和交易的质量在很大程度上与我是否看到我喜欢的照片相关。因此,他们会请摄影师去到用户家里拍照。


当你在创业时,你并非在写代码,可能在购买市场营销服务,在面试面试或雇佣员工。你处于“家庭”阶段时,每周工作100小时甚至120小时。这是一个选择你如何安排时间,都是为了达到最初的临界数量。能给你一个认知,了解实际客户是怎么样的,并且去感受他们关心什么东西。为你的客户建立模型,在各方面提供帮助做一些非规模化的东西,可能你会后面你不会去做Craig在Craigslist的时候的客服工作。但这在开始阶段非常关键。


【附:提问环节的精彩问答】


1、这些闪电规模化策略在软件行业之外,是否依然同样适用?


第一,这与速度差异相关,你是比你的竞争对手发展得更快吗?快速规模化的关键在于市场现状中的竞争状况下你如何区分速度差异。


第二,软件影响着其他行业比如软件和医药,比如软件和遗传学,而其中的软件是差异化的关键部分,激发了那个行业中的整个竞争节奏。例如,人们对特斯拉那么感兴趣,很大程度并非因为它是一辆电动车,而因为它配备了大量软件,这才是其备受关注的原因。


第三,总有一些与众不同的东西,例如硬件或者医药,必须确保更低的错误率,以较低的错误率比竞争对手发展得更快一点?而在软件领域经常看到,你可以接受较高的错误率。别人会拿一些即使没有直接竞争的对手来比较,将你的发展基线与其他进行对比,但关键是,你的产品是否卖的足够好?你是否雇佣了足够好的员工?


2、 如何对未来和公司下一步发展做判断?


在每种特定情况下,都会有很多判断,这不是纯粹科学理论。


当你无法给出一个路线图的原因是因为作为一个创始人,一名高管,你的工作内容是你去执行各种判断。我们在硅谷这里的所拥有的一个优势就是一个学习的网络。因此,你应该经常去做的一件事,就是和你周围所有经验丰富的人进行交流,并不仅仅是有过此类经验的人,还包括其他经验丰富的人。因为如果这可以让你更容易更好的决定。例如,发展速度应该多快?资本应该有多少?我们是否应该提前还是延后雇佣人员?


3、 怎么看待竞争对手?


实际上不要太过于关注你的竞争对手。聪明的创始人、聪明的高管,聪明的投资者所做的事情是说你是否会拥有市场机会?你是否发展得足够快去抓住机会?你是否建立了一个坚固持久的基础?关于竞争的关键问题是,如果在你前面别人获得了市场机会,那你很显然无法获得该机会。


当你接触到并非直接面对的竞争时,你实际上思考的问题是:你如何建立某种东西其会随着时间慢慢积累,而不是能以非常快的速度达到那个阶段,并且发展得很强大。


LinkedIn的故事中有一个例子,在发展的早期,根本就没有怎么关注竞争。其原因是,我们当时所关注的事情是让我们彻底完全赢得市场的事情,因此,如果我们能够在一个地方聚集最大数量的专业人员,竞争其实就不怎么重要了。我们当时就着眼于这些东西,让我们不会分心继续发展,最后获得成功。人们所寻找的是,你是否在建立某些基础,而这些基础将为你提供必要的资本帮助你彻底占领市场。LinkedIn早期的对手中,绝大多数公司已经消失了,他们当时都在专注于推销他们的公司。



原文发布时间为:2015-11-10

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器安全的8大风险和33个最佳实践丨IDCF

作者:StackRox译者:冬哥原文:https://www.stackrox.io/blog/docker-security-101/容器以及例如Kubernetes等编排器开启了应用程序开发方法的新时代,支持微服务架构以及持续开发和交付。根据我们最新的容器状态和 Kubernetes 安全报…

iOS应用开发的五个Java开源工具

随着第三方工具的不断壮大,开发人员逐渐摆脱政策束缚,对于iOS系统的封闭性为其他语言(如Java)开发者诟病得到解脱,开始使用自己熟悉的语言来编写iOS本地应用,或将其他平台上的应用移植到iOS上。 本文为你介…

【Tensorflow】解决No module named ‘matplotlib‘/‘pandas‘

用Tensorflow出现No module named ‘matplotlib’/‘pandas’ 尝试网上方法打开终端pip install pandas 不成功,报一大堆红字错误。自己尝试了一种方法。 打开Anaconda Navigator;找到Environments,点击对应环境,我的是tensorfl…

人之将死其言也善?30年来死囚遗言分析

今天是感恩节,不知道这个话题合适不合适。我们经常会提到『死而无憾』这个词。这个词似乎是一种理想状态,几乎100%的人还是做不到的。那么我们的『憾』在哪里?这个问题看似不是难题,不过仔细想想是永远没答案的,人只有…

如何通过 C# 比较两幅图片的相似度?

咨询区 Byyo我在用 C# 实现一个可以查找重复图片的小工具,我目前是给每一个图片做一个 md5 码,然后通过 md5 值来判断图片是否相同。但现实情况要复杂的多,比如:图片被旋转了,比如:90图片大小不一致不同的压…

linux之用openssl命令Base64编码解码、md5/sha1摘要、AES/DES3加密解密

1、我们先看openssl help命令会输出什么? 2、我们用openssl命令实现字符串和文本的Base64编码和解码 openssl base64 openssl base64 -d 3、我们用openssl命令实现字符串和文本的md5/sha1摘要

陈松松:如何锁定细分领域,视频营销才更容易持续做下去

每个视频,都是你的金牌业务员这是我写的第33篇视频营销原创文章与其搜索十年,不如花一年的时间学习,去赚9年的高薪!很多朋友都在探讨,视频营销越来越难了,得转行了!我想说的是,自己不…

转:工作流服务Workflow Service(1):ReceiveActivity

转:http://www.cnblogs.com/carysun/archive/2009/01/11/receiveactivity.html 在.NET3.5中WF提供了和WCF的整合,就是工作流服务,即使用工作流创作的 WCF服务。服务协定的实现是通过一个或多个 ReceiveActivity 活动处理的。在WCF中提供了三种…

Echart..js插件渲染报错 data.length1?

问题 getJSON提交 返回数据正常&#xff0c;在传入参数进行序列化&#xff0c;渲染报表时报错 option.data.length < 1. 分析 1.可能情况一: . 可自己明明是getJSON()把渲染放在成功回调函数里面了&#xff0c;所以显然不是这个错误 2.可能情况二 &#xff1a; 序列化数据没…

《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript

本节书摘来自异步社区《JavaScript专家编程》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a;【美】Mark Daggett&#xff08;达格特&#xff09;著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 第1章 对象和原型 练习不会造就完美&#xf…

c#使用PdfiumViewer展示、打印pdf文档

1:简介PdfiumViewer 是一个 WinForms 控件&#xff0c;它承载一个 PdfRenderer 控件并添加一个工具栏来保存或打印 PDF 文件2:兼容性除了常规的win7 win10 也支持xp win83:对比Spire.Pdf和Adobe PDF ReaderSpire.Pdf收费且免费版只能打印三页的pdfAdobe PDF Reader每台电脑都必…

apache 静态编译和动态编译参考

apache-2.2.22 编译安装笔记 一、静态编译 在使用./configure 编译的时候&#xff0c;即没有使用--enable-mods-shared[module]或者--enable-[module]shared这2个中的一个&#xff0c;那么所有的默认模块为静态。何谓静态&#xff1f; 其实就是编译的时候所有的模块自己编译进h…

jQuery插件ASP.NET应用之AjaxUpload

本次使用AJAXUPLOAD做为上传客户端无刷上传插件&#xff0c;其最新版本为3.9&#xff0c;官方地址&#xff1a;http://valums.com/ajax-upload/ 在页面中引入 jquery.min.1.4.2.js 和 ajaxupload.js Html代码 <script src"Scripts/jquery-1.4.2.min.js" type&quo…

Avalonia跨平台入门第十一篇之自定义Window

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定;今天趁着周末接着去摸索自定义Window样式,毕竟自带的样式不太让人满意;最终实现的效果如下图:前台Window样式:后台Window代码:咱也基于AvalonS…

ie8下修改input的type属性报错

摘要&#xff1a; 现在有一个需求如图所示&#xff0c;当用户勾选显示明文复选框时&#xff0c;要以明文显示用户输入的密码&#xff0c;去掉勾选时要变回密文&#xff0c;刚开始想到的就是修改输入框的type来决定显示明文还是密文&#xff0c;使用jQuery的attr来做试验&#x…

dotNet Core使用SignalR实现websocket

前言:最近有一个公司项目做一个排队叫号系统&#xff0c;系统功能不复杂&#xff0c;所以后端就我一人&#xff0c;难点在于消息推送到安卓屏上&#xff0c;最近有点时间&#xff0c;把我工作中使用的技术分享出来&#xff01;整个技术架构:前端使用vue uniapp&#xff0c;后端…

《手机测试Robotium实战教程》——导读

本节书摘来自异步社区《手机测试Robotium实战教程》一书中的导读&#xff0c;作者 杨志伟&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录前 言第1章 自动化测试简介 1.1节何为自动化测试1.2节自动化测试和手动测试的对比1.3节移动端自动化测试工具的选…

为record类型自定义Equals方法

前言record类型&#xff0c;这是一种新引用类型&#xff0c;而不是类或结构。record与类不同&#xff0c;区别在于record类型使用基于值的相等性。例如&#xff1a;public record DemoRecord(int id);public class DemoClass {public DemoClass(int id){this.id id;}public in…

解决IDEA修改已有项目为maven项目时目录结构被改变的问题

Idea可以在项目根目录上右键选择“添加框架支持”&#xff0c;选择maven&#xff0c;为项目添加Maven支持。 但这样会导致原有项目的目录结构被破坏。 更好的方法是在根目录添加pom.xml文件 在<build>标签内添加 <sourceDirectory>标签&#xff0c;并填入源码根目…

排序——选择排序

选择排序 作者&#xff1a;上品物语 知识点&#xff1a; 原理示意图算法特点复杂度1.1 原理 首先&#xff0c;找到数组中最小的那个元素&#xff0c;其次&#xff0c;将它和数组的第一个元素交换位置&#xff08;如果第一个元素就是最小元素&#xff0c;那么它就和自己交换&…