CHUVASH.eu

CHunky Universe of Vigourous Astonishing SHarepoint :)

Category Archives: Uncategorized

MagicMirror2 and Chuvash

This post is about my setup of the popular MagicMirror2 application. I show the steps needed to set it up on a Raspberry Pi Zero W and connect it to a TV set. As a bonus, I share my thoughts on the Chuvash localization work.

MagicMirror2 is a DIY project and an open-source application, voted to number one of the best Raspberry Pi Projects. In essence, it shows information of your choice (weather, calendar, news) on a screen that is embedded in a mirror.

I was introduced to MagicMirror2 by my colleague, who uses it in another way: rather than having it in a mirror, he has it on his smart tv. The customisability is the beauty of the whole DIY and the Raspberry Pi.

Installation

I also decided to use it on my tv, through the built-in web browser. My raspberry pi zero w required some special steps due to its processor architecture. Fortunately, I found a guide for MagicMirror2 and Raspberry Pi Zero W which I used as a starting point.

After trying it, I found that I needed those steps for my server-only magic:

  • Install node and npm for armv6l
  • Clone the MagicMirror
  • Install npm packages targeting the armv7l
  • Run the server
# node from apt won't work
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-armv6l.tar.xz
tar xvf node-v10.16.0-linux-armv6l.tar.xz
cd node-v10.16.0-linux-armv6l/
sudo cp -R * /usr/local/
sudo reboot
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror
# it needs to be armv7l, not armv6l
npm install -arch=armv7l
# if errors arise: rm -rf nod_modules. Then npm install again
npm run server .
view raw magicmirror.sh hosted with ❤ by GitHub
Creating a bookmark on the TV browser.

My tv screen with MagicMirror2 localized into Chuvash

Chuvash

Every time I work with software I try to think: can I help to translate/localize it to Chuvash. Chuvash is a “little” language, it is only spoken by 1.5 million people. Almost in all cases, it is hard to even to register the Chuvash as such (like in Windows, or macOS), and it is even harder to localize applications, because they tend to have thousands or sometimes millions of strings to translate (and maintain!).

With MagicMirror I experienced how work from the past can help today, how small pieces can become connected parts of a bigger picture.

MagicMirror uses momentjs, a javascript library for datetime. In matter of fact, that’s exactly something that I already have worked on:

That was nice! I changed language to “cv” in the config/config.js and the most of the interface turned into Chuvash. (cv – is the iso code for Chuvash language). What a feeling of joy!

Why that excitement? Well, almost everything in the Chuvash IT (UX, localization, keyboard layouts, speech recognition, machine translation etc) is driven and sponsored by volunteers and a community. That’s why it is a special joy to see pieces come together, even though it is a small DIY project.

The MagicMirror2 itself does a minimal set of strings to translate. I translated it and submitted a Pull Request, which has been already merged to the develop branch.

I also created a list of Compliments in Chuvash and submitted it as a Pull Request.

Mass remove live photo videos

While importing images from my iPhone using Image Capture on my mac, I discovered that almost all pictures had corresponding videos. They had the same name, only the file extension was different:

  • IMG_2829.JPG
  • IMG_2829.MOV

For archiving I don’t to have live photo videos, that’s why I needed a script for that. I found a good start in an answer on SuperUser.stackexchange.com:

I altered it a bit to remove the corresponding .MOV-file (rm):

find . -type f -name "*.JPG" | \
while read -r f;do [ -e "${f%.JPG}.MOV" ] && rm "${f%.JPG}.MOV";done

Re-discovering Github

Github has changed a lot. While working mostly in Azure DevOps I haven’t followed all the development on Github. Now when I look at that, I am really amazed.

Private Repos for Free accounts

Well, for me it is not as interesting, because with my free account, I don’t see any harm having my labs public. But I know, some people used bitbucket for their smaller private repos.

Github Project

I suppose it is the Azure DevOps Project concept that was copied to Github, a place for planning and having multiple connected repos.

Github CLI

For me the Github CLI is the best news. Being able, from command line, not only to git stuff, but also see and create issues, manage pull requests, repos, releases. That means more automation. I like it.

Also being able to work with gists is nice.

main instead of master

That’s brand new. The word “master” is offensive to some people. (sources: Github, statement, zdnet).

