#!/bin/sh #llllmmmm11234567892123456789312345678941234567895123456789612345678971234567890 set -ex <"$0" python3 -c " import os, sys cleanupsh = '#!/bin/sh\n' for day in sys.stdin.read().split('\n\n\n'): f = day.split('\n')[0] if '\t' in f: fa = f.split('\t')[1].split(',') f = f.split('\t')[0] else: fa = [''] if f[0] != '/': continue f = '.' + f if os.path.isfile(f): continue d = '/'.join(f.split('/')[:-1]) if '/' in f and not(os.path.isdir(d)) and not(d == ''): os.makedirs(d) cleanupsh += 'rm -r -- ' + d + '\n' with open(f,'w') as fd: fd.write(day) if cleanupsh == '': cleanupsh = '#!/bin/sh\n' cleanupsh += 'rm -- ' + f + '\n' if len(cleanupsh.split('\n')) > 2: with open('cleanup.sh', 'w') as fd: fd.write(cleanupsh) " test -f homepage.local \ && exec ./homepage.local \ || exit 0 /LICENSE verbatim Other than noted exceptions, this is free and unencumbered data released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this data, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this data dedicate any and all copyright interest in the data to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this data under copyright law. THE DATA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DATA OR THE USE OR OTHER DEALINGS IN THE DATA. For more information, please refer to /homepage.html $! __TITLE__ "homepage" documentation $! __DESCRIPTION one file, one website

"homepage" documentation

the forest

homepage is a single-file static site generator written in UNIX sh(1) shell script, the goal being to contain a website with heirarchical page organization within a single file that can be run to extract it out to the filesystem, almost like a self-extracting UNIX tape archive that documents its own layout in a UTF-8 script closer to English.

trees

files

To add a file to your homepage, append three newlines ('\n', or the Enter/Return key on your keyboard) to the end of the homepage file, followed by the path of the file to add. A homepage file path starts with a slash ('/') and is followed by the path to the file relative to the prefix directory (the directory containing homepage). A file path that starts with a hash ('#') is discarded. For all non-slash- non-hash- prefixed file paths, the behavior of homepage is undefined.

file attributes

On the same line as the file path, if, after the path, a tab ('\t') is present, the substring following the first tab in the line and spanning to and excluding the next tab or newline describes the attributes of the file as it is exported to the file system. These file attributes are delimited by commas (',') and there's no limit to the amount of attributes a file can have, though in the event of conflicting attributes the later attribute "wins" the conflict.

In the absence of file attributes, the file will be exported to the filesystem, the appropriate Prefix and Suffix files will be prepended and appended respectively, and any requested macro substitutions will be performed.

The "verbatim" attribute indicates that the file should be exported to the filesystem without the appropriate Prefix and Suffix files prepended or appended. The "stub" attribute indicates the opposite, though its behavior is default.

The "literal" attribute indicates that the file should not be subject to macro expansion despite any other directives. The "figurative" attribute indicates the opposite, though its behavior is default.

/x200t/index.html $! Thinkpad X200 Tablet

Thinkpad X200 Tablet

updated 2022-08-11


Contents

See also

Integrated camera

This is FRU 2060 in the hardware maintenance manual.

Some models have the camera, some don't. It will be in the middle of the top of the screen bezel (looking at the screen with the lenovo logo oriented normally); some have a black plastic trapezoidal cover, some have the camera option. Camera kits are available on-line for the X200 Tablet for around US$15 or so at time of writing.

SATA drive

As far as I know, any 2.5" SATA laptop-sized drive will work.

To replace the drive, locate the drive cover between the stylus holder and RJ-11 modem port on the right side of the laptop. Unscrew the screw holding in the cover, to which the hard drive icon on the bottom of the laptop under the stylus holder is pointing. Lift out the cover and there the drive will be exposed.

Hard drive caddy

Most of the eBay listings for X200 Tablets don't have hard drive covers or caddies. You will want a caddy because it makes it much easier to get a drive out, and because it spaces out the drive in the space provided and provides some (minimal) amount of shock protection. This is especially good for hard disks as you don't want those moving around in your laptop chassis, even if there's no risk of them being disconnected.

In a pinch you can use cardboard to space out a drive. I made out okay using folded cardstock given that my X200 Tablet was going nowhere except my desk. You should not do this for long periods, not really because there's some risk that increases as time wears on but just because in general it's stupid.

