Tuesday, November 10, 2009

MOSS 2007 Enterprise Features Not Available in the Standard License

ID
Category
Feature
Description
1
Enterprise Search

Business data search


Search data residing in your line-of-business applications using the Business Data Catalogue. Structured content sources and line-of-business application data and reports accessible through Web services or ADO.NET can be indexed and retrieved through the Business Data Catalogue as search results or into a SharePoint list.
2
Business Intelligence
Integrated, flexible spreadsheet publishing


Office Excel 2007 provides an integrated publishing experience that lets information workers easily choose what they want to share with others and determine how others can interact with published spreadsheets.
3
Business Intelligence
Share, manage, and control spreadsheets


Share business data broadly while maintaining control and helping to protect sensitive information. Provides access to spreadsheet data and analysis through server-calculated, interactive Office Excel spreadsheets from a Web browser. Use these spreadsheets to maintain and efficiently share one centralized version of the truth while helping to protect any sensitive or proprietary information embedded in documents, such as financial models, by limiting access to portions of the spreadsheet and auditing their usage.
4
Business Intelligence
Web-based business intelligence using Excel Services


Excel Services empowers spreadsheet authors to easily and broadly share spreadsheets that use the new business intelligence (BI) functionality through the browser. Fully interactive, data-bound spreadsheets including charts, tables, and PivotTable views can be created as part of a portal, dashboard, or business scorecard, without requiring any development.
5
Business Intelligence
Data Connection Libraries


Data Connection Libraries are centralized SharePoint document libraries that store Office Data Connections (ODC); ODCs describe connections to external data. Centralizing Office Data Connections makes it easier to share, manage, and discover data connections that can be used by any Microsoft Office program.
6
Business Intelligence
Business Data Catalog


The Business Data Catalogue (BDC) tightly integrates external data into the Office SharePoint Server 2007 user experience, providing access to external data residing within backed line-of-business applications, and enabling the display of and interaction with external data through a set of Business Data Web Parts
7
Business Intelligence
Business Data Web Parts


Use SharePoint Business Data Web Parts for viewing lists, entities, and related information retrieved through the Business Data Catalogue.
8
Business Intelligence
Business Data actions


With no custom coding, easily create actions that open Web pages, display the user interfaces of line-of-business applications, launch InfoPath forms, and perform other common tasks. Use the convenient links that appear beside business objects returned from the Business Data Catalogue.
9
Business Intelligence
Integrated business intelligence dashboards


Create rich, interactive BI dashboards that assemble and display business information from disparate sources by using built-in Web parts such as dynamic KPIs, Excel spreadsheets, Microsoft SQL Server Reporting Services reports, or a collection of business data connectivity Web Parts that can visualize information residing in back end line-of-business applications.
10
Business Intelligence
Report Centre 


An out-of-the-box site optimized for report access and management, including a report library, data connection library, and a dashboard template. These sites, hosted by the new Report Centre, provide consistent management of reports, spreadsheets, and data connections
11
Business Intelligence
Key performance indicators


KPIs communicate goals and status to drive results. Using the KPI Web Part, a user can create a KPI list within a Web Part page, without writing code. The KPI Web Part can display KPIs from Microsoft SQL Server Analysis Services, Excel spreadsheets, SharePoint lists, or manually entered data.
12
Business Intelligence
Filter Web Parts 


Filters enable dashboards to be personalized by communicating shared parameters among Web Parts on a dashboard. The parameters passed can be automatically applied based on user profiles, SharePoint lists, the BDC, manually entered information, and so forth.
13
Forms-driven business processes
Browser-based forms


Microsoft Office InfoPath Forms Services available in Office SharePoint Server 2007 and Microsoft Office Forms Server 2007 makes it possible to design Web-capable forms in Office InfoPath 2007 and distribute them on corporate intranets, extranets, or the Internet. Users can fill out forms in a browser or HTML-enabled mobile device with no download or client components needed.
14
Forms-driven business processes
Centralized forms management and control


