Use this OpenVCS:
http://code.google.com/p/openvcs/ (redirected to https://code.google.com/p/telepresence/?redir=1, version "last updated December 2014”). This version is said to be tested on CentOS64)
Build/install on VirtualBox
Get CentOS image
http://virtualboxes.org/images/centos/
(use CentOS 6.6 minimal x86_64, which is current version in December 2014)
Build and install according to https://code.google.com/p/telepresence/wiki/Support_BuildingSourceCode
OpenSSL is not built, because current version is valid
libogg, libvorbis and libtheora are not built, since they are optional.
libfaac make failed, and ffmpeg cannot be installed without this, so:
Remove line 126 from mpeg4ip.h then build (http://stackoverflow.com/questions/4320226/installing-faac-on-linux-getting-errors)
OpenAL Soft is not built, because it is optional (for 3D audio)
openOffice is optional and not built yet
When using WebRTC from Chrome connection cannot be made due to "WS handshaking not done yet” error, so modify tsip_transport_layer.c in doubango as follows (see https://code.google.com/p/telepresence/issues/detail?id=22)
Line 367:
case event_accepted:
case event_connected:
{
tsip_transport_stream_peer_t* peer;
// find peer
if((peer = tsip_transport_find_stream_peer_by_local_fd(transport, e->local_fd))){
// If peer already exists.. do nothing :0
return 0;
}
else {
TSK_DEBUG_INFO("WebSocket Peer accepted/connected with fd = %d", e->local_fd);
return tsip_transport_add_stream_peer(transport, e->local_fd, transport->type, tsk_true);
}
}
Doubango needs SSL to be enabled during built, otherwise, WebRTC will be connected but ended in "not acceptable”, and telepresence log will show "Remote party requesting DTLS but it is not enabled” error (see https://code.google.com/p/doubango/wiki/Building_Source_v2_0)
OpenSSL is pre-installed on CentOS but Doubango needs header files, so install openssl-devel first:
sudo yum install openssl-devel
Then configure doubango with SSL:
./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp --with-ffmpeg
and then build doubango.
SSL certificate (self-signed is OK) needs to be created:
https://code.google.com/p/telepresence/wiki/Configuration_Security
So, set SSL certificate:
ssh-keygen -b 1024 -f root -t dsa
Then point setting at /usr/local/sbin/telepresence.cfg to locations of pem files created above.
Telepresence make will fail with undefined reference at libtinySAK, so edit Makefile, change this LDFLAGS line:
LDFLAGS= -L/opt/openoffice4/sdk/lib
to:
LDFLAGS= -L/opt/openoffice4/sdk/lib -WI,-rpath,/usr/lib -ldl
(see http://sourceforge.net/p/cppunit/bugs/201/)
Remove openssl-devel to prevent problems with dual installation of openssl:
sudo yum remove openssl-devel
Make sure iptables is disabled to allow connections:
sudo /etc/init.d/iptables stop
(To turn off firewall on boot, do this:
chkconfig iptables off)
Edit transport configuration entry at /usr/local/sbin/telepresence.cfg, better add ip address instead of leaving the asterisks because it seems to get 0.0.0.0 as IP address, and uncomment all transport configuration entries (see https://code.google.com/p/telepresence/wiki/Support_Testing_the_system)
Start telepresence (if —config is not specified, it does not seem to use the cfg file provided by “make samples”):
telepresence —config=/usr/local/sbin/telepresence.cfg
Then log data will be shown.
Test using WebRTC. https://code.google.com/p/telepresence/wiki/Support_Testing_the_system). Access http://conf-call.org, go to settings, set the IP address of telepresence, then call.
Thursday, June 11, 2015
Tuesday, December 30, 2014
Set different language/locale to certain app on Mac
Just because my Mac default language is Japanese does not mean I like all apps to be Japanese language, especially when it is incomplete or roughly translated one. An example is Gramps.
This is how to set the language/locale to English:
$ defaults write -app Gramps AppleLanguages "(en, jp)"
$ defaults write -app Gramps AppleLocale "en_US"
$ defaults write -app Gramps AppleCollationOrder "en"
This is how to set the language/locale to English:
$ defaults write -app Gramps AppleLanguages "(en, jp)"
$ defaults write -app Gramps AppleLocale "en_US"
$ defaults write -app Gramps AppleCollationOrder "en"
Voila, now the ugly Japanese interface is gone for the app.
Monday, December 29, 2014
Time Machine using NAS on Mavericks
Just typing this on Terminal.app does not seem to work anymore.
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
So here is how I made it to work on Mavericks.
1. Execute the usual command above:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
2. Create image file on local disk first because creating directly on NAS will fail
The image file naming seems important: name it [hostname]_[MACaddress] (the MAC address is without colons). So if the Mac's hostname is "mbp" and its MAC address is 12:34:56:78:9a:bc, then the file name will be mbp_123456789abc
You can check the hostname from Sharing settings.
Create the image as hard disk and of type sparse bundle. The size can be set anything, e.g., 100MB. Set volume name to arbitrary name, for example TimeMachine.
3. Copy the image file to NAS and expand it to the size you need for Time Machine, for example 300GB. Turn off Time Machine first because resizing seems to be always reset by Time Machine when it is on.
Use Disk Utilities to resize, or use hdutil from Terminal:
hdiutil resize -size 300g /Volumes/Backup/mbp_123456789abc.sparsebundle
4. Mount the image and initialize
Mount the image and initialize. The mount point, for example /Volumes/TimeMahine.
5. Set the volume as Time Machine destination
Now at this point even if you open Time Machine settings the volume won't show up. You have to set it from Terminal:
sudo tmutil setdestination /Volumes/TimeMachine
6. You are ready to start backing up using Time Machine!
Reference
Thursday, September 18, 2014
d3 uses createWindow but latest jsdom removed it?
I was trying to use d3 with node.js. It seems that d3.js uses createWindow but latest jsdom removed it, so it gave error like:
Hence, it seems that to run d3.js, older jsdom must be used, i.e., version 0.11.1 which is the latest version before 1.0.0-pre.1:
"Object [ null ] has no method 'createWindow' d3"In jsdom's changelog it was mentioned that jsdom.createWindow was among removed jsdom APIs in version 1.0.0-pre.1. BTW, latest version of jsdom as of this writing is 1.0.0-pre.6, so a default installation of jsdom via "npm install jsdom" will not contain support for createWindow.
Hence, it seems that to run d3.js, older jsdom must be used, i.e., version 0.11.1 which is the latest version before 1.0.0-pre.1:
sudo npm remove jsdom
sudo npm install jsdom@0.11.1
Monday, September 15, 2014
Analyzing contribution level to a git repository
I wondered if there is a handy tool for analyzing contribution level to a git repository, and found this: gitinspector and gitstats.
gitinspector
Once you got python installed, you can fire it with command like this:
gitinspector
Once you got python installed, you can fire it with command like this:
./gitinspector.py -wTHl --format=htmlembedded --file-types=cs,cshtml,js,css /path/to/git/repo/ >/path/to/resultdir/result.html
This will produce an HTML report
More options can be found here.
gitstats
If python is ready, on Mac another install is necessary, i.e., gnuplot. The easiest way is to use MacPorts to install it, by simply doing "sudo port install gnuplot".
Then run gitstats with command like this:
More options can be found here.
gitstats
If python is ready, on Mac another install is necessary, i.e., gnuplot. The easiest way is to use MacPorts to install it, by simply doing "sudo port install gnuplot".
Then run gitstats with command like this:
./gitstats /path/to/git/repo/ /path/to/resultdir/result
Thursday, February 13, 2014
Force installing apps to SD Card on Android
It was about time for me to actually use the lowly Android smartphone I bought about a year ago, i.e., the LG. Then I started to install Skype, Whatsapp, Line, and some other must-have apps, only to find out that many failed to install because I got no space :O
Yeah, the handset has only like 100MB or so space, but I got 1GB on SD Card, why can't I install the apps directly to it? The answer is, I simply can't. Stuck. Now I understand why Android is just about numbers, not usability. Its marketshare can be no.1 in the world of smartphones, but a very large percentage of it is probably junk.
So what, am I going to give this up as junk?
Luckily, though not for the faint of heart, with the debugger in Android SDK, it can be set to install app to SD Card by default.
On Mac, install Android SDK, open terminal, connect the Android device which is already set to USB debugging mode, go to the directory where Platform Tools are, then type:
adb devices
It should show the device ID-like data.
Then type the following to start the shell:
adb shell
Then finally set default installation destination to SD Card:
pm set-install-location 2
Voila, now I can install the apps from Google Play, and it will install to SD Card. After installation, set it back to up to system:
pm set-install-location 0
Reference:
http://techgage.com/article/moving_your_non-movable_android_apps_to_an_sd_card/
Yeah, the handset has only like 100MB or so space, but I got 1GB on SD Card, why can't I install the apps directly to it? The answer is, I simply can't. Stuck. Now I understand why Android is just about numbers, not usability. Its marketshare can be no.1 in the world of smartphones, but a very large percentage of it is probably junk.
So what, am I going to give this up as junk?
Luckily, though not for the faint of heart, with the debugger in Android SDK, it can be set to install app to SD Card by default.
On Mac, install Android SDK, open terminal, connect the Android device which is already set to USB debugging mode, go to the directory where Platform Tools are, then type:
adb devices
It should show the device ID-like data.
Then type the following to start the shell:
adb shell
Then finally set default installation destination to SD Card:
pm set-install-location 2
Voila, now I can install the apps from Google Play, and it will install to SD Card. After installation, set it back to up to system:
pm set-install-location 0
Reference:
http://techgage.com/article/moving_your_non-movable_android_apps_to_an_sd_card/
Thursday, January 9, 2014
git commands for svn users
git commands for svn users:
http://blog.cyclogy.com/2011/05/05/git_subversion/
Well, actually I just wanted to know how to make my local repo up to date and at the same time disposing any changes on local repo, and here is the git command for it:
This will remove untracked files, including directories (-d) and files ignored by git (-x). Replace the -f argument with -n to perform a dry-run or -i for interactive mode and it will tell you what will be removed.
Subscribe to:
Posts (Atom)