Article / CC BY-SA 4.0 / 02 mai 2022 / : 364 / Comments: None
Example of how to get all children from parent objects in a django template: [TOC] ### Models.py file Let's consider the following case: a blog website in which a post can be created and commented as well: class Blog_Post(models.Model): content = models.TextField() date_created = models.DateTimeField(default=datetime.now) class Blog_Post_Comment(models.Model): blog_post = models.ForeignKey(Blog_Post, null=True, blank=True, default = None,on_delete=models.DO_NOTHING) ...
Article / CC BY-SA 4.0 / 08 avril 2022 / : 94 / Comments: None
Examples of how to append a new li to ul using javascript: [TOC] ### Create a simple HTML page Let's consider the following html page: <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <ul id="mylist"> <li>item 1</li> <li>item 2</li> <li>item 3</li> </ul> <script> </script> </body> </html> The goal is to append 'item-4' to the ul with the id = "mylist" using javasc ...
Article / CC BY-SA 4.0 / 04 avril 2022 / : 64 / Comments: None
Example of how to fix the TypeError: Object of type datetime is not JSON serializable" in python: [TOC] Let's consider an example: ### Create a datetime object Reminder: to create a datetime object in python import datetime x = datetime.datetime.now() gives for example 2022-04-04 14:16:59.604425 which is a datetime object ### Create a json file Now if we try to create a json file using a dictionary with a datetime object inside: import json dict = {"me ...
Article / CC BY-SA 4.0 / 21 mars 2022 / : 56 / Comments: None
Example of how to drop a table in a database with django: [TOC] ### Start django database shell In the terminal go the the folder with the manage.py file and then enter the following command: python manage.py dbshell It is going to start a shell associated with the database type. For example with the default SQLite it will returns: SQLite version 3.35.4 2021-04-02 15:20:15 Enter ".help" for usage hints. sqlite> ### SQLite database #### Get all tables name To ge ...
Article / CC BY-SA 4.0 / 20 mars 2022 / : 1332 / Comments: None
Examples of how to get json data from a url using only vanilla javascript: [TOC] ### Video: tips For Using Async/Await in JavaScript I was looking for to remove JQuery and replace it by only vanilla javascript to increase the speed of my websites (in particular by replacing all ajax calls that retrieve json data from n url). Found a lot of documentations online (see references below) but the following youtube video by James Q. Quick summarized everything very well: [youtube_video_id: ...
Article / CC BY-SA 4.0 / 09 mars 2022 / : 50 / Comments: None
Examples of how to create a string variable on multiple lines in javascript [TOC] ### Example 1 To create a string variable on multiple lines in javascript, a solution is to use a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) which is delimited by backticks ``: var s = `an example of a very very very very very very very very very veryvery very long string` console.log( s ); ### Example 2 Another exampl ...
Article / CC BY-SA 4.0 / 08 mars 2022 / : 65 / Comments: None
Examples of how to add text in a html page using javascript: [TOC] ### Add text using innerHTML <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="intro"> <h1>Learning Javascript</h1> <p>First paragraph</p> </div> <script> document.querySelector("#intro").innerHTML += "<p>Second paragraph</p>"; </script> </body> </html> [images:learning-javascript-ad ...
Article / CC BY-SA 4.0 / 04 mars 2022 / : 79 / Comments: None
Examples of how to test if a string contains another string (substring) in javascript: [TOC] ### Check if a string contains another string in javascript Let's consider the following string: var s = 'Tokyo is the most populated city in the world' To check for example if s contains the word 'city', a solution is to use [includes()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes): console.log( s.includes('city') ); returns he ...
Article / CC BY-SA 4.0 / 03 mars 2022 / : 63 / Comments: None
Examples of how to convert a string representation of a number into a integer with javascript : [TOC] ### Convert a string into an integer Let's consider the following variable var s = '42' The variable type can be checked using typeof console.log( typeof s ); gives here string To convert the above string into a integer, a solution is to use [parseInt()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt) var i = parseInt(s ...
Article / CC BY-SA 4.0 / 02 mars 2022 / : 74 / Comments: None
Examples of how to create a date object in javascript: [TOC] ### Create a date object in javascript for the current date To create a date object in javascript there is the [Date() constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date). A simple utilisation of date() is to get the current date: var now = new Date(); console.log( now ); returns for example Wed Mar 02 2022 13:46:30 GMT-0500 (Eastern Standard Time) ### Cre ...
Article / CC BY-SA 4.0 / 02 mars 2022 / : 107 / Comments: None
Examples of how to add an element to an array in javascript: [TOC] ### Add an element at the end of an array using push() Let's create a simple array: var A = [1,2,3,4]; console.log( A ); gives [1, 2, 3, 4] To append a new element at the end a solution is to use push(). An example, add the element 5 to the matrix A: A.push(5); console.log( A ); gives [1, 2, 3, 4, 5] var A = [1,2,3,4]; var B = [5,6]; A.push(B); console.log( A ); gives ...
Article / CC BY-SA 4.0 / 01 mars 2022 / : 78 / Comments: None
Examples of how to loop over each items of an array in javascript: [TOC] ### Create an array in javascript Let's create a very simple array in javascript var data = [9,5,7,3,1,4]; Note that we can test if it is an array using the following method: console.log( Array.isArray(data) ); which gives True here. To get the size of an array: console.log( data.length ); gives 6 And to get a given element by index: console.log( data[0] ); re ...
Article / CC BY-SA 4.0 / 23 février 2022 / : 140 / Comments: None
Example of how to show save the architecture of a tensorflow model (summary) in a json file: [TOC] ### Create a model Let's create a simple untrained model with TensorFlow: from keras.utils.data_utils import get_file from tensorflow import keras from tensorflow.keras import layers model = keras.Sequential([ layers.Dense(20, activation='relu', input_shape=[11]), layers.Dense(10, activation='relu'), layers.Dense(10, activation='relu'), ...
Article / CC BY-SA 4.0 / 21 février 2022 / : 151 / Comments: None
Examples of how to filter dataframe rows using multiple conditions with OR in pandas: [TOC] ### Create a dataframe with pandas Let's first create a dataframe with pandas using a dictionary: import pandas as pd import numpy as np data= {'A':[-1,-2,3,4,5], 'B':[6,-7,8,9,-10], 'C':[11,12,13,14,15],} df = pd.DataFrame(data) returns here A B C 0 -1 6 11 1 -2 -7 12 2 3 8 13 3 4 9 14 4 5 - ...
Article / CC BY-SA 4.0 / 15 février 2022 / : 200 / Comments: None
Examples of how to check if a variable is a string in javascript: [TOC] ### String variable Create a string var s = 'Hello world !' to check if it is a string a solution is to use typeof: console.log(typeof s === 'string'); gives here true Check if it is a string object: console.log(s instanceof String); gives false ### String object Create a string object var sobj = new String('Hello World !'); console.log(typeof sobj === 'string'); gi ...
Article / CC BY-SA 4.0 / 15 février 2022 / : 172 / Comments: None
Examples of how to convert a string object representation to a string in javascript: [TOC] ### Create a string object To create a string object a solution is to use [String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) let mystringobj = new String('Hello World !'); then if we test that mystringobj is a string console.log(typeof mystringobj === 'string'); it returns false However if we test if it is a instanceof String ...
Article / CC BY-SA 4.0 / 14 février 2022 / : 176 / Comments: None
Examples of how to create an array in javascript and get an element by index: [TOC] ### Create an array in javascript Examples of how to create arrays in javascript var data_1 = [1,2,3,4]; var data_2 = [1,['Ben','Tom','Jess'],3,4]; var data_3 = [[1,2],[3,4],[5,6]]; ### Get array length To get array's length: data_1.length; gives 4 For the second array data_2.length; gives 4 and the the third array: data_2.length; gives 3 ### Ch ...
Article / CC BY-SA 4.0 / 14 février 2022 / : 166 / Comments: None
Example of how to check if a javascript variable is an array: [TOC] ### Using Array.isArray() A solution to check if a javascript variable is an array is to use [Array.isArray()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) var data = [1,2,3,4]; Array.isArray(data); returns here true while data = 3; returns False #### With a if statement var data = [1,2,3,4]; if (!Array.isArray(data)) { console.l ...
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
Development of satellite products and applications for NASA EOS (“Earth Observing System”):
• Implementation of machine learning based classification algorithms for MODIS cloud thermodynamic phase and multilayer cloud detections.
• Implementation of statistical and visualization tools (based on python, matplotlib, basemap) to evaluate NASA products.
• Write technical documents: User guides, ATBD and research papers for NASA data users.
I develop a website (moonbooks.org Massive Open Online Notebooks) using Django, Ubuntu, Nginx and Gunicorn to create educational contents. 150.000 – 200.000 unique visitors per month.
Postdoctoral research at NASA GSFC (Goddard Space Flight Center) to work on MODIS C6 cloud optical products.
Postgraduate diploma in machine learning and artificial intelligence| University of Columbia (Emeritus program) (2019-09 – 2020-06 )
PhD Thesis in Remote Sensing | Lille (France) (2006-09 - 2009-12)
PhD Thesis at the “Laboratoire d’Optique Atmosphérique” (LOA), Université Lille 1: Development of inversion algorithms for satellite remote sensing applications.
Platnick S, Meyer K, Wind G, Holz RE, Amarasinghe N, Hubanks PA, Marchant B, Dutcher S, Veglio P. The NASA MODIS-VIIRS Continuity Cloud Optical Properties Products. Remote Sensing. 2021; 13(1):2.
Marchant, B., Platnick, S., Meyer, K., & Wind, G. (2020). Evaluation of the MODIS Collection 6 multilayer cloud detection algorithm through comparisons with CloudSat Cloud Profiling Radar and CALIPSO CALIOP products. Atmospheric Measurement Techniques, 13(6), 3263–3275.
Platnick, S., Meyer, K. G., King, M. D., Wind, G., Amarasinghe, N., Marchant, B., Arnold, G. T., Zhang, Z., Hubanks, P. A., Holz, R. E., Yang, P., Ridgway, W. L., & Riedi, J. (2017). The MODIS Cloud Optical and Microphysical Products: Collection 6 Updates and Examples From Terra and Aqua. IEEE Transactions on Geoscience and Remote Sensing, 55(1), 502–525.
Marchant, B., Platnick, S., Meyer, K., Arnold, G. T., & Riedi, J. (2016). MODIS Collection 6 shortwave-derived cloud phase classification algorithm and comparisons with CALIOP. Atmospheric Measurement Techniques, 9(4), 1587–1599. https://doi.org/10.5194/amt-9-1587-2016
2017: Best First-Authored Paper: "For his paper documenting significant improvement to the MODIS phase algorithm, an essential first step in obtaining useful cloud optical property retrievals.”
2014: Outstanding technical support/achievement: For sustained effort leading to successful delivery of the MODIS Collection 6 algorithms and codes producing improved Level 2 and Level 3 aerosol and cloud products.
2017: Co-I of two NASA proposals (Program element A.37, the Science of TERRA, AQUA, and SUOMI NPP)
Pour ajouter une image dans une note il faut utiliser la balise suivante:
[image: size: caption:]
ou image est l'adresse url de l'image, size (optionnel) la taille entre 10 et 100% de la largeur de la page, et caption (optionnel) la légende.
On peut aussi ajouter plusieurs images. Exemple de comment ajouter 4 images dans un tableau 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
On peu ajouter un lien comme ceci:
[title](url)
exemple avec un lien externe article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
exemple avec un lien interne Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Exemple de comment créer des sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
et ajouter une table des matières:
[TOC]
Exemple de comment créer un tableau à deux colonnes
Titre 1 | Titre 2 ------------- | ------------- text | text text | text
header | header |
---|---|
text | text |
text | text |
Exemple de comment créer un tableau à trois colonnes
Titre 1 | Titre 2 | Titre 3 ------------- | ------------- | ------------- text | text | text text | text | text
header | header | header |
---|---|---|
text | text | text |
text | text | text |
30 mars 2022
I am working on a new version for moonbooks.org (without JQuery and Boostrap for improving the speed on mobile). Stay tune !
12 janvier 2022
I have been busy lately but I am going back to moonbooks !. I fixed a bunch of stuff in the backend recently. This week I plan to add a new section in the navbar called 'analytics' that will be used to share some data (such as for example the daily number of vistors, revenue, etc). I have also a lot of new content that I plan to add for the site. So, keep in touch !
25 décembre 2021
Link to see the launch of the James Webb Space Telescope:
15 décembre 2021
Last weeks, I made some changed to improve the site: (1) unused css has been removed on articles for desktop and mobile to improve the LCP (Largest Contentful Paint); (2) a new navbar has been created and (3) new internal security features has been implemented !
I have also a lot of new ideas to continue improving the site and I plan to do some videos during my December break to introduce myself and explain my future projects about the site.
21 octobre 2021
I am working on a new navbar for the site that will be deployed next friday !
12 octobre 2021
I know that alexa rank for website is not really accurate but seeing moonbooks.org in the first 100.000 websites yesterday was exciting !. Keep me motivated to provide more content and continue improving the site.
29 septembre 2021
Today, I finished to update the following article: How to plot a RGB image from MODIS MYD021KM products ?
28 septembre 2021
Thanks ! Merci !
Moonbooks.org hit today a new record: for the first time more than 10.000 unique visitors for a single day. It is a big thing for me since when I started a couple of years ago I was happy when I got 30 visitors for a single day !
25 septembre 2021
It tooks me more time than expected but I finished to write a jupyter notebook showing how to download NASA satellite products. I will use this note has a support for an upcoming video.
11 septembre 2021
Today I finished my first thumbnail (using canva) for one of the video that I am working on. I will upload it on the upcoming youtube channel and on moonbooks as well. My idea is to share my python skills with some real problems that I need to solve !
08 septembre 2021
Hi all, started to create a youtube channel (with 0 video at the moment). I plan to use this channel to communicate more about what I am doing exactly and create video tutorials as well (still need to increase my skills about video editing before posting my first video). Stay tune !
27 août 2021
I am testing moving from google adsense to ezoic (to get better income for the site). It will likely take a couple of days to optimize everything !
14 juin 2021
I decided to start the following python course on coursera:
I learned python by myself so far but will see if I can learn some new tricks from this course.
They estimate 8 months to complete the specialization but will see if I can manage to complete it more faster!
06 juin 2021
I recently got interviewed by a big tech company for a research data science position. It was my first tech interview and I totally bombed it! I was not prepared enough (in particular about data structure or Big-O analysis) and didn't manage my anxiety very well. For example, I was not able to create a more efficient algorithm to sort a simple list (O(N) instead of O(NlogN)) but when I tried that alone it was not that hard:
Big O Exercise: How to create an efficient algorithm to sort a list in python ?
But overall, It was a good experience, I learned a lot and understand on what I need to get better.
21 mai 2021
This week, I learned some new tricks in python (didn't know for example that it is possible to test SQL queries in a jupyter notebook !).
If someone is interested, my notes are available here:
18 mai 2021
It was long overdue but I finally created my about-me page (click on About in the navbar). I still need to create a dedicated url to access directly to this (I am going to add that to my long todo list !).
14 mai 2021
Hi all, just created the "News" section in the navbar. I will share here updates about moonbooks.org and what I am working on !
Rechercher
An image can be added in the text using the syntax
[image: size: caption:]
where: image is the unique url adress; size (optional) is the % image page width (between 10 and 100%); and caption (optional) the image caption.
It is also possible to add several images in a table. Example with 4 images in a table 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
A link can be added using:
[title](url)
an example with an external link article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
an example with an internal link Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Examples of how to create sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
a table of contents can be then created using:
[TOC]
Example of table with 2 columns:
header 1 | header 2 ------------- | ------------- text | text text | text
header 1 | header 2 |
---|---|
text | text |
text | text |
Example of table with 3 columns:
header 1 | header 2 | header 3 ------------- | ------------- | ------------- text | text | text text | text | text
header 1 | header 2 | header 3 |
---|---|---|
text | text | text |
text | text | text |
An image can be added in the text using the syntax
[image: size: caption:]
where: image is the unique url adress; size (optional) is the % image page width (between 10 and 100%); and caption (optional) the image caption.
It is also possible to add several images in a table. Example with 4 images in a table 2*2:
[images:image_1;image_2;image_3;image_4 dim:2*2 size:100 caption:]
A link can be added using:
[title](url)
an example with an external link article de wikipedia:
[article de wikipedia](https://fr.wikipedia.org/wiki/Math%C3%A9matiques)
an example with an internal link Link
[Link](/Articles/Comment-simplifier-une-fraction-Mathématiques/))
Examples of how to create sections:
# section 1 ## section 1.2 ## section 1.3 ### section 1.3.1 # section 2
a table of contents can be then created using:
[TOC]
Example of table with 2 columns:
header 1 | header 2 ------------- | ------------- text | text text | text
header 1 | header 2 |
---|---|
text | text |
text | text |
Example of table with 3 columns:
header 1 | header 2 | header 3 ------------- | ------------- | ------------- text | text | text text | text | text
header 1 | header 2 | header 3 |
---|---|---|
text | text | text |
text | text | text |