Nextcloud ou Hubzilla

Rédigé par chris - - Aucun commentaire
nextcloud ou hubzilla

Cela fait longtemps que j'utilise Hubzilla . Je pensais même l'utiliser pour une plateforme d'échange en entreprise. Sur le papier c'est l'outil idéal. Il permet de faire un réseau social, un cloud, d'avoir un calendrier etc... Bref ce pourrait être l'outil de choix.

Mais je suis devenu hésitant pour plusieurs raisons.
- Hubzilla est compliqué. Si on accepte que l'administrateur doit configurer l'application, Hubzilla demande souvent à l'utilisateur d'activer des plugins. Si il n'est trés doué, il n'arrivera pas. L'administrateur ne pourra pas le faire pour lui.
- Hubzilla est toujours peu populaire. La communauté de Hubzilla est toujours trés limité à une poignée de développeurs anglophone. Les utilisateurs francophones ne devraient pas dépasser le nombre des doigt d'une main.
- Je n'ai jamais vraiment réussi à utiliser le cloud de Hubzilla. Ma référence c'était dropbox ou même owncloud. On installe un programme sur l'ordinateur, on le configurer et on a un répertoire qu'on peut synchroniser. En théorie cela fonctionne mais je n'ai pas réussi. Je ne peux donc pas imaginer qu'un simple utilisateur réussisse.  Le partage d'un dossier n'est pas du tout ergonomique et .. en fait je n'ai pas réussi à le faire aussi bien qu'avec dropbox par exemple. Si hubzilla a les fonctionnalités de partage de fichier, son utilisation demande à être améliorer et simplifier.
- L'identité nomade n'est pas vraiment utile en entreprise. C'est le principal point fort de Hubzilla

En résumé Hubzilla est trop compliqué peu utilisable et peu populaire.

Et Nextcloud ? Nexcloud s'installe trés facilement. Vous téléchargez un petit fichier source installateur et vous allez sur votre site en lançant cette page. Cela installe nextcloud trés rapidement.
Nexcloud est à la base un outil de synchronisation et de partage de fichier. Donc cette fonctionnalité est le point fort. Le client installé sur l'ordinateur de bureau fonctionne à merveille. On a un répertoire qui est synchronisé. L'application mobile fonctionne à merveille. On peut depuis le mobile envoyer des fichiers par exemples des photos trés facilement.
L'administrateur peut créer des utilisateurs et les organiser dans des groupes. Il peut affecter facilement une place disque pour l'utilisateur. Cela se fait de façon beaucoup plus conviviale que pour Hubzilla.
La Calendrier est par défaut compatible caldav. Donc on peut le lier à outlook ou le synchroniser à une application mobile.
Chaque groupe peut avoir un dossier commun.
Un chat xmpp existe. Les utilisateurs internes peuvent donc discuter de façon instantané. Hubzilla a aussi un chat mais son usage est beaucoup moins conviviale.
Un chat vidéo existe mais je ne l'ai pas testé. Il y a même une application de conférence vidéo.
Un magasin d'application existe et on peut ajouter des applications simplement pour différents usages.
La seule chose qui manque à Nextcloud c'est un blog de discussion. Alors que Hubzilla est à la base un réseau social.

Ma conclusion de ce comparatif. Nextcloud est beaucoup plus convivial pour l'administrateur et pour l'utilisateur. Mais son point faible est le coté blog social. Cela manque sur nextcloud. C'est pour l'instant ma préférence pour un usage en entreprise.

Espérons que Hubzilla améliore la simplicité d'usage et soit plus orienté utilisateur car cet outil a un potentiel gigantesque à faire révolutionner internet avec son concept d'identité nomade. J'ai juste pas vraiment le sentiment que les développeurs ne sentent le besoin d'avoir une application orienté utilisateur et plus simple.

Je continue cependant à utiliser Hubzilla pour un usage personnel.

Site officiel de Nextcloud
Site du projet Hubzilla

Mot de passe mysql perdu

Rédigé par chris - - Aucun commentaire

Comment faire quand on a perdu son mot de passe root de mysql ? Voici un tuto pour vous sortir d'affaire à condition que d'avoir un accés en ligne de commande.

Il faut donc avoir un accés root. Si vous êtes sous ubunto ajouter sudo devant les commandes

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root

mysql> use mysql;
mysql> update user set password=PASSWORD(”votrenouveaumotdepasse”) where user=’root’;
mysql> flush privileges;
mysql> quit
voila, vous pouvez encore éventuellement arrêter et relancer mysql
/etc/init.d/mysql stop
/etc/init.d/mysql start
Autres tutos

Liberté sur internet : le site anti IVG simoneveil.com bloqué

Rédigé par chris - - Aucun commentaire
simoneveil.com
Le site simoneveil.com a été bloqué car il véhiculait des idées anti avortement. Bon c'est vrai qu'il y avait peut être un problème avec le nom de Simone Viel décédé il y a peu mais c'est la première fois que j'entends qu'un site internet est bloqué car il véhicule une pensé contraire à la bien pensance ambiante. Si on n'est pas d'accord avec l'IVG et qu'on s'exprime on peut être poursuivit.

Pas malin d'avoir choisit un bureau d'enregistrement et un hébergeur français (OVH). Prudence numéro 1 ne pas mettre le nom de domaine et l'hébergeur ensemble. Règle numéro 2 ne pas héberger en France.

Si vous êtes curieux archive.org a eu le temps de prendre deux images de ce site une le 7 juillet 2017 et une autre le 17 juin 2017

En France une loi de délit d'entrave à l'IVG a été voté. Ce texte, voté à main levée, prévoit d’étendre au numérique le délit d’entrave à l’interruption volontaire de grossesse, créé en 1993 et sanctionné par une peine pouvant aller jusqu’à deux ans d’emprisonnement et 30 000 euros d’amende.

Grocery crud et codeigniter

Rédigé par chris - - Aucun commentaire

Voila longtemps que je ne me suis pas remis à la programmation php. Ce langage de programmation avait l'avantage d'être trés accessible à tous. Mais il était trop permissif et présentait des failles de sécurités. Des framework sont apparus pour faciliter la tâches de programmeurs. Je m'étais initié à CodeIgniter qui il y a quelques années (2010 déjà). J'avais choisis ce framework car il était accessible, bien documenté et avait une bonne communauté. De plus il permettait de s'installer sur des serveurs mutualisés. Il suivait la conception MVC Modèle Vue Controleur pour bien séparer l'affichage du moteur.

Ce framework a eu une période de flotement et a un peu perdu de sa popularité car la société qui l'éditait (EllisLab) a arrété son développement. Et certains on douté sur la pérénité de ce framework. En 2014 CodeIgniter a trouvé un repreneur :  British Columbia Institute of Technology. Sa maintenance et son développement continuent.

La version stable actuelle de CodeIgniter et la version 3.1.4 Cette version reçoit actuellement uniquement des corrections. Une nouvelle version est en développement pour être plus en phase avec ce qu'il se pratique aujourd'hui. Son développement avance bien mais n'est pas encore prête pour une mise en production. Pour suivre son développement voir la page.

Travailler avec un framework est soit disant plus rapide mais c'est sans compter sur son apprentissage. Je me pose la question sur l'avantage de la rapidité même une fois. L'avantage est ailleur. Le code est plus propre est plus sûr. Mais le but de cet article n'est pas de parler d'un framework ni de CodeIgniter mais de Grocery Crud.

Create a full stable CRUD in 30 seconds!


L'idée de Grocery Crud est d'utiliser CodeIgniter et de nous aider pour créer des gestions de tables (création, modification et suppression). Créer une gestion de table en 30 secondes. Et là on gagne du temps.
 J'ai testé et oui ça marche.

Voici le lien sur la documentation si vous voulez aller plus loin

Installation

On considère que vous avez déjà installé CodeIgniter. L'installation est très simple. Vous devez juste copier tous les fichiers dans votre projet et vous serez prêt pour utiliser Grocery CRUD.

Configuration

Si vous ne l'avez pas déjà fait, allez dans le fichier application/config/database.php et compléter les informations pour la base de donnée
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '1234'; //Pretty secure don't you think?
$db['default']['database'] = 'my_new_cms';