Office InfoPath Forms Services provide a administrator controlled centralized form solution catalogue that makes it easy for users to find a form and minimize form solution downtime when upgrades are necessary. It also provides administrators with the tools to manage form solution security and accessibility.
15
Forms-driven business processes
“Design once” development model


Forms designers can design their forms once and deploy them for use both within the rich Office InfoPath 2007 client program and through a Web browser. Office Forms Server 2007 automatically converts the form into ASP.NET Web forms, with no additional work from the designer.
16
Forms-driven business processes
Form Import Wizard


The designer in Office InfoPath 2007 provides an easy way to convert forms designed in Office Excel and Office Word into rich Office InfoPath 2007 forms. The Form Import Wizard handles the conversion of form fields, repeating tables, rich text boxes, and other elements, dynamically generating the underlying XML structure for the new form.
17
Forms-driven business processes
Integrated deployment model for “no-code” forms


The Publish Wizard in Office InfoPath 2007 makes it easy to publish forms that do not have any managed code components to a Windows SharePoint Services library, while making the form available as a browser-based form at the same time.
18 
Forms-driven business processes
Compatibility Checker


The Compatibility Checker helps forms designers validate those features that need to work across the broadest range of Web browsers.
19
Platform
Excel spreadsheet developer reuse and extensibility
Spreadsheets published to SharePoint sites are accessible more securely using Web services. This means that application developers can take advantage of the logic embedded in a spreadsheet by remotely accessing spreadsheets from any platform. Business analysts can modify or update the model without affecting the business application or having to involve an application developer in the process.

Friday, October 9, 2009

Google Wave Robot Development for Microsoft-oriented Developers

Receiving a Google Wave invitation from Google almost 2 months ago provided me with a compelling reason to get started with Google Apps-based development.

If you are a Microsoft-oriented developer, and are attempting to get started with Google Wave development, the following tips may help;

  1. Use Eclipse as your IDE and Java for your development. Integration with the AppEngine from Eclipse is baked in (once the Google Plugin for Eclipse is installed) and very cool. 
  2. I would stay away from the Python alternative as I found the AppEngine integration and deployment options relatively fractured and not as smooth. This could, of course, change as Google Wave itself and supporting tools are still in development.
  3. Get started by writing robots for the Wave as this would immediately expose you to the Wave API event model. This helped me immensely.
  4. If you are writing complicated Wave artefacts, keep an eye on memory consumption of the Chrome browser process (if you are using Google Chrome as your browser).
Below is a screenshot of my first Wave Robot that took me no longer than 30 minutes to build, deploy and test when leveraging Eclipse and Java. Exact instructions are available at http://code.google.com/apis/wave/extensions/robots/java-tutorial.html.






Tuesday, October 6, 2009

Memory Profiling: Determining Application Pool Process ID

To track the memory usage of an Application Pool in IIS 6.0, we first have to determine the Process ID (PID). The PID can easily be determined using the following steps;

  1. Open a command prompt
  2. Browse to C:\Windows\System32
  3. Run cscript iisapp.vbs

A list of application pools with their relevant process id's will now be displayed. Using Task Manager or Performance Monitor, the memory consumption of the process can now be tracked.

To track the memory usage of an Application Pool in IIS 7.0, we have to go through the same process of determining the Process ID using the following steps,

  1. Open a command prompt
  2. Browse to C:\Windows\System32\inetsrv
  3. As shown below run appcmd list wps

A list of application pools with their relevant process id's will now be displayed in " ".



Wednesday, September 23, 2009

Comprehensive Linux Command List

Please note that the following list of Linux commands has been copied from http://www.pixelbeat.org/cmdline.html.

I intend to keep adding useful commands to this list as I grow in my experience of using Ubuntu.

Command
Description

apropos whatis
Show commands pertinent to string. See also threadsafe


