Debian Linux

Last update: December 25, 2021

En 2012 j’ai installé avec succès la distribution Debian Linux sur un ancien notebook Sony Vaio, avec clavier AZERTY, 1 MB RAM et processeur Centrino Duo. Dans le cadre d’un projet j’étais amené à compiler une librairie Java complexe sur base d’un fichier Rakefile. Comme la compilation échouait sous Windows XP, Vista et 7, je cherchais d’autres solutions pour progresser. Comme le créateur du fichier Rakefile effectuait ses développement sous Linux, je privilégiais la piste d’installation d’un nouveau système de développement Linux sur un ordinateur séparé comme première solution.

Linux

Linux est le nom couramment donné à tout système d’exploitation libre fonctionnant avec le noyau Linux. Le noyau Linux a été créé en 1991 par Linus Torvalds pour les compatibles PC construits sur l’architecture processeur x86. Depuis, il a été porté sur de nombreuses architectures et il est utilisé dans une très large gamme d’ordinateurs, de serveurs et de systèmes embarqués. Ses caractéristiques principales sont d’être multitâche et multi-utilisateur. Linux bénéficie d’une communauté de milliers de programmeurs qualifiés qui font évoluer le noyau et les paquets.

Commandes Linux

Linux dispose de centaines, voire de milliers de commandes. Une vue d’ensemble des commandes Linux les plus importantes a été publiée en 2021 par PC & Network Downloads (PCWDLD).

Linux Commands Cheat Sheet (PCWLDL)

PCWLDL publie des tutoriels et revues et fournit des conseils dans le domaine des technologies d’information, en particulier en relation avec des applications Linux/Ubuntu/Centos/Unix/Cisco etc.

Distributions Linux

Il existe plusieurs distributions Linux différentes, par exemple :

Debian Linux

Comme la distribution Debian est à l’origine de différentes autres distributions et considérée comme très stable, j’ai choisi cette variante de Linux pour la création du système de développement. Il y avait trois versions Debian à l’époque : stable = Squeeze, testing = Wheezy, development = Sid disponibles pour 12 architectures. La version Wheezy disponible il y a un an était 7.2, publiée le 12 octobre 2013. En 2015, la  version stable est Jessie.

J’avais téléchargé les images ISO officielles pour DVD pour l’architecture i386. Il s’agit des fichiers suivants :

  • debian-7.2.0-i386-DVD-1.iso
  • debian-7.2.0-i386-DVD-2.iso
  • debian-7.2.0-i386-DVD-3.iso
  • debian-update-7.2.0-i386-DVD-1.iso

Les fichiers ont été gravés sur DVD avec le programme Free ISO Burner. J’ai démarré le notebook Sony Vaio avec la première DVD installé dans le lecteur et suivi les instructions sur l’écran. Les fichiers iwlwifi-3945-1.ucode et iwlwifi-3945-2.ucode ont été demandés lors de l’installation. J’ai cherché ces deux fichiers sur Internet et chargé sur un stick USB. Les autres DVD ont été scannés par le système et l’insertion de l’une ou l’autre DVD dans le lecteur a été demandé en fonction de l’installation des différents paquets. J’ai du répéter l’installation plusieurs fois à cause d’erreurs de manipulation (try and error). Finalement le système était opérationnel et le desktop se présentait comme suit :

Debian Linux Desktop

Debian Linux Desktop

Je viens de faire début novembre 2014 la mise à jour de Wheezy sur la version 7.7 édité le 18 octobre 2014. Une mise à jour de maintenance a été effectuée le 4 avril 2015.

Signalisation de la disponibiltié d'un update

Signalisation de la disponibilité d’un update

Software Update

Software Update

Display Manager

Debian Linux supporte trois gestionnaires d’affichage principaux :

Lors du login, je peux choisir les gestionnaires suivants :

  • GNOME (= default)
  • GNOME Classic
  • KDE Plasma Workspace

Je préfère le gestionnaire GNOME pour l’affichage.

Permissions et Sécurité

Dans Linux tout fichier se voit attribuer des droits pour 3 identités :

  • le propriétaire – l’utilisateur qui a créé le fichier ou l’utilisateur que root a désigné comme propriétaire
  • le groupe (qui n’est pas forcément le groupe du propriétaire)
  • les autres (ceux qui ne font pas partie du groupe)