So my test repo is one of the first ones that gets “main” as its main branch. Well, that’s not wrong at all. It connects it back to the olden days of TFS, too 🙂

Update LocaleId and TimeZone with PnP

If you get an error while trying to update Regional Settings on your SharePoint Online Site, then PowerShell combination of PnP and CSOM are to the rescue.

The issue I got was that indexed columns were there. You can try to remove indexed columns and re-add them. But it is not the best solution. In my scenario, it was an indexed column that I couldn’t remove.

Connect-PnPOnline https://takana16.sharepoint.com/sites/001
$web = Get-PnPWeb
$ctx = Get-PnPContext
$ctx.Load($web.RegionalSettings)
$ctx.ExecuteQuery()
$tz = $web.RegionalSettings.TimeZones.GetById(4) # Stockholm, UTC+1
$web.RegionalSettings.Timezone = $tz
$web.RegionalSettings.LocaleId = 1053 # Swedish
$web.RegionalSettings.FirstDayOfWeek = 1 # Monday
$web.RegionalSettings.Time24 = $true
$web.Update()
$ctx.ExecuteQuery()

The reason why I use a combination of PnP and CSOM (Load, Update, ExecuteQuery), is that I have not found a way of updating RegionalSettings in PnP.

P.S.: When I was done with this update, I found a blog post that changing Sort Order to General could solve the issue. So the issue is not the locale, but the Sort Order.

Svenska i Office 365 Admin

Svenskt gränssnitt i Office 365 är inte självklart. Här är en lista på översättningar som jag stött på som går att härleda, men som inte är helt etablerade i svenskan.

  • Compliance – efterlevnad
  • Policy – princip
  • Retention – kvarhållning

 

SPFx Samples

Here is my list of repositories that provide examples of SPFx solutions.

SwiftKey from the Chuvash point of view

SwiftKey is a keyboard app for iOS and Android, it adds a new virtual keyboard and it provides the Chuvash one among others.

Here is my review of Swiftkey from the perspective of a person who writes in Chuvash on the mobile.

IMG_0095

Positive things

  • The fact that it has the Chuvash keyboard map is awesome. There is no official Chuvash keyboard in iOS, Android, MacOS, Windows (well you can add Chuvash, but you won’t get the Chuvash letters). Only Linux has the built-in Chuvash keyboard.
  • It has a built-in Chuvash dictionary, so that can provide suggestions. It also can learn from your typing. Although there is an issue  with the suggestions, see below.
  • The Chuvash characters with diacritics are right: Unicode and Cyrillic, not their look-alikes from the Latin set. It is important: if people use the same characters, they can find more on Google.

Negative things

Actually I don’t want to call it negative things, many of them are just missing features. I hope with that review I can get in contact with the Swiftkey team and improve the app.

  • Chuvash letters with diacritics are “hidden” behind their “siblings” without diacritics. To get ӗ you have to long-press е then е and ӗ will pop up. The Chuvash letters should be in the front. Some typical Russian letters can be moved to the back, e.g. ц, щ, ж, д, г etc. Those “Russian” letters are used in Russian loanwords. See the proposal of the keymap below.
  • There are “too many” characters, the keyboard buttons are too small on the mobile. This issue is the same for the Russian keyboard. Since Chuvash has fewer Core Chuvash letters, we could take the rare ones to the back, it would be okay to long-press to get them: г, д, ж, з, щ etc.
  • One character is used a lot, it is a simple hyphen “-“. It is between words and small additions to express questions, wondering, nice asking: -и?, ши?, -ҫкӗ, -ха etc. Also in the “collection words”: сӗтел-пукан (furnitures), сас-хура (rumors). It is heavily used and having the hyphen somewhere in the front, would make typing a lot faster in Chuvash.
  • Swiftkey should be at least tri-lingual, not bi-lingual. It is limited to 2 languages only on the iOS (on Android you can add up to five languages). Consider a typical Chuvash guy who needs to write in Russian in his daily life. He also writes in Chuvash in social networks. Occasionally, he has to input latin letters (domain names, e-mail etc), meaning he needs the third language – English.
  • The dictionary used for the suggestions seems to use a mix of Cyrillic diacritics and their latin look-alikes: ӑӗҫ. They are not treated as the same letters, therefore many right words are excluded from the suggestions. A solution for that would be a simple find and replace of three letters (the capitals and versals): Latin A with breve to Cyrillic A with breve, Latin E with breve to Cyrillic E with breve. Latin C with cedilla to the Cyrillic C with Cedilla. But even Latin Y with diaresis should be replaced with Cyrillic y with double acute.

