All of Java s Input/Output (I/O) facilities are based on streams, which provide simple ways to read and write data of different types. Java provides many different kinds of streams, each with its own application. The universe of streams is divided into four large categories: input streams and output streams, for reading and writing binary data and readers and writers, for reading and writing textual (character) data. You re almost certainly familiar with the basic kinds of streams--but did you know that there s a CipherInputStream for reading encrypted data? And a ZipOutputStream for automatically compressing data? Do you know how to use buffered streams effectively to make your I/O operations more efficient? Java I/O, 2nd Edition has been updated for Java 5.0 APIs and tells you all you ever need to know about streams--and probably more.
The Bit Array structure provides a compacted arrays of Booleans, with one bit for each Boolean value. A 0 [1] bit corresponds to the Boolean value false [true], respectively. We can look at a stream of bytes as a stream of bits each byte contains 8 bits, so any n bytes hold n*8 bits. And the operation to manipulate this stream or bits array is so easy, jut read or change the bits state or make any Boolean operation on the whole bits array, like 鈥楢ND鈥? 鈥極R鈥? or 鈥榅OR鈥?
Urwid is a Python library for making text console applications. It has many features including fluid interface resizing, support for UTF-8 and CJK encodings, standard and custom text layout modes, simple markup for setting text attributes, and a powerful, dynamic list box that handles a mix of widget types. It is flexible, modular, and leaves the developer in control.
A pure python module which implements the DES and Triple-DES encryption algorithms. Triple DES is either DES-EDE3 with a 24 byte key, or DES-EDE2 with a 16 byte key.
Compression using lempel-ziv
-for a dictionary size of 2k
-provide dictionary
Lempel ziv algorithm is a dictionary based algorithm that addresses byte sequences from former contents instead of the original data. This algorithm consists of a rule for parsing strings of symbols from a finite alphabet into substrings, whose lengths do not exceed a prescribed integer and a coding scheme which maps these substrings sequentially into uniquely decipherable code words of fixed length. The strings are selected so that they have nearly equal probability of occurrence. Frequently-occurring symbols are grouped into longer strings while occasional symbols appear in short strings.
Novell.Press.Linux.Kernel.Development
linux內核開發的經典書籍之一
The Linux kernel is one of the most interesting yet least understood open-source projects. It is also a basis for developing new kernel code. That is why Sams is excited to bring you the latest Linux kernel development information from a Novell insider in the second edition of Linux Kernel Development. This authoritative, practical guide will help you better understand the Linux kernel through updated coverage of all the major subsystems, new features associated with Linux 2.6 kernel and insider information on not-yet-released developments. You ll be able to take an in-depth look at Linux kernel from both a theoretical and an applied perspective as you cover a wide range of topics, including algorithms, system call interface, paging strategies and kernel synchronization. Get the top information right from the source in Linux Kernel Development
A user-space device driver can do many of the things that kernel drivers can t, such as perform a long-running computation, block while waiting for an event, or read files from the file system. Unlike kernel drivers, a user-space device driver can use other device drivers--that is, access the network, talk to a serial port, get interactive input from the user, pop up GUI windows, or read from disks. User-space drivers implemented using FUSD can be much easier to debug it is impossible for them to crash the machine, are easily traceable using tools such as gdb, and can be killed and restarted without rebooting even if they become corrupted. FUSD drivers don t have to be in C--Perl, Python, or any other language that knows how to read from and write to a file descriptor can work with FUSD. User-space drivers can be swapped out, whereas kernel drivers lock physical memory.
The code for this article was written for version 1.0 of the
Active Template Library (ATL). The current version of the code
(in SieveATL) was built with Visual C++ 6.0 and the ATL provided
with that compiler. It may be slightly different than the code
shown in the article.
The directory SieveMFC contains an MFC version of a component
equivalent to the ATL version discussed in the article. It was built
with version 5 of the C++ compiler and the MFC version provided
with it.
The code discussed in the article was later adapted for Hardcore
Visual Basic, Second Edition. Comparable Visual Basic versions are
discussed in Chapter 10 of the book.
Bruce McKinney