There is this great new service at www.ge.tt It’s free and basically it’s an instant file sharing service. No ads, no download delays and no restricted filetypes. Really sleek and professional looking, marking the beginning of corporates file sharing websites. Free and paid accounts available. Max file size is 2GB, which is more than enough.
Professional and sleek looking new online file sharing free service
December 7th, 2010PHP script to add Facebook LIKE button to your website
November 19th, 2010You can use below PHP script to add Facebook LIKE button to your website :
// Display facebook LIKE button
echo "<br><iframe scrolling=\"no\"
src=\"http://www.facebook.com/plugins/like.php?href=";
echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
echo "&layout=standard&show_faces=false&width=450&action=like&colorscheme=light\"
frameborder=\"0\" style=\"border: none; overflow: hidden; height: 35px;
margin-top: 10px; margin-bottom: 0px;\"></iframe>" ;
Printer Friendly button for your website
November 16th, 2010I stumbled upon a nice website which offers a print friendly button for your web page, add a button to your browser or just insert an URL and have it generate a customizable print friendly version for you.
A page can be sent to printer, converted into a PDF file or email to a friend.
Give it a try: http://www.printfriendly.com/
slash the web !
November 1st, 2010Blekko, a new search engine that attempts to use human input to refine search results, launched a public beta on Monday.
blekko.com is an alternative way to search the web by using slashtags. slashtags search only the sites you want and cut out the spam sites. use friends, experts, community or your own slashtags to slash in what you want and slash out what you don’t.
You all should give it a try.
RTL support in OpenERP 5.0.11 and openSuSE 11.1 64 bits server.
September 2nd, 2010Today, we managed to implement a solution that allows RTL Arabic support for OpenERP 5.0.11 reporting engine on our openSuSE 11.1 64 bits server.
It has to do with enabling RTL in ReportLab, which is used by OpenERP to produce PDF reports. Also, OpenERP server code has to be patched to allow it to identify RTL and LTR test direction. OpenERP reporting engine is by default recognizes LTR only.
Support for unicode characters has to be enabled to allow the display of Arab and Hebrew characters.
No more details can be provided as although the solution is open source, we don’t have the permission from the author to publish it.
COPY – Enabling Arabic Support in OpenERP Reports – COPY
August 8th, 2010Below post is just a copy of http://brain.centrivision.com/enterprise_applications/openerp/arabic_support :
OpenERP 5.0 relies on ReportLab 2.3 to create PDF reports. However, ReportLab 2.3 does not support RTL languages, and thus OpenERP does not support them as well. The following steps fix the issue in both ReportLab 2.3 and OpenERP 5.0.
Fixing ReportLab
To enable RTL language support in ReportLab 2.3, we need to modify some of its code, and build two supporting libraries, namely FriBiDi2 and PyFribidi2.
Building Dependencies
The following steps were tested on Ubuntu 9.04 (Jaunty). First, remove older libraries and install libraries necessary for building the new sources.
sudo apt-get purge libfribidi0 python-pyfribidi && sudo apt-get install autoconf gcc
Second, download FriBiDi2 (the latest at the time of writing is fribidi-0.19.2
), extract it, open a shell in the extracted directory and execute the following command:
./configure && make && sudo make install
Next, download PyFribidi2 (the latest at the time of writing is pyfribidi2-0.8.0
), extract it, open a shell in the extracted directory and execute the following command:
sed -i -r 's/\bfribidi2(\b|_)/fribidi\1/g' configure.in configure setup.py [ `python -c 'import sys; print sys.version[:3]'` == '2.6' ] && sed -i -r 's/\bsite-packages\b/dist-packages/g' configure configure.in ./configure && make && sudo make install
Finally, verify the installation by opening a shell, changing to the home directory, starting the Python interpreter and importing pyfribidi2
:
cd python >>> import pyfribidi2
Note: If you get an error about libfribidi.so.0
not being found, try to reboot your machine. If the error still persists, you may need to edit ”/etc/ld.so.conf”
, adding the following line at the end of the file: ”/usr/local/lib
” (without the quotes). Then run `sudo ldconfig`
.
Modifying the code
Three files need to be modified in ReportLab’s code. The default installation of ReportLab in Ubuntu with Python 2.6 places it in the directory ”/usr/lib/python2.6/dist-packages/reportlab/
”. We will need to modify the files there using an editor that is run in super user mode (e.g. `sudo vim`
). I will refer to the files below using the relative path in ReportLab’s director.
rl_config.py
We need to modify the search path that ReportLab uses to search for fonts to include the default path on Ubuntu.
In the variable T1SearchPath
, add the following value as the last element in the tuple (approximately at line 67):
'/usr/share/fonts/type1',
Do the same for TTFSearchPath
, adding the following value as the last element in the tuple (approximately at line 85):
'/usr/share/fonts/truetype',
And do the same for CMapSearchPath
, adding the following value as the last element in the tuple (approximately at line 113):
'/usr/share/fonts/cmap',
pdfgen/textobject.py
We need to import PyFribidi2 and call it before text is output to the PDF.
Add the following lines after the import statements (approximately at line 19):
# try to import pyfribidi try: import pyfribidi2 as pyfribidi log2vis = pyfribidi.log2vis DIR_ON = pyfribidi.ON DIR_LTR = pyfribidi.LTR DIR_RTL = pyfribidi.RTL except: import warnings warnings.warn('pyfribidi is not installed - RTL not supported') log2vis = None DIR_ON = DIR_LTR = DIR_RTL = None
Add a parameter to specify direction in PDFTextObject.init
(approximately at line 135), so that the method declaration becomes as follows:
def __init__(self, canvas, x=0,y=0, direction = 'LTR'): self.direction = direction
Finally, add a call to PyFribidi2 at the top of PDFTextObject._formatText
(approximately at line 314), so that it becomes like this:
def _formatText(self, text): "Generates PDF text output operator(s)" # Use pyfribidi to write the text in the correct visual order. directions = { 'LTR': DIR_LTR, 'RTL': DIR_RTL } text = log2vis(text, directions.get(self.direction, DIR_ON))
platypus/paragraph.py
Right before the comment ”#now the font for the rest of the paragraph
”, add the following lines (approximately at line 1337):
# set the paragraph direction if self.style.wordWrap == 'RTL': tx.direction = 'RTL'
Fixing OpenERP
The fixes below have been adapted from the ReportsUnicode wiki on OpenObject’s website. However, the code in the wiki does not work correctly, so I have fixed a few things in it (and will hopefully fix the wiki soon). Only two files need to be changed: ”[bin/]report/render/rml2pdf/init.py”
and ”[bin/]report/render/rml2pdf/trml2pdf.py”
.
report/render/rml2pdf/__init__.py
Replace the code in this file by the following code:
import os, stat from tools.misc import debug from reportlab import rl_config from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase import ttfonts from reportlab.lib.fonts import addMapping def rl_isreg(filename, dirname): try: st = os.stat(os.path.join(dirname, filename)) except OSError, reason: if reason.errno == 2: return False raise return stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode) for dirname in rl_config.TTFSearchPath: for root, dirs, files in os.walk(dirname): #@UnusedVariable for file in [x for x in files if x.lower().endswith('.ttf') and rl_isreg(x, root) ]: filename = os.path.join(root, file) try: face = ttfonts.TTFontFace(filename) face.extractInfo(1) pdfmetrics.registerFont(ttfonts.TTFont(face.name, filename, asciiReadable=0)) addMapping(face.familyName, face.bold, face.italic, face.name) except: pass from trml2pdf import parseString, parseNode
report/render/rml2pdf/trml2pdf.py
Right before the parseNode
function, add the following function (approximately at line 777). It replaces a number of standard PDF fonts with alternatives that support Unicode characters. I haven’t tried all of them, but Helvetica –> DejaVuSans works for me.
def changeFonts(data): fontmap = { 'Times-Roman': 'DejaVuSerif', 'Times-BoldItalic': 'DejaVuSerif-BoldItalic', 'Times-Bold': 'DejaVuSerif-Bold', 'Times-Italic': 'DejaVuSerif-Italic', 'Helvetica': 'DejaVuSans', 'Helvetica-BoldItalic': 'DejaVuSans-BoldOblique', 'Helvetica-Bold': 'DejaVuSans-Bold', 'Helvetica-Italic': 'DejaVuSans-Oblique', 'Courier': 'DejaVuSansMono', 'Courier-Bold': 'DejaVuSansMono-Bold', 'Courier-BoldItalic': 'DejaVuSansMono-BoldOblique', 'Courier-Italic': 'DejaVuSansMono-Oblique', 'Helvetica-ExtraLight': 'DejaVuSans-ExtraLight', 'TimesCondensed-Roman': 'DejaVuSerifCondensed', 'TimesCondensed-BoldItalic': 'DejaVuSerifCondensed-BoldItalic', 'TimesCondensed-Bold': 'DejaVuSerifCondensed-Bold', 'TimesCondensed-Italic': 'DejaVuSerifCondensed-Italic', 'HelveticaCondensed': 'DejaVuSansCondensed', 'HelveticaCondensed-BoldItalic': 'DejaVuSansCondensed-BoldOblique', 'HelveticaCondensed-Bold': 'DejaVuSansCondensed-Bold', 'HelveticaCondensed-Italic': 'DejaVuSansCondensed-Oblique', } for old, new in fontmap.iteritems(): data = data.replace('"'+old+'"', '"'+new+'"') return data
Then, put the following line at the very top of each of parseNode
and parseString
(approximately at lines 812 and 820), before the call eTree.XML(rml)
:
rml = changeFonts(rml)
report/render/rml2pdf/trml2pdf.py
(Tested on OpenERP Server 5.0.5 only)
In the method _rml_flowable._textual
, modify the line that reads rc1 += etree.tostring(txt_n, encoding=unicode)
(approximately at line 460) to become:
rc1 += etree.tostring(txt_n, encoding=unicode)
That should be all. OpenERP should be all set and ready for creating Arabic reports.
HP IPG Laserjet printing supplies packaging changes
July 31st, 2010HP will roll the packaging of HP LaserJet print cartridges to a new design to align IPG portfolio for consistent premium brand communication via a consistent packaging identity and retail experience.
All HP LaserJet monochrome AND colour print cartridge packaging will include a new selectability number. Monochrome has a 2-digit number & Colour a 3-digit number.
First new packaging for monochrome already is shipping (July 2010), first colour cartridges scheduled to start as of August 2010.
Batch converting audio files :
May 16th, 2010This script may be of interest and value :
File: convertomp3 |
#!/bin/bash # # Usage: convertomp3 fileextention # if [ $1 = "" ];then echo 'Please give a audio file extention as argument.' exit 1 fi for i in *.$1 do if [ -f "$i" ]; then rm -f "$i.wav" mkfifo "$i.wav" mplayer \ -quiet \ -vo null \ -vc dummy \ -af volume=0,resample=44100:0:1 \ -ao pcm:waveheader:file="$i.wav" "$i" & dest=`echo "$i"|sed -e "s/$1$/mp3/"` lame -V0 -h -b 160 --vbr-new "$i.wav" "$dest" rm -f "$i.wav" fi done |
Running convertomp3 wma will covert every .wma file in the current folder to .mp3.
Oracle Outlines Strategy for MySQL
May 14th, 2010Edward Screven, Oracle’s Chief Corporate Architect, discussed the current and future state of MySQL in his keynote at the MySQL Conference & Expo.
Watch this video on youtube :