Keymap proposal

Since many “Russian” letters are not used a lot, they could be brought back and accessed by long-pressing the keys. I would suggest, keep the existing keymaps (Russian Compact, Russian Phonetic, Russian Full), but also add a new keymap: “Chuvash Compact”. Here are the three rows of characters.

  • Top row (10 chars) : й ӳ у к е н ӗ ш ӑ х
  • Middle row (10 chars): ҫ ы в а п р о л – э
  • Bottom row (8 chars): я ч с м и т ь ю

The “long-pressed” characters:

  • к: к г (why: simplified: they represent allophones in Chuvash)
  • е: е ё (ё to type some Russian loanwords)
  • ш: ш ж (why: simplified: they represent allophones in Chuvash)
  • х: х ф (historically ф was transformed to х or хв, still not very common letter)
  • ҫ: ҫ щ (why: simplified: they represent allophones in Chuvash)
  • п: п б (why: simplified: they represent allophones in Chuvash)
  • -: – ! (why: hyphen is used a lot in the words, the exclamation mark is used often after onomatopoetic words)
  • с: с з (why: simplified: they represent allophones in Chuvash)
  • т: т д (why: simplified: they represent allophones in Chuvash)
  • ь: ь ъ (to type some Russian loanwords)

cv_compact

Solpanelexperimentet

Ett litet projekt, ett experiment som jag håller på under min föräldralediga tid: Barnvagssolpanel.

Jag har en liten solpanel på 10W som jag fäster på barnvagnen. Med den laddar jag mina batteripack, och med dem min mobil. Jag vill mäta hur mycket energi jag kan samla in under sommarensolpanel.jpg

Utrustning

Solpanel på 10W av märket Exibel köpt på Clas Ohlson. Den ska ge upp till 1,5A i direkt ljus.

USB-doktorn. No-brand-produkt. Den visar spänning, ström, tid och kapacitet. USB-anslutningen är lite lös och kan glappa ibland. Den i sig förbrukar lite ström. Av någon anledning backar den flera mAh tillbaka efter man nått 3000 mAh varje gång man ansluter sladden igen.

En svart powerbank från Clas Ohlson på 2600mAh = 9,62Wh. Blir laddad så fort solen skiner. I direkt solljus blir det 4,92v x 0,82A = 4W.

En silverfärgad powerbank från Clas Ohlson på 3350mAh = 12,1Wh. Den fungerar mycket sämre, ofta laddar den inte alls, trots att den funkar från eluttaget. I skiftande strömförhållanden lägger den av. Är det på grund av någon elektronisk skyddspärr?

Resultatet

Jag skriver upp det jag uppmätt i ett räkneark: Barnvagnssol.

Iakttaganden

Ladda powerbank först

iPhone är inte bra att ladda direkt från solpanelen. Mjukvaran som styr laddningen i telefonen stoppar den när spänningen varierar. Ofta dyker det upp en ruta: tillbehör som inte stöds. Däremot är batteripack riktiga slukare, det finns ingen reglerande mjukvara. I rakt solljus går det att få ut nästan 1A (0,97A som jag mätt som bäst).

Utan förbrukning – ingen laddning

Under soliga dagar kommer in mycket energi. När jag har laddat alla mobiler, powerbanks jag har tar det stopp. Om man inte kan ladda något, kan man inte dra nytta av energin. Synd att det inte går att ladda datorbatterier (16,5v på min dator) och elcykelbatteriet (36v) från solen. Det går såklart men det kräver utrustning: speciella kontakter och spänningsomvandlare.

Setting up Raspberry Pi2 for a Dashboard Monitor

I have set up Raspberry Pi as a Dashboard Monitor a couple of times. Here I want to summarize my steps. In fact, it is nothing special, a raspberry pi that is used as a browser showing a web based dashboard in full screen, but there are some important configuration steps needed to make it as good as possible.

