2020-06
23

做到了

By xrspook @ 10:27:38 归类于: 烂日记

昨天我终于用python写出了把点点转化为WordPress的脚本。这个东西我确信是可行的,因为python的转换过程中没有出错,这就证明没有遇到奇怪的事情。用别人脚本的时候,把转换好的文件上传到WordPress,我总会担心不成功,但我自己写的脚本,我知道该注意些什么,哪些参数是现在的WordPress必须要求有的,所以只要python的转换不出错,我的WordPress导入就不会有问题。因为点点的文章有9000多篇,要从后台管理界面导入到WordPress,会非常耗时间。如果一篇文章需要两秒,完全导入就需要5个多小时,所以我没有做这种事。我挑选出22篇,各个类型都有的,试验导入,结果非常成功,网页的效果也很好,完全按照我的意思生成了。我觉得如果要快速解决问题,估计我得在数据库端导入。之前把文章导入到WordPress,因为要尝试不同的版本,我得不断地导入删除,但删除的文章太多的时候,速度很慢。后来我暴力地在数据库那里直接写删除语句,结果秒杀就完成了。现在我发现了一个更干净的方法。直接把关联WordPress的数据库里的内容全部删掉,这也是一个秒杀的过程,而且绝对不会留下任何的手尾,比如文章删除了,但是分类和标签仍然在那里。可能某些东西已经不存在了,但是计数还停留在一个很大数值,之所以这样,肯定是因为我删除文章的时候不够艺术。与其让里面留那么多乱七八糟的东西,还不如直接把数据库清空。因为我这是单机上的WordPress,我纯粹只是用来测试。这样的删除是最快捷的。大概我从上周,才突然领悟出可以这样。别人之所以要在数据库里写语句删除文章或者标签,是因为不能删掉一些不应该删掉的东西,但我没有这个顾虑。既然在数据库层面可以快速的删除,那么理论上也应该可以从数据库层面快速的导入。之所以有这个想法,是因为我发现WordPress的插件有些是针对数据库的,有些是针对WordPress自带函数的,数据库层面的查询要自带函数快非常多。现在我已经学会了转换适配后台界面导入的文件格式转换。下一步大概我得学习一下如何在数据库层面进行导入。这么高端的做法,貌似之前我还没有听说过。在网站迁移的时候,的确是把数据库打包,然后重新放到别的地方的,但那个数据库是本来就已经存在的。从一个地方挪到另外一个地方,原封不动地,但是我却要把大量的数据以快速的方式导入到数据库,并且还得按照WordPress的脾性建立各种关联,显然这貌是非常不简单,但理论上应该可以做到。

我不知道我的python到底学成怎样了,但起码我可以用那个东西实现我自己的愿望。相比于书本的习题,我觉得实现自己的愿望更有成就感,虽然其中有很多问题完全只能靠自己,没有参考答案。虽然总的来说,脚本不是我一个人写的,我是站在巨人的肩膀上修改而成,但BlogBus和点点的结构还是有差异的。最幸运的是某些我不知道该用什么手段实现的东西前人已经给我指明了方向。昨天我只是把脚本写出来了,接下来我要把脚本优化,一些老是翻来覆去说的句子完全可以把那作为自定义函数。到底什么东西应该泛化,应该泛化到什么程度,这个我还没有想好。昨天之所以可以这么迅速地完成任务,大概是因为在我开始之前先做了个思维导图,明确了我到底要做些什么。基础数据有哪些,应该在哪里取数,需要判断的参数有哪些,各自的参数有什么特性,能不能合并同类项。之前我就写过类似的东西,但是跟思维导图比起来,之前我写的那个真的很水。有思维导图、有专业的思维导图软件,人的思路可以非常快地展开。整体定下来,下面的事情就只剩下一步一步地实现。我做梦也没想到,自己这次居然这么高效。某些我没有把握能快速解决好的问题,昨天不知道为什么很多都迎刃而解了。转换一个30多MB的XML文件,我用了16秒。转换出来的文件大小为22MB。我觉得应该可以更快,但怎么才能更快呢?文件里的数据结构是我没有考虑过的,我是不是应该从那里入手?一些相同的判断,大概我应该做一些合并。

追求更好是没有尽头的。

2014-10
23

从Bryton到Nike+

By xrspook @ 21:41:30 归类于: 烂日记

