个人技术随想

星期天Pluma

前言

因为一些缘故,接触了一下对空间地理数据的分析工作。忙完以后,想了想决定写下这篇文章,方便日后如有需要,可以快速查阅,也供后人参考。

背景条件

在我的分析过程中,需要使用PostgreSQL,但我之前用MySQL/MariaDB比较多,稍微花了一点点时间适应。怕下次忘了,干脆写出来。

本文还假设你已经具备了最基本的SQL,尤其是MySQL知识。有了这些基础知识,我们的适应就会非常迅速。

阅读全文 »

前言

因为一些缘故,接触了一下对空间地理数据的分析工作。忙完以后,想了想决定写下这篇文章,方便日后如有需要,可以快速查阅,也供后人参考。

背景条件

我们主要是针对给定的空间地理数据(如GeoJson,Shapefile)进行一些数据提取和分析,获得我们想要的分析结果。本文不讨论这些数据如何收集,抑或是如何编制,我们只讨论分析方面的内容,并且也不会涉及非常深,因为本文重点更在于,快速介绍对地理数据进行分析的大致方法,而具体的分析思路、分析流程,是各位灵感发挥的重要地方。

本文会涉及到对PostgreSQL数据库的使用,建议未接触过PostgreSQL的读者自行查阅相关的基础资料。不过,假如对基本的SQL,特别是MySQL/MariaDB有基本的了解,甚至是一定的使用经验,可以参考本文的前序文章在MySQL基础上速通PostgreSQL

阅读全文 »

前言

想必各位对ASP.NET Core容器化部署,特别是微软非常喜欢强调的 微服务(Micro-Service) 概念有一定的兴趣。

这一过程需要使用到ASP.NET Core, Docker, Nginx三个组件,要让它们相互良好地配合起来,还是需要精心编写一下配置文件的。

然而,当真的开始着手实操的时候,假如阅读微软文档给出的一些文章或者链接,例如:

或许对于幼儿园的小朋友来说,这些文章可能显得比较幼稚。但对我这种饭来张口衣来伸手的大学生来说,这些文章只能说刚刚好。把文章拼起来就是需要的答案,可惜在尝试的过程中会显得有些不适。所以不妨总结一下,如何将一个ASP.NET Core Web应用部署到Docker中,然后用Nginx做反向代理进行访问。

阅读全文 »

前言

叔叔我啊,最讨厌不能赚钱的东西了。

今年不知道哪个版本号更新后,Windows应用商店里的B站客户端下载的视频即便设置导出为MP4文件,也无法直接用通用的视频播放器播放,这实在是有失体统。偌大一个公司开发的软件,怎么能“写错”这么基本的功能呢?

问题分析

MP4文件头为三个00字节,这是公开的标准。我们将从B站上随意下载的一个视频放到十六进制编辑器中,可以看到

1
2
3
4
5
6
7
Hex View  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

00000000 FF FF FF 00 00 00 20 66 74 79 70 69 73 6F 6D 00 ...... ftypisom.
00000010 00 02 00 69 73 6F 6D 69 73 6F 32 61 76 63 31 6D ...isomiso2avc1m
00000020 70 34 31 00 00 00 08 66 72 65 65 04 2B B2 37 6D p41....free.+.7m
00000030 64 61 74 00 00 00 5C 06 05 58 B3 E1 63 30 8C 3C dat...\..X..c0.<
00000040 9E 4F C2 39 81 09 7E AA A5 2E 20 42 49 4C 49 41 .O.9..~... BILIA

后面都是很正常的MP4文件内容,唯独在文件前端,多出了三个FF字节,这就是导致下载的视频文件无法被通用视频播放器播放的原因。我想肯定是程序员不小心写出来的bug啦,才不是叔叔想要赚钱呢!

解决方法

那么接下来,我们就帮粗心的程序员修复一下下载的文件,让它们能被正常播放吧!

如果电脑上有Linux环境(WSL也可以),那就是再方便不过的事情啦。只需要执行如下命令:

1
tail -c +4 YourLoveYourLife.mp4 > LemonRipe.mp4

其中,tail读取文件内容并输出到标准输出中。-c +NUM参数,代表从NUM位字节开始读取文件内容,如上面的-c +4表示从第4个字节开始读取文件(跳过前3个FF字节),YourLoveYourLife.mp4是你使用Windows哔哩哔哩客户端下载的视频文件路径,LemonRipe.mp4是最终你生成的可以用第三方播放器播放的视频文件路径。使用>进行输出重定向。

前言

前几天在咸鱼上买到了一块龙芯的电脑主板,CPU型号是龙芯(Loongson) 3A3000,芯片组似乎是780E。回来装系统的时候遇到了不少麻烦,这里记录一下,如果能帮到后来者,那自然是最好不过。

系统选择

实际上,我仍然推荐有条件的用户,使用龙芯官方适配的操作系统Loongnix,因为这是龙芯优化过的系统。

只不过,因为mips64el架构上的Loongnix是基于Fedora发行版的,且版本古老。我个人习惯的环境是Debian,只有LoongArch上的Loongnix才是基于Debian制作的。况且,Loongnix默认带一个GUI,连服务器版都带,我不是很喜欢先装后卸,因此我还是希望安装一个相对干净的Debian系统上去。

阅读全文 »

(2022年4月12日)弃更说明

这个系列的文章姑且需要告一段落,原因非常简单——关于最佳架构的讨论,无论是在Github上,还是在微软官方提供的实例/电子书中,都已经得到了较多的讨论。我仔细思考后,发现没有手把手开始再写一次的必要。

目前,关于ASP.NET Core架构的最佳实践问题,我打算先静下心来,仔细读一读相关的书籍和源代码,相关内容的更新,也暂时将切换形式为读书笔记之类的内容。

毕竟,如果不读书,一昧输出自己的观点只能是误人子弟,圈地自萌罢了。

前言

终于考完期末考试了,趁着我的手机游戏还在清空体力,让我们先开个题目,即:

ASP.NET Core 6 Web API 最佳实践探索

开这个坑,主要是想记录一下自己写ASP.NET Core Web API程序时候,学习到的一些关于程序架构设计,项目的拆分和设计这方面的内容,或许这会使得我未来写项目时候,不至于像现在这样东拼西凑。

写了一半以后回来的补充: 写着写着发现文体又变成了新手入门体,面面俱到,然而这样不太利于这一系列文章的展开。所以,文章假定各位读者具有一定的Web开发基本常识。这样接下来会轻松很多。

阅读全文 »

自从Eclipse基金会将Java EE转到Jakarta EE后,一些软件包的名称就发生了变化。而最新版的Tomcat 10,也将jakarta作为默认的命名空间。因此,从未来的角度考虑,我们新建Java Web项目的时候,就应该使用jakarta而不是javax了。

在IDEA里边,选用哪个命名空间,有一个选项可以直接切换。而如果使用的是开源的IDE Eclipse JEE版本,情况可能会让新手摸不着头脑。为了避免日后再次踩坑,这里记录一下,如何使用Eclipse jee新建一个web项目,并使用jakarta命名空间以兼容Tomcat 10或以上版本。

阅读全文 »

为什么要写这个呢?

主要吧,现在在Windows上,不管有什么多种多样的shell移植如Msys,Cygwin之类,用得最多最方便的,特别是和我目前主要使用的两个IDE/编辑器: Visual Studio与Visual Studio Code最相合的,肯定是Powershell。

但是,默认的Powershell自动补全非常难用,可以自动补全的参数就寥寥几个。我觉得还是可以稍微改进一下。

阅读全文 »

最近需要用Latex编写文章,总有为选择的环境发愁的时候,但Tex Studio的操作体验不能说非常好,字体显示,自动补全都比较麻烦。从易用性角度还是选用了VSCode。一开始以为配置VSCode使用LaTeX会非常麻烦,但实际上,这比想象中简单很多。

阅读全文 »
0%