Pour chaque identité il existe 3 droits d’accès :

  • r – read (le droit de lecture)
  • w – write (le droit d’écriture)
  • x – execute (le droit d’exécution)

La commande ls -l nous permet d’afficher les droits d’un fichier. La commande chmod (CHangeMODe) permet de définir et de changer les droits d’accès d’un fichier ou d’un ensemble de fichiers. L’option -R permet de traiter les répertoires de façon récursive.

Lors de l’installation de Linux, on met en place au moins deux comptes :

  • Le compte root dont le nom est «root» et à qui on attribue un mot de passe. C’est le Superutilisateur ou l’administrateur du système.
  • Un compte utilisateur auquel on peut attribuer n’importe quel nom («mbarnig» par exemple).

La commande whoami affiche le nom du compte. En mode utilisateur, le terminal affiche l’invité de commande

mbarnig@debian:~$

A condition de connaître le mot de passe de «root», un utilisateur peut devenir super-utilisateur et tout faire sur le système, en entrant la commande su, validée par “Enter”. Le mot de passe est demandé, et après la saisie correcte, le terminal affiche l’invité de commande

root@debian:/home/mbarnig#

La commande sudo (Substitute User Do) est similaire, mais les droits sont plus limités. On n’a pas besoin d’entrer le mot de passe «root». En outre, la validité du rôle «root» est limité dans le temps, il y a une expiration automatique après 15 minutes.

gksu

commande gksu

Pour utiliser des applications graphiques en mode «root», on a recours aux commandes gksu et gksudo. Une autre manière de devenir superutilisateur est d’ouvrir le terminal «root». Pour quitter le mode «root», on entre la commande exit. Pour suspendre le système, on utilise le menu Suspend. Pour arrêter le système, on presse simultanément Ctrl-Alt-Del, afin d’afficher la fenêtre Power-Off.

Structure des fichiers

Linux voit ses disques comme une unique arborescence. Une partition contient la racine du système de fichier, qu’on note /. D’autres partitions (CD-ROM, memory stick, …) peuvent être montées dans des répertoires. La structure standard des répertoires est décrite par le FHS (Filesystem Hierarchy Standard).

Les répertoires racine sur mon système Debian sont :

  • bin – contient les commandes de base nécessaires au démarrage et à l’utilisation d’un système minimaliste
  • boot – contient les informations nécessaires au démarrage de la machine
  • dev – contient les fichiers spéciaux correspondant aux périphériques
  • etc – contient la plupart des fichiers de configuration
  • home – contient les répertoires personnels des utilisateurs. L’utilisateur mbarnig a pour répertoire /home/mbarnig (alias Home)
  • lib – contient les principales bibliothèques partagées
  • lost+found – contient les fragments de fichiers perdus après la réparation d’un disque endommagé
  • media – point de montage pour les médias amovibles
  • mnt – point de montage pour les systèmes de fichiers temporaires
  • opt – contient les logiciels commerciaux
  • proc – contient des fichiers avec des infos sur l’état du système et des processus en cours d’exécution
  • root – contient le répertoire de l’administrateur système
  • run – répertoire non standard pour centraliser les fichiers résidant en mémoire
  • sbin – contient les commandes de base nécessaires à l’administration système
  • selinux – Linux security module (LSM) qui permet de définir une politique de contrôle d’accès
  • srv – contient des données pour les services hébergés sur le système
  • sys – contient des données relatives au nouveau système de fichiers virtuels
  • tmp – contient les fichiers temporaires
  • usr – (UNIX System Resources) : contient des répertoires semblables à ceux présents à la racine mais qui ne sont pas nécessaires au fonctionnement minimal du système
  • var – contient des données fréquemment réécrites

Pour naviguer à la racine on utilise la commande

cd /

Pour chercher un fichier, on utilise les commandes

root path    : find / -name "filename"
current path : find . -name "filename"

On peut utiliser le joker (l’étoile *) avec des noms de fichier incomplets.

L’occupation du disque est indiquée avec le Disk Usage Analyzer.

Linux Disk Usage Analyzer

Path

Les commandes qu’on écrit au clavier dans le shell sont cherchées dans l’ordre des répertoires contenus dans la variable PATH. Son contenu est une chaîne qui contient les chemins des répertoires séparés par deux-points (:). Pour afficher le contenu de la variable PATH, on utilise la commande

echo $PATH

Sur mon système le contenu se présente comme suit, avec les options de formatage