虚荣心的满足是个无休止的过程。但其实,我想把自己的运动数据整合发布这也叫虚荣心?当我开始Nike+的时候我想都没想过自己会搞上个一年,当然我也没想过自己要玩多久就不玩了。一开始的时候也用过益动GPS和Runtastic,但那都是在我用了Nike+之后,一直都在用Nike+,直到有一天我知道以小米1S青春的电量和Nike+运行需要的流量和GPS,我根本撑不完一个42.195K耗时肯定要5个小时甚至以上的全程马拉松,我才意识到,在跑马这个问题上,我得有别的对策。Bryton就在我纠结要买Garmin 620还是220的时候横空出世了。进而发现在我跑得不快的时候Bryton C60的数据要比Nike+的靠谱,而当我不是在绕圈而是在城市路跑的时候Nike+又通常会多给我距离。用任何人都有的智能手机app和专业的GPS心率表比当然差距巨大。小米1S青春的价格和C60差不多呢!如果C60不是因为Amis系列要出所以降价的话,手表的价格比手机的价格还要高!当我在绕圈的时候不用带腰带不用带手机真心爽歪了,但在广州路跑的话还是要带手机的,不过在不用Nike+的时候手机就只是手机,用来通信,用来在跑完的时候截图记录实时天气状况。

好吧,我又说歪了,又说了一大通我曾经说过了的东西。

但其实我今天要说的重点是我把Nike+的数据导了出来,然后又全部导进了Strava,Strava的分析和展示都很不错的说,Bryton可以一键上传到Strava,所以Bryton以来我一直有在Strava记录。2013-11-03和2014-03-29那两天Nike+的GPS简直就是神经病,出来的数据乱七八糟,导入也毫无意义,只会让我的所有个人记录都乱套。貌似在Strava是无法手动修改数据的,所以直接把那两条删掉就好。Nike+的数据导出了,但我还想把Bryton的数据导入到Nike+里。一直以来,要把数据导入到Nike+貌似就只有通过Garmin这华山一条路。估计是因为使用Garmin的人多,高手在人间,所以几乎没听说过其它可以成功把数据导入到Nike+的。经过一番折腾后我得出结论,Bryton的tcx文件能通过网页直接上传到Nike+,但明明有GPS线路的却没了。把Bryton以gpx输出,然后导入到佳明,通过佳明上传到Nike,路线有了,但消耗的卡路里和心率却消失得无影无踪。世界上怎么会有如此坑爹的情况啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。好吧,和地图比起来,我更看重心率数据。反正我不会拿Nike+的截图去到处晒了,有地图也是偏离的,有地图也是非常难打开的Google,随它去吧。所以,现在我要做的是重新把用佳明上传过的13条到Nike+的数据全部删除,然后苦逼地下载所有2014-09-11(含)以后的全部Bryton数据,然后一个个上传到Nike+。

处理这些运动数据从来都没少花过我的时间,泪奔~ 还记得某个早上我打开一条一条的Nike+数据录入到Excel,还不只一次!第一次是录入距离、时间和配速,第二次是录入天气和卡路里消耗,都是血与泪的回忆啊啊啊啊啊。

最终,我和 @追小命 得出了Bryton导入到Nike+比较靠谱的方法:把Bryton的数据上传到Strava,在Strava导出格式为.gpx的文件,上传到Garmin Connect(在活动页面,必须是完整的活动页面才有上传按钮!),通过Garmin Forerunner tcx to Nike+ Converter & Uploader把Garmin的数据上传到Nike+。用了3个中间体才终于实现Bryton到Nike+!这样导出的数据距离、时间、配速、单公里配速、海拔变化、心率都有,唯一就是卡路里那里没有数据,从Bryton到Strava是有卡路里数据的,虽然二者不同,但从Strava到Garmin就没了卡路里数据,当然从Garmin到Nike+就继续没有卡路里数据了。但卡路里不卡路里我完全没放在心上,我都不看的。我最看重的是有没有GPS路线图以及心率数据。这两项都有了,我就很满意了。但这般搞简直就是折腾到极致啊啊啊啊啊啊啊啊,不是有强迫症的绝对不会做这种事!

归档:2014-10-23 宁静海(六)。其实这个章子我星期二晚上就刻好了,星期三晚上就完成试印和照相,只不过今天才上传而已。

2014-10-23_stamp01

2014-10-23_stamp02

2014-10-23_stamp03

2014-10-23_stamp04

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress