Auto Mount a Network File System in Ubuntu based on a Specific Network
When you use different network file systems on different networks (e.g., you often move your laptop from work to home) you may want to mount them automatically depending on the network you are connected. You can do this with a script I introduce in this post.
I often take my laptop from work to home and thus change the networks. At work there are network file systems which I use to backup my data and share files with others. These are only accessible from my work’s private network. When I am at home, I need to mount my home network file system — the source for my video and music. The other situation might be that you want to mount file systems at certain network where you have a fast access to those file systems (e.g., file system in your linux server at work over ssh). To do this automatically depending on the network you are connected, just follow the steps below. This idea and the script are based on the idea and the script for auto mounting SSH file systems.
HOWTO
This howto works for Ubuntu Fiesty. Feel free to adjust it to your distribution and environment.
1: you need to specify valid networks for your fstab entries. For this the script uses the comment attribute of fstab entry options where in single quotas you list the network addresses that the file system should be mounted at. The individual network addresses are separated with commas as shown in the example below.
//srvname /mnt/somedir cifs comment='192.168.16.0,10.2.16.0', username=usr,password=pswd,domain=IE,noauto 0 0
You also should specify noauto attribute to prevent the file system to be mounted automatically by your system. The script will take care of it instead. Also, since network file systems are usually only accessible with proper username/password you should also specify those.
2: download the scripts mount-networks and umount-networks to the folder /etc/network/if-up.d and /etc/network/if-down.d respectively. You can do it using following commands:
sudo wget http://www.vitvar.com/misc/mount-networks --directory-prefix=/etc/network/if-up.d/
sudo wget http://www.vitvar.com/misc/umount-networks --directory-prefix=/etc/network/if-down.d/
3: set the rights for those scripts so that they can be executed:
sudo chmod 601 /etc/network/if-up.d/mount-networks sudo chmod 601 /etc/network/if-down.d/umount-networks
That’s it. You can now switch your networks and your file systems will be mounted as you define in your fstab.
How it works
The script mount-networks is executed whenever the network is on. It searches for all fstab entries with attribute comment. For each entry, it parses the comment attribute and gets all the networks. Then, it gets IP addresses and masks for all interfaces using the ifconfig shell command. For each IP address and using the mask, the script tests if the IP belongs to at least one of the neworks from the fstab entry. If yes, the script mounts the file system.
The script umount-networks is executed whenever the network gets down. The script just unmounts all file systems from the fstab which have the comment attribute defined with list of networks.
SESA: Emerging Technology for Service-Centric Environments
The IEEE Software magazine published in the November/December issue our article entitled SESA: Emerging Technology for Service-Centric Environments where we discuss the innovative SOA technology based on the semantic service descriptions. We first outline a number of governing principles for the SESA design, research and implementation such as the service-oriented principle, the semantic principle, and the problem-solving principle. Following these principles, the SESA defines a set of essential functionalities (middleware services) required for the automation of the service provisioning process such as discovery, adaptation, fault handling, monitoring, mediation, and so on. The important aspect of the SESA lies in the semantic description of business services. The SESA adopts the semantic model introduced by WSMO (Web Service Modeling Ontology) extending WSDL service descriptions with semantics for information model, functional service definitions, behavioral descriptions and non-functional properties. We discuss in detail all these service semantics and illustrate their use on number of examples. In addition, we describe the business services integration process facilitated by the SESA middleware services composed of so called late-binding phase and execution phase.
Our work on the SESA has been done in the context of the EU project Knowledge Web, OASIS Semantic Execution Environment Technical Committee, roadmap for the research agenda of the European Technology Platform NESSI (its Semantic Technology working group), and STi2 initiative. The future direction of this work will be to integrate the SESA platform with major enterprise technologies and to expand the SESA towards large-scale SOA on the Web. Both these directions will be subject of research and development in the upcoming Irish and the EU projects, namely Lion, COIN and SOA4ALL.
Top Conferences in the Computer Science?
When researchers need to decide where to send papers, one criteria could be they want to publish in their own community – like we do in the Semantic Web conferences (such as European Semantic Web Conference or International Semantic Web Conference). The ultimate goal of every researcher, however, is to generate an impact on the community. Thus, the criteria that one should always consider is the quality of the conference. There are some conferences which accept almost all papers and which does not provide any good value to a researcher since there are no reviews or reviews are bad while at the same time these conferences are not popular. Another important criteria is that the conference should have proceedings published in one of the renowned publishers such as IEEE, Springer or ACM that computer science researchers usually monitor. These are also indexed by various bibliographic servers such as DBLP, CiteSeer, ISI Web of Knowledge etc.
A good source of information about quality of conferences are rankings usually created by academic institutions. One of the latests ones I came across was created by the Australian National University (ANU) and Australia’s national information and communication technology research centre of excellence (NICTA). They created the The Australian Ranking of ICT conferences based on various sources including CiteSeer rankings and citation, ISI Web of Science citation data, conference acceptance rates, the National University of Singapore (NUS) ranking of conferences, and NUS/Georgia Tech rankings. Through a back and forth discussion with academic community they created the ranks (tiers) and a list of (almost all) conferences in the computer science with their ranks. They further plan to publish annual updates of this list.
The list is really exhaustive, however, it does not really contain all conferences relevant to the Semantic Web and Web Services communities. The following is the sample list of conferences that we usually publish:
| Conference Name | Rank |
| ESWC (European Semantic Web Conference) | A |
| WWW (World Wide Web Conference) | A+ |
| ICSOC (International Conference on Service Oriented Computing) | B |
| ICWS (International Conference on Web Services) | A |
| WI (Web Intelligence) | B |
| EEE (IEEE e-technology, e-service and e-commerce conference) | B |
It would be more interesting if the list is even more limited to particular fields within the computer science. However I agee that this list can give a general notion of what one may expect from a conference that he/she wants to send a paper to.
Mashing-up with Google Translator
Have you ever though about your website or blog to be in multiple languages? Although the language that most people speak is English there might be people who would like to read your web in Russian or Chinese.
Google (as well as some others) provide language tools allowing to translate any text or a website in a particular language to a number of other languages. However, if you want to make your site directly multilingual using these tools, you want to put the translate links directly to your website and customize the translation parameters. This is not as straightforward as one would expect. Also, when you supply the URL to the Google translator you get the entirely browsable website in the other language, however, there is always this annoying banner on the top of each page: “this page was automatically translated from…”. If you want to see how this works for my website, just go to the bottom of this page and clink on one of the flag images.
<form action="http://www.google.com/translate_p"> <script language="javascript"> var u = location.href; var r = new.RegExp("u=(.*)", ""); if (r.test(location.href)) { r = r.exec(location.href); u = RegExp.$1; } document.write ("<input name='u' value="+u+" type='hidden'>") </script> <input name="hl" type="hidden" value="en"> <input name="ie" type="hidden" value="UTF8"> <input name="langpair" type="hidden" value=""> <!- language links from English to other languages -> <input id="flag" name="langpair" onclick="this.form.langpair.value=this.value" src="url/to/german/image/flag" title="German" type="image" value="en|de"> <!--- other language links go here ---> </form>
To place other language links just add other input elements with id “flag” and change src attribute for the image of the flag, title for the language name, and value in a form “en|lang” where lang is the language code (”de” for German, “it” for Italian, “es” for Spanish and so on).
The reason why you need to use the JavaScript code is that when you click the German language link and the page is translated, you get the new page URL as something like
http://66.249.91.104/translate_c?hl=en &langpair=en%7Cde&u=http://mywebsite.com/
When the page is loaded the script extracts the real URL of your page and creates a parameter with name “u” with the value of proper URL of your page. This is necessary for subsequent clicks on the language links so that the real URL of your page is passed to the Google translator.
The only problem remains with the translation itself. The Google translator translates everything which appears in the page. It would be very handy if the translation tool recognizes some special markup preserving the original text in the original language (such as names).
Hello World!
There are quite many things happening in my work life which I will share through this blog to anybody who is interested in Semantic Web, (Semantic) Web Services, Service-Oriented Computing, Web 2.0, etc. The stuff I will talk about will be about my and related research in these domains or latest developments, that is, things happening in projects where I work, conferences where I publish, travel and talk, papers that I read and so on. In addition, since I also have a strong interest in Linux and Java/Web programming (as a user/engineer) I will share experience and some of the tools that I build using these technologies.
As you might have noticed my blog is fully integrated with my web site. The blog itself is based on the WordPress publishing tool for which I have customized the theme to fit my web site’s look. I have created the web site using a tool which I am continuously building (when I have time). Its ultimate goal is to allow publishing, sharing and interlinking information about professional life of a person active in open communities (e.g. publications, presentations, traveling schedules, community activities, blogs, etc.) and provide means for integrated, and personalized web interface With the presence of the Semantic Web this idea is ready to be realized. I will share these ideas and their realizations through this blog too.