mbarnig@debian:~$ echo $PATH | tr : \\n
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

Il a plusieurs scripts d’initialisation qui définissent les variables d’environnement, comme le PATH. Les plus usuels sont :

  • /etc/bash.bashrc  : script valable pour tous les utilisateurs, exécuté par une shell interactive lancée dans une session existante
  • /etc/profile  : script valable pour tous les utilisateurs, exécuté par une shell login qui demande UserID/Password, par exemple pour accéder au Desktop Debian lors du démarrage du système
  • ~/.bashrc  : script valable pour l’utilisateur identifié, exécuté par une shell interactive
  • ~/.profile  :script valable pour l’utilisateur identifié, exécuté par une shell login

Le caractère tilde ( ~ ) est utilisé pour spécifier le répertoire home d’un usager, comme par exemple /home/mbarnig. L’interprète de commande effectue la substitution

~/hello.txt  >> /home/mbarnig/hello.txt
~/hi.txt >> /home/hi.txt

Les scripts /etc/bash.bashrc, ~/.bashrc, etc/profile et ~/.profile sont des fichiers cachés qui ne sont visibles qu’avec l’option “show hidden files” dans le menu de l’explorateur de fichiers. La modification d’un fichier dans le répertoire /etc/ n’est possible qu’en “root”, par exemple avec la commande

gksu nautilus /etc/profile

Une shell login recherche les scripts ~/.bash_profile, ~/.bash_login et ~/.profile dans cet ordre. Par défaut, les deux premiers fichiers (~/.bash_profile et ~/.bash_login) ne sont pas présents sur Debian.

Une shell non-interactive est activée par un programme et n’exécute aucun des scripts énumérés ci-avant. Les usagers qui souhaitent utiliser la même configuration pour les shells logon et non-login peuvent charger (source) le script ~/.bashrc dans le script ~/.profile, respectivement le script /etc/bash.bashrc dans le script /etc/profile.

J’ai opté pour inclure tous les variables d’environnement (PATH, …) dans le script ~/bashrc. Ce script est lu le premier si on ouvre le terminal standard en tant que usager, c.à.d. si on n’est pas “root”.

Environnement de développement

J’ai installé les paquets ruby, rake, java, gcc et g++ avec les commandes suivantes dans le terminal de commande root :

root@debian:/home/mbarnig# apt-get install ruby1.9.1
root@debian:/home/mbarnig# apt-get install rake
root@debian:/home/mbarnig# apt-get install default-jdk
root@debian:/home/mbarnig# apt-get install gcc
root@debian:/home/mbarnig# apt-get install g++
root@debian:/home/mbarnig# apt-get install subversion
root@debian:/home/mbarnig# apt-get install scons
root@debian:/home/mbarnig# apt-get install libfltk1.3

En outre les paquets suivants ont été installés de la même manière : autoconf, automake, xorg-dev, freeglut3-dev. Pour tester l’environnement de développement, des programmes Hello World ont été compilés dans différentes langues de programmation.

Java

Le code suivant a été écrit avec l’éditeur gedit et enregistré comme fichier HelloWorld.java dans le répertoire Home/Java.

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}

Avec la commande

mbarnig@debian:~$ javac HelloWorld.java

dans l’application Terminal, le programme a été compilé en HelloWorld.class. Le programme est exécuté ensuite avec

mbarnig@debian:~$ java HelloWorld

La compilation de la librairie Java avec le fichier Rakefile a été également exécutée correctement, en invoquant la commande rake dans le répertoire en question.

C++


Le code suivant a été écrit avec l’éditeur gedit et enregistré comme fichier helloworld.cpp dans le répertoire Home/C++.

#include <iostream>
using namespace std;
int main()
{
cout << "hello world\n";
return 0;
}

Avec la commande

mbarnig@debian:~$ g++ helloworld.cpp -o helloworld

dans l’application Terminal, le programme a été compilé en exécutable helloworld. Le programme est exécuté ensuite avec

mbarnig@debian:~$ ./helloworld

Gestion des paquets

Un paquet est un logiciel ou une partie d’un logiciel, qui a été préparé dans un format spécial, afin de faciliter sa recherche, la consultation d’informations à son sujet, ainsi que son installation et sa désinstallation. Ce paquet prend la forme d’un fichier avec un nom particulier : nom-du-logiciel_numéro-de-version_nom-de-l’architecture.deb. Un fichier paquet contient les binaires du programme ainsi qu’un certain nombre d’en-têtes. Le système de gestion des paquets de Debian est très performant et très facile à utiliser. Grâce à lui, les logiciels s’installent, se retirent et peuvent être mis à jour très facilement.

La commande de base pour manipuler des paquets Debian est dpkg. Elle ne peut toutefois pas télécharger des fichiers ou gérer des dépendances. Pour installer un paquet .deb disponible on utilise la commande

dpkg --install nom_paquet.deb

Lors de l’installation les différentes étapes et les erreurs éventuelles sont affichées. L’installation peur s’effectuer en deux temps comme suit

dpkg --unpack nom_paquet.deb
dpkg --configure nom_paquet.deb

On peut obtenir des informations sur les paquets avec les options suivantes :

  • dpkg –listfiles nom_paquet  (sans .deb) : liste des fichiers installés par un paquet
  • dpgk –search file : paquet d’où provient ce fichier
  • dpkg –status nom_paquet.deb : entêtes d’un paquet installé
  • dpkg –list : liste des paquets connus du système
  • dpkg –contents nom_paquet.deb : liste des fichiers contenus dans un paquet non-installé
  • dpkg –info nom_paquet.deb : entêtes d’un paquet non-installé
  • dpkg –remove nom_paquet.deb : suppression d’un paquet installé, sans les dépendances et fichiers de configuration
  • dpkg –purge nom_paquet.deb : suppression d’un paquet installé, avec les dépendances et fichiers de configuration

La commande dpkg tient un journal verbeux de toutes ses actions dans /var/log/dpkg.log.

À un niveau plus élevé, on trouve les commandes apt et apt-get (advanced package tool) tout comme un outil plus récent aptitude qui peut être utilisé en mode console où en mode graphique. aptitude est la commande recommandée pour gérer les paquets. On peut toutefois mélanger les commandes aptitude det apt-get. Une autre interface graphique est Synaptic.

Synaptic

Synaptic Package Manager

Une ancienne interface qui n’est plus recommandée est DSelect.

apt a besoin qu’on lui fournisse une liste de sources de paquets : c’est le fichier /etc/apt/sources.list qui décrira les différents emplacements (ou sources) publiant des paquets Debian. La liste des sites web miroirs qui distribuent les paquets Debian est disponible sur le site web de l’organisation Debian. Les archives Debian au Luxembourg sont hébergées sur les sites web debian.mirror.root.lu/ (root S.A.) et debian.mirror.lhisp.com/ (lhisp Luxembourg Hosting)

Un générateur en-ligne d’une liste source Debian est disponible sur le site web debgen.simplylinux.ch. Mon fichier /etc/apt/sources.list se présente comme suit :

deb http://ftp.de.debian.org/debian stable main 
contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main 
contrib non-free
deb http://security.debian.org/ wheezy/updates main 
contrib non-free

Création d’un paquet .deb

Un paquet Debian n’est pas seulement une archive de fichiers destinés à l’installation, mais il contient également des méta-informations pour gérer les dépendances, les conflits, les suggestions, l’installation et la suppression des fichiers. Le fichier-méta le plus important est control. Un exemple simple pour intégrer le programme helloworld dans un paquet .deb est présenté ci-après :

Package: helloworld
Version: 1.0
Installed-Size: 1024
Maintainer: Marco Barnig - mbarnig@pt.lu
Architecture: i386
Section: custom
Priority: optional
Essential: no
Filename: helloworld.deb
Depends: bash
Description: affiche le texte "hello world" sur l'écran

Les paquets plus complexes utilisent en outre les paramètres suivants :

Recommends: dépendances facultatives (liste des paquets 
dont l'installation est recommandée pour que le système 
fonctionne correctement)
Suggests: autres dépendances facultatives 
Conflicts: liste des paquets qui peuvent entrer en conflit 
avec le paquet 
à installer 
Tag: clés de recherche 
Size: taille du paquet 
MD5sum: empreinte digitale du paquet (sécurité)

En plus du fichier control, le paquet Debian peut contenir un certain nombre de fichiers et de scripts appelés par dpkg à différentes étapes du traitement du paquet. Il s’agit des fichiers suivants :

preinst - ce script est exécuté préalablement l'installation 
du paquet
postinst - ce script est exécuté après l'installation 
du paquet
md5sums - liste des empreintes numériques de tous les 
fichiers du paquet
conffiles - liste des fichiers de configuration

Pour assembler le paquet, un répertoire mon_paquet est créé avec le contenu suivant :

/DEBIAN/control
/usr/bin/helloworld

Ensuite on peut générer le paquet avec la commande dpkg-deb :

dpkg-deb --build mon_paquet

On peut répertorier le nouveau paquet dans le répertoire Home avec la commande

find -name mon_paquet.deb

et l’installer avec la commande

dpkg -i mon_paquet.deb

Mise à jour

Le système de paquets utilise sa propre base de données pour garder une trace des paquets qui sont installés, de ceux qui ne sont pas installés et de ceux qui peuvent être installés. Le programme apt-get utilise cette base de données pour retrouver comment installer les paquets demandés par l’utilisateur ainsi que pour retrouver les paquets supplémentaires nécessaires afin qu’un paquet sélectionné fonctionne correctement. Pour mettre à jour cette liste, on utilise la commande

apt-get update

Cette commande vérifie la liste des paquets trouvés dans les archives dans /etc/apt/sources.list. La mise à niveau de paquets est effectuée avec la commande

apt-get upgrade

L’option -u oblige apt à afficher la liste complète des paquets qui seront mis à niveau.
Pour faire la mise à jour vers une nouvelle distribution, on utilise la commande

apt-get dist-upgrade

(distribution-upgrade). Cette commande est aussi utilisée pour faire la mise à niveau dans les dépendances des paquets installés. Les commandes

apt-get clean
apt-get autoclean

sont utilisées pour supprimer des paquets non-utilisés. Pour afficher la version installé d’une distribution Debian, on utilise la commande

cat /etc/debian_version

ou

lsb_release -a

De Wheezy à Jessie

La version 8.0 de Debian, connue sous le nom de Jessie, a été initialement publiée le 26 avril 2015. La version 8.6 a été publiée le 17 septembre 2016. Comme mon système actuel avait un problème de démarrage, j’ai du réinstaller fin 2016 la version originale de Debian 7 (Wheezy) à partir de mes DVD’s. Pour activer le WiFi, j’ai copié le fichier iwlwifi-3945-ucode à l’emplacement /lib/firmware. Ensuite j’ai procédé à un update / upgrade de Wheezy, suivi d’un changement de version en remplaçant “Wheezy” par “Jessie” dans la liste “/etc/apt/sources.list“.

Pour aller dans le mode terminal, entrez ctrl+alt+f1. Pour retourner dans le mode graphique, entrez ctrl+alt+f7.

Liens

La liste suivante fournit des liens vers des sites web avec des informations utiles au sujet de Linux :

3D Game Engines

3D Game Engines provide game designers with the framework to create games. The core functions of 3D game engines are the following :

3D Game Engines

3D Game Engines

  • rendering
  • animation
  • scripting
  • sound generation
  • collision detection (physics engine)
  • networking
  • threading
  • memory management
  • artificial intelligence

 

The following 3D game engines are relevant in the context of embodied virtual agents :

Other renowned 3D game engines are listed hereafter :

Some 3D renderers are sometimes listed as 3D game engines, for example :

More informations about 3D game engines are available at the following links :

Télémanipulateur chirurgical da Vinci

Last update : 7 mars 2017

Le télémanipulateur chirurgical da Vinci est une plate-forme chirurgicale de pointe, équipée d’une vision 3D haute définition et de micro-instruments chirurgicaux articulés, conçue pour aider les chirurgiens à dépasser les limites de la chirurgie laparoscopique (invasion moyennant des petites incisions) et effractive conventionnelle. Le système est fabriqué par la société américaine Intituitive Surgical.

Télémanipulateur chirurgical da Vinci

Télémanipulateur chirurgical da Vinci

Bien que souvent appelé robot, le système da Vinci ne peut pas agir tout seul ; l’intervention est entièrement effectuée par un chirurgien, du début à la fin. Le système se compose de deux consoles : un pupitre de commande (joystick), avec vision en 3D haute définition, et un manipulateur avec quatre bras.

Plus que 2.000 systèmes ont été vendus jusqu’à présent, dont la majorité aux Etats-Unis. Le prix de vente d’un système avoisine 2 millions de dollars.

