Skip to content

Instantly share code, notes, and snippets.

Hai-Nam Nguyen jcisio

View GitHub Profile
View selectors.js
// https://stackoverflow.com/a/12313690/417401
var
styleSheets = document.styleSheets,
totalStyleSheets = styleSheets.length;
for (var j = 0; j < totalStyleSheets; j++){
var
styleSheet = styleSheets[j],
rules = styleSheet.cssRules,
totalRulesInStylesheet = rules.length,
@jcisio
jcisio / paragraph.md
Created Feb 14, 2018
Combien de paragraphes ?
View paragraph.md

Les paragraphes sont maintenant le coeur d'un site Drupal. On les rencontre beaucoup plus souvent que les autres entités, même les nodes ou les termes de taxonomie.

Le problème

Le nombre de types de pagragraphe d'un site augmente jour après jour. Il n'est plus rare de se retrouver sur un site avec 20 ou 30 types de paragraphe. Cela a des conséquences :

  • Lors de la création d'un paragraphe, les utilisateurs sont proposés chaque fois une large liste, alors qu'ils utilisent 2 ou 3 types de paragraphe (image, texte) dans la majorité de cas. On peut avoir une meilleur ergonomie.
  • Les développeur et les intégrateur doivent gérer plusieurs types de paragraphe, des fois très similaires. Il va avoir de duplication de code. Même si on peut refactoriser pour réutiliser un morceau de code, la logique est floue et ce n'est pas optimal.
  • Fonctionnalité : dans un contexte responsive et il y a de plus en plus de trafic en mobile, l'affichage mobile est simplifié et on peut se retrouver sur deux paragraphes différents
@jcisio
jcisio / update.sql
Created Nov 23, 2017
Update nodes to the last revisions
View update.sql
UPDATE node
JOIN (SELECT nid, max(vid) as vid FROM node_revision GROUP BY nid) as tv USING(nid)
SET node.vid = tv.vid
WHERE node.type = 'cours'
View keybase.md

Keybase proof

I hereby claim:

  • I am jcisio on github.
  • I am jcisio (https://keybase.io/jcisio) on keybase.
  • I have a public key whose fingerprint is D874 6FA0 BBDC 9BBF 3363 8998 089D 0553 2E73 7667

To claim this, I am signing this object:

@jcisio
jcisio / scripts.js
Last active Mar 17, 2016
Daily tools
View scripts.js
// List checked checkboxes
(function () {
var checkboxes = document.querySelectorAll('[checked=checked]');
for (var i = 0; i < checkboxes.length; ++i) {
console.log(checkboxes[i].name);
}
})();
View convention.md

Projet xxx

Structure des répertoires

/-- conf
 -- drush
 -- patches
 -- scripts
 -- sql
 -- src
@jcisio
jcisio / removeAccents.js
Created Feb 13, 2014
Transliteration: remove all accents (diacritics). Not the fastest, but easy to understand and to change.
View removeAccents.js
(function() {
String.prototype.removeAccents = function () {
var diacritics = [
{'base':'A', 'letters':/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},
{'base':'AA','letters':/[\uA732]/g},
{'base':'AE','letters':/[\u00C6\u01FC\u01E2]/g},
{'base':'AO','letters':/[\uA734]/g},
{'base':'AU','letters':/[\uA736]/g},
{'base':'AV','letters':/[\uA738\uA73A]/g},
@jcisio
jcisio / gist:5685082
Created May 31, 2013
Drupal: Format Date field
View gist:5685082
$node = node_load(48617);
$item = $node->field_simplenews_date[LANGUAGE_NONE][0];
$date = new DateObject($item['value'], $item['timezone_db'], date_type_format($item['date_type']));
// $date->format is not localized
$timestamp = $date->format(U);
print format_date($timestamp, 'custom', 'd F Y');
@jcisio
jcisio / views_render.module
Created May 21, 2013
Use Views to render precalculated data.
View views_render.module
/**
* Override a view result with nids and render.
*/
function hook_render_view_with_nids($view_name, $display_id, $nids) {
if (!is_array($nids)) {
$nids = array($nids);
}
$view = views_get_view($view_name);
$view->set_display($display_id);
@jcisio
jcisio / ideas.md
Last active Dec 17, 2015
MHST 2013: xén ảnh thông minh nhờ phát hiện khuôn mặt
View ideas.md

Xén ảnh thông minh nhờ phát hiện khuôn mặt

Mức độ: trung bình/khó.

Thực hiện một thuật toán phát hiện khuôn mặt (face detection) trên PHP, sau đó tích hợp vào một hệ quản trị nội dung (CMS) để giải quyết bài toán xén ảnh thông minh.

Vấn đề

Phát hiện khuôn mặt là một bài toán cơ bản trong xử lí ảnh. Đã có khá nhiều thuật toán giải quyết vấn đề này, viết trên nhiều ngôn ngữ khác nhau. Thư viện OpenCV cũng có sẵn công cụ để phát hiện khuôn mặt.

You can’t perform that action at this time.