Install Raspbian

Raspbian is the best operating system for Raspberry Pi. Just stick with that.

Expand file storage

When you boot up Raspberry Pi, the first thing you should do is to expand the file storage, otherwise it is hard to install anything. To do so, run raspi-config from command line and restart your raspberry pi after that.

dashboard-rasp-002

Rename your raspberry

You are advised to change the password. In my case I usually just want to keep the default password: “raspberry”. What I want is to change the hostname from raspberrypi to some unique hostname (in my example it will be “kallerasp”), so that I can access it from my network without running risk for name conflicts. To rename your raspberry, update the /etc/hostname file:

sudo vim /etc/hostname

After that restart your computer.

Install iceweasel

Iceweasel is a Firefox fork, which works just fine on the raspberry pi. Update your raspberry pi and install it:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y iceweasel

Make sure the screen is not getting blank

To use your raspberry pi as a dashboard monitor we need to prevent the screen from getting blank (dark).

cd /etc/lightdm
sudo cp lightdm.conf lightdm.conf.bak
sudo vim lightdm.conf

Update it so you have the following:

[SetDefaults]
xserver-command=X -s 0 -dpms

dashboard-rasp-001

Start dashboard page on startup

To automatically start iceweasel on startup, we need to configure autostart. To do so, run this from terminal:

cd ~/.config
mkdir autostart
cd autostart
vim .desktop

In the .desktop file write following:

[Desktop Entry]
Type=Application
Exec=iceweasel

Previously I had chromium-browser –kiosk http://someurl, but Chromiums is no longer available, and iceweasel does not have –kiosk parameter. On the other hand, you have to activate Full Screen the first time, then after OS restart iceweasel automatically will activate Full Screen and your dashboard page from the previous session.

Chuvash Keyboard Layout for Mac

I’ve got a Mac and one of my first questions was: How can I write in Chuvash on my Mac, obviously 🙂 In this post I am going to tell how I created Chuvash Keyboard Layout. The solution and installation instructions are on Github:

Chuvash Keyboard Layout for Mac

cv-kbd-mac-000

What the heck is Chuvash?

For those who don’t know yet: Chuvash are people who live in Chuvash Republic in Russian Federation, and abroad, as me. We are 1.5 million. Chuvash is also a language, an official language of the Republic, a minority language, that is completely different from the second official language Russian. Chuvash uses Cyrillic letters, all 33 Russian letters plus 4 additional letters: A breve (Ӑ), E breve (Ӗ), C cedilla (Ҫ) and U with double acute (Ӳ).

Keyboard Layout

There is no official Chuvash keyboard layout. What we have is a de facto standard – a very humble layout. It is “humble” because it does not dare to put Chuvash letters on the buttons directly, they are accessible through modifiers: AltGr in Windows and Linux, Option on a Mac. To get A breve you press AltGr and A in the same time. That is not a good input method for Chuvash where additional letters with diacritics (breve, double acute and cedilla) are more common than some Russian letters. In fact, many Russian letters are just part of the Chuvash alphabet because the loan words are just imported in the original spelling.

The reason why this humble keyboard layout was introduced and became a de facto standard was a will to provide a fully functional Russian keyboard layout with a bonus – being able to write in Chuvash, although a hard way. It is hard to write, but it is very simple to have (you don’t need to switch input sources), it is easy to explain: want a diacritic, just press AltGr and the corresponding plain letter. I created the same layout for Mac, too. In future a better, more Chuvash, keyboard layout must be designed and agreed upon.

Keyboard Layouts on Mac

AFAIK, there is no keyboard layout (“input source”) for any minority language in Russia. On the other hand the process of creating and installing a custom keyboard layout is easiest on a Mac. I followed the steps described on Salvatore Testa’s blog: I installed Ukulele and created a new keyboard layout based on Russian PC. That bundle that is saved from Ukulele needs to be copied to ~/Library/Keyboard Layouts/ folder. Then (presumably after a computer restart), Chuvash can be added as an input source. Custom keyboard layouts are just files (bundles) in a user’s home folder. No need for Administrator rights (as in Windows for installing a custom keyboard layout as an exe file), no sudo access to X11 folder (as in Linux).

