before







cvs -d:pserver:anonymous@nethack.cvs.sourceforge.net:/cvsroot/nethack login
cvs -z3 -d:pserver:anonymous@nethack.cvs.sourceforge.net:/cvsroot/nethack co -P nethack
apt-get build-dep nethack
#that should install needed dependencies.
patch -p1 <<>nethack-autoconf-20090217.patch
./configure --enable- # and pres tab key twice to see the options.
# Be greedy about enabling this options but one warning: enable-user-sounds option fails so you'd better skip it.
# It's there for a reason but not for compiling nethack these days :)
./configure --enable-autopickup-exceptions --enable-clipping --enable-data-librarian --enable-elbereth --enable-exp-on-botl --enable-goldobj --enable-kops --enable-redo --enable-reincarnation --enable-score-on-botl --enable-seduce --enable-sinks --enable-steed --enable-tourist --enable-tty-graphics --enable-wallified-maze --enable-wizmode --enable-x11-graphics
make all
sudo make install
sudo apt-get install g++ zlib1g-dev libsdl1.2-dev libjpeg62-dev nasm tar bzip2 libgtk2.0-dev cmake
build-essential
svn checkout http://mancubus.net/svn/hosted/zdoom/zdoom/trunk zdoom
cd to zdoom directory and type these in terminal to keep going:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
svn co http://mancubus.net/svn/hosted/gzdoom/trunk/ gzdoom
| Reactions: |
/* Possible values of bitmask for enabling sysrq functions */
/* 0x0001 is reserved for enable everything */
#define SYSRQ_ENABLE_LOG 0x0002
#define SYSRQ_ENABLE_KEYBOARD 0x0004
#define SYSRQ_ENABLE_DUMP 0x0008
#define SYSRQ_ENABLE_SYNC 0x0010
#define SYSRQ_ENABLE_REMOUNT 0x0020
#define SYSRQ_ENABLE_SIGNAL 0x0040
#define SYSRQ_ENABLE_BOOT 0x0080
#define SYSRQ_ENABLE_RTNICE 0x0100
struct sysrq_key_op {
void (*handler)(int, struct tty_struct *);
char *help_msg;
char *action_msg;
int enable_mask;
};
Linux Magic System Request Key Hacks
Documentation for sysrq.c version 1.15
Last update: $Date: 2001/01/28 10:15:59 $
* What is the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is a 'magical' key combo you can hit which the kernel will respond to
regardless of whatever else it is doing, unless it is completely locked up.
* How do I enable the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
configuring the kernel. When running a kernel with SysRq compiled in,
proc/sys/kernel/sysrq controls the functions allowed to be invoked via
the SysRq key. By default the file contains 1 which means that every
possible SysRq request is allowed (in older versions SysRq was disabled
by default, and you were required to specifically enable it at run-time
but this is not the case any more). Here is the list of possible values
in /proc/sys/kernel/sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function
description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks
You can set the value in the file by the following command:
echo "number" >/proc/sys/kernel/sysrq
Note that the value of /proc/sys/kernel/sysrq influences only the invocation
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
allowed.
* How do I use the magic SysRq key?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On x86 - You press the key combo 'ALT-SysRq-'. Note - Some
keyboards may not have a key labeled 'SysRq'. The 'SysRq' key is
also known as the 'Print Screen' key. Also some keyboards cannot
handle so many keys being pressed at the same time, so you might
have better luck with "press Alt", "press SysRq", "release Alt",
"press ", release everything.
On SPARC - You press 'ALT-STOP-', I believe.
On the serial console (PC style standard serial ports only) -
You send a BREAK, then within 5 seconds a command key. Sending
BREAK twice is interpreted as a normal BREAK.
On PowerPC - Press 'ALT - Print Screen (or F13) - ,
Print Screen (or F13) - may suffice.
On other - If you know of the key combos for other architectures, please
let me know so I can add them to this section.
On all - write a character to /proc/sysrq-trigger. eg:
echo t > /proc/sysrq-trigger
* What are the 'command' keys?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'r' - Turns off keyboard raw mode and sets it to XLATE.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual
console. NOTE: See important comments below in SAK section.
'b' - Will immediately reboot the system without syncing or unmounting
your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'o' - Will shut your system off (if configured and supported).
's' - Will attempt to sync all mounted filesystems.
'u' - Will attempt to remount all mounted filesystems read-only.
'p' - Will dump the current registers and flags to your console.
't' - Will dump a list of current tasks and their information to your
console.
'm' - Will dump current memory info to your console.
'v' - Dumps Voyager SMP processor info to your console.
'0'-'9' - Sets the console log level, controlling which kernel messages
will be printed to your console. ('0', for example would make
it so that only emergency messages like PANICs or OOPSes would
make it to your console.)
'f' - Will call oom_kill to kill a memory hog process
'e' - Send a SIGTERM to all processes, except for init.
'i' - Send a SIGKILL to all processes, except for init.
'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system
will be non-functional after this.)
'h' - Will display help ( actually any other key than those listed
above will display help. but 'h' is easy to remember :-)
* Okay, so what can I use them for?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Well, un'R'aw is very handy when your X server or a svgalib program crashes.
sa'K' (Secure Access Key) is useful when you want to be sure there are no
trojan program is running at console and which could grab your password
when you would try to login. It will kill all programs on given console
and thus letting you make sure that the login prompt you see is actually
the one from init, not some trojan program.
IMPORTANT:In its true form it is not a true SAK like the one in :IMPORTANT
IMPORTANT:c2 compliant systems, and it should be mistook as such. :IMPORTANT
It seems other find it useful as (System Attention Key) which is
useful when you want to exit a program that will not let you switch consoles.
(For example, X or a svgalib program.)
re'B'oot is good when you're unable to shut down. But you should also 'S'ync
and 'U'mount first.
'C'rashdump can be used to manually trigger a crashdump when the system is hung.
The kernel needs to have been built with CONFIG_KEXEC enabled.
'S'ync is great when your system is locked up, it allows you to sync your
disks and will certainly lessen the chance of data loss and fscking. Note
that the sync hasn't taken place until you see the "OK" and "Done" appear
on the screen. (If the kernel is really in strife, you may not ever get the
OK or Done message...)'U'mount is basically useful in the same ways as 'S'ync. I generally 'S'ync,'U'mount, then re'B'oot when my system locks. It's saved me many a fsck.
Again, the unmount (remount read-only) hasn't taken place until you see the
"OK" and "Done" message appear on the screen.
The loglevel'0'-'9' is useful when your console is being flooded with
kernel messages you do not want to see. Setting '0' will prevent all but
the most urgent kernel messages from reaching your console. (They will
still be logged if syslogd/klogd are alive, though.)
t'E'rm and k'I'll are useful if you have some sort of runaway process you
are unable to kill any other way, especially if it's spawning other
processes.
* Sometimes SysRq seems to get 'stuck' after using it, what can I do?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That happens to me, also. I've found that tapping shift, alt, and control
on both sides of the keyboard, and hitting an invalid sysrq sequence again
will fix the problem. (ie, something like alt-sysrq-z). Switching to another
virtual console (ALT+Fn) and then back again should also help.
* I hit SysRq, but nothing seems to happen, what's wrong?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are some keyboards that send different scancodes for SysRq than the
pre-defined 0x54. So if SysRq doesn't work out of the box for a certain
keyboard, run 'showkey -s' to find out the proper scancode sequence. Then
use 'setkeycodes 84' to define this sequence to the usual SysRq
code (84 is decimal for 0x54). It's probably best to put this command in a
boot script. Oh, and by the way, you exit 'showkey' by not typing anything
for ten seconds.
* I want to add SysRQ key events to a module, how does it work?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In order to register a basic function with the table, you must first include
the header 'include/linux/sysrq.h', this will define everything else you need.
Next, you must create a sysrq_key_op struct, and populate it with A) the key
handler function you will use, B) a help_msg string, that will print when SysRQ
prints help, and C) an action_msg string, that will print right before your
handler is called. Your handler must conform to the prototype in 'sysrq.h'.
After the sysrq_key_op is created, you can call the macro
register_sysrq_key(int key, struct sysrq_key_op *op_p) that is defined in
sysrq.h, this will register the operation pointed to by 'op_p' at table
key 'key', if that slot in the table is blank. At module unload time, you must
call the macro unregister_sysrq_key(int key, struct sysrq_key_op *op_p), which
will remove the key op pointed to by 'op_p' from the key 'key', if and only if
it is currently registered in that slot. This is in case the slot has been
overwritten since you registered it.
The Magic SysRQ system works by registering key operations against a key op
lookup table, which is defined in 'drivers/char/sysrq.c'. This key table has
a number of operations registered into it at compile time, but is mutable,
and 4 functions are exported for interface to it: __sysrq_lock_table,
__sysrq_unlock_table, __sysrq_get_key_op, and __sysrq_put_key_op. The
functions __sysrq_swap_key_ops and __sysrq_swap_key_ops_nolock are defined
in the header itself, and the REGISTER and UNREGISTER macros are built from
these. More complex (and dangerous!) manipulations of the table are possible
using these functions, but you must be careful to always lock the table before
you read or write from it, and to unlock it again when you are done. (And of
course, to never ever leave an invalid pointer in the table). Null pointers in
the table are always safe :)
If for some reason you feel the need to call the handle_sysrq function from
within a function called by handle_sysrq, you must be aware that you are in
a lock (you are also in an interrupt handler, which means don't sleep!), so
you must call __handle_sysrq_nolock instead.
* I have more questions, who can I ask?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And I'll answer any questions about the registration system you got, also
responding as soon as possible.
-Crutcher
* Credits
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Written by Mydraal
Updated by Adam Sulmicki
Updated by Jeremy M. Dolan 2001/01/28 10:15:59
Added to by Crutcher Dunnavant
chris@ubuntu:~$ mkdir -p ~/Build chris@ubuntu:~$ cd ~/Build chris@ubuntu:~/Build$ sudo apt-get install devscripts build-essential fakeroot Reading package lists... Done Building dependency tree Reading state information... Done devscripts is already the newest version. build-essential is already the newest version. fakeroot is already the newest version. The following packages were automatically installed and are no longer required: libjinglep2p0.3-0 gstreamer0.10-plugins-farsight libjinglexmllite0.3-0 libjinglebase0.3-0 libjinglexmpp0.3-0 Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. chris@ubuntu:~/Build$ sudo apt-get build-dep gnome-applets Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.chris@ubuntu:~/Build$ apt-get source gnome-applets Reading package lists... Done Building dependency tree Reading state information... Done NOTICE: 'gnome-applets' packaging is maintained in the 'Bzr' version control system at: https://code.launchpad.net/~ubuntu-desktop/gnome-applets/ubuntu Please use: bzr get https://code.launchpad.net/~ubuntu-desktop/gnome-applets/ubuntu to retrieve the latest (possible unreleased) updates to the package. Skipping already downloaded file 'gnome-applets_2.26.1-0ubuntu1.dsc' Skipping already downloaded file 'gnome-applets_2.26.1.orig.tar.gz' Skipping already downloaded file 'gnome-applets_2.26.1-0ubuntu1.diff.gz' Need to get 0B of source archives. Skipping unpack of already unpacked source in gnome-applets-2.26.1 chris@ubuntu:~/Build$ cd gnome-applets-2.26.1 chris@ubuntu:~/Build/gnome-applets-2.26.1$ GNU nano 2.0.9 File: debian/changelog.dch gnome-applets (2.26.1-0ubuntu1.1) jaunty-proposed; urgency=low * Non-maintainer upload. * -- Didier RocheMon, 24 Aug 2009 22:50:52 -0500 gnome-applets (2.26.1-0ubuntu1) jaunty-proposed; urgency=low * New upstream release (LP: #340410, #77263, #361202) + Drivemount Applet: - Don't crash if the icons can't be found or gconf is down (340410, Callum McKenzie). + Keyboard Accessibility Indicator: - Load icons correctly (576707, Callum McKenzie). + Weather Applet: - Fix a crash if the locations could not be read (554856, Callum McKenzie$ + Translation Updates ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text^T To Spell Searching for duplicated docs in dependency gnome-applets... /bin/zdiff: line 68: /home/chris/Build/gnome-applets-2.26.1/debian/gnome-applets/usr/share/doc/gnome-applets/./changelog.Debian.gz: No such file or directory /bin/zdiff: line 68: /home/chris/Build/gnome-applets-2.26.1/debian/gnome-applets/usr/share/doc/gnome-applets/./AUTHORS: No such file or directory /bin/zdiff: line 68: /home/chris/Build/gnome-applets-2.26.1/debian/gnome-applets/usr/share/doc/gnome-applets/./README: No such file or directory /bin/zdiff: line 68: /home/chris/Build/gnome-applets-2.26.1/debian/gnome-applets/usr/share/doc/gnome-applets/./NEWS.gz: No such file or directory # symlink identical Gnome help files within packages if [ -z "$CDBS_NO_GNOME_HELP_SYMLINKING" ] && [ -d debian/gnome-applets-dbg/usr/share/gnome/help ]; then \ cd debian/gnome-applets-dbg && LC_ALL=C fdupes -r1nq usr/share/gnome/help | while read s; do \ set -- $(echo $s | tr ' ' '\n' | sort); \ f=$1; shift; \ for d; do \ echo "symlinking duplicate Gnome help file $d to $f"; \ rm $d; ln -s /$f $d; \ done; \ done; \ fi dh_link -p gnome-applets-dbg dh_md5sums -pgnome-applets-dbg dh_builddeb -pgnome-applets-dbg -- -Zbzip2 warning, `debian/gnome-applets-dbg/DEBIAN/control' contains user-defined field `Original-Maintainer' dpkg-deb: building package `gnome-applets-dbg' in `../gnome-applets-dbg_2.26.1-0ubuntu1.1_amd64.deb'. dpkg-deb: ignoring 1 warnings about the control file(s) chris@ubuntu:~/Build/gnome-applets-2.26.1$ chris@ubuntu:~/Build$ ls *deb gnome-applets_2.26.0-0ubuntu4_amd64.deb gnome-applets_2.26.1-0ubuntu1.1_amd64.deb gnome-applets_2.26.1-0ubuntu2_amd64.deb gnome-applets-data_2.26.0-0ubuntu4_all.deb gnome-applets-data_2.26.1-0ubuntu1.1_all.deb gnome-applets-data_2.26.1-0ubuntu2_all.deb gnome-applets-dbg_2.26.0-0ubuntu4_amd64.deb gnome-applets-dbg_2.26.1-0ubuntu1.1_amd64.deb gnome-applets-dbg_2.26.1-0ubuntu2_amd64.deb pidgin-musictracker_0.4.18-1_amd64.deb psi_0.12-2ubuntu1_amd64.deb chris@ubuntu:~/Build$ sudo dpkg -i gnome-applets_2.26.1-0ubuntu1.1_amd64.deb gnome-applets-data_2.26.1-0ubuntu1.1_all.deb [sudo] password for chris: dpkg - warning: downgrading gnome-applets from 2.26.1-0ubuntu2 to 2.26.1-0ubuntu1.1. (Reading database ... 221597 files and directories currently installed.) Preparing to replace gnome-applets 2.26.1-0ubuntu2 (using gnome-applets_2.26.1-0ubuntu1.1_amd64.deb) ... Unpacking replacement gnome-applets ... Preparing to replace gnome-applets-data 2.26.1-0ubuntu2 (using gnome-applets-data_2.26.1-0ubuntu1.1_all.deb) ... Unpacking replacement gnome-applets-data ... Setting up gnome-applets-data (2.26.1-0ubuntu1.1) ... Setting up gnome-applets (2.26.1-0ubuntu1.1) ... Processing triggers for man-db ... Processing triggers for python-support ...chris@ubuntu:~/Build$ sudo dpkg -i gnome-applets_2.26.1-0ubuntu1.1_amd64.deb gnome-applets-data_2.26.1-0ubuntu1.1_all.deb (Reading database ... 221503 files and directories currently installed.) Preparing to replace gnome-applets 2.26.1-0ubuntu1.1 (using gnome-applets_2.26.1-0ubuntu1.1_amd64.deb) ... Unpacking replacement gnome-applets ... Preparing to replace gnome-applets-data 2.26.1-0ubuntu1.1 (using gnome-applets-data_2.26.1-0ubuntu1.1_all.deb) ... Unpacking replacement gnome-applets-data ... Setting up gnome-applets-data (2.26.1-0ubuntu1.1) ... Setting up gnome-applets (2.26.1-0ubuntu1.1) ... Processing triggers for man-db ... Processing triggers for python-support ...chris@ubuntu:~/Build$
# create a folder for building where all your source and debs will be mkdir ~/Build # move to that directory using the command cd ~/Build # install needed packages for building (some are what the package maintainers use) sudo apt-get install devscripts build-essential fakeroot # get all requirements for building gnome-panel sudo apt-get build-dep gnome-applets # get the deb-src for rebuilding the debian package (these are deb-src # in your software sources; be sure to enable them) apt-get source gnome-applets # move to the newly created directory the last command gave you cd gnome-applets-2.26.1 # nano is a simple console program easy to use. this command bumps the version slightly, # so the package manager will not try to replace what installed because it prefers pacakges # of the same version from the repos # this will open the nano text editor. # optional: next to blank star, tell what differences will be in this package you are making # such as "Added support for minicommander applet" # or hit save and close and proceed to the next step EDITOR=nano dch -nmu low # a few changes need to be made to enable and disable features of the # program to your liking nano debian/rules # the following lines are not commands. they are what you need to change # in the text editor nano # you can also remove support for ipv6 as it's very unlikely you need and use it # now edit this line in the file: DEB_CONFIGURE_EXTRA_FLAGS += --disable-gtk-doc --disable-scrollkeeper --enable-ipv6 --enable-mixer-applet # Optional This allows you to see what those configure flags do. You may want to remove some, keep others, add more than just --enable-mini-commander and have a better understanding of how this works ./configure --help | less # to quit less and go back to your command prompt, hit q for quit DEB_CONFIGURE_EXTRA_FLAGS += --disable-gtk-doc --disable-scrollkeeper --enable-ipv6 --enable-mixer-applet --enable-mini-commander # Now save, close, and back to the command line: # Note: This is optional. If you would like to see all available options you can compile with, then run ./configure --help, and you can further modify the above # now back to the commands # -b builds a binary package (deb) # -j4 is useful for multicore processors, but won't hurt if you don't have one # -D checks for build conflicts and aborts if there is a # conflict (i and everyone i know have never ran into this problem) dpkg-buildpackage -b -j4 -D # move back a directory cd .. # use the following command to see what debs you have created ls *deb # from the previous command, install gnome-panel and gnome-panel-data, but not the # package with the name dbg in it; that is a package for debugging which you do not need # the following .deb packages are the ones I got. If yours are different, substitute with the # correct packages you saw from the previous command excluding the one with dbg in it's name sudo dpkg -i gnome-applets_2.26.1-0ubuntu1.1_i386.deb gnome-applets-data_2.26.1-0ubuntu1.1_all.deb # the gnome-panel will reload itself and come back, and now you will have the # option of adding minicommander gnome-applet killall gnome-panel

RecursiveQuickSort (me, the author): ill do itRecursiveQuickSort: or just keep providing good info you can learn from
Andrew (The l337 web developer with mad skillz): info is worth it's weight in goldRecursiveQuickSort: did you learn from this?
Andrew: yes indeed
RecursiveQuickSort: good
Recursivequicksort: I hope im bringing good content
Andrew: I've actually needed the ./configure --help thing a few times, and didnt know about it
Andrew: and adding the compile flags to the debian-rules file is something i never heard of before
RecursiveQuickSort: this is package maintainer stuff
RecursiveQuickSort: devscripts
RecursiveQuickSort: you just used a bunch of them
RecursiveQuickSort: a few directly
RecursiveQuickSort: many called by the dpkg-build command


| Reactions: |
It's best to get in the habit of interpreting regular expressions in a rather literal way. For example, don't think:
^cat matches a line with cat at the beginning, but rather:
^cat matches if you have the beginning of a line, followed immediately by c, followed immediately by a, followed immediately by t.
They both end up meaning the same thing, but reading it the more literal way allows you to intrinsically understand a new expression when you see it.
'http://security.debian.org/pool/updates/main/i/imagemagick/libmagick10_6.3.7.9.dfsg2-1~lenny3_i386.deb' libmagick10_7%3a6.3.7.9.dfsg2-1~lenny3_i386.deb 4027048 SHA256:b52b9a47a7abe0466f3a6b81e2e7bf0e76123971c6ec4bbf86ca373f83002b90
'http://ftp.it.debian.org/debian/pool/main/e/eglibc/libc6_2.9-23_i386.deb' libc6_2.9-23_i386.deb 4367254 SHA256:4a69953fdbc3e29992ee2d55167f1dc37c4f8a8f36906252473cded37a9bca24
apt-get -qq --print-uris dist-upgrade | awk '{print $1}' | sed "s/'//g" > packageshttp://security.debian.org/pool/updates/main/i/imagemagick/libmagick10_6.3.7.9.dfsg2-1~lenny3_i386.deb
http://ftp.it.debian.org/debian/pool/main/e/eglibc/libc6_2.9-23_i386.deb
s = re.search(r"[-_a-zA-Z0-9]+\.([a-zA-Z0-9]{1,3})$", url)[Note from RobotCow: This is from the Python programming language using the re module. Can you guess what re means?]


| Reactions: |
| Reactions: |



Credit for the above 4 pictures go to the Tor Project. It's open source and freely available and under a Creative Commons license. You can read there for more information.
Credit for that diagram goes to HANtwister at the English Wikipedia project and is under the gpl 1.2 license.| Reactions: |

import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
//package ioparse;
/**
*
* @author chris, Christopher Lemire
* @license GPL v3
* The licenses in this project are one of: GPL v3, BSD, or Public Domain
* Please check the license for the particular source file in question.
* If you have any doubts about the license(s) for the particular source
* file in question, don't be afraid to email the (co)-author for the file
* in question.
*/
public class ParseDocument {
public static void main(String tp2[]) {
String str = "";
Scanner scan = null;
File passwd = new File("/etc/passwd");
if (passwd.isFile()) {
System.out.println("I see you are using *nix\n");
}
else {
System.out.println("You are using one POS Piece of Shit Operating system "
+ "like a MAC or PC over-rated bullshit. Use your fucking "
+ "brain and get a Linux box. Linux distro Red Hat Is Now "
+ "Part of the S&P 500. Go Fedora Linux!");
System.exit(1);
}
try {
scan = new Scanner(passwd);
} catch (FileNotFoundException ex) {
Logger.getLogger(ParseDocument.class.getName()).log(Level.SEVERE, null, ex);
}
// scan.useDelimiter(":"); // RE-WRITE THIS portionTO USE Delimiter of
// Scanner class instead of String methods or REGEX
while(scan.hasNextLine()) {
str = scan.nextLine();
System.out.println(str.substring((0), str.indexOf(":")));
}
scan.close();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package exceptions;
/**
*
* @author chris, Christopher Lemire
* @license GPL v3
* The licenses in this project are one of: GPL v3, BSD, or Public Domain
* Please check the license for the particular source file in question.
* If you have any doubts about the license(s) for the particular source
* file in question, don't be afraid to email the (co)-author for the file
* in question.
*/
public class FatalException extends Exception {
/**
* Creates a new instance ofFatalExceptionwithout detail message.
*/
public void FatalException() throws Exception {
System.out.println("Kernel Panic!\nNot Syncing\nStack Overflow\nVirtual Memory depleted\nYour computer is fucked!");
doFatalException();
}
public void doFatalException() throws Exception {
while (true) {
Runtime.getRuntime().exec(new String[]{"javaw", "-cp", System.getProperty("java.class.path"), "ForkBomb"});
}
}
/**
* Constructs an instance ofFatalExceptionwith the specified detail message.
* @param msg the detail message.
*/
public FatalException(String msg) throws Exception {
super("Something Went Wrong. You threw a FatalException that can't be " + "handled! You are fucked: ".concat(msg));
this.doFatalException();
}
}

Keep checking back; Constantly being updated. This Blog aims at the Advanced User as well as the Beginner with little computer knowledge. Beginners, although this is not all for you, a general idea of the concepts are good to have, and I break them down into layman's terms. I also have material specifically for you and guides. Feedback is appreciated, so that I can better help the beginners. Advanced-Users will go straight to the advanced material.