留言板

有用功:3GPP提案下载太烦了,怎么破?

每次开会,都会跟踪几个研究方向。通信汪的日常,需要在会前做contribution review。

5G的饼越画越大,汪们无比激动,提案数目成倍增长。每次开会动辄上千篇提案,提案的编号都要升一位才能解燃眉之急。

Screenshot

看着翻了N屏还没到头的TDocList,汪同学的内心是崩溃的,眉头拧成了疙瘩。

下载需要看的提案,在3GPP的FTP上都不知道要翻多少遍,想到这些,汪同学不禁在心中又使劲骂了一遍:

“这哪儿是人干的活计!”

“看提案才是你汪该干的事儿,下载这种粗鄙的工作,就应该让那电脑干,反正咱也不用交电费!“”

码农斯基似乎洞悉了汪同学的小心思,探头过来搭话。

二人对视,会心一笑。

如果只是做Contribution Review,通过下面这个简洁的Work Flow和一个有效的工具,就可以把想看的内容单独收集起来。

Workflow的内容很简洁:收集、批量下载、自动保存。需要人做的事情就是收集阶段,从TDocList中筛选出提案号。而剩下的工作就交给3GPPFTPDownloader来做了。

下载地址在这里,区分系统哦。

Step 0:启动程序

系统上需要安装JRE。对于Windows系统,双击jar文件就可以启动;对于Mac,拜教主和厨子所赐,需要在终端中启动:


  java -XstartOnFirstThread -jar xxx.jar

程序启动后的主界面如下:

  • FTP Server:FTP服务器的url或者ip
  • Meeting Type:3GPP工作组
  • Meeting Name:某个工作组下的具体某次会议
  • Remote URL:FTP文件路径
  • File List:需要下载的文件的名称

Step 1:选择工作组

通过下拉菜单选择3GPP的某个工作组。之后,程序会自动更新这个工作组内的所有会议名称信息。

Step2:选择会议

Step3:添加提案号并下载

添加需要下载的提案号,每行一个。之后点击Download便开始下载。文件会自动保存在”程序所以在目录下/会议名称/当前日期和时间” 目录下。

Tips:

  1. 通过点选Manual,可以手动编辑ftp服务器和文件路径。
  2. 目标路径并没有指定到服务器的Docs路径上,因此,可以下载某次会议目录下的所有文件。例如,想要下载某次会议的meeting report或者其他zip文件,只需要选择某次会议后,输入会议报告的zip文件的名字(去掉.zip),就可以直接下载了。这和前面介绍的下载提案的方法一样。
  3. 通过修改程序目录下的meeting_path_cfg.cfg,可以自己定制需要呈现的工作组。格式:工作组的名字@ftp服务器上的路径,例如:SA2@/tsg_sa/WG2_Archd;增加、删除都可以,例如增加一行:LTE@/tsg_ran/WGs_LongTermEvolution
  4. 如果你偏爱脚本,可以尝试我以前写的一个shell脚本,没有GUI那么方便,但是体积小巧。

 

网易云-对象存储-图床上传助手

1. Justification

自打7牛挥刀自宫之后,我就把图床迁移到了网易云上,虽然不知道能用多久,但是目前还是很稳定。但这不是重点。图床迁移后,问题来了:原来付费买的图床上传工具失效了(原作者一句:不支持网易云就给我回绝了,真是…..拽啊!)。

本来我的需求不是很大,但是在用了一段时间NOS的命令行工具之后,最终,我还是决定自己动手。这主要是因为命令行工具用起来太不符合我的脾气(我怕麻烦):

  1. 选择图片和上传图片的工作流是断的;
  2. 上传之后文件的访问路径不能自动生成;
  3. 一次上传几十张图片的话,哪张是哪张根本分不清楚

其实,我对之前花钱买的iPic(哎呀,不好意思说名字出来了)的功能也有些不太满意,所以,趁着春节假期,索性自己把问题解决掉好了。

2. Objective