man -t man | ps2pdf - > man.pdf
make a pdf of a manual page


which command
Show full path name of command


time command
See how long a command takes


time cat
Start stopwatch. Ctrl-d to stop. See also sw


nice info
Run a low priority command (The "info" reader in this case)


renice 19 -p $$
Make shell (script) low priority. Use for non interactive tasks

Directory Navigation

cd -
Go to previous directory


cd
Go to $HOME directory


(cd dir && command)
Go to dir, execute command and return to current dir


pushd .
Put current dir on stack so you can popd back to it

File Searching

alias l='ls -l --color=auto'
quick dir listing


ls -lrt
List files by date. See also newest and find_mm_yyyy


ls /usr/bin | pr -T9 -W$COLUMNS
Print in 9 columns to width of terminal


find -name '*.[ch]' | xargs grep -E 'expr'
Search 'expr' in this dir and below. See also findrepo


find -type f -print0 | xargs -r0 grep -F 'example'
Search all regular files for 'example' in this dir and below


find -maxdepth 1 -type f | xargs grep -F 'example'
Search all regular files for 'example' in this dir


find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done
Process each item with multiple commands (in while loop)


find -type f ! -perm -444
Find files not readable by all (useful for web site)


find -type d ! -perm -111
Find dirs not accessible by all (useful for web site)


locate -r 'file[^/]*\.txt'
Search cached index for names. This re is like glob *file*.txt


look reference
Quickly search (sorted) dictionary for prefix


grep --color reference /usr/share/dict/words
Highlight occurances of regular expression in dictionary

Archives and Compression

gpg -c file
Encrypt file


gpg file.gpg
Decrypt file


tar -c dir/ | bzip2 > dir.tar.bz2
Make compressed archive of dir/


bzip2 -dc dir.tar.bz2 | tar -x
Extract archive (use gzip instead of bzip2 for tar.gz files)


tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
Make encrypted archive of dir/ on remote machine


find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2


Make archive of subset of dir/ and below


find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents


Make copy of subset of dir/ and below


( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p )
Copy (with permissions) copy/ dir to /where/to/ dir


( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p )
Copy (with permissions) contents of copy/ dir to /where/to/


( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p'
Copy (with permissions) copy/ dir to remote:/where/to/ dir



dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'
Backup harddisk to remote machine

rsync (Network efficient file copier: Use the --dry-run option for testing)

rsync -P rsync://rsync.server.com/path/to/file file
Only get diffs. Do multiple times for troublesome downloads


rsync --bwlimit=1000 fromfile tofile
Locally copy with rate limit. It's like nice for I/O


rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html'
Mirror web site (using compression and encryption)


rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/

Synchronize current directory with remote one

ssh (Secure SHell)

ssh $USER@$HOST command
Run command on $HOST as $USER (default command=shell)


ssh -f -Y $USER@$HOSTNAME xeyes
Run GUI command on $HOSTNAME as $USER


scp -p -r $USER@$HOST: file dir/
Copy with permissions to $USER's home directory on $HOST


ssh -g -L 8080:localhost:80 root@$HOST
Forward connections to $HOSTNAME:8080 out to $HOST:80


ssh -R 1434:imap:143 root@$HOST
Forward connections from $HOST:1434 in to imap:143

wget (multi purpose download tool)

(cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html)
Store local browsable version of a page to the current dir


wget -c http://www.example.com/large.file
Continue downloading a partially downloaded file


wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/
Download a set of files to the current directory


wget ftp://remote/file[1-9].iso/
FTP supports globbing directly


wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head

Process output directly

echo 'wget url' | at 01:00
Download url at 1AM to current dir


wget --limit-rate=20k url
Do a low priority download (limit to 20KB/s in this case)


wget -nv --spider --force-html -i bookmarks.html

Check links in a file

wget --mirror http://www.example.com/
Efficiently update a local copy of a site (handy from cron)

Networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete)