The same rubber rails that go around the hard drive, and the same metal thing that you screw onto the drive that has the black ribbon attached used to pull the drive out, are used for the X200, X200S, X200 Tablet, X201, X201S, X201 Tablet, T420, T420S, T430, and T430S, as far as I know. Rubber rails for the X220 Tablet did not work, nor did the bay cover for the X220 Tablet work for the X200 Tablet.

Memory

This is FRU 1040 DIMM in the hardware maintenance manual. The system memory modules and the access panel only have to be removed if the modules specifically are being replaced or if the system mainboard is getting replaced.

RealBlackStuff says the X200 Tablet is compatible with DDR3-1066 (PC3-8500) and DDR3-1333 (PC3-10600). It's possible to have 8GB memory installed. eBay seller laptopused correlates that DDR3-1333 dual-rank memory should work. Apparently for technical reasons the X200 Tablet must take 2Rx8 memory; two ranks of eight chips, and for 8GB memory, 256MB per chip (divide 8192MB by 2 modules * 2 ranks * 8 chips).

OEM-configured laptops can have DDR3-1066 memory from Elpida or Samsung. Laptop Mag says the laptop came with 2GB RAM by default and is upgradeable to 4GB but most laptops for sale secondhand have 4GB memory installed. Types 7449-43U and 7450-EYU came with 2x2GB DDR3-1066 SO-DIMM (PC3-8500).

I got in touch with eBay seller woosterpsu who was auctioning off an X200 Tablet to benefit the Electronic Frontier Foundation with 8GB RAM installed and reported in the BIOS. The seller sent me an image of the installed memory: a Hynix 4GB 2Rx8 PC3-10600S and a Dell P/N SNPX830DC/4G, both scavenged from other laptops. These are confirmed working in a Core2 Duo L9400 X200 Tablet.

Screws

Per the hardware maintenance manual (page 225), the following screws are necessary for full assembly of the X200 Tablet:

Quantity Head Length Style Color
1 M1.6 6mm Wafer head Silver
1 M2 2.5mm Wafer head Black
11 M2 3mm Flat head Black
18 M2 3.5mm Wafer head Silver
1 M2 3.5mm Wafer head Black
3 M2 6mm Wafer head Silver
13 M2 6mm Wafer head Black
1 M2 3mm Stud (height=4.2mm) Black
1 M2 3mm Stud (height=5.5mm) Black
6 M2.5 6mm Wafer head Black
9 M2.5 8mm Wafer head Black
1 M3 3mm Wafer head (HDD screw) Black

Additionally listed are 9 circular screw caps and 6 square screw caps.

Two screw kits are listed with part numbers 45N3139 and 60Y4164. The difference is that 45N3139 has one more M2x3.5mm silver wafer head screw listed (18 versus 17). 45N3139's contents in particular are reflected in the table above.

On page 79 of the hardware maintenance manual some very rarely-noted screw notices are listed that are worth repeating, though it's up to the maintainer to follow the practices they so choose:

Software

For some procedures in the hardware maintenance manual a ThinkPad Hardware Maintenance Diskette is needed. This was available only to licensed dealers.

Here's a chart of executable names relevant to the X200 Tablet as provided from Lenovo and their product names. A lot of this is sourced from hearsay and olden lore so it may not be fully accurate, and definitely isn't complete. Also, I trimmed down redundant sections of product names - for example, 7wuj45uc.iso is actually BIOS Update Bootable CD for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit), XP - ThinkPad but if it's bootable itself operating system compatibility likely doesn't matter.

Executable Product name Version
6itr02ww.zip BIOS Settings Capture/Playback Utility 4.01
7wuj45uc.iso BIOS Update Bootable CD 3.21
7wuj45u6.exe BIOS Update Utility for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit), XP 3.21
6ea118ww.exe Conexant Audio Driver for Windows Vista (32-bit, 64-bit), XP 4.92.15.0 / 3.64.15.0
6ea160ww.exe Conexant Audio Software for Windows 7 (32-bit, 64-bit) 4.92.12.0
maint150.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.50
maint160.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.60
maint169.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.69
i7tm23us.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.75
i7tm25us.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.77
i7tm37us.exe Unknown Unknown
i7tm38us.exe IBM Thinkpad Hardware Maintenance Diskette (HMD) 1.89
83ts04ww.exe ThinkPad BIOS Settings for Windows 7 (32-bit), Vista (32-bit), XP, 2000 3.03

Lenovo's X200 Tablet downloads won't last forever. Here's a JavaScript that allows a user to download arbitrary executables from Lenovo's download servers.

