Author: admin

Maven详细简介

1.maven简介
1.1 简介
        maven 最主要体现在两个词上:项目和管理。maven给我们整个开发团队找出了一种能够更加科学的去管理我们项目的思想。maven通过使用配置文件的方式使得项目在管理和交接的过程中成本变得非常低。maven提出了一种叫做maven仓库的概念,使得我们可以将第三方和我们需要引用的项目都放置在maven仓库当中。如果其他人或项目组也需要使用,就可以直接通过maven进行配置就行。这样就可以将人员成本、沟通成本等等都进行降低。
        如果还不理解我们举个例子:加入我们现在想做一份菜:糖醋排骨。如果我们想要做这道菜,那么我们首先要先去菜市场买排骨、糖、醋、......,而且在做的时候还要注意使用糖醋的用量等等。那么如果有一个超市,该超市有卖糖醋排骨的料理包,这是不是就能很大的节省我们做饭和买菜的时间开销。其实maven就是这个卖料理包的超市,当人卖的不是料理包,而是一系列的jar包。这样我们在写代码的时候就不需要去其他网站上下载一大堆的jar包。
1.2 项目构建
       不知道大家有没有意识到,构建(build)是每一个程序员都在做的工作。仔细观察我们会发现,除了编写代码,我们每天都有相当一部分时间花在了编译,运行单元测试,生成文档、打包和部署等繁琐和不起眼的工作上,这就是构建。如果我们现在还是手工的做这些事情,那么时间成本就太高了,于是有人用软件的方法让这一系列工作完全自动化。是软件构建完全像流水线一样,只需要一条简单的命令,所有繁琐的步骤就能很快的自动完成。
1.3 项目构建工具
Ant构建
       最早的构建工具,基于IDE,大概是2000年有的,当时最流行的java构建工具,不过他的xml脚本编写风格让xml文件特别大。对工程构建过程中的过程控制的特别好。
Maven [ java ]
        Maven是一个项目管理和整合工具。Maven为开发者提供了一整套完整的生命周期框架。开发团队几乎不用花多长时间就能够自动完成工程的基础构建配置。他填补了Ant的缺点,Maven第一次支持了从网上下载的功能,仍然采用xml作为配置文件格式Maven专注的是项目依赖,使用java编写。
Gradle
       属于结合以上两个的优势,他继承了Ant的灵活和Maven的生命周期管理,他最终被google作为了Android御用管理工具。他最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。
        目前市面上Ant比较老,所以一般是一些比较传统的软件企业公司使用,Maven使用java编写,是当下大多数互联网公司使用的一种构建工具,中文文档也比较齐全,gradle是用groovy编写,目前比较新的构建工具一些初创互联网公司会使用,以后会有很大的使用空间。
1.4 Maven的四大特征
1.4.1 依赖管理系统
       Maven为java世界引入了一个新的依赖管理系统jar包管理 jar包升级时修改配置文件即可。在java世界中,可以用gropId、artifactId、version组成Coordination(坐标)唯一标识一个依赖。
      任何基于maven构建的项目自身也必须定义这三个属性。
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>
坐标属性的理解
    Maven坐标为各个组件引入了新秩序,任何一个组件都必须明确定义自己的坐标。
groupId
       定义当前Maven项目隶属的实际项目-公司名称。(jar包所在仓库路径)由于maven中模块的概念,因此一个项目实际往往会被分成多个模块。比如Spring是一个实际的项目,其对应的Maven模块会有很多,比如Spring-croe,spring-webmvc等。
artifactid

唱衰这么多年,PHP 仍然还是你大爷!

PHP 是个庞然大物。

尽管有人不断宣称 PHP “即将消亡”。

但无法改变的事实是:互联网依然大量依赖 PHP。本文将通过大量的数据和事实告诉你为何 PHP 仍然在统治着互联网,你大爷仍然还是你大爷

统计数据

PHP 仍然是首选编程语言

根据 W3 Techs 对全球前 1000 万个网站使用的编程语言分析,我们可以看到:

  • PHP 占比 77.2%
  • ASP 占比 6.9%
  • Ruby 占比 5.4%

基于 PHP 的内容管理框架

绝大多数公共网站都是通过 PHP 和 CMS 来构建的。根据市场份额,12 大 CMS

Linux Kernel Linux 内核项目是什么

软件简介

Linux 是最受欢迎的自由电脑操作系统内核。它是一个用 C 语言写成,符合 POSIX 标准的类 Unix 操作系统。Linux 最早是由芬兰黑客林纳斯・托瓦茲为尝试在英特尔 x86 架构上提供自由免费的类 Unix 操作系统而开发的。该计划开始于 1991 年,这里有一份林纳斯・托瓦茲当时在 Usenet 新闻组 comp.os.minix 所登载的帖子,这份著名的帖子标志着 Linux 计划的正式开始。

在计划的早期有一些 Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

技术上说 Linux 是一个内核 kernel。“内核” 指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于 Linux 内核的完整操作系统叫作 Linux 操作系统,或是 GNU/Linux。

Linux 是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux 内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。

MATLAB是什么

MATLAB  是一个用于科学研究与工程应用分析和设计的商业化算术运算软件,由美国新墨西哥大学的数学教授 Cleve Moler 开发。

Moler 当时在美国阿贡国家实验室(Argonne National Laboratory)参与了两个数值计算软件包的开发:用于求取矩阵特征值的 EISPACK 和用于求解线性系统的 LINPACK。同时,他也在新墨西哥大学讲授数值分析和矩阵论的课程。为了让学生们既能够在计算机上进行实践,又能免除编写程序的麻烦,Moler 利用 FORTRAN 语言和 EISPACK 及 LINPACK 的部分功能,编写了最初版本的 MATLAB。…

一篇文章告诉你公网,私网,内网,外网的区别

最近经常有很多小白朋友在后台问,公网、私网、内网、外网,这些的概念是啥样的,又该怎么去界定。

关于IP地址,确实没有太明确的区分,其实也不必太过咬文嚼字。

内网、外网就是一个参考系选择的结果。

毕竟对你而言是外网,其实是别人的内网,,各有各的定义,最多只能具体问题具体分析。

不过在一般情况下,还是可以区分的。…

MoJo:比Python快35000倍的全新编程语言!

  

Chris Lattner ,这个神一样的男人,他又干了件惊天动地的大事!

他官宣发布全新编程语言——Mojo

MoJo:比Python快35000倍的全新编程语言!

大神何许人也

对于全球各地开发者来说,Chris Lattner 是一个大家都仰望的男人!

他曾是许多大型技术项目的领导者,包括 LLVM 编译器基础结构项目、Clang C 和 C++ 编译器、MLIR 机器学习基础结构等编译器技术,以及为苹果生态系统提供支持的程序设计语言 Swift

他的履历可谓相当精彩:

  • 2011-2017 年,任苹果开发部高级总监、架构师

  • 2017.1-2017.6,任特斯拉副总裁,负责自动驾驶

  • 2017.8-2020.1,任谷歌 Google Brain 高级总监

  • 2020.1,加入芯片创业公司 SiFive 负责平台工程

在去年,他终于下定决心自己创业,和 Tim Davis 共同建立了「Modular AI」,希望自下而上重建全球 ML 基础设施。

Mojo 就是他们公司发布的新编程语言。

理想的视口VIEWPORT不存在

在决定根据几个严格的断点做出设计决策之前,请确保考虑屏幕尺寸和浏览器视口的巨大碎片。

Set Studio,我们进行了一个小小的实验来回答“视口大小的碎片化程度如何?”。我们收集了超过120,000 个数据点以及超过2,300 个独特的视口尺寸。这些数据主要来自美国和欧洲的用户,因此不一定代表全球受众,但对本文仍然有用。

实验只进行了 48 小时,但我们得到的数据非常有趣。让我们深入了解一下。

点击 https://viewports.fyi/ 查看.

Web 播放 RTSP 推流最佳方案实践

背景

最近接到一个需求,前端需要接一段视频流播放,刚接到的时候感觉这不挺简单的吗,立刻祭出我的 video.js 大法,不过当我拿到后端发给我的视频流地址的时候 rtsp://video-stream/god 我有点蒙,不知道此为何物,但是我还是尝试着用 <video srd="rtsp://video-stream/god" /> 挣扎了一下,结果却是不尽如人意,随后我在官方仓库也是得到了认证:…

浏览器播放rtsp视频流:4、jsmpeg+go实现局域网下的rtsp视频流web端播放

1.前言

之前的rtsp转webrtc的方案存在如下缺陷:1.只支持h264;2.受限于webrtc的理解难度以及搭建turn/stun的p2p服务等问题,对于局域网下的业务需求来说有些杀猪用牛刀的意思;3.ios不支持webrtc。

基于以上原因,我又找到了一些其它的方案进行了测试,目前看jsmpeg的方案更加适合我们的需求,而且普通压缩大小为135kb,gzip方式压缩后仅仅42kb,在嵌入式场景下也可以使用。只是转码服务需要ffmpeg,在不进程裁剪开发的情况下,需要在设备或者PC或者局域网路由器设备等上安装的该插件服务会比较大。…