开发的Object Uploader的主要功能很单纯:

  1. 调用系统自带的文件管理器选择文件。虽然这种方法不如iPic灵巧,但是MacOS的Finder的拖曳、搜索方面的优势能够充分发挥。这也是我作取舍的原因之一;
  2. 调用SDK,按日期生成路径,上传图片。核心功能,没什么特殊的,这部分完全是按照SDK说明按部就班操作,原来用shell脚本,现在用python,而已。
  3. 上传路径和本地文件的关联。写文章的时候,需要在适当的位置插入适当的图片。使用图床的话,文章中插入的实际是图片的上传路径。一次上传多个图片后,能够方便地找到需要的某一张图片的正确上传路径,这是十分必要的。

开发工具一样力求简单:Python3 + Tkinter

3. Solution

准备

下载程序:

百度盘下载链接

创建一个文件夹,用来保存下载的程序,并创建一个纯文本的配置文件oss_configure.cfg,用来提供图床访问必要的参数。

oss_configure.cfg内容如下:

oss_configure
access_key
:your_access_key
secret_key
:your_secret_key
end_point
:your_end_point
public_visit_domain
:your_public_end_point
bucket
:your_bucket_name
需要注意 文件的第一行内容必须是oss_configure

这些信息都可以在网易云管理页面中的对象存储部分的设置里找到。所有信息不要加引号;end_point和public_visit_domain的信息分别为(以网易云为例):桶详情->域名管理->默认域名部分的外网end-point和访问域名,直接粘贴过来就可以,不要加https://之类的内容。

目前提供两种版本:

standalone版 (MacOS, Win64)

  1. 将主程序解压缩后放入刚刚创建的文件夹中
  2. MacOS:启动终端,并进入刚刚创建的文件夹中; Win64:进入文件夹
  3. MacOS:在终端中直接运行启动程序;Win64:双击就可以了
$ ./imgbedUploader_V1

pyc版

启动过程略微繁琐一点 。首先需要安装python3(Mac建议通过Brew安装),请自行百度。之后安装python3的软件包:

python3 -m pip install nos-python3-sdk pyperclip Pillow

接下来,将下载后解压出来的pyc文件放入刚才建立的文件夹中,并在终端中进入该文件夹,通过python3 运行。

python3 ./imgbedUploader_V1.pyc

Step 0 启动

如果oss_configure.cfg配置正确,程序启动后的界面如下图所示。

Step 1 选择需要上传的文件

点击Select File,在弹出的窗口中,选择需要上传的文件。目前,MacOS下我限制只能使用常见的图片格式(.jpg, .jpeg, .png, .gif, .bmp)。Win下理论上可以选择任意类型的文件,我没有测试。

文件选择好之后,界面上会有选择文件信息的提示。

Setp 2 上传文件

文件选择好之后,就可以上传了。点击Upload File。文件上传成功后,会生成两部分信息,一个是右上部的日志信息;一个是Remote File List中的引用路径信息(见下图)。

这里有几件事情需要说明。

首先,是上传文件的存储命名规则。某一天上传的文件会保存在bucket根目录下的当天日期目录下,文件名会被冠以上传的时间戳作为前缀。例如上图中1.jpeg文件是2019年2月7日21点29份47秒477上传的,所以这个文件就被保存为bucket根目录/20190207/212947477_1.jpeg,这些信息可以参见日志信息。

需要注意 这个机制是为了避免同名文件相互覆盖。不过产生的一个副作用便是:同一个文件上传两次,如果上传时间存在即使是毫秒级的差异,在图床上也是会作为两个文件来保存的。

其次,Remote File List中的内容是可以点击的。通过点击某一行,该行的文本信息(也就是某张图片上传后的引用地址)会自动复制到系统的剪贴板,方便粘贴,并且在界面底部会显示一个缩略图,用来指示这个路径的图像内容。见下图。

需要注意 这个缩略图并不是保存在服务器上的图片,而是来自上传的本地的图片。

Step 3 清理界面

为了方便管理多次上传的图片,退出程序之前,Remote File List中的内容是不会自动清空的。但是,对于有强迫症的我来说,一个清空按钮(Clean Remote File List)还是必要的(或许你可能注意到了,右上角的日志是随着你的操作,随时清空的)。虽然不会对你上传的文件产生任何影响,但我仍需要提醒一下:这是一个不可逆的操作。

