月色的部落格
我们来到这个世界上,只是为了看一看月亮
-
分享一个很通用的Makefile编写Makefile是一个苦乐交织的事情,快乐是因为从一堆需要手工逐个处理的编译过程,进步到一条命令完成,看着代码顺畅的在屏幕上滚动,编译为最终的产品,那个过程无比愉悦;而痛苦则是,写代码已经很累了,写完代码还要编写Makefile,这多出来的一点工作,很有点最后一根稻草的感觉。最近整理手头的几个项目,把C语言类的Makefile抽象、合并了一下,形成了一个比较通用的编译脚本,这里分享一下:...
-
在Mac电脑编译c51程序如果不是Seven问起来,我以为C51这种东西已经属于历史遗迹了。不过简单搜索了一下,发现c51老而弥坚,仍然茁壮的生长着。原因据说,一方面是有很大的用户群和既有的软硬件资源,另外一方面,的确在很多的高校教学中仍然占有一席之地。其实个人感觉,高校课程的更新真的是需要再加快了。不过不管如何,作为入门类的单片机,c51还好啦,这些学习的经历,并不会浪费,学生能够很快的转化到其它平台上去。Seve...
-
golang子进程的启动和停止今天接到一个任务是将原来运行在mac的应用移植到linux,原因当然是因为客户那边当前是linux环境,也不想再采购mac电脑。通常来说,这个工作并不难,因为我选用的服务器端技术是c或者golang,这两种技术具有很好的可移植性,而且大多是重新编译即可运行,所以接到任务的开始并没有把这个当一回事。跟想象中的也差不多,搭建好linux测试服务器,在mac上把运行很久的应用重新交叉编译了一遍,部...
-
Ubuntu16.04LTS appstreamcli报错的处理
“”
某台机重装两次ubuntu16.04 LTS版本都有开机报错,但一闪而过难以看清,后来尝试apt update,在下载完更新索引之后报错,从而确定了报错信息:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'尝试强制重新安装appstreamcli之后故障消失,但不知道造成的原因是什么:#先停止当前的运行sudo pkill -KILL appstreamcli#下载主程序和库的软件包wget...
-
AngularJS2+调用原有的js脚本昨天一个话题说关于AngularJS2以后版本的两个小技巧,不料引出了另外一个话题,话题起始很简单:“很多的前端框架并不复杂,比如JQuery,引入即用,实时看到效果,多好。到了Angular2一直到现在的版本5,一点改进没有,还要编译,还要部署,原有的JS脚本也不能用了。”细想起来,这个话题的帽子并不小,至少牵扯出来一个关键,AngularJS2及以后的版本,其框架之下的JS代码,跟HTM...
-
在国内使用golang的小技巧(图文无关)go是一种好语言,从业几十年,接触到go语言就有一种“众里寻他千百度,眸然回首,那人就在灯火阑珊处”的感觉。然而其实就是从最近开始,使用golang碰到两个大麻烦,每天几乎都有很多痛苦加身,一个麻烦是下载各种组件包,另一个麻烦是查阅文档手册,为什么是从最近开始就不解释了。这两个麻烦归根结底的根源其实是一个,都来自于我们那个伟大的防火墙。问题1,下载组件包,最大量的组件包都来自于官...
-
Angular2+的两个小技巧Angular2以后已经非常充分的面向对象化,所以很多原来在javascript中积累的技巧,都需要做出相应的调整。检测当前浏览器类型、版本及设备类型,推荐使用:https://github.com/KoderLabs/ng2-device-detector。github页面的介绍已经写的很详细,请直接阅读原文文档。这里只讲几个重点:1.当前的AngularJS版本已经是5,已经有人对上面的...
-
Unix程序员的Win10二三事macOS延续自BSD Unix, Linux则是从内核开始重新编写但延续Unix使用方式的Unix。所以mac还有linux程序员,一般都算是*nix程序员,尽管其中还有不少的区别。Windows从版本10开始做出的最大改变,可能就是内置的linux子系统,原本的安装方式很简单,网上很多介绍,一般就是三步:1.设置中打开开发人员模式;2.windows组件中安装linux子系统;3.在DO...
-
在Ubuntu上搭建kindle gtk开发环境某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层。不过kindle更注重简单、节能、稳定。Amazon一向认为,功能过多会分散人们阅读时候的注意力。Kindle底层的Linux比Android保持了更多的linux兼容性,可以使用GTK或者QT编写程序。QT适合编写大的、独占界面性的应用,比如多看就曾经发布过一个Kindle之上的版本,现在还有很多人...
-
苹果手机上下载的文件在哪里?(图文无关)昨天在微信收到一个大文件,73M,突然意识到,微信升级,终于冲过了30M的文件传输限制。接下来的问题,这是一个开发工程文件,要在电脑开发环境使用,怎么把这个文件传输到电脑?正常的方式是在电脑登陆电脑版微信,然后手机上转发到“文件传输助手”,电脑上就可以收到,然后重新下载。——不过这里有两个小障碍,如果这时候没有外网怎么办?如果网速很慢怎么办?如果是规范的文件,比如视频,比如图片,...
-
K60平台智能车开发工作随手记(图片仅为示例,并不一定固定为这种造型)第十二届全国大学生智能汽车竞赛有一个分项是光电四轮车的竞速(任务A),Seven她们组采购到的配件使用了freescale Crotex-M4内核的CPU,TSL1401 CCD摄像头进行道路识别,从网上搜索了一下,应当是K60平台的的一个变种方案。这个方案基本平台使用IAR系统开发编译、调试及烧录。IAR其实是一个很昂贵的系统,还好这次真的是纯粹的教...
-
使用Jekyll和github搭建自己的个人博客(图文无关)如你所见,终于用Jekyll在github搭建了自己一个新的栖身空间。独乐乐不如众乐乐,这里把相关的环节、技术、注意事项等做一个总结,希望能帮助更多人顺利上手。相关资源首先是几个推荐链接:jekyll中文官方网站,官方网站的介绍还是最全面也是最权威的,无论如何,你都应当在这里花费你最多的时间。当然,官方的介绍比较系统,但可能还是太细致了,如果你耐心不够,也可以从下面一些文章入手:...
-
使用ffmpeg做简单的音视频剪辑(图文无关)说是”简单”的音视频剪辑,其实在日常的音视频工作中,也应当是最常用的功能。使用ffmpeg做音视频的剪辑,缺点当然显而易见,就是使用命令行操作,操作繁琐,大多数人都不适应。但是也有至少两个优点是用其它方法甚至专业视频处理软件所不能比的:1.程序小,运行速度快。2.操作是在原文件基础上直接处理,不经过传统视频处理软件的再次渲染环节,没有质量损失。3.对技术人员来说,可控性强,可以用...
-
安装Homebrew
“The missing package manager for macOS”
很多人问过我为什么选择苹果电脑,一个糙老爷们,又不是爱炫的小姑娘。其实用苹果电脑的人,特别是在中国,“码农”占了很大一部分。能够使用庞大的开源社区资源比如GNU并从中汲取营养,是“码农”们重要的工作模式。而使用GNU资源,或者使用LINUX系统,或者,也就只有Mac电脑可选了。而且作为一个有大厂支持的操作系统,在选择商业软件、高水平工具的方面,比LINUX又有了不少优势。其实最近微软WINDOWS阵营也做了不少改变来应对这种情况,包括virsual studio系统支持Linux/Mac多种平台,Win10x64中支持内置的LINUX子系统,不过想达到Mac与生俱来的GNU亲和能力,恐怕还需要不短的时间。Homebrew安装非常简单,请访问Homebrew官方网站查看最新的信息。一般情...
-
在Mac上安装ffmpeg
“”
ffmpeg是目前开源社区最牛逼的视、音频处理工具,没有之一。ffmpeg的使用文档、开发文档浩如烟海,那不是简单能说清的,到官方网站啃文档无论如何你也躲不过去,真需要的话,还是早点开始吧。这里只说在Mac电脑的安装,假设你已经安装好了Homebrew,打开终端在命令行执行:brew install ffmpeg这就完成了最基本的安装,应当能应对大多数人的需求。进阶安装:brew install ffmpeg --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --wit...