• [行业资讯] 五分钟带你了解物联网(IoT)及其未来应用方向
    物联网的起源有多个不同的说法,一是1990年施乐在线可乐售卖机。1995比尔盖茨在著作《未来之路》中提到物联网。正式提出有说是Peter T. Lewis于1985年提出,也有说是麻省理工大学的Kevin Ash-ton教授于1999年提出的,“万物皆可通过网络连接”。现在比较通用的定义是:将可感知设备、可独立寻址的物体进行互通互联的网络。和以前互联网一样,接入的设备必须是可以寻址,才能具备唯一的身份,发起与其它设备的对话。  物联网与互联网的关系  物联网也是一种链接网络,而且也具备大量原来互联网、移动互联网的特点,通用的MQTT协议也运行于互联网的TCP/IP的基础之上。因此,物联网是基于互联网发展和拓展而来的互联网络,其简化的高层架构关系如下:1.物联网就是物物相连的互联,是基于电脑的互联网的进一步延伸和发展  2.物联网的参与方拓展到了所有可感知的设备和物品  3.物联网的很多通道和运作,仍需要互联网,特别是移动互联网的支撑  4.物联网由于工作领域和特性存在多个差异很大的场景,因此多种主流的协议和组网方式并存  物联网的整体架构与分层  物联网通常分为四层:感知、网络、平台和应用层;也有另一种常见的分法,是把平台层并入应用层,因此定义为感知、网络和应用层。感知层通常由终端设备来履行,像人的终端神经一样,使智能网络和中控系统能感知未端状态,并执行下达的指令;其中不具备独立寻址的传感器一种是通过网关接入物联网,或者是与有独立寻址和连接能力的设备相连,通常视为该设备的一部分,以外设的身份存在。  物联网主要的连接技术  网络层分成两种,一种是网关与传感器之间的联接,称之为局域网联接,有对应的协议;一种是直接接入,并与数据中心或云平台的中控平台连接,这是广域网联接。目前广域网也有多种接入技术,但不管哪种接入技术,都需要通过标准的传输协议,才能建立起对话。主流的MQTT是由IBM公司开发的,基于TCP/IP协议之上。
  • [技术干货] python字符串处理之大小写转换
    本次使用cloudShell方式远程登录ECS,有一点不大习惯的是使用Vim编辑文件的时候,ecs键不可用,这样就卡在编辑模式退不出来。。。没有找到解决办法,只能换编辑器,好在cloudShell自带的文件处理功能很方便:只需要双击右手侧的文件浏览器中的特定文件,就会报一个安全提示,忽略掉,文件就打开,直接编辑,然后叉掉就保存了。#demo12.py# -*- coding: utf-8 -*-# 字符串方法:lower、upper和capwords函数print("HEllo".lower())   #首先打印小写的helloprint("hello".upper())   #再打印大写的HELLOlist = ["Python", "Ruby", "Java","KOTLIN"]if "Kotlin" in list:    print("找到Kotlin了")else:    print("未找到Kotlin")   #大小写不一致,打印此行for lang in list:    if "kotlin" == lang.lower(): #转换大小写,匹配到。        print("找到Kotlin了")        break;    from string import capwordss = "i not only like Python, but also like Kotlin"print(capwords(s))  #capwords() 方法用来将传入的字符串用 split() 按照空格分隔成序列后,#将序列每项首字母大写后,再使用空格组成字符串返回。#个人理解:格式规整化。    运行结果:[root@ecs-0720 ~]# python demo12.pyhelloHELLO未找到Kotlin找到Kotlin了I Not Only Like Python, But Also Like Kotlin[root@ecs-0720 ~]# 
  • [行业资讯] 「低代码开发」2021年软件开发的几大趋势
    无服务器架构无服务器计算结合了无状态的函数即服务(FaaS,比如AWS Lambda)与有状态的存储后端即服务(BaaS,比如AWS S3)。“根据我们的定义,无服务器的服务无需明确配置也能够自动伸缩,而且能够根据使用量收费。”—— Berkeley(关于无服务器计算的观点)在无服务器计算中,云服务被全面托管。你可以通过编写代码来构建应用程序,同时无需管理或维护服务器等基础设施。无服务器计算支持按需付费的计费方式,允许用户按照消耗的资源量付费。与传统计算平台相比,无服务器计算允许用户根据具体的情况选择收费方式,从而帮助他们降低成本。无服务器计算面向的是应用程序,不同于虚拟机和容器等面向资源的计算平台。多平台框架多平台开发的意思是说,同一套代码能够在不同的平台上运行。随着重用代码以及其他劳动成果的难度降低,多平台也变得越来越普遍。Jetbrains团队通过Kotlin语言很好地实现了这一点。现如今,应用程序的后端可以采用Kotlin / JVM,而前端则可以采用Kotlin / JS。这种模式有很多优势:除了语法优势之外,前后端还可以共享库和编程范例(比如使用协程等)。通过Kotlin贯穿整个开发栈,我们编写的类与函数就可以同时在JVM和JS中使用。不仅如此,你还可以使用KMM(Kotlin Multiplatform Mobile,Kotlin多平台移动开发SDK),创建可同时在iOS和Android上运行的移动应用!在实践中,只需使用一种编程语言,就可以创建功能完善的应用程序。
  • [其他语言] #化鲲为鹏,我有话说# 编程菜鸟初学Kotlin的一点分享 二
    化鲲为鹏,我有话说Kotlin面向对象1.类相当于一个复杂的数据类型//定义一个长方形 class calRectArea(var width:Int,var height:Int) //进行调用 fun main(args:Array){     var rect=calRectArea(20,40)     println("矩形的高度:${rect.height}")     println("矩形的宽度:${rect.width}") }2.Kotlin的静态属性和动态行为静态可以理解为属性,动态可以理解为方法以顾客购买洗衣机洗衣机为例对于顾客来说,不关心洗衣机的构造,只需要去懂得使用的方法就行fun main(args:Array){     //顾客不关心洗衣机的内部构造只关心洗衣机的使用方法     //首先,顾客购买洗衣机     var buyWashMachine=WashMachine("小天鹅",12);     //使用时先打开洗衣机的门     buyWashMachine.openDoor();     //选择洗衣机模式     buyWashMachine.selectMode(2);          //开始使用     buyWashMachine.startWash();     //使用完毕以后关闭洗衣机的门     buyWashMachine.closeDoor();      }对于洗衣机厂家来说,他们需要负责洗衣机的构造,由厂家来封装洗衣机类-----WashMachine/**  生产厂家生产出洗衣机,生产出使用方法  */ //洗衣机的属性,洗衣机的生产厂商以及型号大小 class WashMachine(var module:String,var size:Int){     //打开洗衣机的门     fun openDoor(){         println("把洗衣机的门打开");     }     //关闭洗衣机的门     fun closeDoor(){         println("把洗衣机的们关闭")     }     //洗衣服     fun startWash(){         println("放水");         println("放洗衣液");         println("开始搅动");         println("脱干");         println("洗好了");     }     //选择模式     fun selectMode(mode:Int){         when(mode){             0 ->println("普通模式");             1 ->println("轻柔模式");             2 ->println("快速模式");             3 ->println("狂暴模式");             else->println("普通模式");         }     } }3.接口和抽象类的理解接口是事物的能力抽象类是事物的本质接口没有函数体和变量,是一种规范:抽象类可以让继承者去实现函数,也可以自己去实现4.委托和代理委托:把事情托付给别人获别的机构去办理代理:以他人的名义,在授权范围内对被代理人采取一定的行为。代理的产生,可以是受他人委托。Kotlin里的代理采用by关键字进行——接口代理例子://大头儿子洗一次碗,围裙妈妈给他1元钱 //小头爸爸洗一次碗,围裙妈妈给他10元钱 /* 小头爸爸接下围裙妈妈洗碗的任务,让大头儿子去洗,给大头儿子1元钱, 然后自己休息,净赚9元钱 */interface WashBowls{     fun washBowls(); }/* 小头儿子洗碗,自己动手 */ class BigHeadSon:WashBowls {     override fun washBowls() {         println("大头儿子在洗碗,一次赚一元钱");     } }/* 小头爸爸在洗碗,不自己动手  */  //BigHeadSon()加括号的目的是为了初始化 //@simon1 class SmallHeadFather:WashBowls by BigHeadSon(){ } //也可以这样写 //@simon2 class SmallHeadFather:WashBowls by BigHeadSon(){     override fun washBowls() {         println("我是小头爸爸,我不洗碗,我赚了9元钱");         BigHeadSon().washBowls();//让小头儿子去洗碗         println("我看着大头儿子洗完了,我不动手");     } }//测试类 fun main(args:Array){     var fatherWashing=SmallHeadFather();     fatherWashing.washBowls(); } /* 运行结果—— 若SmallHeadFather是@simon1的写法则输出: 大头儿子在洗碗,一次赚一元钱 若SmallHeadFather是@simon2的写法则输出: 我是小头爸爸,我不洗碗,我赚了9元钱 大头儿子在洗碗,一次赚一元钱 我看着大头儿子洗完了,我不动手 */ //明明是让小头爸爸去洗碗,但是实际洗碗的却是大头儿子------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------才疏学浅的菜鸟先分享到这里,有不足指出望各位大佬指教。
  • [其他语言] 编程菜鸟初学Kotlin的一点小分享
    化鲲为鹏,我有话说kotlin虽然诞生的时间不久,但是目前已被谷歌定义为Android官方支持开发语言,在移动开发方面,已经越来越受欢迎我挑了我初学的一些自认为重点的来说数据类型kotlin中常见的数据类型,Byte Short Int Long Float Double String var(智能推断类型)var i:Int=255;//显示指定当前变量的类型并赋值var i:Int;//定义类型但是不赋值val i=12;//val声明的数据类型一旦申明就不能被改变,相当与const定义函数的规则fun 函数名(参数名:参数类型):返回值类型{函数体}例子fun plus(a:Int ,b:Int):Int{     return a+b; }字符串直接用==来判断字符串是否相等,等效于java里面的equals方法when表达式,类似与switchfun whenDemo(score:Int){     when(score){         10->println("恭喜你,考了满分")         9->println("成绩优秀")         8->println("成绩不错")         7->println("成绩一般")         else->println("还需努力")     } }区间1..100等效为[1,100]1 until 100等效为[1,100) 前闭后开区间函数和函数式表达式//一 fun add1(x:Int,y:Int):Int{     return x+y } //函数add1等效与函数add2 fun add2(x:Int,y:Int):Int = x+y今天先分享到这里落款:云南大学
  • [技术干货] DevOps on DevCloud|如何构建Kotlin开发的Android Apps
    https://bbs.huaweicloud.com/blogs/512d6835917611e9b759fa163e330718
  • 【看点】Kotlin 威胁、Python 逆袭,2018 年程序员需要升级哪些技能?
    本文来源:CSDN 作者:屠敏 近日,著名的技术书籍出版商 PACKT 基于 8000 名开发人员以及技术专家的工作经验进行了调查研究,最终发布了《2018 年开发者技能提升报告》,旨在追踪开发者的工具使用情况以及最新的技能趋势,确保开发者做出正确的学习选择。接下来,让我们一窥 2018 年开发者最受欢迎的工具吧。 编程语言:Python 受高薪程序员青睐、Java 在移动开发中大显身手 2018 年以来,Java、JavaScript、Python 开始争夺编程语言界的头把交椅。不过,霸主依旧是霸主,无可比拟,Java 仍占榜首,据报告显示,有 40% 的开发者使用 Java 进行 App 研发。而 JavaScript 和 Python 稍逊一筹,JavaScript 占 36.85%,Python 占 36.47%,后两者之间相差不到 1%,流行度可谓不分伯仲。除此之外,用于 App 开发的编程语言 Top 10,还有 C#、SQL、C++、C、PHP、Swift、Go。18392 据调查结果显示,Python 最受高收入的 App 程序员的青睐;C# 适用于企业和桌面应用程序的开发,也在游戏开发中大显身手,因此最受此领域的开发者们喜爱;而 Java 最受移动开发者的欢迎。 对于 App 开发,我们已经看到基于 C 语言的开发支持已经越来越少。且只有在桌面开发人员和游戏脚本编写人员中,C#仍然占据着榜首位置,这意味着更多的开发者都在尝试新的方法来构建浏览器以及移动端应用。 移动开发工具:Android Studio 稳操胜券Android Studio 是移动设备端(39%)开发时的主导工具,其使用量比Xcode(16%)多出一倍以上。总体上来看,Android 开发者的数量比 iOS 要多得多。 但是,使用 Xcode,iOS SDK 或 macOS 进行开发的开发者中,有 50% 的人薪酬为 70000 美元甚至更高,所以想要在移动开发中挣取更多的薪酬,具备 iOS 技能看起来更容易实现这一目标。 18394 游戏开发工具:Unity 猛超 Unreal,成为游戏开发首选引擎 对所有开发者而言,Unity 是游戏开发的首选工具。据调查报告显示,26% 的受访者使用 Unity,同等类别的第二大受欢迎的游戏开发引擎为 Unreal,占比 11%。18395企业和桌面应用开发工具 .NET、Visual Studio 和 Java EE 无疑为企业和桌面应用开发工具的前三甲。18396MySQL 成为最受欢迎的数据库 MySQL,SQL Server 和 SQLite 是最常用的数据库。18397 技能提升方向 机器学习:过去一年,经过数据科学、人工智能等领域的洗礼,机器学习技术成为 App 开发者学习的下一个重要内容。将算法智能集成到 App 中的目标极具挑战性,并且与 App 开发的诸多功能(如会话式 UI)密切相关。基于此,受访者还将 TensorFlow 和深度学习列为他们正在学习的新技能,这意味着 App 开发者正在学习一些最复杂、最强大的机器学习工具和技术。 Python:如果 App 开发人员正在深入探索机器学习技术,那么其正在使用 Python 进行学习。 由于其适应性、并从机器学习算法到 GUI 能够构建任何内容,2018 年的 Python 正成为开发者当之无愧的选择。 这也是高收入的 App 开发者青睐的语言。 Web 技术:如今 App 开发和 Web 开发之间的差距正在逐渐消失。诸如 React Native 证明了将本机 App 的可用性与 Web 应用程序的交互性相结合的体验比以往的更强大。同样,后端和前端之间的关系也在改变。 随着微服务和无服务器架构成为常态,Web 开发人员和 App 开发者开始共享非常相似的工具链。区块链:根据今年的调查,我们发现很多 App 开发者正在转型区块链,这也成为 App 开发者须关注的领域之一。虽然区块链对电子商务等主流 App 是否有影响还有待观察,但在不久的将来,区块链更多细分的应用将会更加明显。 Kotlin:诞生于 2011 年,但直到最近才开始真正吸引工程师的特别青睐。Google 在 2017 年宣布 Kotlin 在 Android Studio 3.0 中完全获得支持,使之成为 Android 开发语言之一。预计到今年年底,Kotlin 将与 Java 展开激烈竞争。 Rust:已经有一段时间了,但 Mozilla 去年专门成立一个团队来继续开发。他们希望将 Rust 定位为连接前后端的关键性语言——wasm-bindgen,使 Rust 与 JavaScript 可互操作。
  • 【看点】2018 年技能提升报告:Kotlin 已对 Java 构成威胁?
    本帖最后由 小柴不加胡 于 2018-6-27 11:09 编辑本文来源:https://www.oschina.net/news/97390/2018-skill-up Packt 发布了 2018 年技能提升报告的结果,旨在了解软件开发人员的工具使用情况和技能趋势。报告显示,Java 在编程语言中仍然占据主导地位,但 Kotlin 极有可能将其赶出移动开发的榜首。 “2018 年技能提升报告”调查了 8000 多名开发人员和技术专家,他们分为四大类:应用程序开发,Web 开发,安全和系统管理以及数据。报告指出,Kotlin 于2011年出现,但直到最近才开始真正吸引工程师的特别青睐。 谷歌在2017年宣布 Kotlin 在 Android Studio 3.0 中完全获得支持,使之成为 Android 开发语言之一。预计到今年年底,Kotlin 将与 Java 展开激烈竞争。应用程序开发应用程序开发人员使用最多的语言是 Java,Python,C# 和 SQL。 Java 在移动开发中更受欢迎,而 Python 更受高收入应用程序开发人员青睐,C#被广泛用于构建企业和桌面应用程序。 用于移动开发的顶级工具包括: [*]Android Studio [*]Xcode [*]macOS [*]Xamarin [*]iOS SDK。 Android Studio 拥有最多使用者,占比 39%。Xcode 使用率 17%。在使用 Xcode、iOS SDK 及 macOS 的开发者中,有 50% 的人年收入超过 7 万美元。企业和桌面的顶级工具包括 .NET,Visual Studio 和 Java EE。MySQL,SQL Server 和S QLite 则是最常用的数据库。 Web 开发Web 开发使用最多的语言:Java,HTML/CSS,PHP,Python。报告指出,应用程序开发和 Web 开发已经不再被视为两个独立的实体,Web 和应用程序开发人员共享大部分相同的工具链。用于 Web 开发的顶级前端工具和框架包括 JQuery,Bootstrap,npm,Angular 和 Webpack,而顶级后端工具包括 Node.js,ASP.NET Core,Express.js 和 Laravel。 安全和系统管理在查看安全和系统管理时,发现 Python 和 Bash 是最常用的脚本语言,其次是 Shell,PowerShell 和 Java。 顶级安全工具包括:Wireshark,Nmap,Kali Linux 和 Metasploit。开发人员正在使用 Linux,Windows 操作系统,Docker,Ubuntu Server 和 Windows Server。
  • Android Studio 3.0 正式发布,支持 Kotlin 语言
    除了 Android 8.1 Oreo 开发者预览版,Google 今日还正式发布了 Android Studio 3.0 ,为其 IDE 引入了一系列新功能。 Android Studio 3.0 专注于加速 Android 应用开发,包含大量更新内容,主要分为三个功能块,包括: [*]一套用于快速诊断性能问题的新的应用程序分析工具 [*]支持 Kotlin 编程语言 [*]用于加速在最新的 Android Oreo API 上开发的新工具 更新概述: 开发 [*]Kotlin 编程语言支持 —— 正如谷歌在 Google I / O 2017 所宣布的那样,Kotlin 编程语言已被官方支持用于 Android 开发。此版本的 Android Studio 是第一个支持 Kotlin 语言的里程碑式版本。许多深受欢迎的功能(如代码自动补全和语法高亮显示)在本版本中都可以正常工作,后续将继续改进编辑器功能。你可以选择使用“Code → Convert Java File to Kotlin File”中的内置转换工具将 Kotlin 添加到项目中 ,或使用“ New Project Wizard 新建项目向导”创建启用 Kotlin 的项目。 [*]Java 8 特性支持改进 —— 该版本继续改进对 Java 8 语言特性的支持,新增了 migration to a javac 工具链,在项目中使用 Java 8 语言功能更加容易。 [*]Layout Editor 改进 —— 更好的拖放**和新的报错通知。 [*]Adaptive Icon Wizard [*]XML Fonts & Downloadable Fonts ——如果是针对 Android Oreo 开发的 Android 应用则现在可以使用 Android Studio 3.0 添加自定义字体和可下载字体。 [*]Android Things Support —— 在“新建项目”和“新建模块”向导中包含一组新的模板,以支持 Android Things 平台。 [*]IntelliJ Platform Update —— 内置 IntelliJ 2017.1 版本。 构建 [*]支持构建即时应用( Instant App) [*]构建速度改进 [*]Google 的 Maven 仓库变更 优化 [*]CPU Profiler [*]Memory Profiler [*]Network Profiler [*]APK **yzer 改进 测试和调试 [*]Emulator Google Play System Images [*]Emulator OpenGL ES 3.0 Support [*]Emulator Proxy Support [*]App Bug Reporter [*]Android Wear Rotatory [*]Android Emulator Quick Boot (Canary) [*]APK Debugging [*]Layout Inspector [*]Device File Explorer 具体细节请查阅发行说明: https://android-developers.googleblog.com/2017/10/android-studio-30.html