Linux User Group of Mauritius Promoting open source software in our beautiful island

29Aug/150

Linux meetup and the talk about protocols

Posted by Ish

Since several weeks Logan announced this Linux meetup about Open Protocols & Standards. He got inspired after attending the IETF 93 meeting that happened in Prague this year. Upon coming back to Mauritius, he thought it’d would be cool to share the experience with other like-minded folks..

Thanks to Ashmita & Nirvan, he happened to get a room for the meetup at the University of Mauritius. Thus everything was finalized for Saturday 29 August 2015, that is today. It’s been a long time since we had a Linux meetup; I could list a series of reasons but they would all be unjustified :-/ Never mind, this one was happening, I could not have missed it.

I reached the University of Mauritius at 12h30, found a parking lot, picked up my bag and went in search for room 2.12 which should be in Phase II (the building how it’s called at the university).

Logan was right outside the room talking to three girls. I just greeted him without interrupting his business. We were around 8 attendees while some were on the way. Logan started his prez at 12h45. He states there is a “problem” that dates back 20 years but very few people have considered it. He then started talking about a slow Internet situation. He explains about Bufferbloat (lag) under a network load.

Linux meetup by LUGM

Logan mentioned that when the bandwidth crosses the bar of 5Mbit/s it becomes insignificant. The real sluggishness of the internet is then due to high latency. He cited scenarios where several users in a household would suffer if they use Skype, upload documents and watch YouTube simultaneously.

Linux meetup, Linux User Group of Mauritius

Loganaden Velvindron

Logan told us about his experiment on a TP-Link router while replacing the latter’s firmware by OpenWRT. He was able to apply tweaks that would remedy his latency issues when several users on his home network would use the internet. The discussion continued on the TCP/IP standard and Logan shared some knowledge he acquired during the IETF 93 meeting.

Around 14h30 we had a break and we went to the university cafeteria.

After the break, the discussion went more technical and Logan explained about the fq_codel implementation in OpenWRT. CoDel aims to defeat bufferbloat, which refers to an excessive buffering of packets. The latter leads to high latency and finally we see the sluggishness in network-related applications as mentioned the beginning.

Logan has shared his presentation slides for those who’d like to have a look.

That was a cool meetup after a long time :)

The post Linux meetup and the talk about protocols appeared first on HACKLOG.

29Aug/150

Linux Meetup (29/08/2015)

Posted by logan




A Linux Meetup after a long time !

We held our first meetup after a very very long time :) I wasn't expecting 71 people, but we got around 13 people who showed up. Quite a few couldn't make it at the last minute. The usual suspects showed up with the addition of Ashvin, who made it this time :) 2 employees of Mauritius Telecom were also present.

group

Bufferbloat explained

I demo'ed and explained the bad latency that Internet Users experienced on the DSLresport website. I explained how, once you cross 5MB/s, your bandwidth isn't that important anymore. Now, we need to talk about latency . When, I showed how by implementing CoDEL we could solve the latency problem, the 2 employees of Mauritius Telecom understood the issue at hand. Unfortunately, none of Emtel, Canal+ or Bharat Telecom engineers were around, sadly.

I hope that ISP guys get the message concerning the need for low latency in Mauritius for us to be able to benefit from a good service for services like VOIP, gaming, teleconference, and IMs.

With Open Source software and Linux, we were able to show how we can still achieve low latency while saturating both our uplink and downlink on a Mauritius Telecom MyT/30 Mbit/s connection. Quite a few people, in particular, Ajay Ramjatan & Shaan Nobee asked a lot of questions regarding fq_coDEL and the theory behind AQM.

I sincerely hope to see University Students pick up on research related to bufferbloat and how to fix it. I hope that Wifi will be fixed, as well as possibly adjusting coDEL for Mauritius.

There were a few questions regarding the IETF, and the applicability of standards. I explained how participation in standards is crucial for emerging countries like ours. In particular, I emphasize on the importance of sending Networking and Systems Engineers to conferences like the IETF, through the budget for training, rather than sending marketting guys, who would never be able to sell anything to a knowledgeable engineer. Too many IT companies think that investing in training is too expensive, and do not realise how they can grow their portolio of services for their customers.