Parmi les avantages du système on rapporte que les opérations sont moins invasives pour le patient, que le chirurgien se fatigue moins (le système évite des tendinites au chirurgien) et que les tremblements de la main n’ont pas d’effet sur l’opération. Les inconvénients sont les frais élevés, l’apprentissage difficile de la manipulation du système et l’absence de la sensation tactile au chirurgien lorsque les pinces touchent un organe. Sur les forums médicaux sur le web, des médecins et infirmiers qui travaillent à proximité d’un robot da Vinci témoignent que la durée d’une opération est deux à trois fois plus longue qu’une intervention chirurgicale laparoscopique classique.

Le Centre Hospitalier du Kirchberg est le premier établissement de santé Luxembourgeois à acquérir un télémanipulateur chirurgical da Vinci.

Des informations supplémentaires sont disponibles sur les sites web suivants :

ISO image

Free ISO image Burner

Free ISO image Burner

An ISO image is an archive file of an optical disc, a type of disk image composed of the data contents of every written sector of an optical disc, including the optical disc file system. The name ISO is taken from the ISO 9660 file system used with CD-ROM media. ISO image files usually have a file extension of .iso. ISO images are uncompressed and do not use a particular container format; they are a sector-by-sector copy of the data on an optical disc, stored inside a binary file.

ISO images can be created from optical discs by disk imaging software, from a collection of files by optical disc authoring software, or from a different disk image file by means of conversion. Software distributed on bootable discs (fox exampe Linux Debian) is often available for download in ISO image format.

ISO burner

To burn an ISO image to a CD or DVD, you need a disc image burner software. There are several such tools available. I use Free ISO Burner from SoftSea. This program is very simple and easy to use and hide all complex settings. The current version is 1.2, released on January 10, 2011.

HDR : high-dynamic-range imaging

Last update : December 25, 2021

HDR (High-dynamic-range imaging) is a set of methods used in imaging and photography to capture a greater dynamic range between the lightest and darkest areas of an image than current standard digital imaging methods or photographic methods. The two main sources of high-dynamic-range images are computer renderings and merging of multiple standard-dynamic-range (SDR) photographs created with exposure bracketing.

As the popularity of the HDR imaging method increased in the last years, several camera manufactures are now offering built-in high-dynamic-range features. HDR is also integrated in new smartphones. Since iOS4.1, Apple iPhones have a built-in HDR functionality. Android launched HDR mode for the camera app in version 4.2 (Jelly Bean); Blackberry introduced HDR in the Z10 with OS update 10.1.

hdr

HDR Photo by Jon Rutlen on Flickr

A very detailed contribution about concepts, standards and related aspects of HDR has been published by Digiarty Software Inc. The following links provide some ancient information about HDR :

Subtitles in mp4 video files

Last update : September 22, 2013

Subtitles

Subtitles are textual versions of the dialog in films and television programs, usually displayed at the bottom of the screen. They can either be a form of written translation of a dialog in a foreign language, or a written rendering of the dialog in the same language, with or without added information to help viewers to follow the dialog.

Closed Captioning

Another process of displaying text on a visual display to provide additional or interpretive information is called closed captioning (CC). Most people don’t distinguish captions from subtitles. In the United States and Canada (ATSC), these terms do have different meanings. Closed captions were created for the deaf community or hard of hearing individuals to assist in comprehension. Everything you purchase from Apple’s iTunes Store have CC subtitles, if at all. CC subtitles can be extracted with CCextractor (version 0.66 released on July 1, 2013), a free GPL licensed closed caption tool for Windows.

Read The Closed Captioning Bible by Werner Ruotsalainen about this topic.

SubRip

The most basic of all subtitle formats is SubRip, named with the extension .srt, which contains formatted plain text.

SRT consists of four parts :

  • A number indicating which subtitle it is in the sequence
  • The time that the subtitle should appear on the screen, and then disappear
  • The subtitle itself
  • A blank line indicating the start of a new subtitle

Here is an example :

1
00:00:20,000 --> 00:00:24,400
Altocumulus clouds occur between six thousand


2
00:00:24,600 --> 00:00:27,800
and twenty thousand feet above ground level.

Subtitle editor

Subtitle Workshop

Subtitle Workshop

There exist a great number of subtitle formats and programs to create subtitles. An efficient and convenient subtitle editing tool that supports all the subtitle formats you need and has all the features you would want from such a tool is Subtitle Workshop (version 6.0a released on August 26, 2013) from URUWorks. It even includes spell check function and an advanced video preview feature, but it doesn’t embed the subtitles in a video file.

