Zekr Quranic Project Mohsen Saboorian <
[email protected]>
Outline Some facts and general info about Zekr Zekr components and resources Zekr installation guide on Ubuntu Open Source: a critical reader (if we had enough time)
06/12/08
Zekr Quranic Project
2
06/12/08
Zekr Quranic Project
3
What is Zekr Definition: Zekr (ذکرis an Open Source ( desktop Quran study application Mission: Zekr is planned to be a universal, open source, and cross-platform application to perform most of the usual refers to the Quran
06/12/08
Zekr Quranic Project
4
Some Facts about Zekr
Zekr was registered on SourceForge.net on Jan. 15 2005 Zekr 0.7.x has been downloaded (from sf.net) over 23,150 times up to 6 Nov. 2008 We had an average download of 323.65 packages per day from sf.net for last 60 days (there are more if you count those who use repositories) Zekr mailing list has over 280+ users and 1800+ posts
06/12/08
Zekr Quranic Project
5
Some Facts about Zekr (cont.)
Zekr 0.7.1 has:
30,634 lines of Java 8,944 lines of XML 4,529 lines of JavaScript 2,074 lines of HTML and some CSS and Velocity (.vm) code
Project costs (based on Ohloh.net)
(based on Ohloh.net)
Zekr costs $477,485 9 person years effort
Zekr requires a Java Runtime 1.4.2 It’s tested and works on Windows (2k, XP, 2003, Vista), Linux (All flavors), Mac OS X.
06/12/08
Zekr Quranic Project
6
Why Java? No concerns of memory management Totally live and active community Write once, run anywhere Wide range of technology options I was already a Java developer Then why not Python, Perl, C, C++?
06/12/08
Zekr Quranic Project
7
Who is Behind Zekr?
A community of developers, resource providers, platform maintainers, graphics designers, and others:
Development: Mohsen Saboorian, Hamid ZarrabiZadeh, Johan Laenen Web and graphics: Sartaj Chowdhury, Mohsen Saboorian, Bandar Raffa Platform maintainers:
06/12/08
Windows: Mohsen Saboorian Linux: Mohammad Derakhshani Mac: Ali Rastegar, Sartaj Chowdhury
Resource providers: a long list of Zekr users, Quran translators and versebyversequran.com Those who report bug and report for new features Zekr Quranic Project
8
How to Contribute
Help with Java development Provide resources
Translation Language pack Quran recitation Theme Artwork
Software evangelism: introduce Zekr to your friends Register to the mailing list, report bugs and discuss about features (http://groups.google.com/group/zekr)
06/12/08
Zekr Quranic Project
9
Zekr Engines Logging Text engine
Embedded HTTP Server
Security engine
Search and Index Zekr Core
JavaScript engine
Command processor
Template engine
UI Event management
06/12/08
Zekr Quranic Project
10
Zekr Add-ons and Resources Bookmark Translation pack
Sura names
Paging data
Zekr Core
Recitation
Language pack
Theme Revelation pack
06/12/08
Zekr Quranic Project
11
Language Pack Introduced in Zekr 0.1.0 A simple XML key-value pairs of text fields Forms are classified Not a mature approach, but simply works! 19 language packs for 0.7.1: English, Persian, Arabic, Dutch, French, Spanish, German, Russian, Turkish, Indonesian, … Sura names can also be localized
06/12/08
Zekr Quranic Project
12
Search Initially introduced in 0.2.0 Made better in each version Added advanced search (with indexing support in 0.6.0) Completely rewritten base search code for 0.7.0. Tanzil.info JavaScript code was converted to Java for Zekr basic search Added support to advance search in translations in 0.7.0
06/12/08
Zekr Quranic Project
13
Common Search Features
Search scopes (introduced in 0.4.0) introduce inclusive and exclusive parts of Quran to search in manage several search scope in each session
Sorting results on: Similarity Revelation order Aya length Natural order
06/12/08
Zekr Quranic Project
14
Basic Search Regular expression matching approach Based on http://tanzil.info JavaScript codebase Basic boolean expressions Partial matching Wildcards: *, ., ? Automatic diacritic-matching
06/12/08
Zekr Quranic Project
15
Advanced Search Wildcards: * and ? Grouping: using parentheses to make groups of queries Boolean operators: &&, ||, !, +, -, AND, OR, NOT Ranged search Boosting term Fuzzy search (approximate matching)
06/12/08
Zekr Quranic Project
16
06/12/08
Zekr Quranic Project
17
06/12/08
Zekr Quranic Project
18
More Search Features Pagination Works on Quran and translations Language-specific features; sample:
# remove diacritics search.pattern.replace.fa = [\u064b-\u0653]= # remove punctuation search.pattern.replace.fa = [\u2010\u2014،[=؛«»؟u200c\u200b\! # ALEF shapes search.pattern.replace.fa = [\u0623\u0625]=\u0627
Lucene snowball
06/12/08
Zekr Quranic Project
19
Search in Roots
Introduced from 0.7.0 Root database is exclusively provided for Zekr by Computer Research Center of Islamic Sciences (CRCIS)
Makes Zekr search engine unique! 06/12/08
Zekr Quranic Project
20
06/12/08
Zekr Quranic Project
21
Translation Pack Introduced in 0.3.0 Supports BIDI and text encoding Translations are digitally signed A simple text file with 6236 separate parts Almost all translation packs are provided considering their copyright status Currently 31 translation packs in 16 languages
06/12/08
Zekr Quranic Project
22
Theme Introduced in 0.3.0 Quran form can be customized through a set of CSS, JS, HTML and image files Customize fonts, text size, view settings: a secret of Zekr
06/12/08
Zekr Quranic Project
23
Layout
Different types of layouts is supported Quran-only Translation-only Quran-translation separate Quran-translation mixed Quran-multi-translation (mixed)
06/12/08
Zekr Quranic Project
24
Paging Data Pack Introduced in 0.7.0 Supports custom paging data: Uthman Taha paging is provided built-in Important feature before supporting commentary (Tafsir)
06/12/08
Zekr Quranic Project
25
Bookmark
Introduced in 0.5.0 Ability to have multiple bookmark sets Quick bookmark (introduced in 0.7.1) Export to or import bookmarks from XML Export for web (HTML)
06/12/08
Zekr Quranic Project
26
Recitation Introduced in 0.6.5 (Zekr Ramadan Edition) Online and Offline Uses Adobe (Macromedia) Flash to play MP3 Plays aya-by-aya Currently 4 offline and 11 online recitations All recitations are provided by versebyversequran.com project
06/12/08
Zekr Quranic Project
27
Revelation Order Pack Introduced in 0.7.0 Is used to sort search results Is digitally signed Can be added or removed as an add-on Ibn-Abbas revelation order is provided by default
06/12/08
Zekr Quranic Project
28
Command Line Options
06/12/08
Zekr Quranic Project
29
Ports on Different Platforms Initially introduced as a Windows package in 0.1.0 Linux package supported from 0.2.0 Mac package introduced from 0.2.0 Zekr 0.5.0 Ported to XO-1 (AKA OLPC) Zekr works on Nokia N800
06/12/08
Zekr Quranic Project
30
Installation Windows: NSIS installer Linux: basic package + .deb package Mac: basic application bundle + .dmg package
06/12/08
Zekr Quranic Project
31
Ubuntu: Automatic Installation
Install from launchpad repository $ sudo gedit /etc/apt/sources.list
Add: deb http://ppa.launchpad.net/zekr/ubuntu intrepid main
$ sudo apt-get $ sudo apt-get scheherazade $ sudo apt-get $ sudo apt-get
update install zekr ttf-me-quran ttf-silinstall ttf-farsiweb install flashplugin-nonfree
Add a sample translation pack: $ sudo apt-get install zekr-quran-translation-enyusufali
06/12/08
Zekr Quranic Project
32
Ubuntu: Manual Installation Manually download and install .deb packages from the download page sudo dpkg -i ttf-me-quran_[xyz].deb ttf-sil-scheherazade_[xyz].deb sudo dpkg -i zekr_[xyz].deb sudo dpkg -i zekr-quran-translation[ab]-[author]_[version]_all.deb 06/12/08
Zekr Quranic Project
33
Common Problems
First check: http://zekr.org/wiki/Trouble_shooting Basic Linux package needs something like this: export MOZILLA_FIVE_HOME=/usr/lib/firefox XULRunner: http://zekr.org/wiki/XULRunner Player is not shown: check for flash player Online recitation doesn’t work: check for network proxy
06/12/08
Zekr Quranic Project
34
Questions?
? 06/12/08
Zekr Quranic Project
35