Overall, It was a fun meetup. I hope that we, Linux users, can work together with ISPs to fix the latency issues that 99% of customers are currently experiencing right now.

URL for my presentation: my presentation
Dave Taht's talk on Bufferbloat At Stanford:
Dave Taht talk at Stanford

--Logan
C-x-C-c

Tagged as: No Comments
12Aug/150

Ebene In 2020

Posted by logan

A Newspaper in 2020 ...

PORT LOUIS, Jul 2 2020 (slashslash) - Workers from Bangladesh have helped Mauritius to achieve the Knowledge Hub success and world market share that the Indian Ocean island state boasts about. But many live and work in conditions described as akin to “modern slavery”, apart from facing discrimination, the denial of labour rights and even violence.

The 32 year old Mohamed Amin* left his wife and two children in low-income Bangladesh 23 months ago to look for greener pastures in the ICT/BPO industry in Mauritius

He paid 150,000 takkas (about 2,200 dollars) to an agent in his country for a job as a Software Engineer upon the promise of earning 20,000 Mauritian rupees (about 665 dollars) a month.

"That (the promised 665 dollars) is big money in Bangladesh and I was prepared to make any sacrifice for it,” Amin told slashslash who visited him at Ebene, in northern Mauritius, where he lives in a container provided by his employer, SmartCities Inc.

But, today, the Bangladeshi worker earns little more than a quarter of that amount. “I have been cheated,” he said.

He is frustrated as, in about a year’s time, he will have to leave the island. Amin is yet to save any money to take home. His meagre earnings allow him to cover his living expenses and to send a limited amount of money to his family every three months.

Poverty, unemployment and the high cost of living are the factors that force Amin and his compatriots to leave their country and look for jobs abroad.

“The employers do not care for them; they live like animals. How can humans sleep in such places?” he asked. “There is no government office where they can complain — even when their passports are seized from them.”

“Some employers are still treating their workers as mere objects that will keep on producing until the end of their contracts,” he told slashslash.

“A migrant worker should enjoy the same terms and conditions of employment and the same prescribed salary than those granted to the locals, besides a free return air ticket, food allowance, lodging and accommodation in Mauritius,” the minister explained, referring to government regulations.

Carlos Charette, chairperson of the OTAM, admitted to slashslash that some IT employers are to blame for the poor living conditions. However, he insisted that the dormitories are in a good condition when the expatriates first arrive.

“These are checked by the relevant health and fire services before the expatriates land there. We should understand that these people come from poor and dirty countries where hygiene does not exist. They put the dormitories in such a state that one cannot go inside because of the bad smell,” he told slashslash, without flinching.

-- A satirical fiction written, based on current "suggested" measures!

Filed under: humour No Comments
8Aug/150

Danger for IT workers in Mauritius

Posted by logan



It starts with an article in Defi-media

I woke up today and found this article: defi-media . After reading it, I was shocked to discover the suggestions put forward by OTAM and some of the people who were interviewed, including the founder of MSCC !

Claim #1 : "proposes that firms be permitted to recruit freely"

What does that mean ? Well, to hire a skilled foreigner in IT, a company has to pay him a minimum salary of Rs 30,000. Previously, it was Rs 40,000. Many foreign workers skilled in IT are getting better salaries: I heard people earning up to Rs 90,000. If employers are allowed to hire freely as OTAM suggests: here is what is going to happen: Mauritius is going to be flooded with IT workers who will work for Rs 6,000/month. . In other words, if we remove the Rs 30,000 minimum salary, local IT companies can hire workers for Rs 6,000/month, from Countries like Bangladesh. OTAM uses the analogy of the Manufacturing sector to justify this. Now, Mauritians work for Rs 6,000 in Textile factories. Is this what we want for our co-workers, friends, and future children who we are grooming for a prestigious career in IT in Mauritius ? What is also shocking is that the MSCC does not show that it disagreed with OTAM's claim #1. This leads me to question the motivations of MSCC.

Claim #2: "Quality of graduates"

Quote from MSCC: "The notion of having a graduate per household led to a drop in the level of education, which translates through a lack of skills. It is thus detrimental to operators, who must train young people, which costs time and resources".