Another performant tool is Subtitle Edit (version 3.3.8 released on September 1, 2013; Wikipedia) created by Nikolaj Lynge Olsson from Denmark.

Subtitle embedder

There exist two methods to embed subtitles in video files : soft embedding and hard burning. The following tools allow the embedding of SRT subtitles :

SRT subtitles are embedded with Timed Text as the Stream Text type, CC subtitles are labeled as EIA-608.

Subtitle player

The following players and servers support delivering of integrated subtitles :

Links

The following links provide additional informations about soft subtitles in videos :

File date before 1980

Last update : September 16, 2013

If files have a date before 1980, Windows Explorer shows a blank in the date column. This is the case for the created, modified or picture taken date. Sorting files or pictures by their real date taken is impossible. The correct date is however displayed in the properties box.

I you have a photo or video collection, the fact that files with a date before 1980 are not sorted as expected is an awesome problem which has not yet been solved in Windows 8. Since Windows itself did not exist before 1980, there seems to be a problem with creation or last modified date and time for a file stamped before that time.

Date created gives us the information about when the file was moved to a specific location. Date modified is about the date when the file was last modifie. The modified date can be prior to the creation date of a file.

The picture taken date is saved in the Exif metadata of a picture file. For videos, there exist no similar standardized property. Videos encoded with Apple Quicktime are stamped with proprietary metadata com.apple.quicktime.creationdate. The file creation or modification dates are used as timestamp for avi, mp4 and MOV video files.

Most photo or video tools however manage files with a date before 1980 as expected. I tested the following applications :

  • Synology PhotoStation
  • Synology VideoStation

 

Anamorphic video

The term anamorphic refers to a distorted image that appears normal when viewed with an appropriate lens. When shooting film or video, an anamorphic lens can be used to squeeze a wide image onto a standard 4:3 aspect ratio frame. During projection or playback, the image must be unsqueezed, stretching the image back to its original aspect ratio.

By default, 16:9 anamorphic video displayed on an standard monitor appears horizontally squeezed, meaning images look tall and thin. The advantage of this was in the past that producers could shoot wide-screen material using inexpensive equipment. Rescaling anamorphic video in order to see the entire wide screen frame on a standard definition 4:3 monitor is called letterboxing, and results in the loss of the maximum resolution available in the source footage. A wide screen (16:9) allows video-makers more room for creativity in their shot composition.

To check the support of anamorphic videos by different players, I created three mp4 videos from scratch, based on squeezed test pictures :

testbild_anamorphic

Source pictures  640×480, 854×480 and 1.280×480 squeezed to 640×480 pictures

The following ffmpeg script creates a video from a squeezed source image towards a stretched widescreen video with a ratio 2.35:1.

ffmpeg ^
-loop 1 ^
-f image2 ^
-i testbild_2_35_1_squeezed.jpg ^
-r pal ^
-vcodec libx264 ^
-aspect 235:100 ^
-crf 23 ^
-preset medium ^
-profile:v baseline ^
-level 3.1 ^
-refs 1 ^
-t 30 ^
testbild_anamorphic_2_35_1.mp4
pause

The -aspect parameter handles the correct display aspect ratio (DAR). The MediaInfo tool shows that the video has 640×480 pixels, but an DAR of 2.35:1.

MediaInfo

MediaInfo

The VLC video player stretches the video based on the DAR. Videos with a wrong DAR in the metadata can be resized manually by changing the aspect ratio in the corresponding video menu.

anamorphic video

VLC media player

More informations about anamorphic videos are available at the following links :

Human Brain Parts and Regions

Last update : October 11, 2014

human brain regions

brain regions

The brain is the center of the nervous system in all vertebrate and most invertebrate animals. From a philosophical point of view, what makes the brain special in comparison to other organs is that it forms the physical structure that generates the mind. Through much of history, the mind was thought to be separate from the brain. Even for present-day neuroscience, the mechanisms by which human brain activity gives rise to consciousness and thought remain very challenging to understand: despite rapid scientific progress, much about how the human brain works remains a mystery. The operations of individual brain cells are now understood in considerable detail, but the way they cooperate in ensembles of millions has been very difficult to decipher.

