Showing posts with label p2p. Show all posts
Showing posts with label p2p. Show all posts

Thursday, October 11, 2012

Aria2 shell script and batch file

I wrote a BASH shell script and a DOS batch file that can be used to download files using aria2 — Aria2 is a command-line tool for downloading files. The script and the batch file take 2 arguments; the first one is for the bittorrent hash in 40-digit hexadecimal number and the second one is for arbitrary one-word description.





aria2.bat can be used on Windows, and aria2.sh can be used on Linux and *BSD. Make sure that aria2c is in PATH. For example, if you want to download an ISO file for the OpenSUSE DVD, you would type something like:



aria2.bat 198472f5217d843cceb1a4c82233f009ed6608af opensuse-dvd-586


To find the value of a bittorrent hash (that long hex number), you can cut it from a magnet link you find on a Web site — Magnet links allow you to download actual files without first having to download bittorrent files (*.torrent). When you see a magnet sign, right-click on it to display the shortcut menu and select Copy Link Location.



btih-demo1

Then, paste it somewhere, for example, inside the URL address bar. The hash value comes after the btih: string.



btih-demo2

After you find the bittorrent hash, use it as the first argument to the script and make up anything for the second argument, as shown in the example above.


Monday, October 1, 2012

Bittorrent Info Hash Values for Windows 8 ISO

Windows 8 ISO files have the following BTIH hash values. Use them with my aria2 script to download Windows 8.




  1. en_windows_8_x86_dvd_915417.iso

    C5D92B32277685436DEDE9957B80083D26062C03
  2. en_windows_8_x64_dvd_915440.iso

    144C7E2B46103FF84F83A1E6A12D66B740F00CF6

Thursday, September 20, 2012

Compile Aria2 1.15.2 with MinGW

Aria2 is a command-line download utility. It can be used to download files quickly from http(s), ftp, bittorrent, magnet and metalink locations. I prefer this handy tool over other programs, such as Free Download Manager and Frostwire because it's lean, fast and full of features. It took me a couple of days to compile Aria2 with all the features available. The following step-by-step guide will help you build your own aria2 program (aria2c.exe) the way I did.







  1. Install MinGW

    Follow one of the following guides to install MingW:




  2. POSIX Threads

    Download the source for Pthreads library (pthreads-w32-2-9-1-release.tar.gz) and compile it like this:


    make clean GC-static
    cp pthread.h semaphore.h sched.h /mingw/include/
    cp libpthreadGC2.a /mingw/lib/libpthread.a


  3. zlib

    Zlib is needed by the OpenSSL library below. Download the zlib source and compile it like this:


    make -f win32/Makefile.gcc
    make -f win32/Makefile.gcc install BINARY_PATH=/mingw/bin INCLUDE_PATH=/mingw/include LIBRARY_PATH=/mingw/lib


  4. OpenSSL

    Aria2 requires either GnuTLS or OpenSSL for secure transfers. In this guide, OpenSSL is chosen over GnuTLS. Use 7-zip to unpack the tarball because it contains symbolic links.


    ./Configure -DHAVE_STRUCT_TIMESPEC -DPTW32_STATIC_LIB -L/mingw/lib -lz -lpthread -lws2_32 --prefix=/mingw threads zlib mingw
    make
    make install


  5. Expat


    Aria2 can use either LibXML2 or Expat for XML parsing. In this guide, Expat will be used. Download the expat source and compile expat like this:


    ./configure --build=i686-w64-mingw32 --prefix=/mingw --disable-shared --enable-static
    make
    make install


  6. C-Ares


    C-Ares is a C library that performs DNS requests and resolves DNS names asynchronously. Download the C-ares source from c-ares.haxx.se and unpack it. Then, compile C-Ares as follows:


    ./configure --build=i686-w64-mingw32 --prefix=/mingw --disable-shared CPPFLAGS='-I/mingw/include -DCARES_STATICLIB'
    make
    make install


  7. SQLite 3


    Download the SQLite source (sqlite-amalgamation-3071300.zip) and build SQLite 3:


    gcc -O2 -DNDEBUG=1 -DTHREADSAFE=1 -c *.c
    ar ru /mingw/lib/libsqlite3.a sqlite3.o
    cp -iv *.h /mingw/include

    Create sqlite3.pc and put it in /mingw/lib/pkgconfig.


    prefix=/mingw
    exec_prefix=${prefix}
    libdir=${exec_prefix}/lib
    includedir=${prefix}/include

    Name: SQLite
    Description: SQL database engine
    Version: 3.5

    Libs: -L${libdir} -lsqlite3
    Cflags: -I${includedir}


  8. aria2c


    Finally, we are ready to compile Aria2. Download the Aria2 source from aria2.sf.net and unpack the source. Then, configure aria2 as follows:


    ./configure --build=i686-w64-mingw32 --prefix=/mingw --enable-threads=posix --with-ca-bundle=ca-bundle.crt --disable-nls LIBS='-lpthread -lws2_32 -lcares -lz' CPPFLAGS='-DPTW32_STATIC_LIB -DCARES_STATICLIB'


    aria2_config

    Then, issue the following commands to compile Aria2:


    make
    make install


  9. Optionally, strip and compress the executable aria2c.exe.

    strip aria2c.exe
    upx --best --strip-relocs=0 aria2c.exe



To download my Windows builds of aria2, go here.



Aria2c Usage


aria2c --file-allocation=prealloc ftp://192.168.1.64/pardus.iso

If aria2 aborts a download due to a connection error, you can resume the download any time using aria2c like this:


aria2c -c ftp://192.168.1.64/pardus.iso

To download files from URL's written in a file urls.txt to a folder Downloads, run aria2 as follows. The urls.txt should contain one download per line with URL's seperated by a tab:


aria2c -i urls.txt -d Downloads

Sunday, November 14, 2010

Transmission-Daemon for Windows

Here are my Windows builds of transmission-daemon. I built it with Cygwin's GCC compiler. 7-zip or a newest version of unzip should be used to unpack them.


The package contains the following files:


  • Cygwin1.dll

    Cygwin Unix layer

  • transmission-cli.exe

    Command-line Bittorrent Client

  • transmission-create.exe

    Create .torrent files

  • transmission-daemon.exe

    Transmission server

  • transmission-edit.exe

    Edit .torrent files

  • transmission-remote.exe

    Control the transmission daemon

  • transmission-show.exe

    Show .torrent contents


Unpack the package into a folder, for example, C:\Program Files\Transmission. Then, create a shortcut with the following command:

transmission-daemon -b -o -m -ep -a 127.0.0.1,192.168.*.* --utp


Double-clicking the shortcut will not open any window. However, transmission-daemon is silently running in the background. You can control the daemon with any Web browser by opening this local Web address:


http://127.0.0.1:9091/

Although you can control transmission-daemon with a Web browser, it's not a pretty thing to do so. I recommend using transmission-remote-dotnet or transmission-remote-gui. The following is a screenshot for Transmission Remote .NET which is written in C#.



And, below you can see Transmission Remote GUI that's written in Pascal.




The settings for the daemon are stored in the ~/.config/transmission-daemon folder. Make sure the HOME environment variable points correctly to your folder.



Also, TRANSMISSION_WEB_HOME environment variable should be correctly set up to use the web browser interface.



To learn how to build transmission-daemon for Windows, read this post.

Saturday, July 10, 2010

List of Useful Software for Windows



I just finished setting up my laptop. It's got Windows 7 Home Premium installed. The following is a list of software I installed onto my laptop:





Related Posts


Sunday, April 11, 2010

Tools for Downloading Stuff from the Internet

You can get a variety of software, music and movies from the Internet. Some of them are legally okay to download like open-source software and free publications, but there are things you're not legally allowed to download, such as most music and movies. However, with the increasing availability of high-speed Internet and P2P software, the Internet is exponentially growing in the number of downloadable stuff.