I am not convinced by claim #2. The quality of graduates from Mauritius is not that different from Countries like India, which are doing quite well in the area of ICT. I am myself a product of the so-called "one graduate per family". Can MSCC or OTAM point out how my skills are not as good as software engineers from the US or Germany ? I've been approached by Fortune 500 companies in the US, and offered engineering jobs in some of the world's most prestigious IT companies.

I think that OTAM is using the fact that the quality of IT education in Mauritius needs improvment as a scapegoat excuse to justify hiring people from outside, and pay them Rs 6000/month. The real goal of OTAM is to eliminate the Rs 30,000 minimum salary that the government imposes on foreign workers who want to work in Mauritius. Again, I am deeply disappointed in the stance that MSCC took on this matter.

THe real issue is that many of the local IT companies do not invest in training of their workers. One software engineer in the US can cost 4000 to 5000 Euros. That's almost Rs 144,000 . If you want to hire a junior developer in France, you would need to pay at least 1500 Euros. That's Rs 60,000. Knowing those facts: we know that a starting developer gets around Rs 20,000 here. So on each junior developer, an outsourcing company is saving up to Rs 40,000 ! Yeah, Rs 40,000 ! So the companies are putting that money in their pockets, instead of trying to invest into improving the skills of their employees. Now, they want junior developers who will work for Rs 6,000/month. THIS IS OUTRAGEOUS !

Claim #3: "Disloyalty"

Filed under: employment No Comments
8Aug/150

I’am officially a Google security supplier !

Posted by logan


google

Security Services

Last night, I got the confirmation that I am officially recognized as a Supplier of Security Services for Google, the Internet Search Giant :)

google_supplier

What does this mean for Internet Security

I will be working more closely on Internet Security by focusing on key Open Source projects, and this effort will be sponsored by Google. Needless to say, I'm very excited ! I look forward to building a more secure Internet, that benefits not only Google, but also Mauritius, as we are also heavy consumers of products that are based on Open Source Software: Android, gmail and quite a few others.

Collaborative efforts

By working together, as a team, we can strengthen the foundation of Today's Internet, so that we avoid another Heartbleed. I look forward to not only work on code, but also with different people spread across the globe and who speak different languages. There's something beautiful in Open Source: Despite our divergent opinions, we are able to work together. I believe that our strength comes from our ability to readjust ourselves to an increasingly hostile Internet.

Google Security Supplier, am excited for this new adventure! :)


--Logan

Filed under: security No Comments
5Aug/150

LibreOffice 5 installation on openSUSE, Fedora, CentOS etc…

Posted by Ish

Twitter’s flooding with LibreOffice 5’s arrival. Oh! Flooding? Well, only if you’re following the *nix geeks :)

LibreOffice 5 was released today. Those who are used to only hear about the Microsoft Suite, well there exist other productivity suites out in the wild. LibreOffice is among them. It was forked from OpenOffice in 2010. Since then several Linux distributions bundled the LibreOffice Suite in their default install. LibreOffice is written in C++, Java and Python, and is available in 114 languages.

The LibreOffice 5 official package should be rolled out for the stable distros in the coming weeks, if not months. As for the curious who’d like to get hands dirty, just follow the article for a LibreOffice 5 installation. One thing, I’ve kept in the title openSUSE, Fedora and CentOS but the installation would cater for any RPM-based distribution. I haven’t tested the DEB archive but I guess it should be somewhat similar.

LibreOffice 5 installation

The tarball can be either downloaded by visiting the download page at libreoffice.org or from this mirror. Torrent links are available too. Once you have obtained the package LibreOffice_5.0.0_Linux_x86-64_rpm.tar.gz you uncompress it as follows:

tar zxvf LibreOffice_5.0.0_Linux_x86-64_rpm.tar.gz

The extracted files & folders include an installation script licensed under MPL v2. You may peek into if you’d want to know what it does.

Enter the directory that contains the install script and launch the installation as follows:

./install RPMS .

The second dot implies that it should be installed at the current path. Hit enter and the progress will be shown.

####################################################################
#     Installation of the found packages                           #
####################################################################

Path to the database:        /home/ish/Downloads/LibreOffice_5.0.0.5_Linux_x86-64_rpm/.RPM_OFFICE_DATABASE
Path to the packages:        RPMS
Path to the installation:    .

