Month: November 2015

So forever ago I had done a super bare port of Quake to NeXTSTEP. It was based on a copy of UAE 0.6.0 source code that included hooks for NeXTSTEP. So seizing on this I built a shaky framework and amazingly got it to work. Well work enough I had trouble with the mouse part, and never did get around to fixing it, but I kicked it out into the world. And amazingly the HPPA cross compiled version that I compiled but never tested runs!

A collection of digitized scans from a large cache of documents related to the game publisher Infocom, Inc. of Cambridge, MA. Assembled by Steven Meretzky of Infocom.

During his time at Infocom, Steve Meretzky meticulously gathered thousands of pages of notes, journals, maps, memos, forms and other printable materials related to all aspects of Infocom, and kept them in his basement for decades. During the GET LAMP production, Jason Scott scanned in roughly 9,000 pages of these documents across a number of months, borrowing the materials from Steve and scanning them as quickly as possible, at around 600dpi. From these scans, a portion was used in the GET LAMP movie to illustrate various scenes and descriptions by interviewees.

A few days ago I wrote a basic packet sniffer / analyzer for Windows for fun. I was working with raw sockets for another application and out of curiosity winged a small packet sniffer in just 200 lines of code. I actually used it already several times to resolve some firewall port blocking issues, instead of spinning up Wireshark, so I decided to release it to public.

The good:

Portable, a single, tiny exe

Easy to use

Doesn’t install any driver like libpcap

Extensible, just 200 lines of simple code

The bad:

It’s very basic and doesn’t allow anything outside of simple unicast TCP, UDP and ICMP, most importantly layer 2, broadcasts, multicasts, etc are out of question

Currently it doesn’t directly support filtering, however you can just pipe it to findstr to filter for anything you want

Raw socket limitations are possibly the biggest issue, but if you just want to find out simple stuff like traffic going to a given port or ip address it’s a perfect little handy dandy tool to carry around.

To use snoopy you specific IP address of the interface on which you want to listen:

There also is a verbose mode which shows some more detailed protocol information:

Today I decode ICMP message types, TCP flags, sequence, ack and window numbers and DSCP, ECN, TTL and Dont Fragment flags for IP. I’m thinking of embedding /etc/protocols and /etc/services in a .h file to resolve them on the fly.

Just stumbled across this: someone has forked Windows NT 4.0 and created an open source version of it. But wait, forked what? Windows source code doesn’t live on Github. Is it ReactOS? No! Upon some digging, it was apparently born from the leaked source code of NT4.0, some W2K bits and 2003 WRK.

I spent a day evaluating NVIDIA GRID K1 card, which is a GPU for high end, graphics intensive desktop virtualization (VDI) deployments. Otherwise called vGPU. What does it actually mean?

As you can see on the stock photo, the card doesn’t have VGA, HDMI, DVI, DP or any video output port what so ever. The output happens purely through Remote Desktop Protocol (RDP) extension called RemoteFX. On VMware and Citrix it works little bit different but I will be covering Windows / Hyper-v installation only.

The GRID K1 is somewhat similar to Quadro card so the driver is not your usual GeForce package, but the experience is quite similar nevertheless. Upon installation you see 4 different physical GPUs in Device manager:

This works similarly to having multiple CPU cores that show up as separate processors in the OS. Here is a first fun fact: you can’t actually use any of these directly, as they simply have no output port and can’t display any graphics… Instead, you have to use Hyper-v with RemoteFX extension:

Then for each guest machine, you add a RemoteFX graphics card as hardware:

In order to use RemoteFX you need to Remote Desktop (RDP) to the guest machine. The protocol is fortunately available since version 7.1 so even Windows 7 can use it. However only Enterprise editions of Windows support it.

Inside the guest VM you see a virtual RemoteFX Display Adapter in the Device Manager:

And as you can see Direct3D is available and enabled. Note that this is over RDP to a VM! The VM’s console curiously displays following message:

Hard to show on static screenshots, but I have to say that RemoteFX user experience is noticeably better compared to a regular RDP. Everything works smoother and faster, scrolling pages, moving windows is a snap. You can play videos / YouTube, etc. But I was more interested in real use case which are high end 3D applications. So I proceeded to install Steam…

Yes! this is GTA V running over Remote Desktop in a VM!

The frame rate sucks quite considerably, even in safe mode, but it was playable and quite responsive (no lag). I actually spent couple of hours going through it and except for low FPS had no issues.

I also spun up this Wyse Thin Client terminal:

disconnected my RDP session and reconnected from the terminal… poof the game was still going:

I even got sound out of the little thing.

I suspect that the low FPS is rather to do with small GPU horse power and vRAM assigned rather that with remote viewing or NVIDIA itself. Unfortunately in Hyper-v it’s impossible to control or fine tune assignment of GPU resources to a particular VM beyond simple on/off switch. The K1 card supports 32 users, so I was only getting 1/32th power and RAM. Perhaps I could have spawned 32 VMs with GTA. Or Call Of Duty multiplayer….

In ending notes I have to conclude that this is a rather interesting technology. According to NVIDIA, Cloud is future of Gaming. In fact they already have cloud game streaming service:

A few interesting things have happened in QNX area in a last month or so.

First of all, there is a QNX BSP for Raspberry PI:

It’s an early developer release, not fully complete, but it does boot and work. It adds an interesting os beside RISC OS and Plan9 to the Pi family. The BSP is available from SHC Products. They have a binary and source code version.

Secondly, in the archaeology department, this has surfaced:

But even more interestingly I’ve found a beta / preliminary release v0.4 of QNX:

That is right, a new re-release of OS/2. But don’t go all too crazy the targeted release date is Q3 2016.

That being said, they don’t apparently have source code, so yeah. Me? I still run OS/2 2.0, and I really don’t see much need in upgrading. It runs MS-DOS just fine. At the same time, I really wonder how much IBM charges to brand out your own version of OS/2? Not that I really need one.