Pretty funny…. well to me anyways.
Pretty funny…. well to me anyways.
(note this is a guest post by Tenox)
Quite a while ago I’ve came across Opera rendering proxy for mobile browsers. This got me thinking. If you could render a web page on a proxy server to a simplified HTML, say 3.x. This would make a lot of web browsers happy. For some unrelated purposes I have been using webkit2png which allows to create a whole web page snapshot in a single png image. Wait… what if such image had an image map of clickable regions pointing to the original links? Maybe…
The idea was born, but was it possible to implement and would it work? Webkit2png was quite far from having all the required functionality. For various reasons Python and I will never be friends, so extending the original script was bit out of luck. Fortunately though after some additional research I have stumbled upon picidae network. To my utter surprise they actually made all or even more functionality that I wanted in their picidae.py script. All that had to be done to adapt picidae to my purpose was to save the image as a GIF image, generate a simple HTML page with imagemap, an input box and strip all the unwanted stuff. This I could survive in Python.
Webrender.py came to life. It’s a cgi-bin application that resides on a machine in the middle. It renders a gif image and spits it out to the browser together with a simple web page, containing a URL and search input boxes plus the gif and image map.
After some initial debugging and massaging out few bugs the solution worked perfectly! I could finally get the old browsers happily navigate modern websites! Check out some examples:
Yes! You can finally browse microsoft.com with IE 1.5
Or go to netscape.com in Netscape 4.x browser. This was impossible just a few hours ago!
How about some other browsers:
Nothing is perfect though and there are some major caveats using this solution:
I’m currently rewriting the script to work as a fully fledged HTTP proxy server instead of a cgi-bin application. It’s actually 99% complete minus some python multithreading issues.
I’m also thinking about rewriting it in something more portable. For instance QtWebKit, WebKitGTK+, PhantomJS, or maybe a totally different layout engine all together.
The cgi-bin version is available for download here. To install create a cgi-bin subdirectory, place the script in there, chmod 755, start python web server: python -m CGIHTTPServer 8000 then point your browser to http://x.x.x.x:8000/cgi-bin/webrender.py
complete with Zork!
Connected to micronick.com.
Escape character is ‘^]’.
Welcome to my Altair 8800 Clone !
A: ZORK1 COM : ZORK1 DAT : ZORK2 DAT : ZORK3 DAT
A: ZORK2 COM : ZORK3 COM
ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
ZORK is a registered trademark of Infocom, Inc.
Revision 88 / Serial number 840726
West of House
You are standing in an open field west of a white house, with
a boarded front door.
There is a small mailbox here.
As seen on reddit!
Be sure to check out the web page for a live picture of the machine in action!
(this is a guest post by Tenox)
Jason’s post on VMware reminded me of something that I wanted to post a while back. Not widely known, both VMware and Microsoft offer free and available to anyone, virtualized “hands on labs” on some or most of their products. Don’t think of them as videos or scripted presentations. They are in fact real virtual machines with real software you can play with. VMware HOLs for instance include putty.exe that allows you to SSH to the ESXi host to hack it.
If you don’t want to spend hours installing and configuring all this stuff and just want to learn the essence or gain some experience with enterprise technologies without breaking a bank I highly suggest to check them out. Also VMware labs let you preview upcoming technologies which are not yet available on the market!
Microsoft, TechEd 2013 HOLs: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013?y=Hands-on+Lab&t=available-online (I think you need Internet Explorer to launch them)
Well it’s been a long while since I used Vcenter, and now it’s gone all web based. Which is a damned shame IMHO.
But the plus is that ESX can now run nested!
The first stumbling block was installing vSphere. The 2008r2 server that I’ve been given access to is part of a domain, but I’ve only got local access to the server. The annoying part is trying to logon right after install. My Windows user ID doesn’t work, and logging in as ‘admin’ or ‘Administrator’ doesn’t work. Thankfully I found a hint, to install SQL Management Express to mine the VPX_ACCESS table (my SQL Express instance was \VIM_SQLEXP), and discover that the Administrator logon is
Now with that in place I can now logon to my vSphere.
The next fun is configuring the ESX VM.
By default it’ll try to DCHP itself. Which is great if you have DHCP, but in my small test area on the cloud I don’t have DHCP.
One huge pain I find is that you have to manage version 10 VM’s through the web UI, which let’s face it is dreadfully slow. Also it looks like you still need the ‘fat’ client to manage storage. Ugh.
I’ll probably update this more the further along I get.
I got sent a quick heads up about a post on firstwork systems, where the author details the steps needed to install, and boot up the installer, and then get the rest of it running.
Very cool stuff!
I pulled down debian-5010-alpha-netinst.iso, and extracted /boot/vmlinuz & /boot/initrd.gz .. Decompressed vmlinuz, and booted away! For anyone who want’s it, my minimal install is here. All things considered, it works well!
$ ./qemu-system-alpha -hda alpha.disk -kernel vmlinux -append ‘console=ttyS0′ -initrd initrd.gz -L pc-bios/ -nographic -net nic -net user -drive file=debian-5010-alpha-netinst.iso,if=ide,media=cdrom
PCI: 00:00:0 class 0300 id 1013:00b8
PCI: region 0: 10000000
PCI: region 1: 12000000
PCI: 00:01:0 class 0200 id 8086:100e
PCI: region 0: 12020000
PCI: region 1: 0000c000
PCI: 00:02:0 class 0101 id 1095:0646
PCI: region 0: 0000c040
PCI: region 1: 0000c048
PCI: region 3: 0000c04c
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.26-2-alpha-generic (Debian 2.6.26-29) (email@example.com) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 Sun Mar 4 21:08:03 UTC 2012
[ 0.000000] Booting GENERIC on Tsunami variation Clipper using machine vector Clipper from SRM
[ 0.000000] Major Options: MAGIC_SYSRQ
[ 0.000000] Command line: console=ttyS0
[ 0.000000] memcluster 0, usage 1, start 0, end 11
[ 0.000000] memcluster 1, usage 0, start 11, end 16384
[ 0.000000] freeing pages 11:2048
[ 0.000000] freeing pages 2987:16384
[ 0.000000] reserving pages 2987:2988
[ 0.000000] Initial ramdisk at: 0xfffffc0007b28000 (5076756 bytes)
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16272
[ 0.000000] Kernel command line: console=ttyS0
[ 0.000000] PID hash table entries: 512 (order: 9, 4096 bytes)
[ 0.000000] HWRPB cycle frequency bogus, and unable to estimate a proper value!
[ 0.000000] Using epoch = 2000
[ 0.000000] Turning on RTC interrupts.
[4194001.858529] Console: colour VGA+ 80×25
[4194001.860482] console [ttyS0] enabled
[4194001.865365] Dentry cache hash table entries: 16384 (order: 4, 131072 bytes)
[4194001.865365] Inode-cache hash table entries: 8192 (order: 3, 65536 bytes)
[4194001.871224] Memory: 117120k/131072k available (2162k kernel code, 13728k reserved, 3314k data, 304k init)
[4194001.899544] Security Framework initialized
[4194001.900521] Capability LSM initialized
[4194001.900521] Mount-cache hash table entries: 512
[4194001.905404] Initializing cgroup subsys ns
[4194001.907357] Initializing cgroup subsys cpuacct
[4194001.907357] Initializing cgroup subsys devices
[4194001.918099] net_namespace: 1208 bytes
[4194001.920052] NET: Registered protocol family 16
[4194001.926888] EISA bus registered
[4194001.928841] pci: enabling save/restore of SRM state
[4194001.939583] Linux Plug and Play Support v0.97 (c) Adam Belay
[4194001.953255] NET: Registered protocol family 2
[4194001.964974] IP route cache hash table entries: 1024 (order: 0, 8192 bytes)
[4194001.967904] TCP established hash table entries: 4096 (order: 3, 65536 bytes)
[4194001.967904] TCP bind hash table entries: 4096 (order: 2, 32768 bytes)
[4194001.968880] TCP: Hash tables configured (established 4096 bind 4096)
[4194001.968880] TCP reno registered
[4194001.972787] NET: Registered protocol family 1
[4194001.975716] checking if image is initramfs… it is
[4194003.320442] Freeing initrd memory: 4957k freed
[4194003.323372] VFS: Disk quotas dquot_6.5.1
[4194003.323372] Dquot-cache hash table entries: 1024 (order 0, 8192 bytes)
[4194003.325325] msgmni has been set to 238
[4194003.327278] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[4194003.327278] io scheduler noop registered
[4194003.327278] io scheduler anticipatory registered
[4194003.329231] io scheduler deadline registered
[4194003.329231] io scheduler cfq registered (default)
[4194003.330208] isapnp: Scanning for PnP cards…
[4194003.750129] isapnp: No Plug & Play device found
[4194003.767708] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[4194003.769661] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[4194003.782356] brd: module loaded
[4194003.784309] serio: i8042 KBD port at 0×60,0×64 irq 1
[4194003.784309] serio: i8042 AUX port at 0×60,0×64 irq 12
[4194003.787239] mice: PS/2 mouse device common for all mice
[4194003.792122] TCP cubic registered
[4194003.792122] NET: Registered protocol family 17
[4194003.793098] registered taskstats version 1
[4194003.793098] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[4194003.795051] Freeing unused kernel memory: 304k freed
[4194003.889778] input: AT Translated Set 2 keyboard as /class/input/input0
[4194011.195438] Uniform Multi-Platform E-IDE driver
[4194011.195438] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
[4194011.204227] CMD646: IDE controller (0×1095:0×0646 rev 0×07) at PCI slot 0000:00:02.0
[4194011.204227] CMD646: UltraDMA capable
[4194011.205204] CMD646: 100% native mode on irq 28
[4194011.205204] CMD646: IDE port disabled
[4194011.206180] PCI: Setting latency timer of device 0000:00:02.0 to 64
[4194011.206180] ide0: BM-DMA at 0×8040-0×8047
[4194011.596805] hda: QEMU HARDDISK, ATA DISK drive
[4194012.325320] hdb: QEMU DVD-ROM, ATAPI CD/DVD-ROM drive
[4194012.378055] hda: UDMA/33 mode selected
[4194012.378055] hdb: UDMA/33 mode selected
[4194012.379031] ide0 at 0×8050-0×8057,0×8062 on irq 28
[4194012.554812] hda: max request size: 512KiB
[4194012.556766] hda: 4194304 sectors (2147 MB) w/256KiB Cache, CHS=4161/255/63
[4194012.558719] hda: cache flushes supported
[4194012.559695] hda: unknown partition table
[4194012.663211] hdb: ATAPI 4X DVD-ROM drive, 512kB Cache
[4194012.665164] Uniform CD-ROM driver Revision: 3.20
Starting system log daemon: syslogd, klogd.
need this walkthrough.
Basically, the entire install script is broken.
The good news is that it “works” on WinUAE with the emulated A2065 Ethernet board… Kind of, I can log onto my BBS ok, but I don’t see anything on the Amiga side. But the TCP works… very strange.
Then unpack with 7zip and rename some files:
$ mv _7770311E01264484BDC66FB81E4EF650 blthorn.exe
$ mv _126448A72F4442D39DCD600746EE09F7 data.dat
$ mv _C987F762EF304955BB86AB432FF6F847 manual.pdf
I set DOSBox to run about 20,000 cycles so it’s not tooo bad.
As much as the whole ‘uptime’ wars passed with the ever increasing need for patching, this is pretty amazing.
Over on arstechnica a Novell Netware 3.12 server by the name Intel had to be finally shut down after 16 and a half years. Apparently the bearings in the two SCSI disks had gotten so loud it sounded like a car dragging it’s muffler.
It’s still pretty impressive, and in some ways that was one thing Novell got right with Netware was that it was unstoppable. Of course their big ‘goof’ was in the application space. While there was a version of Oracle for Novell Netware, it was a major pain to deal with, and the GUI simplicity of Windows NT pretty much put an end to Netware.
But in some shops they don’t fix it until it’s broke. Even if it takes a decade and a half.