2019: May the “FU” be with you

2018年农历腊月29,早早地放假回到家,却无心作别的事情。

环视了一圈,目光落在了爵爷的Tie Adv-x1上。闭上眼努力回想,竟然已经想不起来大约是在什么时候开始做的了。在农历旧岁的最后几点,消灭一个堆积来喜迎新春,是一件蛮有仪式感的事情。想到这里,心理不禁就来了斗志,赶紧摆上龙套和各种家伙什儿,煮上一壶咖啡下肚提神。开工!

爵爷的小船,似乎应该保养的不错,不过,从制作的角度看,显然这样必然导致最后的作品没有什么特点,毕竟一个崭新的飞船实际上除了飞船本身的设计以外,还能看什么呢?所以,还是要旧化。作品就是作品,只有表现出了真实的质感,才能有生命。

过程不表,直接看结果。

最后,在农六戊戌年的最后,预祝农历己亥年:

First Drone 从入手到起飞

尽量简短一些,作为memorandum。

1. 和无人机经销商了解以下信息:

  1. Pitch, Yaw, Roll, Throttle 分别各自在哪个Channel。
  2. Arm/Disarm的控制Channel
  3. 飞控模式Arco/Angle/Air 的控制Channel
  4. 图传的频带和具体频点或者频道号
  5. 电控兼容的品牌和具体型号,以及电控与遥控器的绑定方法。

Pitch,Yaw,Roll是用来描述飞行动作的,见下图。Throttle对于Quad来说,用来控制升里,就是控制沿z轴(换色轴)向上的驱动力。

Pitch-Yaw-Roll

2. 和遥控器经销商需要了解一下信息

  1. 是否兼容无人机的电控
  2. 遥控器是否需要专业电池驱动

3. 东西入手后的操作

3.1 遥控器的配置

OTX_flo

首先,通过上图简单了解一下遥控器的信息处理流程:控制指令(遥杆或者开关动作)和一些输入参数(input)以及经过Mixer混合后,再经过Output统一处理后,发送给无人机的电控。

  1. 确认遥控器和无人机兼容(例如都是FrSky D16模式)
  2. 参考遥控器的说明书和无人机电控的操作方法,完成无人机电控与遥控器的绑定操作(Bind)
  3. 配置input参数(例如100%)
  4. 配置mixer:这里需要说明:除了需要将input与Pitch, Yaw, Roll, Throttle四个source的输入混合后放到输出到对应的Channel上外,在这个步骤,还需要将遥控器上的开关等输入源(source)分别指定到用于进行Arm/Disarm选择以及飞行模式切换的channel上。如果你还配置了其他的控制模式的channel,也需要通过这个步骤,将这些channel的与遥控器上的输入源对应上。
  5. 将所有的开关拨到0的位置,Throttle遥杆拨到关闭的位置。

3.2 无人机的操作

  1. 接通电源
  2. 打开监视器,选择图传所在的频带和频点(频道)上
  3. 根据蜂鸣器或者OSD的显示,确认无人机已经与遥控器连接上
  4. 找个平稳的地方放置无人机
  5. 在遥控器上,调节Arm/Disarm开关,使无人机处于Armed状态
  6. 推Throttle起飞。

初次接触Quad,建议飞行模式选择Angle(Stable)模式。

4. 进阶调节

4.1 BetaFligt

  1. 和飞控经销商确认,是否支持BetaFlight。不支持,这部分就不用看了。
  2. 电脑上下载并安装BetaFlight Configurator。
  3. 打开Beta Flight,按照程序首页说明,安装必要的驱动程序(例如for Mac OS的一些驱动)
  4. 无人机卸掉电池,用USB线连接机身和电脑,在BetaFlight Configurator中选择无人机连接的USB端口,点击Connect
  5. 参考BetaFlight Configurator的网上说明,进行必要的飞行参数的调整。例如:参数备份,调整PID参数,校准飞控传感器、OSD显示参数、蜂鸣器报警条件。
  6. 配置页面有保存(Save)按钮,先保存在断开连接。
  7. 配置完成,回首页,点Disconnect断开连接。

4.2 OSD操作