There are so many software for downloading stuff from the Net, but only a few good ones are listed here.



  • amule

    Multi-platform program for downloading from ed2k or Kad networks.
  • aria2

    Command-line tool for downloading from Web, FTP, Bittorrent and Metalinks. Very Light , Fast and Efficient.
  • eMule

    Old-school ed2k client for downloading from eDonkey or Kademlia networks.
  • Frostwire

    Limewire clone that allows you to download from Gnutella or Bittorrent network.
  • gtk-gnutella

    Open-source Linux/*BSD client for Gnutella network.
  • HalogenWare Retriever

    Java software for downloading from HTTP, FTP, Bittorrent and Metalinks.
  • MLDonkey and Sancho

    Yet another eDonkey client
  • Phex

    Gnutella client that keeps getting better
  • Transmission bittorrent client

    I like to compile transmission-daemon and use it with a GUI frontend, such as transmission-remote-gui
    and transmission-remote-dotnet.
  • wxDownload Fast

    simple wxWidgets application that lets you quickly download from FTP and HTTP. Read my guide to compiling it here.


Once you have P2P software installed, you'll want to know more about how to search for files on the Internet. The following is a list of search engines for P2P users.


Sunday, January 17, 2010

gtk-gnutella for Windows

Here's my gtk-gnutella build.




You may choose to install the GTK+ library and gtk-gnutella in the same folder. This means gtk-gnutella.exe and libgtk-win32-2.0-0.dll are in the same place.


Create a shortcut on the desktop to the GTK-Gnutella executable. Double-click the shortcut to run gtk-gnutella.

Monday, January 4, 2010

Build GTK-gnutella on Debian 3.1 Sarge

I keep writing about Debian 3.1 Sarge which is an outdated release. Yet, Debian Sarge has some historical values. I use Sarge as the minimum base for my Internet computer. Today, I compiled GTK-gnutella on Debian Sarge. For preparation, I installed the following packages:



  • gcc
  • make
  • zlib1g-dev
  • libxml2-dev
  • libgtk2.0-dev


GTK-gnutella depends on GNUtls library for secure communication. I downloaded and compiled libgpg-error, libgcrypt, libtasn and gnutls in the order. They all have the same procedure.



./configure --build=i586-pc-linux-gnu --prefix=/usr --disable-shared
make
make install


Then, I unpacked gtk-gnutella source and configured it.


./Configure


Since I built gnutls statically, I had to modify src/Makefile slightly.


GNUTLS_LDFLAGS = -lgnutls -ltasn1 -lgcrypt -lgpg-error


I started compilation.



make
make install


The resulting executable depends on gtk+ 2.0 and libxml2 externally and works on Sarge, Etch, Lenny and Sid all.

Sunday, January 3, 2010

Compile Aria2c on Debian Linux

Aria2 is a fast download utility that you use in the Command Prompt or xterm. To compile aria2 for Linux, install the following packages.



  • ca-certificates
  • g++
  • make
  • libexpat1-dev
  • libsqlite3-dev
  • libssl-dev
  • zlib1g-dev


Although Debian 5.0 Lenny has libc-ares2, Debian 4.0 Etch and Debian 3.1 Sarge don't have it. As a user of Debian Sarge, I had to compile c-ares myself to enable asynchronous DNS resolution in Aria2c. I downloaded c-ares source from c-ares.haxx.se and compiled it statically.



tar xzvf c-ares-1.7.0.tar.gz

cd c-ares-1.7.0/

./configure --prefix=/usr --build=i586-pc-linux-gnu --disable-debug --disable-shared CFLAGS='-DCARES_STATICLIB'

make

make install


Then, I downloaded Aria2 source from aria2.sf.net and compiled it like this:



tar xzvf aria2-1.8.0.tar.gz

cd aria2-1.8.0

./configure --build=i586-pc-linux-gnu --prefix=/usr --enable-bittorrent --enable-metalink --enable-threads=posix --with-ca-bundle="/etc/ssl/certs/ca-certificates.crt" LIBS='-lrt -lcares' CPPFLAGS='-DCARES_STATICLIB'


You can optionally link aria2 with static libraries libssl and libcrypto. This is useful when you move aria2c to another system with a different version of OpenSSL library. To do so, open every Makefile in the aria2 source directory and change every line containing “-L/usr/local/lib -lssl -lcrypto” to “/usr/lib/libssl.a /usr/lib/libcrypto.a”. Then, run the following commands to build aria2.



make
make install


An executable /usr/bin/aria2c will be installed. To use it, open a xterm or rxvt and type its command. To see brief command-line options, type aria2c -h.

Saturday, January 2, 2010

To Compile aMule 2.2.6 on Debian 3.1 Sarge

aMule is a peer-to-peer file-sharing application. Although ed2k networks that aMule connects to have been shrinking in popularity, I prefer aMule over Bittorrent clients for its ability to create serverless P2P network (Kademlia). The aMule backported package for Debian 3.1 Sarge is outdated, so I compiled the latest version 2.2.6 of aMule on Debian Sarge. I installed the following packages first.



  • binutils-dev
  • bison
  • flex
  • g77
  • g++
  • gettext
  • make
  • libcrypto++-dev
  • libgd2-noxpm-dev (or libgd2-xpm-dev)
  • libgeoip-dev
  • libgtk2.0-dev
  • libjpeg62-dev
  • libpng12-dev
  • libreadline5-dev
  • libsm-dev
  • libtiff4-dev
  • libxpm-dev


aMule depends on wxGTK library, but wxGTK library in Debian Sarge is also outdated. So I downloaded the latest wxGTK source (wxGTK-2.8.10.tar.gz) from wxwidgets.org. I compiled wxGTK in the following way. The --disable-shared option causes a static library to be built. This allows me to install aMule on another system without having to install a separate wxGTK library.



tar xzvf wxGTK-2.8.10.tar.gz

cd wxGTK-2.8.10/

mkdir buildgtk

cd buildgtk

../configure --prefix=/usr --sysconfdir=/etc --build=i586-pc-linux-gnu --enable-monolithic --enable-optimise --enable-intl --enable-unicode --enable-threads --enable-mousewheel --with-gtk=2 --with-libpng --with-libjpeg --with-libtiff --with-libxpm --with-regex --with-zlib --with-expat --disable-shared --disable-abi-incompatible-features --disable-no_rtti --disable-no_exceptions --disable-joystick --disable-compat24

make

make install


aMule can use libupnp if available. I downloaded libupnp-1.6.6.tar.bz2 from pupnp.sf.net and compiled it statically like this:


tar xjvf libupnp-1.6.6.tar.bz2

cd libupnp-1.6.6/

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=i586-pc-linux-gnu --disable-shared

make

make install


Then, I built aMule in the following way.


tar xjvf aMule-2.2.6.tar.bz2

cd aMule-2.2.6/

./configure --prefix=/usr --mandir=/usr/share/man --build=i586-pc-linux-gnu --enable-amule-daemon --enable-amulecmd --enable-webserver --enable-cas --enable-wxcas --enable-alc --enable-alcc --enable-geoip --disable-debug --enable-optimize

make

make install


The following files are installed on the system:


/usr/bin/alc
/usr/bin/alcc
/usr/bin/amule
/usr/bin/amulecmd
/usr/bin/amuled
/usr/bin/amuleweb
/usr/bin/autostart-xas
/usr/bin/cas
/usr/bin/ed2k
/usr/bin/wxcas
/usr/lib/xchat/plugins/xas.pl
/usr/share/amule/skins/gnome.zip
/usr/share/amule/skins/kde4.zip
/usr/share/amule/skins/tango.zip
/usr/share/amule/skins/xfce.zip
/usr/share/amule/webserver/chicane/aMule.tmpl
/usr/share/amule/webserver/chicane/add_server.gif
/usr/share/amule/webserver/chicane/arrow_down.gif
/usr/share/amule/webserver/chicane/arrow_down_logout.gif
/usr/share/amule/webserver/chicane/arrow_right.gif
/usr/share/amule/webserver/chicane/arrow_up.gif
/usr/share/amule/webserver/chicane/back.gif
/usr/share/amule/webserver/chicane/black.gif
/usr/share/amule/webserver/chicane/blank1x1.gif
/usr/share/amule/webserver/chicane/blue1.gif
/usr/share/amule/webserver/chicane/blue2.gif
/usr/share/amule/webserver/chicane/blue3.gif
/usr/share/amule/webserver/chicane/blue4.gif
/usr/share/amule/webserver/chicane/blue5.gif
/usr/share/amule/webserver/chicane/blue6.gif
/usr/share/amule/webserver/chicane/cp_download.gif
/usr/share/amule/webserver/chicane/cp_kad.gif
/usr/share/amule/webserver/chicane/cp_search.gif
/usr/share/amule/webserver/chicane/cp_servers.gif
/usr/share/amule/webserver/chicane/cp_settings.gif
/usr/share/amule/webserver/chicane/cp_shared.gif
/usr/share/amule/webserver/chicane/cp_stats.gif
/usr/share/amule/webserver/chicane/downloads.php
/usr/share/amule/webserver/chicane/emule.gif
/usr/share/amule/webserver/chicane/favicon.ico
/usr/share/amule/webserver/chicane/green.gif
/usr/share/amule/webserver/chicane/greenpercent.gif
/usr/share/amule/webserver/chicane/index.php
/usr/share/amule/webserver/chicane/l_cancel.gif
/usr/share/amule/webserver/chicane/l_connect.gif
/usr/share/amule/webserver/chicane/l_down.gif
/usr/share/amule/webserver/chicane/l_ed2klink.gif
/usr/share/amule/webserver/chicane/l_info.gif
/usr/share/amule/webserver/chicane/l_pause.gif
/usr/share/amule/webserver/chicane/l_resume.gif
/usr/share/amule/webserver/chicane/l_up.gif
/usr/share/amule/webserver/chicane/log.gif
/usr/share/amule/webserver/chicane/login.php
/usr/share/amule/webserver/chicane/login_bottom.gif
/usr/share/amule/webserver/chicane/login_downmain.gif
/usr/share/amule/webserver/chicane/login_lefttop.gif
/usr/share/amule/webserver/chicane/login_righttop.gif
/usr/share/amule/webserver/chicane/login_top.gif
/usr/share/amule/webserver/chicane/login_topdown.gif
/usr/share/amule/webserver/chicane/login_topseperator.gif
/usr/share/amule/webserver/chicane/logo.jpg
/usr/share/amule/webserver/chicane/main_bg.gif
/usr/share/amule/webserver/chicane/main_top_bg.gif
/usr/share/amule/webserver/chicane/main_topbar.gif
/usr/share/amule/webserver/chicane/main_topbardarker.gif
/usr/share/amule/webserver/chicane/main_topbarseperator.gif
/usr/share/amule/webserver/chicane/phpamule.png
/usr/share/amule/webserver/chicane/preferences.php
/usr/share/amule/webserver/chicane/red.gif
/usr/share/amule/webserver/chicane/search.php
/usr/share/amule/webserver/chicane/servers.php
/usr/share/amule/webserver/chicane/shared.php
/usr/share/amule/webserver/chicane/stat_graphs.php
/usr/share/amule/webserver/chicane/stat_tree.php
/usr/share/amule/webserver/chicane/transparent.gif
/usr/share/amule/webserver/chicane/tree-closed.gif
/usr/share/amule/webserver/chicane/tree-leaf.gif
/usr/share/amule/webserver/chicane/tree-open.gif
/usr/share/amule/webserver/chicane/yellow.gif
/usr/share/amule/webserver/default/aMule.tmpl
/usr/share/amule/webserver/default/add_server.gif
/usr/share/amule/webserver/default/arrow_down.gif
/usr/share/amule/webserver/default/arrow_right.gif
/usr/share/amule/webserver/default/arrow_up.gif
/usr/share/amule/webserver/default/back.gif
/usr/share/amule/webserver/default/black.gif
/usr/share/amule/webserver/default/blue1.gif
/usr/share/amule/webserver/default/blue2.gif
/usr/share/amule/webserver/default/blue3.gif
/usr/share/amule/webserver/default/blue4.gif
/usr/share/amule/webserver/default/blue5.gif
/usr/share/amule/webserver/default/blue6.gif
/usr/share/amule/webserver/default/cp_download.gif
/usr/share/amule/webserver/default/cp_kad.gif
/usr/share/amule/webserver/default/cp_search.gif
/usr/share/amule/webserver/default/cp_servers.gif
/usr/share/amule/webserver/default/cp_settings.gif
/usr/share/amule/webserver/default/cp_shared.gif
/usr/share/amule/webserver/default/cp_stats.gif
/usr/share/amule/webserver/default/downloads.php
/usr/share/amule/webserver/default/emule.gif
/usr/share/amule/webserver/default/favicon.ico
/usr/share/amule/webserver/default/green.gif
/usr/share/amule/webserver/default/greenpercent.gif
/usr/share/amule/webserver/default/index.php
/usr/share/amule/webserver/default/l_cancel.gif
/usr/share/amule/webserver/default/l_connect.gif
/usr/share/amule/webserver/default/l_down.gif
/usr/share/amule/webserver/default/l_ed2klink.gif
/usr/share/amule/webserver/default/l_info.gif
/usr/share/amule/webserver/default/l_pause.gif
/usr/share/amule/webserver/default/l_resume.gif
/usr/share/amule/webserver/default/l_up.gif
/usr/share/amule/webserver/default/log.gif
/usr/share/amule/webserver/default/login.php
/usr/share/amule/webserver/default/logo.jpg
/usr/share/amule/webserver/default/phpamule.png
/usr/share/amule/webserver/default/preferences.php
/usr/share/amule/webserver/default/red.gif
/usr/share/amule/webserver/default/search.php
/usr/share/amule/webserver/default/servers.php
/usr/share/amule/webserver/default/shared.php
/usr/share/amule/webserver/default/stat_graphs.php
/usr/share/amule/webserver/default/stat_tree.php
/usr/share/amule/webserver/default/transparent.gif
/usr/share/amule/webserver/default/tree-closed.gif
/usr/share/amule/webserver/default/tree-leaf.gif
/usr/share/amule/webserver/default/tree-open.gif
/usr/share/amule/webserver/default/yellow.gif
/usr/share/amule/webserver/litoral/amuleweb-main-dload.php
/usr/share/amule/webserver/litoral/amuleweb-main-kad.php
/usr/share/amule/webserver/litoral/amuleweb-main-log.php
/usr/share/amule/webserver/litoral/amuleweb-main-prefs.php
/usr/share/amule/webserver/litoral/amuleweb-main-search.php
/usr/share/amule/webserver/litoral/amuleweb-main-servers.php
/usr/share/amule/webserver/litoral/amuleweb-main-shared.php
/usr/share/amule/webserver/litoral/amuleweb-main-stats.php
/usr/share/amule/webserver/litoral/black.gif
/usr/share/amule/webserver/litoral/blank1x1.gif
/usr/share/amule/webserver/litoral/blue1.gif
/usr/share/amule/webserver/litoral/blue2.gif
/usr/share/amule/webserver/litoral/blue3.gif
/usr/share/amule/webserver/litoral/blue4.gif
/usr/share/amule/webserver/litoral/blue5.gif
/usr/share/amule/webserver/litoral/blue6.gif
/usr/share/amule/webserver/litoral/cancel.gif
/usr/share/amule/webserver/litoral/close.png
/usr/share/amule/webserver/litoral/col.png
/usr/share/amule/webserver/litoral/connect.gif
/usr/share/amule/webserver/litoral/down.png
/usr/share/amule/webserver/litoral/edkserv_0.png
/usr/share/amule/webserver/litoral/edkserv_1.png
/usr/share/amule/webserver/litoral/favicon.ico
/usr/share/amule/webserver/litoral/filter.png
/usr/share/amule/webserver/litoral/fond.gif
/usr/share/amule/webserver/litoral/fond_haut.png
/usr/share/amule/webserver/litoral/footer.php
/usr/share/amule/webserver/litoral/index.html
/usr/share/amule/webserver/litoral/kitty.gif
/usr/share/amule/webserver/litoral/log.php
/usr/share/amule/webserver/litoral/login.php
/usr/share/amule/webserver/litoral/loginfond.gif
/usr/share/amule/webserver/litoral/loginfond_haut.png
/usr/share/amule/webserver/litoral/loginlogo.jpg
/usr/share/amule/webserver/litoral/loginlogo.png
/usr/share/amule/webserver/litoral/logo.png
/usr/share/amule/webserver/litoral/maquette.dwt
/usr/share/amule/webserver/litoral/ok.png
/usr/share/amule/webserver/litoral/pause.png
/usr/share/amule/webserver/litoral/play.png
/usr/share/amule/webserver/litoral/red.gif
/usr/share/amule/webserver/litoral/refresh.png
/usr/share/amule/webserver/litoral/search_0.png
/usr/share/amule/webserver/litoral/search_1.png
/usr/share/amule/webserver/litoral/shared_0.png
/usr/share/amule/webserver/litoral/shared_1.png
/usr/share/amule/webserver/litoral/sheserv_0.png
/usr/share/amule/webserver/litoral/sheserv_1.png
/usr/share/amule/webserver/litoral/stats.php
/usr/share/amule/webserver/litoral/stats_0.png
/usr/share/amule/webserver/litoral/stats_1.png
/usr/share/amule/webserver/litoral/stats_tree.php
/usr/share/amule/webserver/litoral/style.css
/usr/share/amule/webserver/litoral/tab_bottom.png
/usr/share/amule/webserver/litoral/tab_bottom_left.png
/usr/share/amule/webserver/litoral/tab_bottom_right.png
/usr/share/amule/webserver/litoral/tab_left.png
/usr/share/amule/webserver/litoral/tab_right.png
/usr/share/amule/webserver/litoral/tab_top.png
/usr/share/amule/webserver/litoral/tab_top_left.png
/usr/share/amule/webserver/litoral/tab_top_right.png
/usr/share/amule/webserver/litoral/transf_0.png
/usr/share/amule/webserver/litoral/transf_1.png
/usr/share/amule/webserver/litoral/tree-closed.gif
/usr/share/amule/webserver/litoral/tree-leaf.gif
/usr/share/amule/webserver/litoral/tree-open.gif
/usr/share/amule/webserver/litoral/up.png
/usr/share/amule/webserver/litoral/yellow.gif
/usr/share/amule/webserver/php-default/amuleweb-main-dload.php
/usr/share/amule/webserver/php-default/amuleweb-main-kad.php
/usr/share/amule/webserver/php-default/amuleweb-main-prefs.php
/usr/share/amule/webserver/php-default/amuleweb-main-search.php
/usr/share/amule/webserver/php-default/amuleweb-main-servers.php
/usr/share/amule/webserver/php-default/amuleweb-main-shared.php
/usr/share/amule/webserver/php-default/amuleweb-main-stats.php
/usr/share/amule/webserver/php-default/apply.jpeg
/usr/share/amule/webserver/php-default/arrow-r.png
/usr/share/amule/webserver/php-default/cancel.gif
/usr/share/amule/webserver/php-default/connect.gif
/usr/share/amule/webserver/php-default/delete.jpeg
/usr/share/amule/webserver/php-default/down.jpeg
/usr/share/amule/webserver/php-default/favicon.ico
/usr/share/amule/webserver/php-default/footer.php
/usr/share/amule/webserver/php-default/index.html
/usr/share/amule/webserver/php-default/login.php
/usr/share/amule/webserver/php-default/pause.jpeg
/usr/share/amule/webserver/php-default/phpamule.png
/usr/share/amule/webserver/php-default/resume.jpeg
/usr/share/amule/webserver/php-default/stats.php
/usr/share/amule/webserver/php-default/stats_tree.php
/usr/share/amule/webserver/php-default/toolbutton-connect.jpeg
/usr/share/amule/webserver/php-default/toolbutton-download-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-download.jpeg
/usr/share/amule/webserver/php-default/toolbutton-filter.jpeg
/usr/share/amule/webserver/php-default/toolbutton-kad-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-kad.jpeg
/usr/share/amule/webserver/php-default/toolbutton-logout-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-logout.jpeg
/usr/share/amule/webserver/php-default/toolbutton-reload.jpeg
/usr/share/amule/webserver/php-default/toolbutton-search-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-search.jpeg
/usr/share/amule/webserver/php-default/toolbutton-servers-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-servers.jpeg
/usr/share/amule/webserver/php-default/toolbutton-settings-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-settings.jpeg
/usr/share/amule/webserver/php-default/toolbutton-shared-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-shared.jpeg
/usr/share/amule/webserver/php-default/toolbutton-stats-pressed.jpeg
/usr/share/amule/webserver/php-default/toolbutton-stats.jpeg
/usr/share/amule/webserver/php-default/top.html
/usr/share/amule/webserver/php-default/tree-closed.gif
/usr/share/amule/webserver/php-default/tree-leaf.gif
/usr/share/amule/webserver/php-default/tree-open.gif
/usr/share/amule/webserver/php-default/up.jpeg
/usr/share/applications/alc.desktop
/usr/share/applications/amule.desktop
/usr/share/applications/wxcas.desktop
/usr/share/cas/stat.png
/usr/share/cas/tmp.html
/usr/share/doc/aMule-2.2.6/ABOUT-NLS
/usr/share/doc/aMule-2.2.6/Changelog
/usr/share/doc/aMule-2.2.6/EC_Protocol.txt
/usr/share/doc/aMule-2.2.6/ED2K-Links.HOWTO
/usr/share/doc/aMule-2.2.6/INSTALL
/usr/share/doc/aMule-2.2.6/README
/usr/share/doc/aMule-2.2.6/TODO
/usr/share/doc/aMule-2.2.6/amule-win32.HOWTO.txt
/usr/share/doc/aMule-2.2.6/amulesig.txt
/usr/share/doc/aMule-2.2.6/license.txt
/usr/share/doc/aMule-2.2.6/socks4.protocol
/usr/share/locale/ar/LC_MESSAGES/amule.mo
/usr/share/locale/ast/LC_MESSAGES/amule.mo
/usr/share/locale/bg/LC_MESSAGES/amule.mo
/usr/share/locale/ca/LC_MESSAGES/amule.mo
/usr/share/locale/cs/LC_MESSAGES/amule.mo
/usr/share/locale/da/LC_MESSAGES/amule.mo
/usr/share/locale/de/LC_MESSAGES/amule.mo
/usr/share/locale/el/LC_MESSAGES/amule.mo
/usr/share/locale/en_GB/LC_MESSAGES/amule.mo
/usr/share/locale/es/LC_MESSAGES/amule.mo
/usr/share/locale/et_EE/LC_MESSAGES/amule.mo
/usr/share/locale/eu/LC_MESSAGES/amule.mo
/usr/share/locale/fi/LC_MESSAGES/amule.mo
/usr/share/locale/fr/LC_MESSAGES/amule.mo
/usr/share/locale/gl/LC_MESSAGES/amule.mo
/usr/share/locale/he/LC_MESSAGES/amule.mo
/usr/share/locale/hr/LC_MESSAGES/amule.mo
/usr/share/locale/hu/LC_MESSAGES/amule.mo
/usr/share/locale/it/LC_MESSAGES/amule.mo
/usr/share/locale/it_CH/LC_MESSAGES/amule.mo
/usr/share/locale/ja/LC_MESSAGES/amule.mo
/usr/share/locale/ko_KR/LC_MESSAGES/amule.mo
/usr/share/locale/lt/LC_MESSAGES/amule.mo
/usr/share/locale/nl/LC_MESSAGES/amule.mo
/usr/share/locale/nn/LC_MESSAGES/amule.mo
/usr/share/locale/pl/LC_MESSAGES/amule.mo
/usr/share/locale/pt_BR/LC_MESSAGES/amule.mo
/usr/share/locale/pt_PT/LC_MESSAGES/amule.mo
/usr/share/locale/ru/LC_MESSAGES/amule.mo
/usr/share/locale/sl/LC_MESSAGES/amule.mo
/usr/share/locale/sq/LC_MESSAGES/amule.mo
/usr/share/locale/sv/LC_MESSAGES/amule.mo
/usr/share/locale/tr/LC_MESSAGES/amule.mo
/usr/share/locale/uk/LC_MESSAGES/amule.mo
/usr/share/locale/zh_CN/LC_MESSAGES/amule.mo
/usr/share/locale/zh_TW/LC_MESSAGES/amule.mo
/usr/share/man/de/man1/alc.1
/usr/share/man/de/man1/alcc.1
/usr/share/man/de/man1/amule.1
/usr/share/man/de/man1/amulecmd.1
/usr/share/man/de/man1/amuled.1
/usr/share/man/de/man1/amuleweb.1
/usr/share/man/de/man1/cas.1
/usr/share/man/de/man1/ed2k.1
/usr/share/man/de/man1/wxcas.1
/usr/share/man/de/man1/xas.1
/usr/share/man/es/man1/alc.1
/usr/share/man/es/man1/alcc.1
/usr/share/man/es/man1/amule.1
/usr/share/man/es/man1/amulecmd.1
/usr/share/man/es/man1/amuled.1
/usr/share/man/es/man1/amuleweb.1
/usr/share/man/es/man1/cas.1
/usr/share/man/es/man1/ed2k.1
/usr/share/man/es/man1/wxcas.1
/usr/share/man/es/man1/xas.1
/usr/share/man/eu/man1/alc.1
/usr/share/man/eu/man1/alcc.1
/usr/share/man/eu/man1/amule.1
/usr/share/man/eu/man1/amulecmd.1
/usr/share/man/eu/man1/amuled.1
/usr/share/man/eu/man1/amuleweb.1
/usr/share/man/eu/man1/cas.1
/usr/share/man/eu/man1/ed2k.1
/usr/share/man/eu/man1/wxcas.1
/usr/share/man/eu/man1/xas.1
/usr/share/man/fr/man1/alcc.1
/usr/share/man/fr/man1/amule.1
/usr/share/man/fr/man1/amulecmd.1
/usr/share/man/fr/man1/amuled.1
/usr/share/man/fr/man1/amuleweb.1
/usr/share/man/fr/man1/ed2k.1
/usr/share/man/hu/man1/alc.1
/usr/share/man/hu/man1/alcc.1
/usr/share/man/hu/man1/amule.1
/usr/share/man/hu/man1/amulecmd.1
/usr/share/man/hu/man1/amuled.1
/usr/share/man/hu/man1/amuleweb.1
/usr/share/man/hu/man1/cas.1
/usr/share/man/hu/man1/ed2k.1
/usr/share/man/hu/man1/wxcas.1
/usr/share/man/hu/man1/xas.1
/usr/share/man/it/man1/amule.1
/usr/share/man/it/man1/amulecmd.1
/usr/share/man/it/man1/amuled.1
/usr/share/man/it/man1/amuleweb.1
/usr/share/man/it/man1/ed2k.1
/usr/share/man/man1/alc.1
/usr/share/man/man1/alcc.1
/usr/share/man/man1/amule.1
/usr/share/man/man1/amulecmd.1
/usr/share/man/man1/amuled.1
/usr/share/man/man1/amuleweb.1
/usr/share/man/man1/cas.1
/usr/share/man/man1/ed2k.1
/usr/share/man/man1/wxcas.1
/usr/share/man/man1/xas.1
/usr/share/pixmaps/alc.xpm
/usr/share/pixmaps/amule.xpm
/usr/share/pixmaps/wxcas.xpm

Tuesday, August 18, 2009

MinGW: Building aMule for Windows

aMule is a peer-to-peer file-sharing program for Windows, Linux, Mac and *BSD. aMule can be used to share files with users of eMule. This post describes the steps I took in building aMule for Windows.


  1. First, install MinGW as shown in this post. Download pkg-config.exe and save it in /mingw/bin:



  2. Install Strawberry Perl or ActivePerl. If you've already unpacked aMule source, open src/libs/ec/file_generator.perl with a text editor and modify the first line. If ActivePerl is installed:
    #!/c/Perl/bin/perl

    If Strawberry Perl is installed:


    #!/c/strawberry/perl/bin/perl


  3. Download the Zlib source (zlib125.zip) and unpack it with unzip or 7zip. Then, compile Zlib like this:


    cd zlib-1.2.5/ 
    make -f win32/Makefile.gcc

    Manually copy the files as follows:


    cp -iv zlib1.dll /mingw/bin
    cp -iv zconf.h zlib.h /mingw/include
    cp -iv libz.a /mingw/lib
    cp -iv libzdll.a /mingw/lib/libz.dll.a


  4. Build wxMSW statically and monolithically as shown in this post. Alternatively, you can also build wxMSW as shared library.



  5. Download Crypto++ source (cryptopp560.zip) and extract it into a new folder:
    mkdir cryptopp
    cd cryptopp
    unzip ../cryptopp560.zip

    Prior to compiling Crypto++, I changed the line that define PREFIX at the beginning of GNUmakefile:


    # Default prefix for make install

    ifeq ($(PREFIX),)

    PREFIX = /mingw

    endif

    Then, I compiled Crypto++ with this command:


    make -f GNUmakefile

    Compile stopped on rijndael.cpp with the error: 'alloca' was not declared in this scope. So I added #include <malloc.h> to the beginning of rijndael.cpp and resumed make -f GNUmakefile. After make finished, I installed Crypto++ by typing:


    make -f GNUmakefile install

    The following files are installed under /mingw:


    bin/cryptest.exe

    include/cryptopp/

    lib/libcryptopp.a

  6. Download GeoIP source from here. Compile GeoIP like this:

    ./configure --prefix=/mingw LDFLAGS="-L/mingw/lib -lws2_32 -lz"

    make

    make install

    The following files are installed.


    include/GeoIP.h
    include/GeoIPCity.h
    /include/GeoIPUpdate.h
    lib/libGeoIP.a
    lib/libGeoIP.la
    lib/libGeoIPUpdate.a
    lib/libGeoIPUpdate.la

    I created GeoIP.dll as follows:


    cd libGeoIP/.libs

    mkdir ws2_32

    cd ws2_32

    ar x /mingw/lib/libws2_32.a

    cd ..

    dllwrap --export-all-symbols --add-stdcall-alias -o GEOIP.DLL --dllname
    GEOIP.DLL GeoIP.o GeoIPCity.o regionName.o timeZone.o ws2_32/dkrgs00086.o ws2_32/dkrgs00082.o ws2_32/dkrgs00081.o -L/mingw/lib -lws2_32 -lz

    Then, I created an import library for GeoIP.dll like this:


    echo EXPORTS > geoip.def

    nm GEOIP.DLL | grep ' T _' | sed 's/.* T _//' | grep -i geoip >> geoip.def

    dlltool --def geoip.def --dllname GEOIP.DLL --output-lib libgeoip.dll.a

    Move GEOIP.DLL to /mingw/bin and libgeoip.dll.a to /mingw/lib. Then, modify /mingw/lib/libGeoIP.la as necessary.



    # The name that we can dlopen(3).
    dlname='../bin/GEOIP.DLL'

    # Names of this library.
    library_names='libgeoip.dll.a'


  7. Build GNU regex library as shown in this post.



  8. Get the latest libiconv source (libiconv-1.13.1.tar.gz) and compile it like this:
    ./configure --prefix=/mingw --disable-shared
    make
    make install

    Then, get the latest gettext source (gettext-0.17.tar.gz) and compile it as follows:


    ./configure --prefix=/mingw --enable-threads=win32 --enable-relocatable --disable-shared

    cd gettext-runtime

    make

    make install


  9. Get the aMule source and unpack it. I compiled aMule like this:


    ./configure --prefix=/mingw --enable-geoip --enable-amulecmd --enable-alc --enable-alcc --enable-nls --enable-rpath --enable-optimize --disable-debug

    make

    make install

    aMule installs the following files under /mingw:


    bin/amule.exe
    bin/autostart-xas
    bin/ed2k.exe
    lib/xchat/plugins/xas.pl
    man/de/man1/amule.1
    man/de/man1/ed2k.1
    man/de/man1/xas.1
    man/es/man1/amule.1
    man/es/man1/ed2k.1
    man/es/man1/xas.1
    man/eu/man1/amule.1
    man/eu/man1/ed2k.1
    man/eu/man1/xas.1
    man/fr/man1/amule.1
    man/fr/man1/ed2k.1
    man/hu/man1/amule.1
    man/hu/man1/ed2k.1
    man/hu/man1/xas.1
    man/man1/amule.1
    man/man1/ed2k.1
    man/man1/xas.1
    share/amule/skins/gnome.zip
    share/amule/skins/kde4.zip
    share/amule/skins/tango.zip
    share/amule/skins/xfce.zip
    share/applications/amule.desktop
    share/doc/aMule-2.2.5/ABOUT-NLS
    share/doc/aMule-2.2.5/Changelog
    share/doc/aMule-2.2.5/EC_Protocol.txt
    share/doc/aMule-2.2.5/ED2K-Links.HOWTO
    share/doc/aMule-2.2.5/INSTALL
    share/doc/aMule-2.2.5/README
    share/doc/aMule-2.2.5/TODO
    share/doc/aMule-2.2.5/amule-win32.HOWTO.txt
    share/doc/aMule-2.2.5/amulesig.txt
    share/doc/aMule-2.2.5/license.txt
    share/doc/aMule-2.2.5/socks4.protocol
    share/locale/ar/LC_MESSAGES/amule.mo
    share/locale/ast/LC_MESSAGES/amule.mo
    share/locale/bg/LC_MESSAGES/amule.mo
    share/locale/ca/LC_MESSAGES/amule.mo
    share/locale/cs/LC_MESSAGES/amule.mo
    share/locale/da/LC_MESSAGES/amule.mo
    share/locale/de/LC_MESSAGES/amule.mo
    share/locale/el/LC_MESSAGES/amule.mo
    share/locale/en_GB/LC_MESSAGES/amule.mo
    share/locale/es/LC_MESSAGES/amule.mo
    share/locale/et_EE/LC_MESSAGES/amule.mo
    share/locale/eu/LC_MESSAGES/amule.mo
    share/locale/fi/LC_MESSAGES/amule.mo
    share/locale/fr/LC_MESSAGES/amule.mo
    share/locale/gl/LC_MESSAGES/amule.mo
    share/locale/he/LC_MESSAGES/amule.mo
    share/locale/hr/LC_MESSAGES/amule.mo
    share/locale/hu/LC_MESSAGES/amule.mo
    share/locale/it/LC_MESSAGES/amule.mo
    share/locale/it_CH/LC_MESSAGES/amule.mo
    share/locale/ja/LC_MESSAGES/amule.mo
    share/locale/ko_KR/LC_MESSAGES/amule.mo
    share/locale/lt/LC_MESSAGES/amule.mo
    share/locale/nl/LC_MESSAGES/amule.mo
    share/locale/nn/LC_MESSAGES/amule.mo
    share/locale/pl/LC_MESSAGES/amule.mo
    share/locale/pt_BR/LC_MESSAGES/amule.mo
    share/locale/pt_PT/LC_MESSAGES/amule.mo
    share/locale/ru/LC_MESSAGES/amule.mo
    share/locale/sl/LC_MESSAGES/amule.mo
    share/locale/sq/LC_MESSAGES/amule.mo
    share/locale/sv/LC_MESSAGES/amule.mo
    share/locale/tr/LC_MESSAGES/amule.mo
    share/locale/uk/LC_MESSAGES/amule.mo
    share/locale/zh_CN/LC_MESSAGES/amule.mo
    share/locale/zh_TW/LC_MESSAGES/amule.mo
    share/pixmaps/amule.xpm

    To save disk space, you may choose to make the executable files smaller by running this command: strip *.exe


  10. aMule uses GeoIP data if it is built with GeoIP support. You can copy GeoIP.dat from the GeoIP source package to the aMule folder.
  11. Installing aMule is easy even without an installer. Just copy aMule and its files into a new folder, for example C:\Program Files\aMule. To create a shortcut in the Start menu, go to %APPDATA%\Microsoft\Windows\Start Menu and create a shortcut there.


Related Posts


Friday, June 5, 2009

Building gtk-gnutella for Windows

I built gtk-gnutella for the Windows platform using MinGW. gtk-gnutella is an application that allows you to share files in the gnutella P2P network. Here I show how I built GTK-gnutella step-by-step:




  1. Install MinGW


    First of all, I installed MinGW. GCC 4.4 and higher versions are recommended.



  2. Compile Pthread and Regex (Optional)


    Build pthread and regex as shown in the following posts.




  3. Build GTK+ Library


    Follow the instruction in the following post to compile the whole GTK+ library.




  4. Build GnuTLS (Optional)


    I think GnuTLS is optional but it provides secure communication between gnutella clients. I chose to build GTK-gnutella with gnuTLS features. So I compiled GnuTLS as shown in this post.



  5. Unpack the Source


    Then, I downloaded the gtk-gnutella source and unpacked it in my HOME directory.


    cd $HOME

    tar xjvf gtk-gnutella-0.96.6.tar.bz2

    cd gtk-gnutella-0.96.6


  6. Run the Configure script


    Then, I ran ./Configure. For convenience, I am providing here my config.sh file generated by the Configure script. You can copy this file to your source tree before running the Configure script.


    #!/bin/sh
    #
    # This file was produced by running the Configure script. It holds all the
    # definitions figured out by Configure. Should you modify one of these values,
    # do not forget to propagate your changes by running "Configure -der". You may
    # instead choose to run each of the .SH files by yourself, or "Configure -S".
    #

    # Package name : gtk-gnutella
    # Source directory : .
    # Configuration time: Wed Aug 15 14:50:53 HST 2012
    # Configured by : Ken
    # Target system : mingw32_nt-6.1 a7n8x 1.0.17(0.4832) 2011-04-24 23:39 i686 msys

    : Configure command line arguments.
    config_arg0='./Configure'
    config_args=''
    config_argc=0

    Author=''
    Date=''
    Header=''
    Id='$Id'
    Locker=''
    Log=''
    RCSfile=''
    Revision=''
    Source=''
    State=''
    _a='.a'
    _exe='.exe'
    _o='.o'
    afs='false'
    afsroot='/afs'
    alignbytes='8'
    aphostname=''
    ar='/mingw/bin/ar'
    archlib='/mingw/lib/gtk-gnutella'
    archlibexp='/mingw/lib/gtk-gnutella'
    archname='i686-mingw'
    archobjs=''
    awk='/bin/awk'
    bash=''
    bin='/mingw/bin'
    binexp='/mingw/bin'
    bison='/bin/bison'
    byacc='byacc'
    byteorder='1234'
    c=''
    cat='/bin/cat'
    cc='/mingw/bin/gcc.exe'
    ccflags='-march=pentium2 -mtune=i586 -pipe -Wall -Wshadow -DMINGW32 -D_POSIX'
    ccname='gcc'
    ccversion=''
    cf_by='Ken'
    cf_time='Wed Aug 15 14:50:53 HST 2012'
    charsize='1'
    chgrp='/bin/chgrp'
    chmod='/bin/chmod'
    chown='/bin/chown'
    clocktype='int'
    comm=''
    compress=''
    contains='grep'
    cp='/bin/cp'
    cpio=''
    cpp='/mingw/bin/cpp'
    cpp_quote=''
    cpp_stuff='42'
    cppfilter=''
    cppflags='-march=pentium2 -mtune=i586 -pipe -Wall -Wshadow -DMINGW32 -D_POSIX'
    cpplast='-'
    cppminus='-'
    cpprun='/mingw/bin/gcc.exe -E'
    cppstdin='/mingw/bin/gcc.exe -E'
    csh=''
    d_access='define'
    d_alarm='undef'
    d_arc4random='undef'
    d_archlib='define'
    d_attribut='define'
    d_backtrace='undef'
    d_bcmp='undef'
    d_bcopy='undef'
    d_bfd_lib='undef'
    d_bindtxtcode='define'
    d_bsd='undef'
    d_built_clz='define'
    d_built_ctz='define'
    d_built_popcount='define'
    d_bzero='undef'
    d_can64='define'
    d_closefrom='undef'
    d_const='define'
    d_dbus='undef'
    d_deflate='define'
    d_dev_poll='undef'
    d_dirent_d_type='undef'
    d_dirnamlen=''
    d_dladdr='undef'
    d_dos='undef'
    d_enablenls='define'
    d_end_symbol='define'
    d_eofnblk='define'
    d_epoll='undef'
    d_etext_symbol='undef'
    d_eunice='undef'
    d_fast_assert='undef'
    d_fork='undef'
    d_ftime='undef'
    d_getaddrinfo='define'
    d_geteuid='undef'
    d_gethname='undef'
    d_getifaddrs='undef'
    d_getinvent='undef'
    d_getlogin='undef'
    d_getppid='undef'
    d_gettblsz='define'
    d_gettext='define'
    d_gettimeod='define'
    d_getuid='undef'
    d_glib='define'
    d_gnulibc='undef'
    d_gnutls='define'
    d_gtk='define'
    d_headless='undef'
    d_herror='undef'
    d_hstrerror='undef'
    d_iconv='define'
    d_ieee754='define'
    d_ilp32='define'
    d_ilp64='undef'
    d_index='undef'
    d_inflate='define'
    d_iptos='undef'
    d_ipv6='define'
    d_isascii='define'
    d_kevent_int_udata='undef'
    d_kqueue='undef'
    d_linux='undef'
    d_locale_charset='undef'
    d_lp64='undef'
    d_lstat='undef'
    d_madvise='undef'
    d_memalign='undef'
    d_memcpy='define'
    d_memmove='define'
    d_mempcpy='undef'
    d_mmap='undef'
    d_msghdr_msg_flags='undef'
    d_nanosleep='undef'
    d_nls='define'
    d_official='define'
    d_open3='define'
    d_os2='undef'
    d_pause='undef'
    d_phostname='undef'
    d_poll='undef'
    d_popen='define'
    d_portable='undef'
    d_posix_fadvise='undef'
    d_posix_memalign='undef'
    d_pread='undef'
    d_preadv='undef'
    d_pwage='undef'
    d_pwchange='undef'
    d_pwclass='undef'
    d_pwcomment='undef'
    d_pwexpire='undef'
    d_pwquota='undef'
    d_pwrite='undef'
    d_pwritev='undef'
    d_recvmsg='undef'
    d_regcomp='define'
    d_regparm='define'
    d_remotectrl='undef'
    d_rusage='undef'
    d_sbrk='undef'
    d_sched_yield='undef'
    d_select='define'
    d_sendfile='undef'
    d_setproctitle='undef'
    d_setsid='undef'
    d_sigaction='undef'
    d_sigprocmask='undef'
    d_sigsetjmp='undef'
    d_sockaddr_in_sin_len='undef'
    d_sockaddr_un='undef'
    d_socker_get='undef'
    d_statfs='undef'
    d_statvfs='undef'
    d_strchr='define'
    d_strlcat='undef'
    d_strlcpy='undef'
    d_sync_atomic='define'
    d_sysctl='undef'
    d_system='define'
    d_times='undef'
    d_ttyname='undef'
    d_uctx_mctx='undef'
    d_uctx_mctx_gregs='undef'
    d_uname='undef'
    d_useglib1='undef'
    d_useglib2='define'
    d_usegtk1='undef'
    d_usegtk2='define'
    d_usleep='define'
    d_voidsig='define'
    d_volatile='define'
    d_vsnprintf='define'
    d_waitpid='undef'
    d_windows='define'
    d_xenix='undef'
    date='/bin/date'
    dbuscflags=''
    dbusconfig='false'
    dbusldflags=''
    defvoidused='15'
    direntrytype=''
    eagain='EAGAIN'
    ebcdic='undef'
    echo='/bin/echo'
    egrep='/bin/egrep'
    emacs=''
    enablenls='true'
    eunicefix=':'
    expr='/bin/expr'
    fieldn='3'
    find=''
    firstmakefile=''
    flex=''
    from=':'
    gcc=''
    gccosandvers=''
    gccversion='4'
    glade='glade-2'
    glibcflags='-mms-bitfields -I/mingw/include/glib-2.0 -I/mingw/lib/glib-2.0/include -I/mingw/include'
    glibconfig='pkg-config glib-2.0 gobject-2.0'
    glibldflags='-L/mingw/lib -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lintl '
    glibpackage='glib-2.0 gobject-2.0'
    glibpth='/mingw/lib'
    glibversion='2'
    gmake=''
    gmsgfmt='/mingw/bin/msgfmt'
    gnulibc_version=''
    gnutlscflags=''
    gnutlsconfig='pkg-config gnutls'
    gnutlsldflags='-L/mingw/lib -lgnutls'
    grep='/bin/grep'
    groupcat=':'
    gtkcflags='-mms-bitfields -I/mingw/include/gtk-2.0 -I/mingw/lib/gtk-2.0/include -I/mingw/include/atk-1.0 -I/mingw/include/cairo -I/mingw/include/gdk-pixbuf-2.0 -I/mingw/include/pango-1.0 -I/mingw/include/glib-2.0 -I/mingw/lib/glib-2.0/include -I/mingw/include -I/mingw/include/pixman-1 -I/mingw/include/libpng15'
    gtkconfig='pkg-config gtk+-2.0'
    gtkgversion='0.98.3'
    gtkldflags='-Wl,-luuid -L/mingw/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -limm32 -lshell32 -lole32 -latk-1.0 -lpangocairo-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl'
    gtkpackage='gtk+-2.0'
    gtkversion='2'
    gzip=''
    h_fcntl='false'
    h_sysfile='true'
    hint='previous'
    hostcat=':'
    huge=''
    i_alloca='undef'
    i_arpainet='undef'
    i_dirent='define'
    i_dlfcn='undef'
    i_execinfo='undef'
    i_fcntl='undef'
    i_iconv='define'
    i_ifaddrs='undef'
    i_inttypes='define'
    i_invent='undef'
    i_langinfo='undef'
    i_libcharset='define'
    i_libintl='define'
    i_limits='define'
    i_linux_netlink='undef'
    i_linux_rtnetlink='undef'
    i_malloc='define'
    i_math='define'
    i_mswsock='define'
    i_netdb='undef'
    i_netif='undef'
    i_netroute='undef'
    i_niin='undef'
    i_niip='undef'
    i_poll='undef'
    i_pthread='define'
    i_pwd='undef'
    i_regex='define'
    i_sched='define'
    i_stdarg='define'
    i_stdlib='define'
    i_string='define'
    i_sysfile='define'
    i_sysin='undef'
    i_sysmman='undef'
    i_sysmount='undef'
    i_sysparam='define'
    i_syspoll='undef'
    i_sysresrc='undef'
    i_sysselct='undef'
    i_syssendfile='undef'
    i_syssock='undef'
    i_sysstat='define'
    i_sysstatvfs='undef'
    i_syssysctl='undef'
    i_systime='define'
    i_systimeb='define'
    i_systimek='undef'
    i_systimes='undef'
    i_systypes='define'
    i_sysun='undef'
    i_sysutsname='undef'
    i_sysvfs='undef'
    i_syswait='undef'
    i_time='undef'
    i_ucontext='undef'
    i_unistd='define'
    i_varargs='undef'
    i_varhdr='stdarg.h'
    i_winsock2='define'
    i_ws2tcpip='define'
    i_zlib='define'
    ieee754_byteorder='1234'
    ilp='32'
    incpath=''
    inews=''
    install='/bin/install.exe'
    installarchlib='/mingw/lib/gtk-gnutella'
    installbin='/mingw/bin'
    installdir='mkdir -p'
    installmansrc=''
    installprivlib='/mingw/lib/gtk-gnutella'
    intsize='4'
    issymlink=''
    ksh=''
    large=''
    ldflags='-Wl,--enable-auto-image-base -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc'
    less=''
    libc=''
    libnames=''
    libpth='/mingw/lib'
    libs='-liberty -lws2_32 -lpthread -lregex -lz -lintl -liconv -limagehlp -liphlpapi -lpowrprof -lpsapi -lkernel32'
    libscheck=''
    libsdirs=' /mingw/lib'
    libsfiles=' libbfd.a libm.a'
    libsfound=' /mingw/lib/libbfd.a /mingw/lib/libm.a'
    libspath=' /mingw/lib /mingw/lib'
    libswanted='bfd iberty sendfile z resolv iconv m intl dl'
    line=''
    lint=''
    lkflags=''
    ln='/bin/ln'
    lns='ln -s'
    locale='/mingw/share/locale'
    localeexp='/mingw/share/locale'
    locincpth=''
    loclibpth=''
    longsize='4'
    lp=''
    lpr=''
    ls=''
    mail=''
    mailx=''
    make='/bin/make'
    make_set_make='#'
    manext='0'
    mansrc=' '
    mansrcexp=''
    medium=''
    mips_type=''
    mkdep='/c/Users/Ken/Downloads/gtk-gnutella-0.98.3/mkdep'
    mkdir='/bin/mkdir'
    models='none'
    more=''
    msgfmt='/mingw/bin/msgfmt'
    msgmerge='/mingw/bin/msgmerge'
    msgmerge_update='/mingw/bin/msgmerge --update'
    mv='/bin/mv'
    myarchname='i686-mingw'
    mydomain=''
    myhostname='lenovo-a8nvm'
    myuname='mingw32_nt-6.1 a7n8x 1.0.17(0.4832) 2011-04-24 23:39 i686 msys '
    n='-n'
    nawk='/bin/nawk'
    nm='/mingw/bin/nm'
    nm_opt=''
    nm_so_opt=''
    nofile=''
    nroff='nroff'
    o_nonblock=''
    official='true'
    optimize='-O2 -g0'
    orderlib='false'
    osname='mingw'
    osvers='1.0.17'
    package='gtk-gnutella'
    passcat=':'
    perl=''
    pg=''
    phostname='hostname'
    pkgsrc='/home/Ken/Downloads/gtk-gnutella-0.98.3'
    plibpth=''
    pmake=''
    pr=''
    prefix='/mingw'
    prefixexp='/mingw'
    privlib='/mingw/lib/gtk-gnutella'
    privlibexp='/mingw/lib/gtk-gnutella'
    prototype='define'
    ptrsize='4'
    ranlib=':'
    rd_nodata=''
    remotectrl='false'
    rm='/bin/rm'
    rmail=''
    run=''
    runnm='false'
    sed='/bin/sed'
    sendmail=''
    sh='/bin/sh'
    shar=''
    sharpbang='#!'
    shortsize='2'
    shsharp='true'
    sig_count='23'
    sig_name='ZERO NUM1 INT NUM3 ILL NUM5 NUM6 NUM7 FPE NUM9 NUM10 SEGV NUM12 NUM13 NUM14 TERM NUM16 NUM17 NUM18 NUM19 NUM20 BREAK ABRT '
    sig_name_init='"ZERO", "NUM1", "INT", "NUM3", "ILL", "NUM5", "NUM6", "NUM7", "FPE", "NUM9", "NUM10", "SEGV", "NUM12", "NUM13", "NUM14", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "NUM20", "BREAK", "ABRT", 0'
    sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 '
    sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0'
    sig_size='23'
    signal_t='void'
    sleep=''
    smail=''
    small=''
    so='dll'
    sockercflags=''
    sockerldflags=''
    sort='/bin/sort'
    spackage='Gtk-gnutella'
    spitshell='cat'
    split=''
    src='.'
    startsh='#!/bin/sh'
    strings='/mingw/include/string.h'
    submit=''
    sysman='/mingw/share/man'
    tablesize='NOFILE'
    tail=''
    tar=''
    targetarch=''
    tbl=''
    tee=''
    test='test'
    timeincl='/mingw/include/sys/time.h '
    to=':'
    touch='/bin/touch'
    tr='/bin/tr'
    trnl='\n'
    troff=''
    uname='/bin/uname'
    uniq='/bin/uniq'
    usecrosscompile='undef'
    usenm='false'
    usrinc='/mingw/include'
    uuname=''
    vi=''
    voidflags='15'
    wc='/bin/wc'
    xgettext='/mingw/bin/xgettext'
    xlibpth='/mingw/lib'
    yacc='bison -y'
    yaccflags=''
    zcat=''
    zip=''
    CONFIG=true

    Alternatively, if your config.sh needs no modification, just run the following commands.


    ./Configure -S
    make depend


  7. Before running make, open src/Makefile and insert -mwindows into the gtk-gnutella section:

  8. gtk-gnutella:  $(OBJ) $(EXTRA)
    $(RM) $@
    if test -f $@$(_EXE); then \
    $(MV) $@$(_EXE) $@~$(_EXE); fi
    $(CC) -o $@ $(OBJ) $(EXTRA) -mwindows $(JLDFLAGS) $(LIBS)

    This prevents GTK-gnutella from outputting error logs to a black console window.



  9. Then, I compiled gtk-gnutella with the following commands:


    make

    make install




gtk-gnutella_winnt

Thursday, June 4, 2009

Building FAAC, XviD, GPAC and OGMRip



After building MPlayer and Mencoder for Linux, the last fun part is to build OGMRip so that we can rip movies into AVI or MP4 files as found on the P2P networks. OGMRip is a graphical movie convertor that uses MPlayer and Mencoder to convert a movie into another format.



Building FAAC


First, let's compile FAAC as it is needed to encode AAC audio. You need a g++ compiler, autoconf, automake and tcl-dev to compile FAAC, following a typical procedure:


./bootstrap
./configure --build=i586-pc-linux-gnu --prefix=/usr --with-mp4v2
make
make install

The bootstrap command produces the configure script and Makefile necessary for the build procedure. The following set of files are generated upon compilation of FAAC:


/usr/bin/faac
/usr/include/faac.h
/usr/include/faaccfg.h
/usr/lib/libfaac.a
/usr/lib/libfaac.la
/usr/lib/libfaac.so
/usr/lib/libfaac.so.0
/usr/lib/libfaac.so.0.0.0
/usr/man/man1/faac.1.gz


Building XviD library


Now, let's build the XviD library. XviD is a popular video codec. A typical build procedure for XviD looks like this:


tar xzf xvidcore-1.2.2.tar.gz
cd xvidcore/build/generic
./configure --build=i586-pc-linux-gnu --prefix=/usr
make
make install

Upon successful compilation, the following set of files are installed on system.


/usr/lib/libxvidcore.a
/usr/include/xvid.h
/usr/lib/libxvidcore.so
/usr/lib/libxvidcore.so.4
/usr/lib/libxvidcore.so.4.1


Building GPAC


Next, let's compile GPAC which is an open-source MPEG-4 encoder. Before compiling GPAC, install the following developer libraries, most of which are optional:


liba52-0.7.4-dev
libasound2-dev
libavformat-dev
libfaad-dev
libmad0-dev
libmozjs-dev
libogg-dev
libopenjpeg-dev
libssl-dev
libtheora-dev
libvorbis-dev
libwxgtk2.8-0
libxvidcore4

Then, compile GPAC as follows:


./configure --prefix=/usr/local --cpu=i586 --enable-pic --strip --use-ffmpeg=local --use-js=local

make

make install

When GPAC is compiled and installed successfully, the following set of files are generated on the system:


/usr/bin/MP4Box
/usr/bin/MP4Client
/usr/bin/Osmo4
/usr/lib/gpac/gm_aac_in.so
/usr/lib/gpac/gm_ac3_in.so
/usr/lib/gpac/gm_alsa.so
/usr/lib/gpac/gm_bifs_dec.so
/usr/lib/gpac/gm_ctx_load.so
/usr/lib/gpac/gm_dummy_in.so
/usr/lib/gpac/gm_ffmpeg_in.so
/usr/lib/gpac/gm_ft_font.so
/usr/lib/gpac/gm_gpac_js.so
/usr/lib/gpac/gm_img_in.so
/usr/lib/gpac/gm_ismacryp.so
/usr/lib/gpac/gm_isom_in.so
/usr/lib/gpac/gm_laser_dec.so
/usr/lib/gpac/gm_mp3_in.so
/usr/lib/gpac/gm_mpegts_in.so
/usr/lib/gpac/gm_odf_dec.so
/usr/lib/gpac/gm_ogg_xiph.so
/usr/lib/gpac/gm_oss_audio.so
/usr/lib/gpac/gm_raw_out.so
/usr/lib/gpac/gm_rtp_in.so
/usr/lib/gpac/gm_saf_in.so
/usr/lib/gpac/gm_soft_raster.so
/usr/lib/gpac/gm_svg_in.so
/usr/lib/gpac/gm_timedtext.so
/usr/lib/gpac/gm_x11_out.so
/usr/lib/gpac/gm_xvid_dec.so
/usr/lib/libgpac-0.4.5.so
/usr/lib/libgpac.so
/usr/man/man1/gpac.1.gz
/usr/man/man1/mp4box.1.gz
/usr/man/man1/mp4client.1.gz
/usr/share/gpac/gpac.mp4

If you encounter the following error during compilation:


scenegraph/vrml_smjs.c:41:20: error: jsapi.h: No such file or directory

make symlinks to jsapi.h and compile again as follows:


cd include/

ln -s ../extra_lib/include/js/* .

cd ..

./configure --prefix=/usr --cpu=i586 --enable-pic --strip --use-ffmpeg=local --use-js=local --extra-cflags=-DXP_UNIX

make

make install

Some programs require the gpac static library libgpac_static.a. This file is not installed by default. However, you can copy it manually:


cp bin/gcc/libgpac_static.a usr/lib


Building OGMRip


Finally, let's build OGMRip. First, make sure you have the following developer libraries:


libdbus-glib-1-dev
libdvdread-dev
libenca-dev
libenchant-dev
libgconf2-dev
libglade2-dev
libgtk2.0-dev
libhal-dev
libnotify-dev
libstdc++6-4.4-dev
libtheora-dev

Optionally, install intltool, gtk-doc and xsltproc for internationalization and documentation. Then, build OGMRip as follows:


./configure --prefix=/usr/local --build=i586-pc-linux-gnu --sysconfdir=/etc --enable-gtk-doc --with-ocr=auto

make

make install

After OGMRip is compiled and installed successfully, the following set of files are generated on system:


/etc/gconf/schemas/ogmrip.schemas
/usr/bin/avibox
/usr/bin/dvdcpy
/usr/bin/ogmrip
/usr/bin/subp2pgm
/usr/bin/subp2png
/usr/bin/subp2tiff
/usr/bin/subptools
/usr/bin/theoraenc
/usr/include/ogmdvd/
/usr/include/ogmjob/
/usr/include/ogmrip/
/usr/lib/libogmdvd-gtk.a
/usr/lib/libogmdvd-gtk.la
/usr/lib/libogmdvd-gtk.so
/usr/lib/libogmdvd-gtk.so.0
/usr/lib/libogmdvd-gtk.so.0.0.0
/usr/lib/libogmdvd.a
/usr/lib/libogmdvd.la
/usr/lib/libogmdvd.so
/usr/lib/libogmdvd.so.0
/usr/lib/libogmdvd.so.0.0.0
/usr/lib/libogmjob.a
/usr/lib/libogmjob.la
/usr/lib/libogmjob.so
/usr/lib/libogmjob.so.0
/usr/lib/libogmjob.so.0.0.0
/usr/lib/libogmrip-gtk.a
/usr/lib/libogmrip-gtk.la
/usr/lib/libogmrip-gtk.so
/usr/lib/libogmrip-gtk.so.0
/usr/lib/libogmrip-gtk.so.0.0.0
/usr/lib/libogmrip-lavc.a
/usr/lib/libogmrip-lavc.la
/usr/lib/libogmrip-lavc.so
/usr/lib/libogmrip-lavc.so.0
/usr/lib/libogmrip-lavc.so.0.0.0
/usr/lib/libogmrip-mplayer.a
/usr/lib/libogmrip-mplayer.la
/usr/lib/libogmrip-mplayer.so
/usr/lib/libogmrip-mplayer.so.0
/usr/lib/libogmrip-mplayer.so.0.0.0
/usr/lib/libogmrip.a
/usr/lib/libogmrip.la
/usr/lib/libogmrip.so
/usr/lib/libogmrip.so.0
/usr/lib/libogmrip.so.0.0.0
/usr/lib/ogmrip/
/usr/lib/pkgconfig/ogmdvd-gtk.pc
/usr/lib/pkgconfig/ogmdvd.pc
/usr/lib/pkgconfig/ogmjob.pc
/usr/lib/pkgconfig/ogmrip-gtk.pc
/usr/lib/pkgconfig/ogmrip.pc
/usr/share/applications/ogmrip.desktop
/usr/share/doc/ogmrip/
/usr/share/gtk-doc/html/ogmdvd-gtk
/usr/share/gtk-doc/html/ogmdvd/
/usr/share/gtk-doc/html/ogmjob/
/usr/share/gtk-doc/html/ogmrip-gtk/
/usr/share/gtk-doc/html/ogmrip/
/usr/share/locale/ca/LC_MESSAGES/ogmrip.mo
/usr/share/locale/cs/LC_MESSAGES/ogmrip.mo
/usr/share/locale/de/LC_MESSAGES/ogmrip.mo
/usr/share/locale/fr/LC_MESSAGES/ogmrip.mo
/usr/share/locale/sv/LC_MESSAGES/ogmrip.mo
/usr/share/man/man1/avibox.1.gz
/usr/share/man/man1/dvdcpy.1.gz
/usr/share/man/man1/subp2pgm.1.gz
/usr/share/man/man1/subptools.1.gz
/usr/share/ogmrip/
/usr/share/pixmaps/ogmrip.png

Now that you've compiled OGMRip, go ahead and test it. Be sure that mplayer, mencoder, ogmtools, vorbis-tools, gpac, faac, lame, mkvtoolnix and gocr (or ocrad) are installed, also.


OGMRip Video Convertor Options

Wednesday, June 3, 2009

Compiling MLDonkey for Linux

MLDonkey is a multi-protocol P2P file-sharing program for Windows, Mac and Linux. Unlike eMule, MLDonkey supports Bittorrent, FastTrack and DirectConnect networks, too. Compiling MLDonkey requires OCaml compiler toolchain. First, download and install the following Ocaml stuff. These are names of required Debian packages:


ocaml-native-compilers

camlp4

ocaml-nox


Then, install these libraries:


zlib1g-dev

libbz-dev

libgd2-xpm-dev

libmagic-dev


Now, you are ready to compile MLDonkey. Change directory to the MLDonkey source tree and type these commands:


./configure --prefix=/usr --build=i586-pc-linux-gnu

make release.mlnet.static

You'll get a tarball, for example, mldonkey-3.0.0.static.i586-Linux_glibc-2.7.tar.bz2. Keep it at a safe place. Now, extract the tarball to a directory, for example, /opt. In the extracted folder, you'll find an executable, mlnet. This is just a command-line program, so you need a GUI frontend, such as Sancho.


Sancho GUI

Friday, May 1, 2009

쓸만한 윈도 프로그램 리스트



제가 추천하는 윈도용 프로그램 리스트입니다. 빠진 게 있으면 댓글 남겨 주세요:





Related Posts


Tuesday, March 17, 2009

Downloading Windows Vista ISO

Microsoft often releases samples of its flagship programs to its MSDN members. Among the software samples released to MSDN members are a series of Windows Vista editions. Some of these copies are leaked to P2P networks like BitTorrent or eDonkey. Below is a list of Windows Vista ISO images including those released to MSDN members:












LanguageFilename32-bit Links64-bit Links
Chinese Traditional
繁體中文
tw windows vista x86 dvd X12-59649.iso
Windows Vista x86 32位元系統繁體中文正式授權製造商裝機版.ISO (2,577,250,304 bytes)
1
EnglishWindows Vista All-in-One RTM build

6000.16386.061101-2205_x86Fre_Client Lrmcfre_En_DVD.iso (2,678,614,016 bytes)
1, 2
Windows Vista English Service Pack 2

6002.18005.090410-1830_x86fre_Client_en-us-FRTMCFRE_EN_DVD.iso
1
Korean
한글
Windows Vista X86 DVD X12-59647 vista.rtm.kor.iso (2,591,459,328 bytes)1


Related Posts


Thursday, February 5, 2009

Speed Reading

We are living in the age of information overload. Most of us have to constantly read or process a lot of information just to keep up with the fast pace of our business or school. We need to read fast, and a lot faster. But reading fast requires a skill. There are many different techniques for speed reading. What follows is introduction to one of speed reading techniques.



Why we can't read fast



There are 3 major reasons that hinder speed reading:




  • Habitual regression

    A casual reader occasionally stops reading when he or she encounters an unknown or ambiguous word. This dramatically slows reading while reducing the efficiency of the short-term memory used for reading. Remember, the context is more important than the precise meaning. An efficient reader should quickly read through the material and look up words only before or after the reading.

  • Polysyllabic fixation

    English, like most Indo-European languages, is a polysyllabic language. That means most English words are made up of two or more syllables, for example, hospital, hippopotamus, etc. Most adult readers can recognize thousands of polysyllabic words instantly when they see the words because they recognize their shape, length, syllables and prior learning. However, poor readers tend to read words by each syllable, thus resulting in slow reading. On the other hand, speed readers pass over the words very quickly, taking in all the rest of the stuff with brain-eye coordination and memory.

  • Subvocalization

    Subvocalization often occurs simultaneously with polysyllabic fixation. Most readers speak while reading, either in their mouth, in their throat, or in their mind. This is a bad habit for people who need to read a lot of material.


Organization Patterns: Parts-to-Whole vs Whole-to-Parts


Efficient readers can apply different reading skills to different materials, be it fiction, non-fiction, magazine or newspaper. Most reading materials can be put into two categories: fiction and non-fiction. They have two different organizational patterns, for example, parts-to-whole or whole-to-parts.

Fictional works have the parts-to-whole pattern. When you read something fictional, you don't know until the very end of the story what it is all about. When you read a fiction, you need to understand the parts and put the parts together so as to understand the whole.



Nonfictional materials like textbooks have the whole-to-parts pattern. A typical textbook begins with an introduction of what you're going to read or learn, then the actual contents divided into sections, and finishes with a summary or conclusion. Thus, the organization of informational books leads you from the whole to the parts. You get the big picture and then its components.



Preview before Reading


A good reader should preview a reading material and select an appropriate reading strategy according to the organizational pattern of the material. It is always important to preview the reading material before you actually read it. Some quick preview methods are as follows:



  • skim the first and last few pages
  • skim the first 5 pages, several places in the middle and the
    last 5 pages
  • skim the entire work
  • skim the beginning of each chapter or each subsection


Speed Reading Procedure


The following steps are recommended for improved comprehension, speed and retention:



  1. Survey

    Reader looks at covers and title, reads the preface and introductions, checks out if there is a glossary, definitions, pictures, etc.
  2. Preview

    Reader pays special attention to chapter titles and section titles, reads the introductions and conclusions of chapters, time permitting the first sentence of every paragraph.
  3. Comprehensive Reading

    Select the appropriate reading strategy — what can be skipped, read more carefully, etc. Mark in the margins those places to return to for an additional reading once the first reading is done. There should be NO highlighting or underlining in the first read-through. A simple check/dot in the margins is all that should be done at this point. And the reader SHOULD NOT STOP and employ that BAD HABIT: habitual regression!
  4. Review

    This is to check what was marked in the margin, skim and review the material, recall something, find answers, etc. Some quick review methods follow:

    • skim the entire work, slowing on the marked parts
    • skim from marked part to marked part
    • reread difficult parts only
    • scan only for answers to questions
    • review as many times as you need



Some skills that help Speed Reading


Good vocabulary and grammar skills are essential to reading, of course. Also, prior knowledge helps reading comprehension. Prior knowledge may refer to one's experiences or basic knowledge required for the current readings.



Good Reading Strategies



  • The reader takes chances — risks errors with language
  • The reader reads to get meaning NOT to identify letters or words
  • The reader guesses from context at unfamiliar words or SKIPS them and
    deals with them later at an appropriate time given the reading
  • The reader reads as though he/she expects the text to make
    sense — Expecting meaning, predicting meaning, making guesses, taking
    chances. Pushing ahead confidently are strategies that are critical for
    identifying meaning early on — the brain must relate incoming information
    to already stored information.
  • The reader samples the text as economically as
    possible (especially if a good preview took place) and uses the skills of
    peripheral vision to assist.


Books about Speed Reading


I found some books that teach how to read quickly from P2P networks. The following books can be downloaded using lphant.




  1. A Course in Light Speed Reading, Joseph Bennette

  2. The Evelyn Wood Seven-Day Speed Reading and Learning Program
  3. The Photo Reading Whole Mind System, Paul R. Scheele
  4. THE ALPHA-NETICS RAPID READING PROGRAM, Owen D. Skousen
  5. THE SPEED READING WORKBOOK
  6. The Speed Reading Course, Shepherd & Unsworth-Mitchell
  7. THE SPEED READING WORKBOOK

  8. Teach Yourself Speed Reading

About This Blog

KBlog logo This blog is about current events and issues concerning general population. Thanks for visiting the blog and posting your comments.

© Contents by KBlog

© Blogger template by Emporium Digital 2008

Followers

Total Pageviews

icon
Powered By Blogger