Installing the RPMs
Preparing...                          ################################# [100%]
Updating / installing...
   1:libreoffice5.0-ure-5.0.0.5-5     ################################# [  2%]
   2:libobasis5.0-core-5.0.0.5-5      ################################# [  4%]
   3:libobasis5.0-en-US-5.0.0.5-5     ################################# [  7%]
   4:libobasis5.0-writer-5.0.0.5-5    ################################# [  9%]
   5:libobasis5.0-base-5.0.0.5-5      ################################# [ 11%]
   6:libobasis5.0-impress-5.0.0.5-5   ################################# [ 13%]
   7:libobasis5.0-en-US-calc-5.0.0.5-5################################# [ 16%]
   8:libobasis5.0-en-US-writer-5.0.0.5################################# [ 18%]
   9:libobasis5.0-en-US-res-5.0.0.5-5 ################################# [ 20%]
  10:libobasis5.0-en-US-math-5.0.0.5-5################################# [ 22%]
  11:libobasis5.0-en-US-base-5.0.0.5-5################################# [ 24%]
  12:libobasis5.0-images-5.0.0.5-5    ################################# [ 27%]
  13:libreoffice5.0-5.0.0.5-5         ################################# [ 29%]
  14:libobasis5.0-math-5.0.0.5-5      ################################# [ 31%]
  15:libobasis5.0-draw-5.0.0.5-5      ################################# [ 33%]
  16:libobasis5.0-calc-5.0.0.5-5      ################################# [ 36%]
  17:libobasis5.0-pyuno-5.0.0.5-5     ################################# [ 38%]
  18:libobasis5.0-librelogo-5.0.0.5-5 ################################# [ 40%]
  19:libreoffice5.0-calc-5.0.0.5-5    ################################# [ 42%]
  20:libreoffice5.0-draw-5.0.0.5-5    ################################# [ 44%]
  21:libreoffice5.0-math-5.0.0.5-5    ################################# [ 47%]
  22:libreoffice5.0-dict-en-5.0.0.5-5 ################################# [ 49%]
  23:libreoffice5.0-impress-5.0.0.5-5 ################################# [ 51%]
  24:libreoffice5.0-base-5.0.0.5-5    ################################# [ 53%]
  25:libreoffice5.0-en-US-5.0.0.5-5   ################################# [ 56%]
  26:libreoffice5.0-dict-es-5.0.0.5-5 ################################# [ 58%]
  27:libreoffice5.0-dict-fr-5.0.0.5-5 ################################# [ 60%]
  28:libreoffice5.0-writer-5.0.0.5-5  ################################# [ 62%]
  29:libobasis5.0-ogltrans-5.0.0.5-5  ################################# [ 64%]
  30:libobasis5.0-postgresql-sdbc-5.0.################################# [ 67%]
  31:libobasis5.0-onlineupdate-5.0.0.5################################# [ 69%]
  32:libobasis5.0-ooofonts-5.0.0.5-5  ################################# [ 71%]
  33:libobasis5.0-filter-data-5.0.0.5-################################# [ 73%]
  34:libobasis5.0-kde-integration-5.0.################################# [ 76%]
  35:libobasis5.0-extension-javascript################################# [ 78%]
  36:libobasis5.0-xsltfilter-5.0.0.5-5################################# [ 80%]
  37:libobasis5.0-python-script-provid################################# [ 82%]
  38:libobasis5.0-ooolinguistic-5.0.0.################################# [ 84%]
  39:libobasis5.0-extension-report-bui################################# [ 87%]
  40:libobasis5.0-graphicfilter-5.0.0.################################# [ 89%]
  41:libobasis5.0-extension-mediawiki-################################# [ 91%]
  42:libobasis5.0-extension-beanshell-################################# [ 93%]
  43:libobasis5.0-extension-nlpsolver-################################# [ 96%]
  44:libobasis5.0-extension-pdf-import################################# [ 98%]
  45:libobasis5.0-gnome-integration-5.################################# [100%]

Installation done ...

If no errors occurred you should find a folder named opt created. This makes it easy if you want to move your LibreOffice 5 instance to the traditional /opt path. However, from the current path you can launch LibreOffice Writer as follows:

./opt/libreoffice5.0/program/swriter

LibreOffice 5 installation