如果飞控支持BetaFlight,在Disarm的状态下,用遥杆同时操作:
Yaw Left + Pitch Up
通过显示器观察,可以进入BetaFlight的OSD操作界面。

进入后:

  • 通过Pitch Up、Pitch Down完成模拟上下键的功能(例如用于上下移动光标);
  • 通过Yaw Right模拟确认按键(例如用于进入子菜单,选择项目等)
  • 通过选择“Back”项返回上一层菜单
  • 更改后,记得在根菜单中选择Save
  • 退出通过跟菜单的Exit。

4.3 模拟器训练

通过模拟器训练,可以在最短的时间内熟悉必要的飞行操作,特别适合零基础。

  1. 确认遥控器的接口:是否有教练口或者是否可以通过USB直接连接电脑
  2. 如果仅有教练口,请在某宝买和教练口形状和针脚对应的USB dougle;如果有 USB,直接连接电脑,遥控器模式选择Joystick
  3. 下载并安装模拟软件(个人推荐DRL,Steam 70元,简单方便快捷)
  4. 在模拟软件中配置遥控器(channel配置、校准什么的)
  5. 开跑。

Dark Soul 胸像

此次Dark Soul Remastered NS版,最吸引我的地方就是附带的这个特典。拿回来之后,觉得比卡带本身性价比还高。所以,特典留下,卡带退了。

这个胸像,得益于这个中世纪盔甲的题材,避免了很多琐碎的细节,在这个价位上,细节做得很好了。唯二不足就是衣服上的纹饰基本全糊了,再有披襟的纹理可能比较难恢复。Anyway,瑕不掩瑜,不处理一下太浪费了。

某个周末,烂事情放一边,开工。重喷底漆后,笔涂上色。

对比

主要漆色一览

几个小比例模型

小比例模型的好处不言而喻,只要笔就可以了,可以不用动泵,不用单独支桌子,不用考虑通风的问题。难度就是,线面关系,明暗对比,甚至发色情况,在小比例上都和大比例完全不一样。小比例模型的制作,更接近绘画,突出整体线条和面的质感变得更为重要。

For the horde!

周末在油管上 在看Top 15 Cinematic Game Trailer的时候 被安利了一段N年的魔兽世界的宣传片 英雄一句 “For the horde!” 引领大军冲锋的无畏场景 看得人心潮澎湃 恰好手边做了几个骷髅手臂 于是就想做个小场景。

3D打印了手臂、部族徽章和30mm战棋基座。高硬度海绵做成岩石。徽章部分,尝试了一下NMM,整体笔涂完成。

1

2

3

4

5

Mini AT-ST Diorama

Mini 星战 AT-ST + 袖珍场景。模型1/144,地台基座40mm战棋规格(3D打印),自制场景。适合摆放和把玩。

 

在DIY的路上前行

年纪大了 在我们那个年代 DIY还是个新鲜的名词 自己也义无反顾地投身其中 不论是开发 还是做东西 甚至写文章 不让自己手闲下来 把想法变成现实 大概这就是我对DIY的理解。最近打印了些模型 打磨地狱又开始了,平时太忙没时间,为了提高效率,必须上电动工具。我其实并不太感冒这些电动模型工具,价格偏高是一方面(相对于这个东西本身的价值),另一方面可用性太局限了(除了超声波刀)。但是,事儿赶事儿,周末就剩一天了,网购都嫌不够快,那么就自己来吧。

郡士和号手都有电动打磨工具,原理大同小异,和博朗电动牙刷的工作机制一样,甚至外形都差不多,所以自己做起来也非常容易:

  1. 准备废弃刷头一个,拔毛清理
    IMG_1321
  2. 制作一个用来固定砂纸的转接头,或者直接用原刷头的地盘也可以
    IMG_1325
    IMG_1326IMG_1327
  3. 剪裁双面胶和砂纸并固定在刷头上
    IMG_1328
    IMG_1329
    IMG_1333
  4. 完工,可以用了。

清理和清洗刷头,设计接头和打印,组装,1小时肯定能搞定。
如果你用的是博朗的高端牙刷,震动频率更高的话,那就高级电动模型磨了:)