1.Cesium中文网——如何开发一款地工具[一]
2.零基础如何自学 Android 开发?群转q群
3.Spring Security5后基于Oauth2.1的Authorization Server 实现 (官方demo,稍作修改)
4.RTMP推流方案总结
5.谷歌语法Github及利用方式
6.NVIDIA Modulus 23.03安装和使用方法
Cesium中文网——如何开发一款地工具[一]
Cesium中文网: cesiumcn.org/ | 国内快速访问: cesium.coinidea.com/
Cesium中文网的发g发器朋友们其中一个关注点是:独立开发一款地图(瓦片图)下载工具。
我们将通过多个博客文章[所有用户]和视频[付费用户]的源源码形式来拆分并介绍这个主题。源代码将不断更新并提交到Github,群转q群地址:github.com/hujiulin/Map...。发g发器源代码对所有用户开放,源源码阿里源码出售若您觉得对您有帮助,群转q群请给予一个star以示鼓励。发g发器
重剑无锋,源源码大巧不工。群转q群
这个工具将以C#和JavaScript的发g发器形式呈现。编程语言只是源源码形式,理解其内部逻辑和流程,群转q群您也可以使用Java,发g发器Python,源源码PHP或其他开发语言进行实现。
目前开源的工具非常简单(简陋),但我将定期更新和维护代码。如果您有任何问题,可以在Github上提交issue,或在公众号:Cesium中文网;QQ群:;论坛: cesium.coinidea.com/上留言和提问。
准备工作:
找到自己熟悉的一门开发语言,它支持:
一般来说,现代的开发语言都支持上述大部分功能。本文选择的是C#。在整个主题的中部,会引入JavaScript。
瓦片图服务器:
本文选择的是百度地图,其实大部分的瓦片图服务器都会有x, y, z(level)三个参数,百度地图的URL Pattern是:online{ 0}.map.bdimg.com/onlinelab...{ 1}&y={ 2}&z={ 3}&styles=pl&udt=&scaler=1&p=0
如果我们把x=1, y=1, z=3,在浏览器打开上述URL
online0.map.bdimg.com/o...
样例瓦片图
既然我们已经知道了瓦片图的生成规则,那我们只要指定具体的下载链接,我们就可以下载对应的了。C#的核心下载代码是,这里代码可以轻易地在网络上搜索到:
瓦片图批量下载:
接下来我们要做的是:
之前提到过地图的核心思想是四叉树,所以我们可以再次简单的处理,认为瓦片图也是四叉树构成的,一共分为级(网上可查)左右。那么
levelminX~maxXminY~maxY~~~~~~4…n1~2^(n-1)1~2^(n-1)
四叉树
批量下载的rmc系统源码核心代码如下:
上述的运行代码肯定能下载,但是有很多问题。这些问题将在下一步中进行讨论。
当前软件界面
下载结果
下一步:
上面的这些问题将在后续的文章中进行介绍。
声明:
一般来说,地图服务器需要很大的存储资源和带宽资源,本文仅从学术角度和大家探讨现在的下载软件内部原理,如有错误欢迎大家指正。
Again: Github地址:github.com/hujiulin/Map...。源代码对所有用户开放,如果大家觉得有益,请轻轻地给一个star进行鼓励。
本文和软件仅做学术交流,严禁用于商业用途。
Cesium中文网交流QQ群:
Cesium中文网: cesiumcn.org/ | 国内快速访问: cesium.coinidea.com/
零基础如何自学 Android 开发?
自学Android开发需从基础开始,掌握Java语言是首要任务。Java是Android开发的核心语言,熟悉Java能让你在学习Android时事半功倍。如果你有C++基础,也可以使用NDK进行开发,但不推荐从头开始学习。对于Java基础薄弱的初学者,可以参考火星的Java4Android教程、慕课网的Java修炼基础课程。这些资源从入门到进阶,覆盖了Java语言的关键知识点。
搭建Android开发环境是另一个重要步骤。推荐使用Eclipse作为IDE,它成熟且容易搜索问题。安装Eclipse、Android SDK、ADT插件,创建AVD虚拟设备,通过Android开发之旅:环境搭建及HelloWorld教程完成环境配置。当虚拟设备显示主界面时,表示环境搭建成功。
理解Android运行原理及项目结构是学习Android的基础。通过慕课网的视频教程,可以学习到项目结构介绍、开盘指标源码Android项目目录结构等知识。系统学习Android可以从官方API指南、官方中文文档出发,同时阅读书籍如《Head first Android Developer》、《Pro Android》等。观看Mars、黎活明、慕课网的Android开发视频教程,进一步深入学习。
在学习过程中,官方文档、书籍、视频是不可或缺的资源。关注Android的最新动态,如Android 5.0棒棒糖版的新特性,紧跟技术发展。加入QQ群,与开发者交流,提高学习效率。记得利用搜索引擎解决问题,学习过程中遇到难题时,Google搜索往往能提供有效的解决方案。最后,GitHub上的开源项目是学习的宝库,通过阅读源码,可以快速提升技能。
自学Android开发虽有挑战,但坚持与实践是成功的关键。利用好上述资源,结合实践,你将能够掌握Android开发技能,成为Android开发者。
Spring Security5后基于Oauth2.1的Authorization Server 实现 (官方demo,稍作修改)
QQ群 说明 Spring Security5之后,实现Oauth不再推荐使用spring-security-oauth2。官方推荐了一种新的方法(github.com/spring-proje...)。 需要注意的是,该方式支持的ioc系统源码不是oauth2,而是oauth2.1。关于oauth2.1的详细介绍,可以参考:oauth.net/2.1/ 和 aaronparecki.com//1...。 摘自 oauth2.net 网站上对比 oauth2 的说明: 主要区别(以下使用翻译软件翻译,大致意思没错) 官方demo运行 根据 github.com/spring-proje... 上的说明,使用 gradle 命令运行即可。 复制官方代码(官网 userdetails 使用内存模式,我修改成了 jdbc,更加直观),使用 postman 进行测试。 代码位置:authorization-server 测试 查看自动创建的表结构: 浏览器访问:localhost:/h2-console... 点击 Connect: 我们看到创建了五张表,打开表会发现数据也被初始化进去了。 启动项目,请求授权码模式地址: 输入用户名密码(user1, password): 勾选授权 scope,点击 submit consent 按钮: 地址栏:baidu.com/?... 授权码 code=dPEZCnsiz2WPk5mWdnPImxbSQkbwK7-yPKmgJuR2NHbswtbXWZFjgZr6MEXfIqi8JhRourmlSSYVVfGuCN-ep8jbQwxHsqrUVeeY-1XRHkpqaQ2UM9-ulbTsU0mg 打开 postman 通过该 code 获取 access_token: 点击 send,返回: JSON 数据如下: 刷新 token 请求后结果: JSON 数据是: 简化模式(response_type=token)在 oauth2.1 被移除。 返回结果如图: JSON 结果: 之前以为是 bug,就提了 issue(github.com/spring-proje...),官方回复不支持。 但是有扩展方式。还没弄。具体可看我提出的 issue 的作者回复。 官方使用的是 in-memory 方式。本人通过查看源码发现还支持 jdbc 方式,redis 方式不支持。之后会根据 demo 修改一版 jdbc 方式,以及动态查询用户名密码的方式。 spring-security-oauth2 的实现方式,可查看我之前的笔记 知乎:zhuanlan.zhihu.com/p/... github 源码:github.com/xpp/spr... 本文内容 github 地址是:github.com/xpp/spri... 梦想越是美丽,就越是显得遥不可及。可奇怪的是,一旦你下定了决心,很快地,那些梦想就一一成为了现实!RTMP推流方案总结
RTMP协议简介,其全称为Real Time Messaging Protocol,是由Adobe Systems公司为Flash播放器与服务器之间音频、视频和数据传输开发的ps文件源码私有协议。RTMP协议像一个容器,用于装载AMF格式的数据或FLV中的视/音频数据,一个连接可通过不同的通道传输多路网络流,通道中的包遵循固定大小的传输规则。更多协议细节请参考《rtmp specification 1.0》。
RTMP服务器的选择有多种开源方案,如Nginx的rtmp插件,用于实时流推送,具体实现可参考另一篇博客。SRS(Simple RTMP Server)是一款国人开发的优秀开源流媒体服务器软件,使用C++开发,适用于直播、录播、视频客服等场景,提供丰富的接入方案和流变换功能,GitHub源码链接为:github.com/ossrs/srs。
crtmpserver是一款由C++语言编写的开源RTMP流媒体服务器,功能相对简单,与Flash Player的兼容性较差,但代码结构良好,适用于学习RTMP协议和服务器端编程。GitHub源码链接为:github.com/shiretu/crtm...。
livego是基于Go语言的RTMP直播服务器,Go语言为服务器性能而生,开发效率高于C/C++。GitHub源码链接为:github.com/gwuhaolin/liv...
基于Go的livego服务器解决了语言级别上的并发问题。node-rtsp-rtmp-server是使用Node.js实现的RTMP服务器,GitHub源码链接为:github.com/iizukanao/nod...
测试时,推荐使用大牛直播提供的推流工具,也可以使用FFmpeg进行推流。
RTMP推流器的选择同样多样,librtmp软件包含一个基本的客户端:rtmpdump,以及提供RTMP协议支持的库。FFmpeg也能实现RTMP推流,内部集成了librtmp,官方给出了muxing.c源代码示例。srs-librtmp是srs提供的一个RTMP库,可以推送H数据,但在Windows环境下存在兼容性问题。
音视频开发相关教程与资料可免费订阅QQ群:,领取学习资源。
谷歌语法Github及利用方式
GoogleHack,亦称谷歌语法,是一种利用Google搜索引擎对特定网络漏洞进行快速定位的技术。它能帮助搜索人员在海量信息中精准锁定目标,如URL中的特定字符、特定标题或敏感文件。通过使用`inurl`、`intitle`等操作符,可以缩小搜索范围,直达目标。
收集方式多样,主要涉及Google语法与GitHub搜索。
在Google语法中,`inurl`用于搜索URL中包含指定字符的网站,如查找包含`php?id=1`的网站;`site`则用于指定搜索范围,如搜索特定域名或子域的后台地址。敏感文件搜索则利用`filetype`操作符,如查找特定格式的敏感文件。邮箱、QQ等信息可通过类似`site`的操作符进行搜索。
GitHub作为代码托管平台,提供了丰富的搜索语法。例如,`in:name`用于搜索仓库标题包含特定关键字的仓库;`stars`和`forks`操作符则用于搜索具有特定评价或协作量的仓库;`size`和`pushed`分别用于搜索文件大小和最后更新时间,`license`和`language`操作符则用于搜索特定许可协议或语言的仓库。组合搜索如`user:test in:name test`则可以同时匹配用户名和仓库标题。
搜索时,可以利用特殊关键词如`@`后的邮箱、密码、配置信息等,以及特定连接凭证,如`security_credentials/connetionstring`等。
利用方式主要包括:
1. 通过GoogleHack快速搜集后台地址、敏感文件、测试环境、邮箱、QQ群等重要信息。
2. 利用搜集到的信息进行社工攻击或撞库,如使用邮箱、电话、QQ号等信息进行爆破。
3. GitHub不仅为搜集网站、框架的源码提供了便利,也能够获取注入用户名、口令、数据库配置等关键信息,对安全研究与防护具有重要意义。
NVIDIA Modulus .安装和使用方法
如果你对NVIDIA的Modulus .版本感兴趣,以下是你需要了解的安装和使用指南。从年开始,Modulus将进行重大更新,建议直接从.版本开始,因为它将成为新开发的基础,旧版本将不再维护,所有功能将迁移至此。 Modulus .开源,可在GitHub获取。新版本主要由两个部分组成:Modulus包和modulus-sym包。sym包整合了大量API接口,以下是部分核心模块的导入示例: from modulus.sym.hydra import to_absolute_pathfrom modulus.sym.solver import Solver
from modulus.sym.domain import Domain
...
from modulus.sym.utils.io.plotter import ValidatorPlotter
安装步骤如下:首先,从GitHub下载modulus源代码,确保选择正确的版本,然后构建镜像:
#docker build -t modulus:ci --target ci -f Dockerfile .启动镜像,在其中安装modulus-sym:
#pip install .可能需要额外安装一些依赖,如:
sudo apt-get install libx-6sudo apt install libgl1-mesa-glx
sudo apt-get install libxrender1
完成以上步骤后,你就可以开始编写并运行Modulus .的代码了。对于进一步的技术交流和疑难解答,我们建议加入以下QQ群: 群名称:英伟达Modulus仿真技术交流(PINN)群号:
这里是一个活跃的社区,可以与同行分享经验和解决问题。祝你在使用Modulus .的过程中顺利!动手做一个QQ 群聊机器人
QQ 机器人是与个人 QQ 号绑定的工具,可以实现自动回复和自定义回复,提升群聊互动效率。本文将指导您 DIY 一个 QQ 群聊机器人。教程源自 hwk 在 实验楼 的发布,地址如下:基于图灵机器人实现QQ群聊机器人。
实验简介包括:
了解 QQ 群机器人,通常是基于腾讯 SmartQQ 协议的开源项目。本文将结合图灵机器人的 API,构建一个能满足日常聊天需求的群聊机器人。
所需知识点包括:
学习图灵机器人的 API 使用方法。
实验步骤包括:
下载 QQRobot 源码:GitHub - zeruniverse/QQRobot。
在 Xfce 终端执行操作。
注册图灵机器人账号,创建和设置机器人。
在 QQBot.py 中添加图灵机器人 APIkey。
编辑 groupfollow.txt,加入需要监控的群名。
运行程序,生成二维码,通过手机 QQ 扫描完成登陆。
启动后,机器人开始运行,自动回复和响应群聊消息。
功能包括:
启动成功后,绑定的 QQ 号将收到自动回复。
通过其他 QQ 号发送消息指令,群聊机器人会执行相应的动作。
实验分析涉及:
登录验证、消息收发、好友管理、群聊和讨论组操作。
完整代码、步骤和示例可在 实验楼 查看。更多 Python 项目资源:Python 全部 - 课程。
关注公众号“实验楼”,获取更多项目教程,使用手机查看。
ET框架1:C#服务器 unity3d客户端 开源 github
ET框架是一个专门设计用于C#服务器和unity3d客户端的开源框架,极大节省了人力物力,使得多人游戏机制的开发变得简单高效。该框架最显著的特点如下:
1. 使用ET框架,你能够同时进行C#服务器端与unity3d客户端的开发,这样前后端开发人员能够直接进行沟通,无需繁琐的沟通成本。
2. 服务端采用组件式框架,实现了分布式服务器架构,使得服务器的扩展与维护变得更加灵活。
3. ET框架通过提供清晰的文档与示例,帮助客户端开发人员更好地理解服务器逻辑,反之亦然,促进了团队间更高效的合作。
在实际应用中,你将需要按照以下步骤进行安装与配置:
1. 访问github源码地址:github.com/egametang/ET
2. 随附的文档将指导你完成框架的安装与使用。
3. 你可以通过斗地主Demo源码进一步了解框架的实际应用。
如果你在安装与配置过程中遇到问题,可以加入QQ群:,随时与团队成员进行交流。
以下是详细的运行指南:
下载ET框架后,确保你的运行环境满足以下要求:
1. 使用VS,需要安装以下组件:.net 桌面开发、visual studio tools for unity、.netcore2.0。
2. 安装unity版本:.1.0p5到.1.2,其他版本可能不支持。
3. 打开unity,选择Egametang/Unity文件夹,启动项目。
4. 使用VS打开Egametang/Server/Server.sln并编译。
5. 在Unity中,配置命令行工具以启动服务端。
6. 启动web资源服务器。
7. 运行Unity,输入账号,登录,查看日志以确认连接Gate成功。
在开发过程中,需要注意以下常见问题:
1. VS .4版本vstools可能存在bug,遇到Hotfix工程问题时,需要重新引用UnityEngine跟UnityEngineUI两个dll。
2. 中文目录问题也是常见的错误源。
3. 确保已经安装了最新版本的VS tools。
在测试帧同步功能时,需要完成以下步骤:
1. 打开命令行配置,重启服务器。
2. 使用打包工具,选择PC进行打包。
3. 运行PC包,登录,进入大厅,进入场景。
4. 启动web资源服务器。
5. 运行PC包登录大厅,此时应能看到两个重叠的人物。
6. 点击鼠标右键即可移动人物。
完成以上步骤后,你便可以开始深入研究框架的代码。研究代码前,建议先详细阅读文档,对框架有一个大致的了解。在实践过程中,重构ET工程,将它融入自己的项目,是最快掌握框架精髓的关键。遇到问题时,随时在QQ群中寻求帮助,等到你的DEMO跑通后,再回顾文档,你会对框架有更清晰的认识。