ethtool eth0
Show status of ethernet interface eth0


ethtool --change eth0 autoneg off speed 100 duplex full
Manually set ethernet interface speed


iwconfig eth1
Show status of wireless interface eth1


iwconfig eth1 rate 1Mb/s fixed
Manually set wireless interface speed


iwlist scan
List wireless networks in range


ip link show
List network interfaces


ip link set dev eth0 name wan
Rename interface eth0 to wan


ip link set dev eth0 up
Bring interface eth0 up (or down)


ip addr show
List addresses for interfaces


ip addr add 1.2.3.4/24 brd + dev eth0
Add (or del) ip and mask (255.255.255.0)


ip route show
List routing table


ip route add default via 1.2.3.254
Set default gateway to 1.2.3.254


tc qdisc add dev lo root handle 1:0 netem delay 20msec
Add 20ms latency to loopback device (for testing)


tc qdisc del dev lo root
Remove latency added above


host pixelbeat.org
Lookup DNS ip address for name or vice versa


hostname -i
Lookup local ip address (equivalent to host `hostname`)


whois pixelbeat.org
Lookup whois info for hostname or ip address


netstat -tupl
List internet services on a system


netstat -tup
List active connections to/from system

Windows Networking (Note samba is the package that provides all this windows specific networking support)

smbtree
Find windows machines. See also findsmb


nmblookup -A 1.2.3.4
Find the windows (netbios) name associated with ip address


smbclient -L windows_box
List shares on windows machine or samba server


mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share

Mount a windows share

echo 'message' | smbclient -M windows_box

Send popup to windows machine (off by default in XP sp2)

Text Manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option)

sed 's/string1/string2/g'
Replace string1 with string2


sed 's/\(.*\)1/\12/g'
Modify anystring1 to anystring2


sed '/ *#/d; /^ *$/d'
Remove comments and blank lines


sed ':a; /\\$/N; s/\\\n//; ta'
Concatenate lines with trailing \


sed 's/[ \t]*$//'
Remove trailing spaces from lines


sed 's/\([`"$\]\)/\\\1/g'
Escape shell metacharacters active within double quotes


seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"
Right align numbers


sed -n '1000{p;q}'
Print 1000th line


sed -n '10,20p;20q'
Print lines 10 to 20


sed -n 's/.*
Extract title from HTML web page


sed -i 42d ~/.ssh/known_hosts
Delete a particular line


sort -t. -k1,1n -k2,2n -k3,3n -k4,4n
Sort IPV4 ip addresses


echo 'Test' | tr '[:lower:]' '[:upper:]'
Case conversion


tr -dc '[:print:]' < /dev/urandom
Filter non printable characters


history | wc -l

Count lines

Set Operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file)

sort file1 file2 | uniq
Union of unsorted files


sort file1 file2 | uniq -d
Intersection of unsorted files


sort file1 file1 file2 | uniq -u
Difference of unsorted files


sort file1 file2 | uniq -u
Symmetric Difference of unsorted files


join -t'\0' -a1 -a2 file1 file2
Union of sorted files


join -t'\0' file1 file2
Intersection of sorted files


join -t'\0' -v2 file1 file2
Difference of sorted files


join -t'\0' -v1 -v2 file1 file2
Symmetric Difference of sorted files

Math

echo '(1 + sqrt(5))/2' | bc -l
Quick math (Calculate φ). See also bc


echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc
More complex (int) e.g. This shows max FastE packet rate


echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python

Python handles scientific notation

echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist
Plot FastE packet rate vs packet size

echo 'obase=16; ibase=10; 64206' | bc
Base conversion (decimal to hexadecimal)


echo $((0x2dec))
Base conversion (hex to dec) ((shell arithmetic expansion))


units -t '100m/9.58s' 'miles/hour'
Unit conversion (metric to imperial)