You will get LibreOffice Writer, Calc, Base, Draw, Math and Impress with the following commands:

./opt/libreoffice5.0/program/swriter
./opt/libreoffice5.0/program/scalc
./opt/libreoffice5.0/program/sbase
./opt/libreoffice5.0/program/sdraw
./opt/libreoffice5.0/program/smath
./opt/libreoffice5.0/program/simpress

Otherwise, just shoot ./opt/libreoffice5.0/program/soffice and you get the LibreOffice 5 welcome screen with shortcuts to each application.

LibreOffice 5 installation


To have a clean setup, you could move the libreoffice5.0 folder to /opt and have some sweet symlinks. Let’s do it; stay on the current path and shoot:

sudo mv opt/libreoffice5.0 /opt
ln -s /opt/libreoffice5.0/program/swriter /usr/local/bin/writer

You could do for the rest, right? Now, press Alt + F2, type writer and hit the return button. LibreOffice Writer shoots up!

To my fellow non-Linux friendly folks, the free software community makes LibreOffice available for Windows and Mac OS X as well and installation is painless :)

The post LibreOffice 5 installation on openSUSE, Fedora, CentOS etc… appeared first on HACKLOG.

Tagged as: No Comments
26Jul/150

IETF 93 Day 5

Posted by logan

The last day

The last day at the IETF was rather calm. A guy from Europe (Rob) won the Jon Postel award, which is an award given to people who have made significant contribution to the Internet. rob

Following Edward Snowden's appearance during the IETF 93, I met Daniel Kahn Gillmor, who works at ACLU. ACLU is The American Civil Liberties Union (ACLU): a nonpartisan, non-profit organization[5][6] whose stated mission is "to defend and preserve the individual rights and liberties guaranteed to every person in this country by the Constitution and laws of the United States

It's interesting seeing Americans taking the NSA to court :) I wish that we could do the same here for some Governmental organizations that do not work in the public interest of Mauritians :-)

Friday was rather calm, compared to previous days :) IETF was a great experience for me. Meeting people, and interacting with them face-to-face definitely helps in helping to move the Internet forward !

--Logan

Filed under: ietf No Comments
24Jul/150

Installing Visual Studio Code on Linux (Ubuntu)

Posted by Jochen Kirstaetter

During this year's //build conference Microsoft officially announced a new member of the Visual Studio series called Code. As described by several people already it is a HTML5, JavaScript/TypeScript based text editor hosted inside the Electron shell and it runs natively on Windows, Mac OS X and Linux. This article gives you some ideas and assistance to get a better experience out of the package compared to the standard one - at least at the time of writing this article.

Getting Visual Studio Code

I started using Visual Studio Code since the first released version 0.1.0, and being part of the Insider Preview program for VS Code I managed to download and get the latest version always using this short-listed link:

http://aka.ms/vscode

Which is an alias for this web address: https://code.visualstudio.com/

Get the latest version of Visual Studio Code from the web site
Get the latest version of Visual Studio Code from the web site

Microsoft's web site of Code detects your operating system and directly offers you the best download option based on your current browser. I'm currently running Xubuntu 15.04 x64 - Vivid Vervet and the site offers me a direct link to get the latest 64-bit version of Visual Studio Code. In case that you'd like to download a different version please scroll down to the bottom of the site and check the additional options.

Note: Originally, I started using Code 0.1.0 on Xubuntu 14.10 and then upgraded my machine around mid of May. Also, on a different machine running Ubuntu 14.04 LTS I can confirm to use of Visual Studio Code successfully.

Unzip the archive

After you downloaded the latest ZIP archive for your architecture, here: VSCode-linux-x64.zip, you should decide where to extract the content of the compressed file. Well, in my case, I'd like to have third party products below the appropriate location, and therefore I usually choose /opt. Eventually you might ask yourself why? Well, here's a decent chapter about the Linux Filesystem Hierarchy written by The Linux Documentation Project (TLDP):

1.13 /opt

