Wednesday, May 20, 2015


Some people have asked me in the past what traffic in my IRC channel looks like. Here's a glimpse:

[16:38:20] <@Kamilion>
[16:38:21] <@Skynet> Title: A database of SMS cards: The technology inside IBM's 1960s mainframes (at
[16:45:02] <+Irrelium> Anyone know of a minimal distro (no gui) I could use as a live cd that would have all these things installed by default? Bash Binutils Bison Bzip2 Coreutils Diffutils Findutils Gawk GCC Glibc Grep Gzip M4 Make Patch Perl Sed Tar Texinfo Xz
[16:45:14] <@Kamilion> yes, ubuntu.
[16:45:21] <+Irrelium> Does ubuntu come with gcc?
[16:45:54] <@Kamilion>
[16:46:21] <@Kamilion> it's fairly trivial to pull it's squashfs out and add more packages.
[16:47:02] <@Kamilion> in fact, that's how I make kamikazi.
[16:47:25] <@Kamilion> there's also other stuff like crunchbang and tinycorelinux
[16:47:35] <+Irrelium> I don't need super minimal
[16:47:38] <@Kamilion> which you could probably find some Development addons for
[16:47:42] <@Kamilion> and parted magic
[16:47:42] <+Irrelium> I just don't need a bunch of extra stuff in it
[16:47:42] Skynet jots down a new quote for Irrelium
[16:47:48] <@Kamilion> but the developer of that wants monies for it now
[16:48:01] <@Kamilion> I used to use that one myself, honestly.
[16:48:06] <@Kamilion> but it does have a GUI.
[16:48:19] <@Kamilion> any reason you don't want a gui?
[16:48:35] <+Irrelium> Less download time :P
[16:48:43] <@Kamilion> cause you can use kamikazi
[16:48:53] <+Irrelium> My goal here is to be lazy
[16:49:02] <@Kamilion> then use kamikazi to open it's own ISO, and remove the packages you don't want/need.
[16:50:10] <+Irrelium> Actually forget being minimal, download time isn't too bad anyway
[16:50:14] <@Kamilion>  < --- I think I'm sitting at just north of 800mb
[16:50:20] <+Irrelium> I just want a distro that has that stuff installed by default
[16:50:38] <@Kamilion> yes, kamikazi is set up for C and python development.
[16:50:44] <+Irrelium> Ok
[16:50:50] <+Irrelium> Does it boot to GUI by default?
[16:50:52] <@Kamilion> well, python development that requires built C extensions
[16:50:57] <@Kamilion> yes, and easily disabled
[16:51:05] <@Kamilion> there's a nogui flag
[16:51:34] <@Kamilion> grab the ISO or USB stick image
[16:51:46] <@Kamilion> (4GB USB stick minimum for the image)
[16:52:09] <+Irrelium> I am actually going to use it in virtualbox
[16:52:17] <@Kamilion> oh
[16:52:34] <@Kamilion> in that case, make sure you pick the second option from the ISO's boot list
[16:52:40] <+Irrelium> Ok downloading now
[16:52:42] <@Kamilion> so it doesn't use Xen
[16:53:14] <@Kamilion> I tried quite hard to make it generally useful
[16:53:31] <@Kamilion> so if there's anything missing, let me know and I'll pull the package in.
[16:53:37] <+Irrelium> Ok cool
[16:54:05] <+Irrelium> Another thing, is there any way to have an os take up the whole window in virtualbox without having a gui and installing the guest extensions?
[16:54:20] <@Kamilion> sure, change resolutions.
[16:54:48] <@Kamilion> sec, there's a tool to change fbcon's resolution, i think it's called fbset or something
[16:55:01] <@Kamilion> otherwise just use vga=ask on the kernel command line
[16:55:07] <@Kamilion> and pick a display mode from the prompt
[16:57:07] <@Kamilion>
[16:57:09] <@Kamilion> yeah, fbset
[16:58:49] <@Kamilion> ah!
[16:58:58] <@Kamilion>
[16:59:12] <@Kamilion> I have to re-roll the ISO anyway to apply updates. I'll add fbset in.
[17:01:33] <+Irrelium> Ah cool
[17:01:38] <+Irrelium> Let me know when you are done
[17:02:00] <@Kamilion> be about a half hour.
[17:03:33] <@Kamilion> this takes longer than normal cause there's a kernel update too
[17:03:39] <@Kamilion> so I have to rebuild the extra kernel modules
[17:04:16] <@Kamilion> as well as having to update the builder VM so it's running the same kernel as the ISO does during the kernel module build
[17:05:13] <@Kamilion> actually
[17:05:19] <@Kamilion> here, I'll make you a video. :)
[17:35:23] <+Irrelium> Ooh cool
[17:37:49] <@Kamilion> Pushing the ISO update now
[17:37:57] <@Kamilion> done in ~3m
[17:38:06] <@Kamilion> then I'll upload the video to youtube.
[17:44:53] <@Kamilion> Irrelium: video will be available at in about 10-20 minutes. The ISO is up to date and uploaded.
[17:45:39] <+Irrelium> Thanks
[17:48:15] <+Irrelium> Kamilion: so I can change the resolution with this fbset command?
[17:54:36] <+Irrelium> Hmm I can't figure out how fbset works
[17:54:43] <+Irrelium> (Yes I tried more than that one command :P)
[17:55:01] <@Kamilion> you're not running a framebuffer right now (no /dev/fb0 )
[17:55:08] <@Kamilion> modprobe fbcon
[17:55:11] <+Irrelium> Oh
[17:55:47] <+Irrelium> I don't seem to have the fbcon module
[17:56:01] <@Kamilion> ah
[17:56:21] <+Irrelium> I am using this arch iso while I wait for kamikazi to download
[17:56:33] <@Kamilion> that's arch, so I assume you'd either have to rebuild your kernel or do some crazy DKMS dynamic kernel module compiling
[17:56:46] <+Irrelium> Ah
[17:56:54] <+Irrelium> So no way to change the resolution on here then?
[17:57:07] <@Kamilion> you can try adding 'vga=ask' to the kernel commandline when booting
[17:57:27] <+Ukikie> Just because, well, late breaking news is great! -
[17:57:28] <@Skynet> Title: Logjam: PFS Deployment Guide (at
[17:58:01] <+Irrelium> Ah yeah that works
[17:58:11] <@Kamilion> huh, something wrong with DH group 38, Ukikie?
[17:58:39] <@Kamilion> Ukikie: not seeing anything on openssh
[17:59:04] <+Ukikie> Ars had a little something, and their main page may have something.
[18:07:51] <@Kamilion>
[18:07:52] <@Skynet> Title: Logjam: How Diffie-Hellman Fails in Practice (at
[18:08:08] <@Kamilion> Breaking the single, most common 1024-bit prime used by web servers would allow passive eavesdropping on connections to 18% of the Top 1 Million HTTPS domains. A second prime would allow passive decryption of connections to 66% of VPN servers and 26% of SSH servers. A close reading of published NSA leaks shows that the agency's attacks on VPNs are consistent with having achieved such a break.
[18:08:36] <@Kamilion> If you use SSH, you should upgrade both your server and client installations to the most recent version of OpenSSH, which prefers Elliptic-Curve Diffie-Hellman Key Exchange.
[18:09:35] <@Kamilion> ahhh, I was wondering why openssh was getting so fighty about /etc/ssh/ssh_host_ecdsa_key and /etc/ssh/ssh_host_ed25519_key
[18:37:36] <+Ukikie> oh wait!
[18:37:56] <@Kamilion> yell at belak, not me ;)
[18:38:13] <@Kamilion> s/at/towards/i
[18:39:09] <+Ukikie> Hah, like 1. that'll do any good, and 2. they are basically the most on top of it.
[18:44:10] <@Kamilion> i'm still rather amazed that I know all these people at these big companies
[18:50:20] <@Prospector_> I should get over my fear of talking to strangers who aren't in my class and go to a job fair already.
[18:56:53] <@Kamilion> yeah, i think we all could do with more socialization.
[18:57:14] <@Kamilion> look up a local hackerspace -- I'm sure there's at least one up in that area of washington.
[18:57:49] <@Kamilion> I'm much more confident and social now after dealing with that.
[18:58:22] <@Prospector_> I did that on my uni
[18:58:52] <@Kamilion> it was a lot easier with a bunch of social introverts that had low societial standards
[18:58:59] <@Prospector_> the thing is
[18:59:11] <@Prospector_> it was like 40-50 people packed into a tiny room
[18:59:36] <@Kamilion> yeah, hackerspaces are more like 20-50 in a small warehouse
[19:00:01] <@Prospector_> too dense for me lol
[19:01:08] <@Kamilion> alright, went over the kamikazi video, everything looks good. Can't really get rid of the audio hum due to the setup
[19:01:26] <@Prospector_> low cut off filter?
[19:01:27] <@Kamilion> but it's all intelligable for the most part
[19:01:40] <@Kamilion>
[19:01:46] <@Kamilion> low cut off won't solve THAT.
[19:02:05] <@Prospector_> punch the server to sleep?
[19:02:22] <@Kamilion> that's the workstation recording the video.
[19:02:36] <@Kamilion> my primary interaction machine.
[19:02:47] <@Kamilion> a 1U opteron with a USB audio stick
[19:03:07] <@Kamilion> and a geforce 610 stuffed inside
[19:03:34] <@Prospector_> THATS WHAT I FORGOT TO BUY
[19:03:44] <@Kamilion> ?
[19:03:49] <@Prospector_> I forget to buy some 99 dollar servers off of unix surplus
[19:03:55] <@Kamilion> oh
[19:03:57] <@Kamilion> ugh
[19:04:01] <@Kamilion> those things are terrible
[19:04:11] <@Kamilion> mainly on the power bill
[19:04:14] <@Prospector_> ah
[19:04:22] <@Prospector_> anything good for under 300?
[19:04:36] <@Prospector_> also I live in washington, power is cheap here.
[19:04:41] <@Kamilion> $300's about what you might be able to finagle a dell R210-II for
[19:04:45] <@Kamilion> which is a modern E3
[19:04:49] <@Kamilion> they're about $550 new
[19:05:05] <@Prospector_> hmm
[19:06:29] <@Kamilion>
[19:07:40] <+Irrelium> Heh this is cool
[19:07:57] <@Kamilion> win10 runs nicely in a VM
[19:08:05] <@Kamilion> maybe not vbox
[19:08:13] <+Irrelium> Windows 8.1 Running in VirtualBox on Arch Linux on my main computer, accessed via X11 forwarding from my Acer Aspire One running Crunchbang
[19:08:13] <@Kamilion> but it is very nice in vmware
[19:08:19] <@Kamilion> ahhh
[19:08:21] <+Irrelium> And it is very smooth
[19:08:26] <@Kamilion> kamikazi includes x2go btw
[19:08:44] <@Kamilion> so be sure to grab an x2go client (since you're in linux, there's two, I think)
[19:08:50] <+Irrelium> What is that?
[19:09:03] <@Kamilion> so, you probably don't know a lot about how X works
[19:09:14] <+Irrelium> No
[19:09:24] <@Kamilion> long story short, it's an immediate-mode renderer. Kinda like an ipython console.
[19:09:39] <@Kamilion> you spit commands at it, it does things and says OK each time (so to speak)
[19:10:09] <+Irrelium> The applicatioins spit commands at the X server?
[19:10:11] <@Kamilion> long ago people used to tell to draw lines and shapes and boxes and that was how we made windows and window titles and closeboxes and such
[19:10:26] <@Kamilion> these days, we have modern GPUs that use stuff like opengl
[19:10:50] <@Kamilion> so we use a plugin called DRI, direct rendering. "here, take this buffer of pixels and put it on the screen."
[19:11:26] <@Kamilion> so most of that line/box/oval drawing stuff hasn't been used in... oh, about 8 years? maybe a few more?
[19:11:55] <@Kamilion> long story short: so now we shoot pixels (client sided rendering) at the x server
[19:12:20] <@Kamilion> pixels are big, over the wire (network/local unix socket) compared to a command stream, right?
[19:13:10] <@Kamilion> and every command needs to be acknowleged... so if you're any distance away from your X server, suddenly for each pixel block you render, you have to wait 30 ms to get that OK
[19:13:36] <@Kamilion> go to germany for a summer and suddenly that's 150ms per block
[19:13:57] <@Kamilion> which, if it was a command stream, would still be kinda reasonable, windows would be slow to draw, but it would be alright in the end mostly
[19:14:31] <@Kamilion> so, a company named nomachine looked at that, said, hmm, we can probably do this easier with a proxy
[19:15:24] <@Kamilion> stuck a local X server in place where the client was (solving the back and forth ack issue), and added libJPEGturbo compression for pixel blocks.
[19:15:30] <@Kamilion> and called it NX.
[19:16:07] <@Kamilion> since all the code they were working on was open source, they had to keep that part open source too -- so they wrote it as a library.
[19:16:49] <@Kamilion> but they had to make money somehow, so they charged for the set of scripts and such that handled session creation, added cool stuff like pausing sessions, and gave away a free 1-client server license to anyone
[19:17:53] <@Kamilion> Some people got annoyed with the limits, and thus sprang up FreeNX
[19:18:00] <@Kamilion> a googler happened across this, wrote a replacement set of server-session scripts, called it OpenNX.
[19:18:18] <@Kamilion> at this point, the libraries reached ~version 3.x
[19:19:00] <@Kamilion> and nomachine started work on replacing them with a complete private implimentation they do NOT provide under an open source license, version 4.0
[19:19:51] <@Kamilion> so, since 3.5.0 was the last "open source" they were going to see out of nomachine, the 'community' (at this point, a collection of FreeNX, OpenNX, and Nomachine users) started cobbling together X2GO.
[19:20:35] <@Kamilion> And here we reach our crux: X2go is a 'new' way to do X compression over SSH, without all the round-trip times
[19:21:13] <@Kamilion> it also standardizes on using sshfs to access shared folders, and provides audio over a port of the pulseaudio client.
[19:21:26] <@Kamilion> as well as redirecting CUPS printer output.
[19:21:50] <@Kamilion> so, in essence, it is a very modern competitor for the featureset found in microsoft's Remote Desktop Client.
[19:21:58] <@Kamilion>
[19:21:59] <@Skynet> Title: start [X2Go - everywhere@home] (at
[19:22:04] <+Irrelium> Ah
[19:22:11] <@Kamilion> And there you go, ten years of history in 10 minutes.
[19:22:23] <+Irrelium> Heh
[19:22:32] <@Kamilion> now in explaining all of that
[19:22:42] <+Irrelium> Does RDP let you just forward 1 application and not the whole desktop?
[19:22:46] <@Kamilion> it does NOW
[19:23:06] <@Kamilion> RDP 6.x added that around windows 8 / server 2012R2's era
[19:23:33] <@Kamilion> along with an interesting compression format, named RemoteFX, upon which microsoft actually *openly licensed the patent to the community for use*
[19:23:45] <+Irrelium> I see
[19:23:56] <@Kamilion> that ties in with an important bit I'm about to explain
[19:24:04] <@Kamilion> X is going away. Sooner, later, it's going.
[19:24:09] <+Irrelium> Yeah
[19:24:11] <+Irrelium> Wayland and stuff
[19:24:11] <@Kamilion> Wayland is replacing it
[19:24:23] <@Kamilion> which is basically "DRI" + "input handler"
[19:24:30] <@Kamilion> without any of X's other baggage
[19:25:12] <@Kamilion> X has a whoooole bunch of baggage, from being around since the 1980s. It had a font server, it's own printer server (since replaced by CUPS), all kinds of stuff.
[19:25:48] <@Kamilion> back when there were other X-windows workstations out there, notably Sun sparcstations and SGI Irix and HP-UX workstations
[19:26:04] <@Kamilion> non-linux, most of which have died out
[19:26:24] <@Kamilion> sun got gobbled by oracle, who chopped solaris (SunOS, previously named)
[19:26:38] <@Kamilion> HP-UX got on board with linux, as did IBM
[19:26:45] <@Kamilion> SGI died entirely
[19:26:57] <@Kamilion> their name was bought by...
[19:27:17] <@Kamilion> Rackable Systems.
[19:27:25] <@Kamilion> which was a big linux outfit
[19:27:47] <@Kamilion> so SGI's entire unix line died when they did and rackable took the *company name* over.
[19:28:03] <@Kamilion> so now, there's nothing but linux and the various free BSDs out there
[19:28:34] <@Kamilion> so there's no need for compatibility anymore, there's no vendors implimenting the old standards
[19:29:11] <@Kamilion> and the ones that still are kind of sort of around, ended up moving over to using's x server anyway, after linux broke away from using the older xfree86 X server.
[19:29:30] <@Kamilion> so that leaves exactly one implimentor left,
[19:29:52] <@Kamilion> and everything sitting on top of it is using client-sided rendering, as I mentioned... pushing pixels around.
[19:29:56] <@Kamilion> Enter wayland.
[19:30:29] <@Kamilion> It does nothing BUT push pixels around. And keep track of input devices, cause really, it has to know where your mouse cursor is to know which field your keyboard should be typing into.
[19:30:55] <@Kamilion> Now, wayland, also can do remote desktop
[19:30:59] <@Kamilion> guess what it uses?
[19:31:16] <@Kamilion> Microsoft's RemoteFX compression and the OpenRDP protocol.
[19:31:30] <@Kamilion> (including single-app mode)
[19:31:45] <@Kamilion> really, RemoteFX is "just a better jpeg"
[19:32:06] <@Kamilion> and there's fallbacks for using libjpegturbo, just like NX/X2Go
[19:32:29] <@Kamilion> but the end result is: No new client needed! Microsoft's remote desktop client is also available on android and ios too!
[19:32:47] <@Kamilion> (which wasn't always the case, for a long time, iTeleport was the only available client on iOS worth using)
[19:33:20] <@Kamilion> and the built in microsoft remote desktop client in OSX has remotefx support too, since it was supplied to apple by microsoft.
[19:33:27] <@Kamilion> (built with xcode, too!)
[19:33:54] <@Kamilion> and I believe rdesktop on linux has support for remotefx as well.
[19:34:00] <@Kamilion> and has for quite some time
[19:34:16] <@Kamilion> anything using linux kernel 3.x should handle it fine
[19:34:44] <@Kamilion> 2.6.x I'd be leery of, and 2.4.x is probably too old to have a copy of rdesktop that can handle rdp 6.x
[19:35:05] <@Kamilion> and there ya go, past and future in 20 minutes. :)
[19:35:30] <+Irrelium> Yay
[19:35:44] <@Kamilion> oh -- and wayland was written primarily by an developer.
[19:36:05] <@Kamilion> and also inludes the xwayland protocol bridge
[19:36:16] <@Kamilion> which acts like xquartz does on a mac, if you're familiar
[19:36:25] <+Irrelium> No I don't know things about osx
[19:36:26] <@Kamilion> basically an xserver in a window
[19:36:31] <+Irrelium> Ah
[19:36:52] <@Kamilion> which can be either an app (rooted), a desktop (rooted) or a multiwindow app like GIMP (rootless)
[19:37:12] <@Kamilion> with the full power and fury of the X command stream available.
[19:37:16] <+Irrelium> So something that lets you use x forwarding on osx?
[19:37:19] <@Kamilion> so in a sense, wayland also replaces x2go.
[19:37:24] <@Kamilion> yeah, it's OSX's xserver
[19:37:24] Skynet jots down a new quote for Kamilion
[19:37:46] <+Irrelium> Does it work similar to mobaxterm?
[19:37:49] <+Irrelium> I use that on windows a lot
[19:37:51] <@Kamilion> and you can use it locally too, for example building an app that only supports Xservers, not OSX's Cocoa/Aqua environment
[19:37:56] <@Kamilion> bingo.
[19:38:23] <@Kamilion> mobaxterm is actually using the SAME xserver as x2go does,'s builds for windos.
[19:38:41] <@Kamilion>
[19:38:42] <@Skynet> Title: Xming X Server for Windows - Official Website (at
[19:39:15] <@Kamilion> the problem here is, there is 'public domain' downloads which you can get right now
[19:39:34] <@Kamilion> but if you want the 'april 2015' build not the 'august 2013' build, you have to 'donate'
[19:39:49] <+Irrelium> Heh
[19:39:52] <@Kamilion> all other GPL redistribution rules apply
[19:40:20] <@Kamilion> so the guy who does mobaxterm (and the x2go guys) donate to him and redistribute a newer, but not newest, build.
[19:40:43] <@Kamilion> IIRC the january 2015 build for the recent x2go client, maybe they git-updated to a newer one by now
[19:41:12] <@Kamilion> and there's a whole history of the tangle of getting an Xserver operating on windows
[19:41:27] <@Kamilion> I used to have to purchase Hummingbird's X-Ceed software
[19:41:52] <@Kamilion> lol
[19:41:53] <@Kamilion>
[19:41:54] <@Skynet> Title: Exceed - PC X Server - Download, Exceed 3D - Opent Text Connectivity (at
[19:42:02] <@Kamilion> hummingbird got bought up by opentext
[19:42:18] <@Kamilion> OpenText Exceed PowerSuite is a complete connectivity solution that provides users with everything they need to access applications and data on remote hosts. It includes an OpenGL enabled PC X server, a terminal emulator, NFS client and server, and an FTP client in one convenient package.
[19:42:44] <@Kamilion> but none of it is FOSS code
[19:42:58] <@Kamilion> all propritary and written specifically for windows
[19:44:09] <@Kamilion> whereas x2go and mobaxterm use Xming, which is a minGw (MINimal ciGwin) C compiler for windows that supports most unix-style code.
[19:44:17] <@Kamilion> er
[19:44:28] <@Kamilion> it's a build of made using minGw
[19:45:44] <@Kamilion> end result, using Xming (which is built for windows) works a whole lot better talking to modern linux applications expecting semantics (versus classic X-Windows clients from other *NIXs)
[19:46:20] <@Kamilion> Long story short: Whole market segment erased by linux, news at never
[19:47:02] <@Kamilion> Ukikie: i dunno how long you've been around linux.
[19:47:16] <@Kamilion> That seem like an accurate summing up of the last ~20 years?
[19:48:43] <@Kamilion> I don't really know how long Phantium's been at it either, but I recall he was a latecomer, post y2k
[19:49:55] <@Kamilion> computers didn't become really popular until the win2k/winxp era around 2002-2004 with the second internet boom.
[19:50:08] <@Kamilion> (as household items, I mean)
[19:50:45] <@Kamilion> after all, what sane person would want to mess around with jumpering soundcards for IRQ7?


Anonymous said...

Interesting read. But where you write:

"And here we reach our crux: X2go is a 'new' way to do X compression over SSH, without all the round-trip times"

how can it be new, if NoMachine already did it and set the trend for all "the others". All these copycats just created fragmentation of a great technology. I imagine this is the reason NoMachine closed source v4, to get their technology back where they can own it rather than watch it become diluted.

Yes, I use NoMachine rather than x2go.

Kamilion said...

Um, x2go *IS* nomachine. More specifically, nxproxy 3.5 and nxagent. There was freenx before, and a number of other works on top of nxproxy over a number of years. But all of those libraries are open source and long since diverged from whatever nomachine's selling now.
I've used them all, ever since the original nomachine releases -- which were open sourced to work with xfree86's monolithic build system, as xorg had not broken the xserver up into multiple packages yet. Ever since then; nomachine could have started over from scratch; but the jig is up anyway, we have SPICE and wayland and freerdp and *too many* solutions now. Way too late for nomachine to try to recapture profit from a pool of solutions saturated with free(libre) projects and products.