units -t '500GB' 'GiB'
Unit conversion (SI to IEC prefixes)


units -t '1 googol'
Definition lookup


seq 100 | (tr '\n' +; echo 0) | bc
Add a column of numbers. See also add and funcpy

Calendar

cal -3
Display a calendar


cal 9 1752
Display a calendar for a particular month year


date -d fri
What date is it this friday. See also day


[ $(date -d "tomorrow" +%d) = "01" ] || exit
exit a script unless it's the last day of the month


date --date='25 Dec' +%A
What day does xmas fall on, this year


date --date='@2147483647'
Convert seconds since the epoch (1970-01-01 UTC) to date


TZ=':America/Los_Angeles' date
What time is it on West coast of US (use tzselect to find TZ)


echo "mail -s 'get the train' P@draigBrady.com < /dev/null" | at 17:45

Email reminder

echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes"

Popup reminder
Locales

printf "%'d\n" 1234
Print number with thousands grouping appropriate to locale


BLOCK_SIZE=\'1 ls -l
get ls to do thousands grouping appropriate to locale


echo "I live in `locale territory`"
Extract info from locale database


LANG=en_IE.utf8 locale int_prefix
Lookup locale info for specific country. See also ccodes


locale | cut -d= -f1 | xargs locale -kc | less

List fields available in locale database

recode (Obsoletes iconv, dos2unix, unix2dos)

recode -l | less
Show available conversions (aliases on each line)


recode windows-1252.. file_to_change.txt
Windows "ansi" to local charset (auto does CRLF conversion)


recode utf-8/CRLF.. file_to_change.txt
Windows utf8 to local charset


recode iso-8859-15..utf8 file_to_change.txt

Latin9 (western europe) to utf8

recode ../b64 < file.txt > file.b64
Base64 encode


recode /qp.. < file.txt > file.qp
Quoted printable decode


recode ..HTML < file.txt > file.html
Text to HTML


recode -lf windows-1252 | grep euro
Lookup table of characters


echo -n 0x80 | recode latin-9/x1..dump
Show what a code represents in latin-9 charmap


echo -n 0x20AC | recode ucs-2/x2..latin-9/x

Show latin-9 encoding

echo -n 0x20AC | recode ucs-2/x2..utf-8/x

Show utf-8 encoding
CDs

gzip < /dev/cdrom > cdrom.iso.gz
Save copy of data cdrom


mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz
Create cdrom image from contents of dir


mount -o loop cdrom.iso /mnt/dir
Mount the cdrom image at /mnt/dir (read only)


cdrecord -v dev=/dev/cdrom blank=fast
Clear a CDRW


gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -
Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)


cdparanoia -B
Rip audio tracks from CD to wav files in current dir


cdrecord -v dev=/dev/cdrom -audio *.wav
Make audio CD from all wavs in current dir (see also cdrdao)


oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'

Make ogg file from wav file
Disk Space (See also FSlint)

ls -lSr
Show files by size, biggest last


du -s * | sort -k1,1rn | head
Show top disk users in current dir. See also dutop


df -h
Show free space on mounted filesystems


df -i
Show free inodes on mounted filesystems


fdisk -l
Show disks partitions sizes and types (run as root)


rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n
List all packages by installed size (Bytes) on rpm distros


dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
List all packages by installed size (KBytes) on deb distros


dd bs=1 seek=2TB if=/dev/null of=ext3.test
Create a large test file (taking no space). See also truncate


> file
truncate data of file or create an empty file

Monitoring/Debugging

tail -f /var/log/messages
Monitor messages in a log file


strace -c ls >/dev/null
Summarise/profile system calls made by command


strace -f -e open ls >/dev/null
List system calls made by command


ltrace -f -e getenv ls >/dev/null
List library calls made by command


lsof -p $$
List paths that process id has open


lsof ~
List processes that have specified path open


tcpdump not port 22
Show network traffic except ssh.
See also tcpdump_not_me


