
I am very happy at how much the najitool project has grown. What started out as a very small and simple program has grown into a fairly large library of functions (libnaji), and a user friendly Graphical User Interface version called naji_gui. Of course, the first release of najitool is still available with full source code which should be very helpful to people beginning to program in the C programming language. Every new release is like a new lesson in programming, every new release gets more intricate. I would like to thank sourceforge for hosting najitool, libnaji, and naji_gui and I would also like to thank the contributors and users of my programs and libraries, and I hope you enjoy using them as much as I enjoyed programming them.
What is najitool?
najitool is a portable and fast command line tool, with the goal of providing every function someone could possibly need in a single program.
What is libnaji?
libnaji is a library of functions which najitool uses, and other programmers
could use in their own programs.
What is naji_gui?
naji_gui is a GUI (Graphical User Interface) version of najitool for Microsoft Windows. naji_gui should be a lot easier to use than najitool for the average computer user, but it may not have as many features as najitool, nor is it as well tested as najitool. If you have a problem using naji_gui, you should use najitool instead.
What does najitool do?
Generally, najitool generates, converts, filters, and encrypts files. It also has a lot of other miscellaneous functions,
such as an Arabic to English letters and vice versa transliteration system, it has programming functions like bin2c which
makes a compileable source code file out of any file, like picture files for use in a C program.
najitool can generate:
najitool has:
najitool has reached its original goal of generating every possible file you specify at a fixed size, now I need to work on generating every possible file out of a checksum.
What license does najitool, libnaji, and naji_gui use?
Public domain, meaning it is completely free, without any restrictions,
please read the License for warranty information.
Who is the author of najitool, libnaji, and naji_gui?
NECDET COKYAZICI
How can I contact the author of najitool, libnaji, and naji_gui?
Send an e-mail to cokyazici@yahoo.co.uk you can also add that e-mail address to MSN Messenger.
What programming language is najitool programmed in?
najitool is programmed in pure ANSI C, so it should compile
and work on any ANSI C compliant compiler and system.
Basically, it should compile and work in any compiler
and system.
Who would want to use najitool?
I have made this as an example for people begining
programming in C, I hope you you find it useful.
How did najitool start?
Most of the things I have written so far, were for what I needed at that
time, such as altering files which I had, to make some things easier to do.
Why did you make naji_gui when najitool does the same thing?
Because most people that I know use Windows and don't know how to use
command-line programs, and they complained about "a black screen appearing
then disappearing", because they didn't know that najitool had to be run in
the command program (cmd in XP), so I decided to make a Windows GUI version
which I thought was a good idea, otherwise no one would have used najitool probably.
Is najitool and libnaji in FreeBSD ports?
Yes, they are:
/usr/ports/misc/najitool/
/usr/ports/devel/libnaji/
How many systems does najitool work on?
So far I have been able to compile najitool on machines and operating systems
that have been available to me. I have sucessfully compiled and tested on the
following systems:
DOS x86 CPU Architecture
Windows x86 CPU Architecture
MacOSX PPC G4 CPU Architecture
Linux x86 CPU Architecture
Linux Alpha CPU Architecture
Linux AMD64 CPU Architecture
FreeBSD x86 CPU Architecture
OpenBSD x86 CPU Architecture
NetBSD x86 CPU Architecture
Solaris SunOS x86 CPU Architecture
Solaris SunOS Sparc R220 CPU Architecture
What kind of computer do you use?
I use two computers:
New Computer:
Brand: Custom Built
AMD Athlon 64 X2 Dual Core Processor 4200+, Socket AM2
(Two processors running on a single chip each at 2.2GHz)
1GB DDR2 RAM
Western Digital 320GB SATA2 HDD
Maxtor 200GB IDE HDD
Onboard LAN, Audio, and Graphics (not used)
Intel 56k Data/Fax/Voice Modem (not used)
Nvidia Geforce 7600 GT 256MB Graphics Card
Ace 19 Inch Widescreen TFT LCD Monitor
Duel Boot With Microsoft Windows XP Professional SP2
And FreeBSD 6.2-RC1
Which I think is the most reliable and stable operating system,
I never had a single crash till this day. You can get it here:
http://www.freebsd.org/
Old Computer:
Brand: Compaq Deskpro EP/SB Series (Upgraded)
Intel Pentium III Proccesser at 650MHz
192MB of RAM
Maxtor 60GB HDD
Sound Blaster Live! Sound Card
ATI Radeon 7000 64MB Graphics Card
RELISYS 19 Inch Monitor
Debian GNU/Linux 3.1 Operating System
One of my favourite Linux distros, you can get it here:
http://www.debian.org/
Both computers share a 24mbit Internet connection on an ADSL2+ Speedtouch Router.
Why do you compile for i386 when you don't own a i386?
Some people might still be using an i386.
What does Naji mean?
Naji is an Arabic male name which means saved/rescued. The name fits well
because I rescued the version 0.2.1 source code that I was working on after
I accidently deleted it, I was very sleepy to realise what I was doing when
I was trying to compile it, I did this command by accident and it got deleted:
gcc -o najitool.c libnaji.o najitool.c
which should have been...
gcc -o najitool libnaji.o najitool.c
The -o part means the output name for the compiled program because gcc deletes the output before it makes the new one najitool.c got deleted as well because I specified it to be the output. But luckily I had some bugs in the source code that prevented it to compile otherwise the deleted file would have been overwritten. Usually, when a file is deleted it isn't really gone, just marked as free space on the file system/partition/slice. I used TCT in FreeBSD in /usr/ports/sysutils/tct which I used to recover it, along with the stdin version of cat_text which I wrote to filter out the output of unrm to only text, the output of unrm was only 2.7GB because of the filtering I done. unrm is a very good program in TCT that outputs the contents of the free space of a partition/slice, thanks to the people that made it, I then did:
grep " najitool.c " -A1000
to get najitool.c back, -A1000 means show 1000 lines after, you can do -B10 as well, which shows ten lines before, but I think that makes the whole process slower.
What are your plans for najitool?
The orignal goal of najitool was to generate every file possible to exist, and
the user could set what type of files they want to produce, like every single
possible BMP (bit map) image, every possible WAV (wave) sound file, every
possible MPEG movie file. I guess you can imagine the possibilties of this
with super fast computers in the future, every possible thing said would be
able to be generated, every possible image would be able to be generated.
I also wanted to make the user be able to make every possible file able to be
generated with the checksum they give, like MD5sum, and also additional
information like the file size.
I have implemented the every possible file generator, you give a fixed size for example 10 bytes, and it generates every possible file of the length 10 bytes.
najitool allfiles 10
I am now working on the every possible BMP file (picture file) generator and every possible wave file generator but I need to learn the wave sound format better to make human like voices etc, imagine that, if 3 seconds of every possible sound was generated of trillions and trillions of files. A normal person would'nt be able to go through that many files in their life time, but maybe someone can develope a program that can try to see if it is like human speech etc. My main reason for wanting to make something like this was because I was hoping in the future they would store this information in storage devices and a user just gives a code around 400 bytes long and the file will be there instead of downloading from the internet, a kind of of compression. I now realize it is impossible to store every possible file ever possible to exist in a storage device, no matter how much computer technology advances, infinate amount of storage space will not be possible. But maybe najitool will be able to generate any file with a small amount of data you give it like 400 bytes, in future versions, imagine how useful that would be, computer magazines could just write a list of checksums for older CDs to be able to be generated with najitool, people could backup a lot of data, even memorize the small amount of data to be able to be generated with najitool.
How did you do this homepage?
It was originally written with vim
http://www.vim.org
it was best viewed with lynx back then
http://lynx.isc.org/
then I edited it with mcedit, kwrite, and jed. The first logo
I did with xpaint, the second logo I did with Adobe Photoshop CS ME (ME stands for Middle Eastern),
and the current logo was done with the same program by a friend of mine named Dawood.
The tiled background and najitool badge was done by another friend named Ali.
What is your favourite text editor?
My favourite text editor is mcedit. If you're looking for mcedit for
FreeBSD, it's in /usr/ports/misc/mc/

Here is a picture of me, NECDET COKYAZICI,
the author of najitool, libnaji, and naji_gui.