This directory is reserved for all the software and add-on packages that are not part of the default installation. For example, StarOffice, Kylix, Netscape Communicator and WordPerfect packages are normally found here. To comply with the FSSTND, all third party applications should be installed in this directory. Any package to be installed here must locate its static files (ie. extra fonts, clipart, database files) must locate its static files in a separate /opt/'package' or /opt/'provider' directory tree (similar to the way in which Windows will install new software to its own directory tree C:WindowsProgam Files"Program Name"), where 'package' is a name that describes the software package and 'provider' is the provider's LANANA registered name.

Looks good to me, or?

Anyway, let's just use this as base - given that you're root on the machine - it's surely a good choice, otherwise feel free to unzip the archive in your personal user space below your home directory. Next, let's extract the content as suggested using the console (or terminal in case that you'd prefer this term):

$ cd /opt
/opt$ sudo unzip ~/Downloads/VSCode-linux-x64.zip

This is going to create a new directory VSCode-linux-x64 which contains the static binary to run Visual Studio Code on your system. Right now, you would be able to launch the text editor by executing the following command:

/opt$ ./VSCode-linux-x64/Code

Despite some warnings and errors on the console output, similar to those:

[3437:0724/220852:ERROR:browser_main_loop.cc(173)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

Visual Studio Code is up and running...

Welcome screen of Visual Studio Code on first start of the text editor
Welcome screen of Visual Studio Code on first start of the text editor

Adding a little bit more comfort

Hopefully, you were able to launch Visual Studio Code based on the description given above. Now, let's add a little bit more comfort to your user experience. Unfortunately, there is no out-of-the-box installation package for the usual distributions - at least not yet, and we are obliged to do some manual steps. Following, I'm going to give you my steps with some brief explanations about the why and how. Of course, there are always multiple choices and you might either skip one or the other step or even have better suggestions. Please use the comment section at the bottom to give me your tips & tricks. Thanks!

Version-(in)dependent folder and symbolic link

Not sure about you but given the manual installation steps I would like to have a better control each time I consider to install a newer version of Code. Also, this helps to keep some adjustments on constant path information like Application launcher and shortcuts to run Visual Studio Code. Okay, let's dig into that and first rename (move) the base directory of Code to a version-specific one:

/opt $ sudo mv VSCode-linux-x64 VSCode-0.5.0

Again, as of writing this article 0.5.0 was the latest available version. Meanwhile, the are good chances that you might have a higher version already - good! Next, I usually create a symbolic soft link back to the newly renamed folder in order to stay version-independent. Sounds confusing, right? Hold on, I'll explain it in a short, and you will see the benefits, too.

/opt$ sudo ln -s VSCode-0.5.0 VSCode

Your current /opt folder look similar to this right now:

Extract the Visual Studio Code zip archive below /opt directory and create a version-independent symlink
Extract the Visual Studio Code zip archive below /opt directory and create a version-independent symlink

As you can see on the screenshot I've been using Code since the very beginning, and using this approach I am actually able to keep all versions installed side-by-side to each other. The only interesting part is the version-independent symlink in the /opt directory. This allows me to launch Visual Studio Code by executing the following line from anywhere:

/opt/VSCode/Code

Like using the Application Finder on Xubuntu while pressing Alt+F2:

Launch Visual Studio Code from the Application Finder with fully qualified path to executable
Launch Visual Studio Code from the Application Finder with fully qualified path to executable

The current situation gives us a good head start for further activities.

The power of PATH

Now that we have a "fixed" location for Visual Studio Code, it would be more comfortable to avoid to specify the full path information each time that we would like to launch the text editor. Also, looking to some of the cool command line options of Code on other platforms, it would be nice to have them as well on Linux. Okay, then let's do it using the PATH environment variable. The Linux Information Project has a good definition online:

PATH Definition

PATH is an environmental variable in Linux and other Unix-like operating systems that tells the shell which directories to search for executable files (i.e., ready-to-run programs) in response to commands issued by a user. It increases both the convenience and the safety of such operating systems and is widely considered to be the single most important environmental variable.

That sounds exactly like what we are looking for. And in compliance with other operating systems, we are going to create another symlink for our purpose, like this:

~$ sudo ln -s /opt/VSCode/Code /usr/local/bin/code

Changing the letter casing of the executable from proper writing - Code - to lower case writing - code - isn't a typo actually.

Commonly, UNIX and Linux commands are written in lower-case writing anyway, so why should we break with this tradition? Of course, you will be able to launch the text editor now with this new path, too. Either on the console / terminal, like so

~$ code

or using the Application Finder - the choice is yours.

Launch Visual Studio Code from the Application Finder
Launch Visual Studio Code from the Application Finder

Thanks to the PATH environment variable we can now completely omit the path information. Linux knows where to find our executable now.

Application launcher in Main Menu

Being able to start Visual Studio Code anywhere from the console has already given us some comfort but compared to Windows and Mac OS X users we are still living in the digital stone age, and no application is fully installed on your Linux OS without an application launcher in your main menu. In Xubuntu you would open Application Menu (or press Alt+F1) - Settings - Main Menu in order to add a new launcher to the menu. In the menu editor select the Development section or any other where you would like to place the launcher and click on New Item to define the Launcher Properties. Eventually, you might like to enter the following on your machine:

Add a new item to the main menu for Visual Studio Code
Add a new item to the main menu for Visual Studio Code

Unfortunately, this leaves us with an empty icon for now. Quickly open a new terminal and switch to an existing one and let's see which graphics are provided by Microsoft, like so:

~$ find /opt/VSCode/* -type f -iname '*.png'
/opt/VSCode/resources/app/vso.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-up.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-left.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-right.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-right-dark.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-left-dark.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-down-dark.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-down.png
/opt/VSCode/resources/app/client/vs/base/ui/scrollbar/impl/arrow-up-dark.png
/opt/VSCode/resources/app/client/vs/editor/diff/diagonal-fill.png
/opt/VSCode/resources/app/client/vs/editor/css/arrow-left.png
/opt/VSCode/resources/app/client/vs/editor/css/arrow-right.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Resources/Images.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Images/FileIdentifier.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Images/icon2.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Images/icon3.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Images/icon1.png
/opt/VSCode/resources/app/client/vs/workbench/contrib/daytona/TestPlugin/Images/console-icons.png
/opt/VSCode/resources/app/client/vs/workbench/ui/parts/editor/media/letterpress.png
/opt/VSCode/resources/app/client/vs/workbench/ui/parts/editor/media/letterpress-dark@2x.png
/opt/VSCode/resources/app/client/vs/workbench/ui/parts/editor/media/letterpress-dark.png
/opt/VSCode/resources/app/client/vs/workbench/ui/parts/editor/media/letterpress@2x.png
/opt/VSCode/resources/app/node_modules/emmet/Icon.png

Alternatively, you might also have a look at the SVG graphics provided by Visual Studio Code.

I chose the vso.png and to simplify my life in regards of future upgrades and unexpected changes, I placed a copy of the graphic file into the usual location on a Linux system:

~$ sudo cp /opt/VSCode/resources/app/vso.png /usr/share/icons/

Hint: Use the Move option in the window menu to relocate the dialog using the arrow keys, and then confirm your selection with a click on the OK button of the dialog.

Your Main Menu editor might look like this now:

Visual Studio Code as proper entry in the main menu of Xubuntu
Visual Studio Code as proper entry in the main menu of Xubuntu

Congratulations, your new application launcher has been added to the menu and you can either navigate into the Development section (or the one you chose) or type your choice into the application quick filter textbox to find and execute Visual Studio Code.

Navigate the application menu to launch Visual Studio Code
Navigate the application menu to launch Visual Studio Code

Use the quick filter entry of the application menu to launch Visual Studio Code
Use the quick filter entry of the application menu to launch Visual Studio Code

Creating a Desktop Entry file

As we are working with Linux there are always multiple ways to achieve the same or similar result. And eventually you might prefer the possibility to create and use a file-based application launcher which adds itself to the menu structure automatically. Creating a .desktop file is not too challenging and requires a simple text editor - like Visual Studio Code ;-) - to write the following definition into it:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Visual Studio Code
GenericName=Integrated Development Environment
Comment=Code Editing. Redefined. Build and debug modern web and cloud applications.
Exec=code
TryExec=code
Icon=vso
StartupNotify=true
Terminal=false
Type=Application
MimeType=text/x-csharp;application/x-mds;application/x-mdp;application/x-cmbx;application/x-prjx;application/x-csproj;application/x-vbproj;application/x-sln;application/x-aspx;text/xml;application/xhtml+xml;text/html;text/plain;
Categories=GNOME;GTK;Development;IDE;

Save it as vscode.desktop and then put this file into the appropriate location for a Linux system:

~$ sudo cp vscode.desktop /usr/share/applications/vscode.desktop

Thanks to the proper location of the shared icon and the symlinks we created earlier, we do not have to specify any absolute paths in our Desktop Entry file. As soon as the file has been copied below the shared applications folder it automatically appears in your main menu and is ready to be used.

For your extra comfort you might like to download the vscode.desktop file. You will have to rename the file and place it accordingly on your system.

Make it a launcher to Cairo Dock

As for the different options of Ubuntu I have to admit that I'm a long-year user of the Xfce environment, called Xubuntu, and on top I also like using a flexible dock panel (or two or three). Cairo dock is a fantastic package in case that you would like to have a little bit of Mac OS X flavour on your Linux desktop, and adding a launcher for Visual Studio Code is very simply to do.

Add Visual Studio Code to a dock panel like cairo dock or similar
Add Visual Studio Code to a dock panel like cairo dock or similar

First, run Visual Studio Code using one of the previously described methods. Next, after the application runs and an icon of code appears in the dock panel right-click the icon, then select the sub-menu entry "Make it a launcher" from the "code" context menu entry and you're done. Close the text editor and the launcher will still remain in the dock panel.

Resume on installing Visual Studio Code

Without any question it is fantastic to have an identical text editor for all three major operating system. But Linux users are currently confronted with some lack of comfort compared to their Windows and Mac OS X friends. Although there are several and in my opinion easy ways to increase the user experience in using Visual Studio Code under Linux I'm a bit concerned whether Microsoft is keeping it on par to the other systems. Right now, installation takes some manual steps, there are essential parts missing in order to provide an excellent first contact and other editor features like automatic updates aren't yet available for the Linux variation compared to Windows and Mac OS X.

Bearing in mind that the product has been launched back in April/May this year only and we are currently on version 0.5.0, I am very interested in the future development. The documentation online has some neat features for you, and the team at Microsoft has an open ear to the feedback and wishes given on their UserVoice website, too.

That's all for the installation part of Visual Studio Code. Please leave your comments as well as tips & tricks for me.

Happy coding!

Tagged as: No Comments
23Jul/150

IETF 93 Day 4

Posted by logan


Taking out my Axe !

I went to the SDN working group in the morning. After that, I moved to the TLS working group. I met Daniel J Bernstein. I thanked him for the liberal version of ED25519 that he made available on the Internet. We were able to integrate it in OpenSSH.


djb

While heading out for beer & food, I met Benno (who was recently promoted to managing director) from NLnetlabs, and we talked about NSD, Unbound & OpenDNSSEC :)

benno

Hacking OpenSSL

Rich and I started hacking OpenSSL a bit to make it a bit more secure. In particular, following the recent DH problems, we performed a security audit for those issues. We bounced patches back and forth, and Rich committed them to the OpenSSL repository :)

Later on, we went out for beer and food with the RedHat folks, and the discussions were very lively in the small indian restaurant.

rsalz

Fun day :)
--Logan

Filed under: ietf No Comments
22Jul/150

IETF 93 Day 3

Posted by logan


IETF Day 3


Bob Hinden is known as one of the designers of the IPv6 protocol. As the chair of the IPv6 working group, he overseas much of the current design work. I asked Bob if he could sign my IETF-card, and he did ! Bob was very happy to sign it :)
jamal


Next I met Jamal again. Jamal is one of the developers of the Linux kernel, and he's a very funny guy. We talked about the areas that we can improve in Linux. A very interesting discussion, and hopefully, we'll see more work there :) jamal

The next person that I met is Paul Wouters, who works at RedHat. We talked about OpenDNSSEC, and the database issues. I definitely think that we'll see more Open Source stuff there, as I believe that we have some good patches that would be useful to other DNSSEC users out there :)



Last but not least, I delivered a track on IPv6 Security fixing on Open Source Operating Systems, such as CentOS and FreeBSD. I was invited by Fernando Gont, a well-known IPv6 Security expert in the IETF. The discussions, and set of questions were very good. Code is in the pipeline too :) Very rewarding day !

--Logan

Filed under: ietf No Comments