ps -e -o pid,args --forest
List processes in a hierarchy


ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

List processes by % cpu usage

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
List processes by mem usage. See also ps_mem.py


ps -C firefox-bin -L -o pid,tid,pcpu,state
List all threads for a particular process


ps -p 1,2
List info for particular process IDs


last reboot
Show system reboot history


free -m
Show amount of (remaining) RAM (-m displays in MB)


watch -n.1 'cat /proc/interrupts'
Watch changeable data continuously

System Information (see also sysinfo) ('#' means root access is required)

uname -a
Show kernel version and system architecture


head -n1 /etc/issue
Show name and version of distribution


cat /proc/partitions
Show all partitions registered on the system


grep MemTotal /proc/meminfo
Show RAM total seen by the system


grep "model name" /proc/cpuinfo
Show CPU(s) info


lspci -tv
Show PCI info


lsusb -tv
Show USB info


mount | column -t
List mounted filesystems on the system (and align output)


grep -F capacity: /proc/acpi/battery/BAT0/info

Show state of cells in laptop battery

#
dmidecode -q | less
Display SMBIOS/DMI information

#
smartctl -A /dev/sda | grep Power_On_Hours
How long has this disk (system) been powered on in total

#
hdparm -i /dev/sda
Show info about disk sda

#
hdparm -tT /dev/sda
Do a read speed test on disk sda

#
badblocks -s /dev/sda
Test for unreadable blocks on disk sda

Interactive (see also linux keyboard shortcuts)

readline
Line editor used by bash, python, bc, gnuplot, ...


screen
Virtual terminals with detach capability, ...


mc
Powerful file manager that can browse rpm, tar, ftp, ssh, ...


gnuplot
Interactive/scriptable graphing


links
Web browser


xdg-open .
open a file or url with the registered desktop application

Miscellaneous

alias hd='od -Ax -tx1z -v'
Handy hexdump. (usage e.g.: • hd /proc/self/cmdline | less)


alias realpath='readlink -f'
Canonicalize path. (usage e.g.: • realpath ~/../$USER)


set | grep $USER
Search current environment


touch -c -t 0304050607 file
Set file timestamp (YYMMDDhhmm)


python -m SimpleHTTPServer
Serve current directory tree at http://$HOSTNAME:8000/



Tuesday, September 22, 2009

Reverting KDE to GDE in Ubuntu Jaunty

Being a recent convert to Linux, I installed the KDE desktop on Ubuntu.

However, I did not like KDE much and then decided to revert back to the default Gnome Desktop Environment. To revert desktops, I found the easiest way to run the following command at console login;

> sudo dpkg-reconfigure gdm

The next step is to remove the complete K Desktop Environment. Because several other packages are installed as part of KDE, the following command removes all of them;

