I created a small extension that enables Chrome users of Spotify Webapp to control the player through their Macbook media keys.
Mac OS High Sierra brings an annoying new feature (I guess you can insert “It’s not a bug; it’s a feature” joke here) for users who like using media keys to control their media player while browsing on Safari, be it iTunes, Spotify, or some other player. It’s the new unified media controls feature which takes control over your regular stand-alone player and gives it to the last player that you use, in most cases an HTML5 player on Safari, like the players on Youtube or Facebook. So, when you press the media keys, you start controlling the Youtube or Facebook video instead of iTunes or Spotify tracks. For Chrome users this is not a problem yet. But if you use Safari, it is very annoying to say the least.
I kind of devised a workaround to fix the problem albeit using a paid software which gives a 45 day free trial period. Here is how it goes.
- Download and install BetterTouchTool from here.
- Open your keyboard settings and check the last option to use media function keys as standard function keys. (We have this step because I couldn’t get BetterTouchTool to recognize media function keys. If someone can, I’ll update the post.)
- Open the Shortcuts tab and disable “Show Desktop” and “Show Dashboard” functions.
- Open BetterTouchTool (allow the BetterTouchTool in Accessibility settings in the first run) and go to the Keyboard tab.
- Set all the function keys like the one in the screenshot. As for the media buttons, choose Run Apple Script feature and enter the following scripts per your player preference. Mine is Spotify so I used Spotify. If you use iTunes, write “iTunes” instead.
tell application "iTunes" playpause end tell
tell application "iTunes" previous track end tell
tell application "iTunes" next track end tell
There you go, the problem is temporarily solved until Apple does something about this.
Skip the explanation part(s) if you know what you are doing, I have written this manual for intermediate users of UNIX-like systems.
I like my Kindle Voyage and its PDF display capabilities but once in a while I am having a hard time enjoying the content because of non-OCR’ed PDF material. I recently bought a 40 USD 1950 edition old book from Google Play (I can’t take the risk of getting the hard copy through the customs in Turkey considering the actual book is around 100 USD) and it’s a shame I couldn’t read it on my Kindle without pulling all kinds of stunts. For starters, OCR is what makes a regular scanned document more than just an image version of it by detecting the text on it and making it an actual text document rather than a simple photocopy. Why is OCR important? If you want to do a text search, copy a text, do annotations or look up the meaning of a word inside your PDF, OCR is your single solution for older documents (or even the newer ones when the document is intentionally left as scanned). Unfortunately, most OCR software is very expensive, starting from around ten dollards going up to thousands of dollars. But the best part is most OCR software use the same open-source, free back-end, TESSERACT. TESSERACT was started by HP decades ago, now it is sponsored by Google. Actually, the famous Google Docs utilize it for the pdf’s you have on your Google Drive or even Gmail. The problem with TESSERACT for the regular users is that it is too powerful to be user-friendly. In fact, it does not even have a GUI or interface. So the following gives brief and simple (as much as possible) instructions on how to tame it in OS X.
Homebrew is an indispensable package manager for powerusers of OS X, similar to apt-get or yum in Linux distros. In fact, it is much like Gentoo’s package manager since it compiles most stuff directly on your computer instead of downloading binary executables.
To install it via Terminal, which is the only way actually, run:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
The almigthy Imagemagick has more juice and tricks than Photoshop if you know how to use it. No wonder why even Hollywood studios use it (Shrek, Toy Story, Stuart Little, The Incredibles are just a few examples of the movies it was used in), too. I honestly don’t know how to do anything with it other than simple image manipulation.
brew install --with-libtiff --with-ghostscript imagemagick
Time to unleash the monster in all its glory. The current procedure will use a lot of CPU power and memory. So leave your computer be while the fans cry their lungs out:
brew install --with-all-languages tesseract
A necessary modification here. The latest version of tesseract (3.04.00) has a glitch with generating the fonts on the final pdf. I have contacted the development team, and it seems that a fix is on the way;however for now, you have to use an alternative font. Ken Sharp saves the day with his font. Click here to download it. Run this in the terminal and replace pdf.ttf with Sharp’s font:
Scanning and OCR’ing:
Run this (by replacing the INPUT part) to create tiff versions of your original pdf:
convert -density 300 INPUT.pdf -type Grayscale -compress lzw -background white +matte -depth 32 page_%05d.tif
OCR the tiffs with:
for i in page_*.tif; do echo $i; tesseract $i $(basename $i .tif) pdf; done
Now, merge the single page pdfs with CPDF, which is available here (CPDF was an expensive pdf toolkit before it was made open-source, now the back-end binaries are free to download but you still have to pay thousands of dollars for the GUI if you are a company):
./cpdf page_*.pdf -o MERGED.pdf
That’s it! You have a searchable pdf which you can use both on your computer and on Kindle.
For those who are curious about Google’s new operating system Chrome OS, here are some screenshots (of Chromium OS Developer Build). I have used the Vmware image on Virtualbox since I don’t own a netbook (I’m not sure Chrome OS will work on any architecture, however, it may at the moment if they haven’t stripped down the kernel. It’s based on Debian as far as I know).
No splash screen, it immediately asks for an account and password:
It immediately took me to Gmail page for a login. Since Chrome OS is using Google Apps, you need to login to your google account.
Regular Chrome browser:
When I clicked on the “start” button of Chrome OS, it prompted me for a password again. It says “Welcome uses Google Accounts for Sign In.” I’m not sure what this “Welcome” is but it must be something new to personalize your google experience on your Chrome OS. It says Google is not affiliated with the contents of Welcome or its owners. Sounds strange. It may be something like a shell for the OS.
Sort of a start menu (or “Welcome”):
Here is what Google Talk looks like:
When you click on Chess, it opens a regular flash chess game on the browser:
When you click on other applications like facebook, it just redirects you to your facebook account through the browser window. I couldn’t make some of the applications work. Anyways, as you see there is not much to be curious about yet, especially if you don’t own a netbook or you don’t like cloud computing.
Due to some patent issues, most of the distributions ship their freetype packages with subpixel rendering option disabled. In fact, as far as I know Ubuntu is the only one that enabled this option. If you want cleartype-like font rendering in your distro, you have to uncomment a macro in the code and build the package yourself. But this is not enough since the newest LCD-specific FreeType APIs have not been implemented in Xft and Cairo. So you have to patch and build these packages too. I have downloaded the sources of these packages from Ubuntu and applied the patches to Debian code. Cairo and Freetype compiled fine but Xft wouldn’t. So I used David Turner’s patch for that one. Though font rendering issues are a matter of taste, the results are miraculous in LCD displays. Here are some screenshots with and without patches, see how fonts differ in webpages.
Unpatched freetype, cairo and xft:
Sources and patches of freetype 2.3.7, xft 2.1.12, cairo 1.6.4 can be found here. The tar archive also includes patched versions of the packages that I have built for Debian (deb archives for i386).
To enable subpixel rendering, you have to choose subpixel smoothing from appearance preferences menu in gnome. If you are using Debian or a Debian-based distro, you can configure system-wide settings through dpkg with the following options:
sudo dpkg-reconfigure fontconfig-config
More information about patches and patents can be found in:
Long-awaited “Lenny” has finally been out! After 22 months of development, Debian development team announced the official release of Debian GNU/Linux 5.0 on 14th of February as planned (well, at least in American Samoa, which happens to be located in UTC-11.) and the very same day I installed and tested it on my laptop.
This is the first time that a Debian release comes with a graphical installer, though the text-based installation is still the default option. The Debian installer in the DVD that I have used offered different options like expert mode, default desktop selection, etc. The overall installation process was easy and smooth. One of the good things was having the chance to load non-free firmwares from a USB flash drive during the installation because my laptop has Intel 4965 AGN wifi, which needs some binary firmware to work.
You can also choose the mount options of the partitions while you are installing the system, no need to edit fstab. I always use relatime.
One thing to mention is that if you have an ntfs partition, you need to install ntfs-3g yourself because it is not installed automatically. So you may need to edit your fstab in that case, no big deal anyway.
Even if Distrowatch says Lenny uses Gnome 18.104.22.168, it ships with Gnome 2.22.3. However, some packages are still in their 2.20 version. One of those kept back packages is gnome-panel. It is a very good decision to keep gnome-panel in version 2.20 because even in Ubuntu Hardy, which ships 2.22, the panel and applets crash too often. The other important package in version 2.20 is nautilus. Gvfs is not implemented in Lenny since it is thought to be “not stable and featured enough for a stable Debian release.” So Lenny uses “patched, rock-solid version of gnome-vfs instead”.
Lenny comes with native Flash support both in desktop and in the browser. It uses swfdec to view flash files and objects but I can’t say it’s an effective decoder. The quality of flash videos with swfdec-mozilla were so low that I immediately had to switch to non-free flash plug-in.
X.Org version in Lenny is 7.3, which brings support for input/output hotplug. Some other important novelties in base system is mlocate replacing locate, and rsyslog replacing sysklogd/klogd.
Mozilla Firefox comes with some pre-installed search plugins and some websites provide their users with a plugin for firefox search bar. However, there are also lots of websites on the net that don’t give you any plugin to make your search easier. Sometimes I have to use Cambridge Advanced Learner’s Dictionary to look up a word that I don’t know but copying the unknown word and putting it into the search box of Cambridge Dictionary seems too painful to me, especially if I am reading a long sophisticated text. So I created some search plugins for different websites using a perl script. (See Screenshots below) Below you can find some of them. In order to use them in your firefox browser, you need to right-click and save them to your computer. Then, Windows user should put them in:
C:\Program Files\Mozilla Firefox\searchplugins\
And, Linux users should put them in:
Then, you need to restart your browser.
Other Additional Plugins
If there are any other plugins that you need to use with your firefox browser, ask for them in comments section below.