The following operating systems were available pre-installed by the OEM, depending on the variant:

9front system usage is described in the 9front FQA, section 3.2.5.2.1.

Linux system usage is described in detail on the Arch GNU+Linux wiki - any Linux or UNIX specific knowledge I have I add to the Arch wiki rather than putting on this page.

Stylus

The X200 Tablet originally came with a single-button stylus with a gray "eraser". I found some single-button stylus from eBay, with a red "eraser", and that worked too. I have a two-button stylus that came with another X200 Tablet but it's as of yet untested. The Fujitsu T-5000 digitizer pen does work, identically according to xev(1).

Do not try to insert two-button Thinkpad styluses into the stylus holder of the X200 Tablet as they'll become stuck in there because of how the buttons are shaped. To remove a stuck stylus the digitizer pen case (part number 45N3146) must be unscrewed and removed from the chassis. Following the hardware maintenance manual, remove FRUs "1020 Battery pack" and "1060 Keyboard" and follow steps 6 and 7 of the removal process of FRU "1180 DC-in connector, fan, digitizer pen case, and pen switch assembly". No other FRUs need to be removed, nor do any other steps of the removal process of FRU 1180 need to be followed.

/hacker-howto/index.html $! __TITLE__ How to Become A Hacker

How to Become A Hacker

Deven Trinity Blake

<trinity@trinity.moe>

No Copyright 🄯 2021 Deven T. Blake


Why This Document?

A lot of hackers consider Eric S. Raymond's original How to Become A Hacker to be definitive, for good reason. It explains the "hacker philosophy", some key things at which one should be good, and is a good compass that points to What to Learn Next. I myself stumbled upon the document maybe a decade or so ago, when I was a small impressionable child, and know half of what I do because of where it pointed me. I think, however, that How to Become A Hacker is a bit dated, so I'm writing this to be a nice complementary piece for those to read after they read esr's original.

If you are reading a snapshot of this document offline, the current version lives at http://www.trinity.moe/hacker-howto.

Basic Hacking Skills

1. Learn how to program

Python is an okay first language as long as you don't take it too seriously. As said by smarter people than me, Python is a glue language. It's slow and a bit basic, but its errors are often easy to solve, so do as much as you can with Python and Python libraries, and do the rest in faster languages.

Never touch Java. Not even once. While at one point it was promising, it's become a monstrous beast and it must be slain through attrition.

When you are good at programming you will think outside of programming languages. Programming languages are tools for a job. Some are better suited to some tasks than others. For example, I would use C as a language for building utilities for myself, as I want them to be blisteringly fast and I know that's easier to do in C than Python. I've written utilities in Python to know how I want them to behave, and then perfected them by rewriting them in C. This being said, when learning a language for the first time, master it, then move on.

2. Get one of the open-source Unixes and learn to use and run it.

Don't try to program on Microsoft Windows. Seriously. This is the one mistake almost all beginners make; they'll install fifty different tools onto their MS Windows system in order to make a simple program that doesn't really work because their tutorial only works for UNIX. Just install a Free UNIX-clone ("clone" in this context is not a bad thing; most Free UNIX-clones are much more practical in this world than the original) and learn how to work in it. In fact, you may want to learn shell before anything else. When you know how to

  1. Make a directory,
  2. Make an empty file within that directory,
  3. Overwrite the file with exactly 500B of random data,
  4. Mark the file as executable,
  5. Print the file to the terminal as readable, hexadecimal data,
  6. And remove the directory and the file,
you will know enough to start on your journey into hacking.

BSDs are awesome and I use a BSD myself, but perhaps start with Linux as there's a much bigger community to help you there. There are no longer any good non-UNIX operating systems. The importance of choosing a Free operating system cannot be understated. It's hard to learn from your OS's code when your OS's code is only readable by those within the corporation that made the OS.

Don't use Ubuntu as it suffers from many of the flaws that drive non-hacker Windows users to Linux-based systems. Instead, try Linux Mint, which is based on Ubuntu but without the more annoying issues.

3. Learn how to use the World Wide Web and write HTML.

View the source code of the original How to Become A Hacker and then read the source code to this webpage.

4. If you don't have functional English, learn it.

It's unfortunate that English has become the lingua franca of the Internet. But it's true, it has, and it's more or less required learning if you want to become a hacker.

5. Learn to use a search engine.

This is my own tip. This is the most important thing on this page. How to accomplish this is an exercise left to the reader.

/home/index.html $! __TITLE__ home

~ www.trinity.moe