Exemple

Voici maintenant un exemple tout simple de gestion de client

Nous allons créé manuellement la table pour en faire la saisie. Vous pourrez ensuite changer avec votre table.


 
CREATE TABLE IF NOT EXISTS `employees` (
  `employeeNumber` int(11) NOT NULL AUTO_INCREMENT,
  `lastName` varchar(50) NOT NULL,
  `firstName` varchar(50) NOT NULL,
  `extension` varchar(10) NOT NULL,
  `email` varchar(100) NOT NULL,
  `officeCode` varchar(10) NOT NULL,
  `file_url` varchar(250) CHARACTER SET utf8 NOT NULL,
  `jobTitle` varchar(50) NOT NULL,
  PRIMARY KEY (`employeeNumber`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1703 ;
 
 
INSERT INTO `employees` (`employeeNumber`, `lastName`, `firstName`, `extension`, `email`, `officeCode`, `file_url`, `jobTitle`) VALUES
(1002, 'Murphy', 'Diane', 'x5800', 'dmurphy@classicmodelcars.com', '1', '', 'President'),
(1056, 'Patterson', 'Mary', 'x4611', 'mpatterso@classicmodelcars.com', '1', '', 'VP Sales'),
(1076, 'Firrelli', 'Jeff', 'x9273', 'jfirrelli@classicmodelcars.com', '1', '', 'VP Marketing'),
(1088, 'Patterson', 'William', 'x4871', 'wpatterson@classicmodelcars.com', '6', '', 'Sales Manager (APAC)'),
(1102, 'Bondur', 'Gerard', 'x5408', 'gbondur@classicmodelcars.com', '4', 'pdftest.pdf', 'Sale Manager (EMEA)'),
(1143, 'Bow', 'Anthony', 'x5428', 'abow@classicmodelcars.com', '1', '', 'Sales Manager (NA)'),
(1165, 'Jennings', 'Leslie', 'x3291', 'ljennings@classicmodelcars.com', '1', '', 'Sales Rep'));

On va maintenant créer deux sources. Si vous avez quelque notion de CodeIgniter cela aide.

Le controleur : (application/controlleurs/Main.php)
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Main extends CI_Controller {
 
function __construct()
{
        parent::__construct();
 
/* Standard Libraries of codeigniter are required */
$this->load->database();
$this->load->helper('url');
/* ------------------ */ 
 
$this->load->library('grocery_CRUD');
 
}
 
public function index()
{
echo "<h1>affichage par défaut</h1>";//Just an example to ensure that we get into the function
die();
}
 
public function employees()
{
$crud = new grocery_CRUD();
$crud->set_table('employees');
$output = $crud->render();
 
$this->_example_output($output);        
}
 
function _example_output($output = null)
 
{
$this->load->view('template.php',$output);    
}
}
 
/* End of file Main.php */
/* Location: ./application/controllers/Main.php */


Et le source vue (application/views/template.php)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
 
<?php 
foreach($css_files as $file): ?>
    <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />
 
<?php endforeach; ?>
<?php foreach($js_files as $file): ?>
 
    <script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
 
<style type='text/css'>
body
{
    font-family: Arial;
    font-size: 14px;
}
a {
    color: blue;
    text-decoration: none;
    font-size: 14px;
}
a:hover
{
    text-decoration: underline;
}
</style>
</head>
<body>
<!-- Beginning header -->

<!-- End of header-->
    <div style='height:20px;'></div>  
    <div>
<?php echo $output; ?>
 
    </div>
<!-- Beginning footer -->
<div>Footer</div>
<!-- End of Footer -->
</body>
</html>

Si tout est bon on devrait voir sur la page

http://domaine/projet/index.php/main/employes

En résumé avec quelques lignes de codes on peut gérer une table.

public function employees()
{
$crud = new grocery_CRUD();
$crud->set_table('employees');
$output = $crud->render();
 
$this->_example_output($output);        
}
 
function _example_output($output = null)
 
{
$this->load->view('template.php',$output);    
}

Fil RSS des articles de cette catégorie