What I would like to wish is the presence of Chuvash and other minority languages’ keyboard layouts directly Out-of-the-Box on Mac OS, iOS, Android and Windows. Linux is the only OS family that natively supports Chuvash keyboard layout.

Other minority languages

I am just curious: what languages have already had custom keyboard layouts ready for install. I found those ones:

Some words in Chuvash and Russian

I want this text to be searchable and findable, so here come summary of this blog post in Chuvash and Russian.

Макинтош валли чӑваш сарӑмӗ

Чӑваш сарӑмӗ Линукс, Виндовс, татат Андроид оператив системисенче пуррине халӑх пӗлет-ҫкӗ. Паян эпӗ Маккинтош (Mac OS) валли чӑваш сарӑмне турӑм. Вӑл виндовсри тата линуксри пекех, мӑйракаллисене ҫырас тесен Option (Alt) пускӑчне пусса мӑйракасӑррине пӗрле пусмалла. Option + А – Ӑ пулать. Ку ҫӗнни мар. Сарӑмӗ тата мӗнле лартмалли ку вырӑнта тупӑнать (хальлӗх акӑлчанла, анчах вӗҫ ӑнлантарнине ӳкерчӗклентертӗм).

Чувашская раскладка на Макинтош

Теперь есть чувашская раскладка для Mac OS, она такая же как и на Виндовс и Линукс. Чтобы написать Ӑ нужно нажать на Option (Alt) и на букву А. Раскладку и инструкцию по установке можно найти на этой странице (инструкция на английском пока, но все шаги проиллюстрированы картинками).

Working with Ukulele

I won’t go into details about how to work with Ukulele. But I was very surprised how easy it was to update the keyboard layout.

cv-kbd-mac-006

And more surprised I became when I saw that Chuvash was present in the list of available languages. cv-kbd-mac-007

Just to compare, Chuvash exists as a language in many systems in the Open Source world and close to it: Linux, Firefox, Wikipedia… For Microsoft Chuvash does not exist. No LCID, no locale, no way of referencing cv and cv-RU. There is one exception – Skype, but it was added before Skype was bought by Microsoft. I really hope it can be changed in future.

cv-kbd-mac-008

The last step was to rename to Chuvash – PC and generate an ID within the range for Cyrillic keyboards.

Microsoft again (update 2015-12-14)

After I installed my Chuvash keyboard layout and I was glad, suddenly I could not open Word, it just crashed. I didn’t realize  that it was due my custom keyboard layout. How painful, that Microsoft products crash on a custom keyboard layout. Sigh.

Chuvash Latin Script (update 2016-02-06)

I found that ABC Extended Keyboard Layout on Mac lets me write in Chuvash Latin Script using following dead keys:

  • Option b = Breve (ă, ĕ and maybe ĭ)
  • Option u = Diaeresis (ü)
  • Option c = Cedilla (ş)
  • Option v = Caron (š)

Other turkic languages

  • ı: Option+w and then i
  • ə: Shift+Option+: and then a

 

 

Daniel Chronlund Cloud Tech Blog

News, tips and thoughts for Microsoft cloud fans

Вула Чăвашла

VulaCV - Чăвашла вулаттаракан сайт

Discovering SharePoint

And going crazy doing it

Bram de Jager - Architect, Speaker, Author

Microsoft 365, SharePoint and Azure

SharePoint Dragons

Nikander & Margriet on SharePoint

Mai Omar Desouki

PFE @ Microsoft

Cameron Dwyer

Office 365, SharePoint, Azure, OnePlace Solutions & Life's Other Little Wonders

paul.tavares

Me and My doings!

Share SharePoint Points !

By Mohit Vashishtha

Jimmy Janlén "Den Scrummande Konsulten"

Erfarenheter, synpunkter och raljerande om Scrum från Jimmy Janlén

Aryan Nava

DevOps, Cloud and Blockchain Consultant

SPJoel

SharePoint for everyone

SharePointRyan

Ryan Dennis is a SharePoint Solution Architect with a passion for SharePoint and PowerShell

SharePoint 2020

The Vision for a Future of Clarity

Aharoni in Unicode

Treacle tarts for great justice

... And All That JS

JavaScript, Web Apps and SharePoint

blksthl

Mostly what I know and share about...