---
title: Blog
url: 'http://www.samansaadi.com/blog'
markdown: 'http://www.samansaadi.com/blog.md'
lang: en
date: '2026-02-28'
description: 'Saman Saadi Welcome to my personal blog Contact Me Home Tutorial'
taxonomy:
  archives_month:
    - feb_2026
  archives_year:
    - '2026'
---

# Blog

[ Home ](http://www.samansaadi.com/)      Blog    

 [![](http://www.samansaadi.com/images/0/7/3/c/d/073cdc6390adb14482f6267366684799ecdb731c-ansi.jpg)](http://www.samansaadi.com/blog/keyboard_layouts) 

    30th Jan 2022  

##### [Keyboard Layouts](http://www.samansaadi.com/blog/keyboard_layouts)

Most keyboards send [scancodes](https://en.wikipedia.org/wiki/Scancode) when a keys are pressed which contain the row and column of the key. It's the responsibility of the Operating System to convert them into characters. This mapping is done by [keyboard layouts](https://en.wikipedia.org/wiki/Keyboard_layout).

 [![](http://www.samansaadi.com/images/d/f/e/4/1/dfe419e4bcca2adb3f744a002a7fafe9b6f8d3f8-header.jpg)](http://www.samansaadi.com/blog/odroid_n2) 

    25th Nov 2021  

##### [Odroid N2+](http://www.samansaadi.com/blog/odroid_n2)

There are a lot of [single-board computers](https://en.wikipedia.org/wiki/Single-board_computer) in the market; the most famous ones are [Raspberry Pi](https://en.wikipedia.org/wiki/Raspberry_Pi) series. There are more powerful alternatives like [Odroid N2+](https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/) that I'm going to explain how to prepare two Operating Systems for it. I mainly focus on partitioning the storage unit using `parted` command line. You can use `GParted` which is a front-end for it.

 [![](http://www.samansaadi.com/images/8/4/4/f/f/844ff64c7b60b01330346c7de0b916ac4bb72968-header.jpg)](http://www.samansaadi.com/blog/std_optional) 

    12th Jun 2021  

##### [Memory allocation in std::optional](http://www.samansaadi.com/blog/std_optional)

C++17 introduces `std::optional`. Before C++17 we could use `Boost.Optional`. The question is when we should use smart pointers and when to use `std::optional`?

 [![](http://www.samansaadi.com/images/4/b/0/4/8/4b048708d17b419f29efd2eaec0b77b360f583dd-header.jpg)](http://www.samansaadi.com/blog/cryptocurrencies_processing_time) 

    17th Sep 2020  

##### [Cryptocurrencies Processing Time](http://www.samansaadi.com/blog/cryptocurrencies_processing_time)

Sometimes it's desireable to not expose our payment cards to the merchants. Besides services like [PayPal](https://www.paypal.com/), are there other alternatives? Can we use cryptocurrenices like Bitcoin?

 [![](http://www.samansaadi.com/images/f/a/2/3/a/fa23afc42e4459fd7ad9a6b5a24a662a5ad2f788-header.jpg)](http://www.samansaadi.com/blog/secure_communication) 

    26th Jun 2020  

##### [Emails or Messaging Apps?](http://www.samansaadi.com/blog/secure_communication)

When you use messaging apps like [WhatsApp](https://www.whatsapp.com/) or [Telegram](https://telegram.org/) you are 100% sure that the communication is encrypted. Unfortunately that's not the case for emails.

 [![](http://www.samansaadi.com/images/2/5/8/6/c/2586c7cd39fced6bff9559c7ef30ec4e964c0232-header.png)](http://www.samansaadi.com/blog/credit_cards_and_rewards) 

    30th May 2020  

##### [Credit Cards and Rewards](http://www.samansaadi.com/blog/credit_cards_and_rewards)

You can find a lot of Credit Cards with different Rewards Programs. Basically we have two rewards category: cash-based cards and point-based cards.

- «
- 1
- [2](http://www.samansaadi.com/blog/page:2)
- [»](http://www.samansaadi.com/blog/page:2)

#### Random Article

 [ I'm Feeling Lucky!](http://www.samansaadi.com/blog/random)

#### Useful Links

- [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md)
- [HackerRank](https://www.hackerrank.com/)
- [The Architecture of Open Source Applications](https://aosabook.org/en/index.html)

#### Popular Tags

  [linux](http://www.samansaadi.com/blog/en_tag:linux) [travel](http://www.samansaadi.com/blog/en_tag:travel) [city](http://www.samansaadi.com/blog/en_tag:city) [security](http://www.samansaadi.com/blog/en_tag:security) [keyboard layout](http://www.samansaadi.com/blog/en_tag:keyboard%20layout) [french](http://www.samansaadi.com/blog/en_tag:french) [english](http://www.samansaadi.com/blog/en_tag:english) [windows](http://www.samansaadi.com/blog/en_tag:windows) [date](http://www.samansaadi.com/blog/en_tag:date) [time zone](http://www.samansaadi.com/blog/en_tag:time%20zone) [cryptocurrency](http://www.samansaadi.com/blog/en_tag:cryptocurrency) [bitcoin](http://www.samansaadi.com/blog/en_tag:bitcoin) [tron](http://www.samansaadi.com/blog/en_tag:tron) [litecoin](http://www.samansaadi.com/blog/en_tag:litecoin) [payment](http://www.samansaadi.com/blog/en_tag:payment) [email](http://www.samansaadi.com/blog/en_tag:email) [messaging apps](http://www.samansaadi.com/blog/en_tag:messaging%20apps) [WhatsApp](http://www.samansaadi.com/blog/en_tag:WhatsApp) [Telegram](http://www.samansaadi.com/blog/en_tag:Telegram) [phone](http://www.samansaadi.com/blog/en_tag:phone) [cellphone](http://www.samansaadi.com/blog/en_tag:cellphone) [credit card](http://www.samansaadi.com/blog/en_tag:credit%20card) [finance](http://www.samansaadi.com/blog/en_tag:finance) [money](http://www.samansaadi.com/blog/en_tag:money) [C++](http://www.samansaadi.com/blog/en_tag:C++) [programming](http://www.samansaadi.com/blog/en_tag:programming) [memory management](http://www.samansaadi.com/blog/en_tag:memory%20management) [sbc](http://www.samansaadi.com/blog/en_tag:sbc) [parted](http://www.samansaadi.com/blog/en_tag:parted) [odroid](http://www.samansaadi.com/blog/en_tag:odroid) [dd](http://www.samansaadi.com/blog/en_tag:dd) [e2image](http://www.samansaadi.com/blog/en_tag:e2image) [gparted](http://www.samansaadi.com/blog/en_tag:gparted) [coreelec](http://www.samansaadi.com/blog/en_tag:coreelec) [ubuntu](http://www.samansaadi.com/blog/en_tag:ubuntu) [petitboot](http://www.samansaadi.com/blog/en_tag:petitboot) [partition](http://www.samansaadi.com/blog/en_tag:partition) [mbr](http://www.samansaadi.com/blog/en_tag:mbr) [gpt](http://www.samansaadi.com/blog/en_tag:gpt) [sector](http://www.samansaadi.com/blog/en_tag:sector) [storage](http://www.samansaadi.com/blog/en_tag:storage) 

#### Archives

- [ 1 January 2022  ](http://www.samansaadi.com/blog/archives_month:jan_2022)
- [ 1 November 2021  ](http://www.samansaadi.com/blog/archives_month:nov_2021)
- [ 1 June 2021  ](http://www.samansaadi.com/blog/archives_month:jun_2021)
- [ 1 September 2020  ](http://www.samansaadi.com/blog/archives_month:sep_2020)
- [ 1 June 2020  ](http://www.samansaadi.com/blog/archives_month:jun_2020)
- [ 3 May 2020  ](http://www.samansaadi.com/blog/archives_month:may_2020)

#### Syndicate

 [ Atom 1.0](http://www.samansaadi.com/blog.atom) [ RSS](http://www.samansaadi.com/blog.rss)

---

## Navigation

- Previous: [Home](http://www.samansaadi.com/index.md)
- Next: [Tutorial](http://www.samansaadi.com/tutorial/notes.md)
- Children:
  - [Credit Cards and Rewards](http://www.samansaadi.com/blog/credit_cards_and_rewards.md)
  - [Cryptocurrencies Processing Time](http://www.samansaadi.com/blog/cryptocurrencies_processing_time.md)
  - [Keyboard Layouts](http://www.samansaadi.com/blog/keyboard_layouts.md)
  - [Odroid N2+](http://www.samansaadi.com/blog/odroid_n2.md)
  - [International Calling](http://www.samansaadi.com/blog/phone_numbers.md)
  - [Random](http://www.samansaadi.com/blog/random.md)
  - [Blog Search results](http://www.samansaadi.com/blog/search.md)
  - [Emails or Messaging Apps?](http://www.samansaadi.com/blog/secure_communication.md)
  - [Memory allocation in std::optional](http://www.samansaadi.com/blog/std_optional.md)
  - [Time Zones](http://www.samansaadi.com/blog/time_zones.md)