The human brain has three main parts :

  1. The cerebrum, or telencephalon (Grosshirn, cerveau), that fills up most of the skull, is involved in cognition and also controls movement.
  2. The cerebellum, or little brain (Kleinhirn, cervelet), that sits at the back of the head, under the cerebrum, controls coordination and balance.
  3. The brainstem (Hirnstamm, tronc cérébral), that sits beneath the cerebrum in front of the cerebellum, connects the brain to the spinal cord and controls automatic functions such as breathing, digestion, heart rate and blood pressure.

The human brain is divided into right and left halves (hemispheres). The left half controls movement on the body’s right side. The right half controls the body’s left side. In most people, the language area is mainly on the left. Preserved brains have a grey color, hence the name grey matter.

The brain’s wrinkled surface is a specialized outer layer of the cerebrum, called the cerebral cortex (what we see when we look at the brain). Each bump on the surface of the human brain is known as a gyrus, while each groove is known as a sulcus.

In a typical human the cerebral cortex is estimated to contain 15–33 billion neurons, each connected by synapses to several thousand other neurons. These neurons communicate with one another by means of long protoplasmic fibers called axons, which carry trains of signal pulses called action potentials to distant parts of the brain or body targeting specific recipient cells..

Traditionally the cerebral cortex is divided into four sections, which are known as lobes :

english latin deutsch français
Frontal Lobe Lobus frontalis Stirnlappen lobe frontal
Parietal lobe Lobus parietalis Scheitellappen lobe pariétal
Temporal lobe Lobus temporalis Schläfenlappen lobe temporal
Occipital lobe Lobus occipitalis Hinterhauptlappen lobe occipital

The Terminologia Anatomica (TA), the international standard on human anatomic terminology, developed by the Federative Committee on Anatomical Terminology (FCAT) and the International Federation of Associations of Anatomists (IFAA), released in 1998, defines two additional lobes : The limbic lobe, associated to emotion and memory and the insular cortex, associated to pain and some other senses.

The frontal lobe is associated with reasoning, motor skills, higher level cognition, and expressive language. The parietal lobe is associated with processing tactile sensory information such as pressure, touch, and pain. The temporal lobe is the location of the primary auditory cortex, which is important for interpreting sounds and the language we hear. The hippocampus is also located in the temporal lobe, which is why this portion of the brain is heavily associated with the formation of memories. The occipital lobe is associated with interpreting visual stimuli and information. The primary visual cortex, which receives and interprets information from the retinas of the eyes, is located in the occipital lobe.

The cerebral cortex is also segmented in cortical areas which are functionally or anatomically defined. Some examples are listed below :

human brain areas

brain areas

The brainstem is comprised of the hindbrain (rhombencephalon) and midbrain. The hindbrain contains structures including medulla oblongata, the pons and the reticular formation.

The limbic system contains glands which help relay emotions. Many hormonal responses that the body generates are initiated in this area. The limbic system includes the amygdala, hippocampus, hypothalamus and thalamus.

Great progresses in the analysis which parts of the brain are involved in a particular mental process have been made in the last years with the functional magnetic resonance imaging (fMRI).

More informations about human brain parts and regions are available at the following links:

at Wikipedia :

other sources :

BioBlender visualization

BioBlender is a software package built on the open-source 3D modeling software Blender. BioBlender version 1.0 for Windows and Linux was released on July 12, 2013. The first beta version of BioBlender (v 0.1) was presented in September 2010.

BioBlender

BioBlender

BioBlender is the result of a collaboration, driven by the SciVis group at the Institute of Clinical Physiology (CNR) in Pisa, Italy, between scientists of different disciplines (biology, chemistry, physics, computer sciences) and artists, using Blender in a rigorous but at the same time creative way.

With BioBlender users can handle proteins in the 3D space, displaying their surface in a photorealistic way, and elaborate protein movements on the basis of known conformations. Scientists all over the world study proteins at atomic level and deposit information in the public repository Protein Data Bank, where each molecule is described as the list of its atoms and their 3D coordinates.

BioBlender can be used for:

  • import and visualize Protein Data Bank (PDB) files (The PDB file format is a textual file format describing the three dimensional structures of molecules held in the Protein Data Bank)
  • simulate molecular dynamics and optimize protein motion
  • visualize complex protein surface properties  (e.g. MLP and EP surface properties)

A BioBlender tutorial was published by Raluca Andrei, Mike Chen Pan and Monica Zoppè, in the BlenderArt magazine N.31 in December 2010.