Blog transferred to new domain
Now I have setup a new domain to host my WordPress blog The Revolver’s Notepad. Updates to the old one on WordPress.com will be discontinued soon after the transition is finally done. Please subscribe to the RSS feed of the new blog (but with the same name, The Revolver’s Notepad) for a more broad range of posts!
Also, the blog is now a part of my website Pi Identity. This site (now under construction) will mainly be dedicated to my need in weekend-hobbism to host various smaller projects.
List of unsuccessful MacPorts installations
So far, I have gathered a list of installations from MacPorts which have failed me.
Maude 2.6: Fortunately, the developers of Maude have a precompiled version on their website.Ipe 7.1.1: An update with MacPorts to version 7.1.2 works.Boost 1.48.0_4: Fortunately, an old version 1.48.0_2 works for me. Update: An update of MacPorts to version 2.0.4 installs Boost 1.49.0_0 successfully.- rb-gnome, rb-poppler, poppler, gconf: This set of modules is newly discovered when I try to install UPPAAL DBM Ruby bindings. No solution yet.
Installing UPPAAL DBM library, the Ruby binding, and the Python binding on MacOSX
This is another build / configure post here. Another MacPorts failure in building the rb-gnome
module (which in turn depends on poppler
, failing for me).
Here is a partial list of modules that MacPorts has failed me.
Installing the DBM Library
The process of installing DBM library is a standard procedure.
AR=ar ./configure make make install
The AR=ar
fixes a weird error of the script which reports rucs: command not found
(see this discussion). Googling “rucs” gets almost nothing, except that it thinks I am searching “rush.”
Installing the Ruby Binding
Compiling the Ruby binding files are also straightforward following the README
file. Only one error reports “error: cast from ‘void*’ to ‘int’ loses precision”. Change int
in Line 317 of the udbm.cpp
file to intptr_t
solves the problem, according to this StackOverflow discussion.
Unfortunately, the graphical features requires the rb-gnome
module, which the official website refers to MacPorts, which fails.
Nonetheless, the binding seems to be working pretty well without the capability of doing the GUI.
Installing the Python Binding
This installation has been the smoothest. First grab the source of SWIG, compile and install, then build and install the Python Binding according to the README
file.
Batch converting graphic files for Mac with AppleScript and ImageMagick
It is often desirable to convert a few graphic files into other formats, for example .eps
and .pdf
when you work with LaTeX. The convert
utility from the ImageMagick software suite makes conversion an easy job, but some batch work should be done automatically, right?
This AppleScript utility, which can be saved as a MacOSX application also, simply automates the process. You select a few graphic files, you specify extensions of formats that you want to convert them to, and this script does the rest, putting the converted files (same basenames as the originals, but different formats with different extensions you specified) to where the originals are.
-- customized split function -- From julifos @ http://macscripter.net/viewtopic.php?id=24473 to split(someText, delimiter) set AppleScript's text item delimiters to delimiter set someText to someText's text items set AppleScript's text item delimiters to {""} --> restore delimiters to default value return someText end split -- From http://www.macosxautomation.com/applescript/sbrt/index.html on remove_extension(this_name) if this_name contains "." then set this_name to ¬ (the reverse of every character of this_name) as string set x to the offset of "." in this_name set this_name to (text (x + 1) thru -1 of this_name) set this_name to (the reverse of every character of this_name) as string end if return this_name end remove_extension on get_extension(this_name) if this_name contains "." then set this_name to ¬ (the reverse of every character of this_name) as string set x to the offset of "." in this_name --set this_name to (text (x + 1) thru -1 of this_name) set this_name to (text 1 thru (x - 1) of this_name) set this_name to (the reverse of every character of this_name) as string end if return this_name end get_extension -- get the raw files to convert set fileNames to ¬ (choose file with prompt ¬ "Select the graphic files to convert." with multiple selections allowed) if fileNames is -128 then exit repeat -- ask for the other formats to convert to set exts to text returned of ¬ (display dialog ¬ "Enter a list of extnesions you want to convert to, separated by space." with title "Convert to... " default answer "eps pdf") set extItems to split(exts, {" ", " ", " ", " ", " "}) -- start converting repeat with filename in fileNames repeat with ext in extItems set n to POSIX path of (filename as text) set bn to remove_extension(n) set nn to bn & "." & ext set cmd to "convert " & (quoted form of n) & " " & (quoted form of nn) -- if ext the same then skip if not (get_extension(n) as string = ext as string) then do shell script cmd end if end repeat end repeat beep display dialog "Conversions successful!" with title "Congratulations!"
Note: Make sure that the ImageMagick software is correctly installed on your system. Also, make sure that the convert
utility is found in your $PATH$; otherwise specify where it is. Also, note that if unsupported files by convert
are selected, the script may complain.
Update: It is highly recommended that ImageMagick is compiled from source, instead of using (a) the one from MacOSX itself, or (b) the one from MacPorts, or (c) the one from the ImageMagick’s binary distributions. Lots of my conversion fail but the one that I compiled by myself works best.
FaWave cannot select Sina Weibo and other accounts simultaneously, a quick fix for Mac
The title basically says everything about the problem with the Chrome plugin for multiple SNS account management. One of the reviews for the Chrome plugin mentions a solution for Windows machines here.
Under Mac OSX, the fix is essentially the same, only that the wrong popup.js
file is located at
/Users/yourid/Library/Application Support/Google/Chrome/Default/Extensions/aicelmgbddfgmpieedjiggifabdpcnln/2012.1.21.0_0
A working copy of the popup.js
file can be downloaded here.
Using Uppaal for trace interpretation
Uppaal is a model checking tool for timed automata. When a counterexample is generated by Uppaal, or when a random / manual trace is present in the Simulator, it is able to save the trace in Uppaal’s .xtr
format. However, this format is human-unreadable. This article records the steps to compile and use the tracer utility for showing Uppaal traces outside of the GUI. Assuming we are working under the Ubuntu 11.04 environment.
Installing Necessary Packages
The libboost-dev
and libxml2-dev
packages are needed by the Uppaal Timed Automata Parser Library.
sudo apt-get install libboost-dev libxml2-dev
Compiling the UTAP library
The installation is a simple process as usual.
./configure make make check sudo make install
For some reasons, however, there are errors when compiling the code. Essentially there are three groups of things to fix.
#include
s in the source sometimes includestring
, which should be modified tostring.h
for some functions likestrcmp
, andstrncpy
to work.- There are missing
#include
s so that certain functions do not work. E.g., thefor_each
function is in thealgorithm
package of Boost but not properly included. - Some type definitions are not found, such as
int32_t
. Changing this toint
works fine for the moment.
Once these are fixed, the installation process went through smoothly.
Using the tracer
Utility
The tracer utility takes a Uppaal intermediate format and a saved .xtr
file as the only two inputs. To get the Uppaal intermediate format for a model in the .xml
format, one should use
UPPAAL_COMPILE_ONLY=1 verifyta model.xml - > model.if
The dash here is a placeholder for the query file, which is not necessary for intermediate format generation but helps pass syntax check by verifyta
.
With the generated intermediate format, one can reconstruct the trace is a readable format.
tracer model.if trace.xtr
Also, one can use the pretty
utility to pretty-print a Uppaal model in a C-like format.
pretty model.xml
Update: Compiling the UTAP library under MacOSX
Under Mac OS X, the boost library is not by default available (if it is installed separately, with MacPorts for example). If this is the case, it is necessary to add options to ./configure
as follows.
./configure LDFLAGS=-L/opt/local/lib CXXFLAGS=-I/opt/local/include
Update: Issues with aclocal.m4
For some unknown reasons the aclocal.m4
file changes quite a bit; it even changes from plain text to binary files. This makes the compiling process fail. Just replace it with the pristine version that comes with the libutap
library and the compiling should be fine.
Downloading and configuring Java Pathfinder
Downloading and Installing
First install Mercurial.
sudo apt-get install mercurial
Then grab the source for jpf-core
and jpf-symbc
packages. They are the main files for Java Pathfinder.
hg clone http://babelfish.arc.nasa.gov/hg/jpf/jpf-core hg clone http://babelfish.arc.nasa.gov/hg/jpf/jpf-symbc
Site Configuration
Create a site configuration file with the name ~/.jpf/site.properties
.
# JPF site configuration jpf-core = ${user.home}/Software/jpf/jpf-core # numeric extension jpf-numeric = ${user.home}/Software/jpf/jpf-numeric # symbolic extension jpf-symbc = ${user.home}/Software/jpf/jpf-symbc extensions=${jpf-core},${jpf-numeric},${jpf-symbc} #... and all your other installed projects
Building Java Pathfinder
cd jpf-core bin/ant test cd ../jpf-symbc bin/ant test cd ../jpf-numeric bin/ant test
Installing the Eclipse plugin
Use Eclipse 3.5+ and Java 1.6+, and this update site link: http://babelfish.arc.nasa.gov/trac/jpf/raw-attachment/wiki/install/eclipse-plugin/update/
To find out that it is properly installed, see in the preference window if there is a page for Java Pathfinder.
Configuring a Windows machine with necessary installations
Here is a list of software to install on a new Windows machine.
- Google Chrome
- Firefox (See a list of extensions here)
- CTeX
- Emacs
- Aspell
- GnuWin32
- SecureCRT
- FileZilla
- 7-Zip
- Foxit Reader
- Java SDK
- Eclipse (See a list of plugins here)
- TortoiseSVN
- Python
- Skype
- Dropbox
- VirtualBox
- Notepad++
- Semantic Endpoint Protection
- Microsoft Visual Studio
- Uppaal
- Freemind
- JabRef
- Fonts: Liberation, Ubuntu, BitStream
Must-have firefox extensions
Here is a list of Firefox extensions that I cannot live without.
- Download Status Bar
- Adblock Plus
- Flagfox
- ActiveInbox for Gmail
- Colorful Tabs
- LeechBlock
Additionally, here are some more useful ones. I am not sure they are updated often to come up with Firefox 5 now.
- BBDict
- CHM Reader
- Delicious Bookmarks
- Firebug
- FireGestures
- FireShot
- Google Notebook
- Greasemonkey
- IE Tab
- Speed Dial
- Tab Mix Plus
- Web Developer
leave a comment