> sudo apt-get remove akregator amarok amarok-common apport-qt ark cdrdao dolphin dontzap dragonplayer exiv2 foomatic-db-gutenprint gdebi-kde gnupg-agent gtk2-engines-qtcurve gwenview hpijs-ppds ijsgutenprint install-package jockey-kde k3b k3b-data kaddressbook kamera kate kde-icons-oxygen kde-printer-applet kde-style-qtcurve kde-window-manager kde-zeroconf kdebase-bin kdebase-data kdebase-plasma kdebase-runtime kdebase-runtime-bin-kde4 kdebase-runtime-data kdebase-runtime-data-common kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-libs4+5 kdebluetooth kdegraphics-strigi-plugins kdelibs-bin kdelibs-data kdelibs4c2a kdelibs5 kdelibs5-data kdemultimedia-kio-plugins kdepasswd kdepim-kresources kdepim-strigi-plugins kdepim-wizards kdepimlibs-data kdepimlibs5 kdeplasma-addons kdeplasma-addons-data kdesudo kdm kfind khelpcenter4 klipper kmag kmail kmix kmousetool knotes konqueror konqueror-nsplugins konqueror-plugin-searchbar konsole kontact kopete korganizer kpackagekit krdc krfb ksnapshot ksysguard ksysguardd ksystemlog ktimetracker ktorrent ktorrent-data kubuntu-artwork-usplash kubuntu-default-settings kubuntu-desktop kubuntu-docs kubuntu-konqueror-shortcuts kuser kvkbd kwalletmanager language-selector-qt libakonadiprivate1 libao2 libaudio2 libavahi-qt3-1 libboost-program-options1.35.0 libclucene0ldbl libdbus-qt-1-1c2 libeet1 libexiv2-5 libflac++6 libgeoip1 libk3b3 libk3b3-extracodecs libkcddb4 libkdecorations4 libkdepim4 libkexiv2-7 libkholidays4 libkipi6 libkleo4 libkonq5 libkonq5-templates libkpgp4 libksieve4 libkwineffects1 libloudmouth1-0 liblua50 liblualib50 libmad0 libmimelib4 libmodplug0c2 libmpcdec3 libmsn0.1 libmysqlclient15off libokularcore1 libpackagekit-glib11 libpackagekit-qt11 libphonon4 libplasma3 libpoppler-qt4-3 libpq5 libqca2 libqca2-plugin-ossl libqedje0 libqimageblitz4 libqt3-mt libqt4-assistant libqt4-core libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl libqt4-qt3support libqt4-script libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libqzion0 libraptor1 librasqal1 librdf0 libsearchclient0 libsoprano4 libstreamanalyzer0 libstreams0 libstrigihtmlgui0 libstrigiqtdbusclient0 libvncserver0 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x libzip1 mysql-common okular okular-extra-backends openoffice.org-kde openoffice.org-style-crystal oxygen-cursor-theme packagekit packagekit-backend-apt phonon phonon-backend-xine pinentry-gtk2 pinentry-qt4 plasma-widget-network-manager plasma-widget-quickaccess python-dev python-kde4 python-packagekit python-plasma python-qt4 python-qt4-common python-qt4-dbus python-sip4 python2.6-dev qt4-qtconfig quassel quassel-data raptor-utils redland-utils software-properties-kde soprano-daemon speedcrunch strigi-client strigi-daemon system-config-printer-kde systemsettings ttf-dejavu ttf-dejavu-extra update-manager-kde update-notifier-kde && sudo apt-get install ubuntu-desktop

Saturday, August 22, 2009

Wolfram Alpha and Computational Search

I was honestly more excited about the launch of Wolfram Alpha (http://www.wolframalpha.com/) than Microsoft Bing in May this year. It must be noted that Wolfram Alpha is a computational engine and the service that Wolfram provides is very different from Google or Microsoft search.

Stephen Wolfram, the founder of Mathematica led the effort to devise a strategy that enables the Wolfram Alpha engine to understand the language and interpretive intricacies of the web as compared to the more typical semantic tagging approach. Though not on the same scale, Wolfram's efforts in the present day are very similar to an ancient Sanskrit grammarian named Pāṇini (पाणिन) from the Indian subcontinent who lived around 27 B.C.E and produced 3,959 sutras or rules of  the Sanskrit grammar. Pāṇini essentially came up with formal rules to describe Sanskrit grammar and used these rules to compute poetic forms in Sanskrit. Wolfram's task of attempting to interpret the "language of the web" and making all available data computable by leveraging models, is much more arduous in terms of scale and this is why I am fascinated by the efforts of Wolfram Research.

The best way to understand how the computational knowledge engine differs from existing search engines is to run a few queries . As an extremely trivial example, I typed in "Australia India" and the below results were returned in Wolfram Alpha. A similar query in either Google or Bing led to a whole bunch of search engine results that were not relevant (purely) in context of quantifying comparative (computational) statistics of the two countries.


  Personal Web Log of Simeon Lobo, 2001 - 2009

Back to TOP