1. 跨内外网远程操作Spark

    问题 我们知道通过反向ssh可以借助有固定IP的外网服务器登陆没有外网IP的内网主机,但是我们在真正使用的时候可能不仅仅需要远程登陆,可能还会需要内网机器中其他端口提供的服务。比如现在我需要在远处利用Spark程序去操作内网机器里的分布式系统进行工作,这就至少需要调用内网机器的7077端口(默认的Spark调用端口)和9000端口(默认的hdfs端口)。那么这时候我们应当怎么处理呢? 解决思路 最容易想到的解决方案就是同样利用反向ssh,将内网的9000端口映射到服务器的9000端口上。…

    Java, Linux, Spark, Rinetd, SSH阅读全文

  2. Eclipse下Spark+ScalaIDE开发环境部署

    刚开始学Spark,之前一直都是在服务器里用Spark-shell进行简单学习的,后来觉得这样实在是很不方便,于是就决定利用Eclipse ide来进行开发,不过这当中遇到了很多问题,搞了半天总算搞得差不多了,下面就记录下环境搭建的步骤方便重新配置。 当前环境 在配置eclipse的开发环境前,我已经在服务器中配置好了hadoop+scala+spark的环境: * hadoop 2.7.2 * spark 1.6.2 * scala 2.10.4 * jdk1.7 * Lin…

    Java, Linux, Spark阅读全文

  3. 利用反向ssh从外网访问内网主机

    前言 最近遇到一个问题,就是过几天我需要离开学校,而且到时候仍然想登陆校园网里的一台服务器进行工作;但是我又没有校园网网关的操作权限,不能做端口映射,也不能搞到校园网内部主机的外网ip,而且学校自己提供的vpn又根本没法用。研究了半天,总算找到了一个比较不错的利用反向ssh(reverse ssh tunnel)进行内网登陆的解决方案。 工作原理 之所以很多转发的方法无法应用在这里,就是因为内网主机对外网其实是不可见的,也就是说外部主机不能用一般的方法访问到内部主机。那么我们就想了,能不…

    SSH, Linux, Tools阅读全文

  4. Python多核编程分析

    简述 之前一直都用python的多线程库(比如threading)来写一些并发的代码,后来发现其实用这个方法写的程序其实并不是真正的并行(parrallel)计算,而只是利用单个CPU进行的并发(concurrency)计算。因此,多线程也仅仅只在处理一些被频繁阻塞的程序时才会有效率上的提升,比如网络爬虫里等待http返回等;而在CPU使用密集的程序里使用多线程反而会造成效率的下降。那么为什么python不把threading库设计成并发的线程呢?这是因为python本身有一个全局翻译锁,叫G…

    Python阅读全文

  5. 大文件分割与重组技巧

    简述 由于各种不同的问题,我们经常会遇到需要将一个大文件分割存储的问题。比如github里单个文件大小一般不能超过100M、比如FAT32文件系统里单个文件大小不能超过4G,比如我们想把某一个数据文件分割存储和查看,比如对日志文件进行分割保存等等。 在ubuntu下,这个工作其实相当简单,只需要牵涉到两个命令:split、cat. 文件分割--split split命令用来将一个大文件分割成多个小文件,可以固定大小分割(常用于分割二进制文件),还可以固定行数分割(常用于分割文本文件)。…

    Linux, Tools, Shell阅读全文

  6. Makefile常用模板

    写Makefile大概是每一个合格的C/C++程序员的基本功吧,几乎所有C语言写的开源项目都会用Makefile或者类似的Cmake来组织和编译,可见这个是有多重要。不过说白了,Makefile其实下面就简单记录下Makefile的常用模板,并且附带了自己总结的注意点方便以后查找使用。下面这两个模板是用来搞guisan的。 简单项目模板 简单小程序的makefile,一般情况下编译少量的、不分头文件的项目的话用下面的模板就够用了: CC =g++ INCLUDE =-I../i…

    C/C++, Makefile阅读全文

  7. SDL2的GUISAN库简介

    简介 GUISAN是一个基于SDL2的开源的GUI控件库,原本是为了一个叫GUICHAN的小游戏而编写的框架。虽然和Qt、C#中的GUI控件没法比,但是他更加简单,可以更好的通过他的代码来进行框架的研究学习。 源码 官方的版本托管在kallisti5的github上,不过由于它是用Sconscript来编译的,对于大多数人来说不是很习惯,因此我把他用makefile重新编译了一遍,把静态库独立出来方便以后的使用,同时顺便删掉了一些文件,并且用doxygen生成了一个文档方便学习。 我把…

    C/C++, SDL, GUISAN阅读全文

  8. Doxygen工具简单使用

    简述 Doxygen是一款非常方便的文档生成工具,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java等语言,据说也支持python等。用他不仅可以根据注释生成文档,而且还能利用graphviz工具生成类图以及类中的函数调用关系,并且支持html、latex、rtf等格式的输出。 安装 有apt支持,直接$sudo apt install doxygen即可。 编写注释 即使不是刻意采用doxygen工具的标准语法,我们也是可以用doxygen生成文档的,只是他提供…

    Tools, C/C++, Doxygen阅读全文

  9. 神奇的视觉错觉现象

    来源 下面是从MIT的Perceptional Science Group中的一个小分支Lightness Perception and Lightness Illusions里找到的几个十分经典的视觉错觉现象的动画演示。当然,我并不是闲着无聊来看这些玩意的。其实现在炒的火热的深度神经网络就是从模仿视神经网络的构造演变而来的。尤其是图像处理方面的网络,他的卷积和池化操作基本都是从视神经对图像进行处理的过程中得到的灵感。没事多研究研究视神经系统的现象,说不定还能让我们更好的理解人工神经网络呢。。…

    Anecdote阅读全文

  10. Swf转mp4+mp4转gif等格式的方法

    前言 我们都知道swf文件(ShockwaveFlash的简称,读作swiff)在前几年是非常火的,由于他是基于矢量绘图的flash动画文件,他的图像效果,交互效果等都非常出色,而且文件本身还很小巧,尤其适合在网页端进行显示,以至于很多的演示视频,甚至小游戏都是用swf文件来保存的。不过近几年随着Html5的发展,他在移动端的优点渐渐消失,甚至很多浏览器也开始不支持flash插件。而且如果在电脑上运行还得额外安装flash player,很是麻烦。比如很多情况下,我们还是需要在网页中播放swf…

    Linux, Tools阅读全文