Creating an Organizational Chart Using Powershell

Ocak 12, 2021

There are many properties of a user account that are neglected and left untouched most of the times, like Description and Manager fields, in the Active Directory domain.

If we enter relevant info into these fields, we can get more information about user; its title, its manager and its direct reports.

On the other hand, it is understandable too not to enter such info because info about users changes frequently so, it must be updated periodically.

But let’s assume we have domain that those info about users entered correctly:

In the above figure, description field shows that there are a CEO, some VPs and Directors. The rest are the soldiers.

And, in addition to the Description field, Manager field for users is entered correctly too, like in the following figure:

Then the following code will create a nice organizational chart:

$list=get-aduser -filter * -Properties * | select name,description,manager #get the users’ name,description and manager properties

New-HTML -OnlIne -FIlePath $PSScrIptRootMyDIagram.html {

New-HTMLDiagram {

New-DiagramOptionsLayout -HierarchicalEnabled $true

New-DiagramOptionsPhysics -Enabled $true -HierarchicalRepulsionAvoidOverlap 1 -HierarchicalRepulsionNodeDistance 100

$list | foreach {

$desc=$_.description

$nameuser=$_.name

switch ($desc){

"ceo" {new-diagramnode -label $nameuser -level 0}

"vp" {new-diagramnode -label $nameuser -level 1}

"director" {new-diagramnode -label $nameuser -level 2}

default {new-diagramnode -label $nameuser -level 3}

}

}

$list | foreach {

$manag=$_.manager -replace "cn=" -replace "ou=" #get rid of cn and ou statements in the manager field

$manag=$manag.substring(0,$manag.indexof(",")) #take upto the first comma

$nameuser=$_.name

new-diagramlink -from $nameuser -to $manag

}

}

}-ShowHTML

Do not forget to install the necessary module first, if you didnot do it before:

Install-Module PSWriteHTML

The chart will be:

Psikolojik Destek Gerekli

Ocak 12, 2021

İki konuda psikolojik destek gerekli.

Birincisi akıldan, mantıktan uzak olduğunu düşündüğümüz insanları yola getirme konusunda.

Bu insanlar Amerika’da Trump yanlıları, İngiltere’de Brexit yanlıları, Türkiye’de Erdoğan yanlıları.

Bu insanlar konuşmaya, tartışmaya, akla, mantığa gelmiyorlar (gerçi bizim tarafta da çok var akla-mantığa gelmeyeni).

Gözü kapalı Trump’ın, Johnson’ın ve Erdoğan’ın arkasından gidiyorlar, ne derseniz kabul etmiyorlar.

Bu noktanın psikologlar tarafından analiz edilmesi gerek ve onları aşağılamadan, gülünç duruma düşürmeden nasıl kazanırız diye düşünmek gerek.

Çünkü bu kesimin verdiği oylarla hepimizin kaderi belirleniyor.

İkinci nokta kadın-erkek ilişkileri konusunda.

Kadın cinayetleri nasıl önlenebilir?

İstanbul Sözleşmesi, yasalar, önlemler gerekli ama yeterli değil.

Kadın cinayeti öykülerine baktığımızda önemli bir miktarında katillerin de zavallı insanlar olduklarını görüyoruz.

Kadınları öldürdükten sonra intihara kalkışanı çok.

Yani, şiddetleri yalnızca kadına yönelik değil, kendilerine de yönelik.

Peki ama niye?

Toplumun erkeklere biçtiği roller, değerler var ve bu erkekler bu rollerini yerine getiremiyorlar ve gururları yaralanıyor, kişilikleri hasar görüyor, takıntı geliştiriyorlar ve feci şiddet eylemlerine girişiyorlar.

Kadınların sorunlu erkeklerle başa çıkma konusunda desteğe gereksinimi var.

Çünkü şiddet söz konusu olduğunda yalnızca güvenlik güçlerine güvenemezler, onlar ilgilensin diyemezler; kendilerinin de çaba göstermesi gerek.

Bu haksızlık olarak görülebilir: Neden sağlıksız bir erkekle ben başa çıkmak zorundayım diye düşünebilirler.

Ama söz konusu olan sonuçta kendileri.

Olumsuz durumlardan birebir kendileri etkilenecekse en çok çabayı da kendileri göstermeli, bu konuya daha çok kafa yormalılar.

Ulus Baker hakkında

Ocak 8, 2021

Ulus Baker son yıllarda giderek daha fazla köpürtülen birisi. Derin, en derin, çok derin birisi olduğu iddia ediliyor.

Yazılarını (ki son derece az yazısı var) okuyan, videolarını izleyen kişilerin genel tepkisi “vay be, adam ne derin şeyler söylüyor, o kadar derin ki anlamıyorum. Söz, anlamaya çalışacağım” oluyor.

Halbuki anlamıyorsanız bu çoğunlukla sizden değildir, sözü edendendir.

Ulus Baker olduğu düşünülen kişi değildir; iyi bir felsefeci, sosyolog, sinema eleştirmeni değildir.

Yazdıkları ya da konuştukları çoğu zaman boş, tartışmalı ya da düpedüz yanlıştır.

Açıkçası ölümünden önce uzun yıllar ODTÜde öğretim üyesi olarak kalması bile skandaldır.

Siz de dediklerini bir araştırabilirsiniz. Örneğin, aşağıdaki videoda İzlenimcilerin adlarını Paris’teki sokak aydınlatmacılarından aldığını iddia ediyor.

İnanılır gibi değil!

İzlenimcilere bu ad onları eleştiren sivri dilli bir eleştirmen tarafından verilmiştir.

Wikipedia’daki ilgili kısım şöyle:

“The Impressionists faced harsh opposition from the conventional art community in France.

The name of the style derives from the title of a Claude Monet work, Impression, soleil levant (Impression, Sunrise), which provoked the critic Louis Leroy to coin the term in a satirical review published in the Parisian newspaper Le Charivari.”

Paris’te sokak aydınlatmacılarına izlenimci (impressionist) dendiği iddiasıysa büyük olasılıkla sağlıksız kafasının başka bir uydurması.

Ulus Baker Üçlemesi (1) – YouTube

Creating Sopranos Family Tree Using Powershell

Ocak 7, 2021

I read an awesome article about creating graphical diagrams using Powershell at the following link:

Creating Office 365 Migration Diagram with PowerShell – Evotec

I decided to create other diagrams and first diagram is about the Sopranos Family Tree.

I feed the family members and their positions in the family using an array. Then, my code reads the array, created necessary nodes and links.

Before running the code, you must install the diagram creating module entering this command:

Install-Module PSWriteHTML

The code is here:

$Family=@(“Junior Soprano”,”Boss”,”Tony”,”Underboss”,”Sylvio”,”consigliere”,”Pauli”,”Capo”,”Bacala”,”capo”,”Furio”,”Soldier”,”Eugene”,”Soldier”,”Christopher”,”Soldier”,”Vito”,”Soldier”,”mike”,”capo”)
$nameboss=”
$nameunderboss=”
$nameconsigliere=”
$namecapo=@()
$namesoldier=@()
$length=$Family.length

New-HTML -Online -FilePath $PSScriptRoot\MyDiagram.html {
New-HTMLDiagram {
New-DiagramOptionsLayout -HierarchicalEnabled $true
New-DiagramOptionsPhysics -Enabled $true -HierarchicalRepulsionAvoidOverlap 1 -HierarchicalRepulsionNodeDistance 100
$i=0
while ($i -lt $length) {

switch ($family[$i+1]){
“boss” {
New-DiagramNode -Label $family[$i] -level 0
$nameboss=$family[$i]
}
“underboss” {
New-DiagramNode -Label $family[$i] -level 1
$nameunderboss=$family[$i]
}
“consigliere” {
New-DiagramNode -Label $family[$i] -level 1
$nameconsigliere=$family[$i]
}
“capo” {
New-DiagramNode -Label $family[$i] -level 2
$namecapo=$namecapo+$family[$i]
}
“soldier” {
New-DiagramNode -Label $family[$i] -level 3
$namesoldier=$namesoldier+$family[$i]
}
} #endof switch

$i=$i+2
} #endoof while

New-DiagramLink -From $nameunderboss -To $nameboss -ArrowsToEnabled
New-DiagramLink -From $nameconsigliere -To $nameunderboss -ArrowsToEnabled
$namecapo | foreach { New-DiagramLink -From $_ -To $nameunderboss -ArrowsToEnabled}
$namesoldier | foreach {
$lengthCapo=$namecapo.length
$capoDestinationIndex=get-random -minimum 0 -maximum $lengthCapo
New-DiagramLink -From $_ -To $namecapo[$capoDestinationIndex] -ArrowsToEnabled
}

}

} -ShowHTML

And the resultant diagram is:

Kamplara Ayrılmak Yerine Birleşmek ve Anlamaya Çalışmak

Ocak 7, 2021

Sabah gazetesinin gazete olduğu zamanlarda okuyucularına verdiği bir kitap vardı: Yirminci Yüzyılın ve Modern Çağın Sonu.

Yazar kitabında Yirminci Yüzyılı anlatırken ilginç bir ifade kullanıyordu. Yaklaşık olarak şöyle bir şeydi:

"En uygar uluslar bile zalimliğe, diktatörlüğe bir demirin pasa yakınlığı kadar yakındır. "

Kapağındaki fotoğraf da bunu doğrular gibiydi: Dağılan Yugoslavya’da bir Sırp askeri, yerde yatan bir Bosnalı kafasını biraz doğrulttu diye kafasına bir tekme atıyordu.

Dün Amerika’nın başkentinde bağnaz bir topluluk tarafından yaşatılan şiddet yazarın bu saptamasını doğruluyor.

Demokrasi ve cumhuriyet yıkılmaz-bozulmaz şeyler değil. Sürekli olarak demokrasiyi ve cumhuriyeti yıkmak isteyen akımlara karşı uyanık olmak gerekiyor.

Bir başka nokta da Amerika’nın sanki farklı uluslardan oluşuyor gibi görünmesi. Sağlıklı bir demokrasi için toplumun bu kadar kamplara ayrılmamış olması lazım.

Aynı durum Türkiye için de geçerli.

Farklılıkları derinleştirmek, karşıtları şeytanlaştırmak yerine onları daha fazla anlamaya çalışmalıyız.

Daha olgun, daha hoşgörülü, daha barışçı olmalıyız.

Yoksa bizi bekleyen yalnızca acı, vahşet, şiddet.

Kemalistler, Türban, Parti Politikaları

Aralık 31, 2020

Fikri Sağlar’ın türbanlı bir hakime güven duymayabileceğini söylemesi büyük bir tartışma yarattı.

Kemalistler kadın-erkek eşitliğine inanır, kadınların ikinci planda kalmamasını ister, kadınların eğitimiyle, yaşayışıyla çağdaş olmasını ister.

Tabii bu isteklerin arasında kadının türbandan ve diğer giyim kısıtlamalarından kurtulmasını ister. Doğal bir sonuçtur bu.

Ama bu istek aklı başında olduğu varsayılan üniversiteli kızların, çalışma çağındaki kadınların kendi istekleriyle kapanması durumunda bir duvara da toslar.

Kadınların çağdaş olmasını istiyoruz, özgür olmasını istiyoruz ama bir kesim özgür kadın başını kapatmak istiyor.

Bu durumda Kemalistler ne yapacak?

Kemalistler olarak kafamızın net olmadığını söyleyebiliriz. Bir yandan kadınlar üzerinde İslami kısıtlamaları istemiyoruz.

Bir yandan da kişisel kalması gereken kararlara karışmak istiyoruz.

Bu konunun Kemalist çevrelerde tartışılması, politikalar üretilmesi gerek.

Ama en başta CHP olmak üzere, bu konuda tartışma, politika üretimi yok.

Kemal Kılıçdaroğlu’nun bu konuda 2010 yılında Radikal’de yayınlanan röportajı bu durumu gözler önüne seriyor:

Kılıçdaroğlu türban sorununu çözeceğini söylüyor. Nasıl çözecek? “Onu bize bırakın”dan başka bir açıklama yok.

Şu anda Ak Parti’nin bir çözümü var türban konusunda ve fiilen bu çözümü yaşıyoruz. CHP de biraz ölüye yatıp bu fiili durumu kabulleniyor.

Ama Fikri Sağlar örneğinde olduğu gibi, önde gelen Kemalistler de sıradan Kemalistler de bu fiili politikadan tam memnun olmadığı için ara ara memnuniyetsiz çıkışlar yapılıyor.

Politika üretimi için bu konudaki soruları somutlaştırmakta yarar var:

1) Üniversitede türban serbest olmalı mı?

2) Lisede türban serbest olmalı mı?

3) Ortaokul ve ilkokul düzeyinde türban serbest olmalı mı?

4) Devlet çalışanları için türban serbest olmalı mı?

5) Türban dışında, örneğin kara çarşaf serbest olmalı mı?

6) Türban serbest olacaksa ama kara çarşaf serbest olmayacaksa bir giysi kuralı mı getirmeli? Sınır nerede çizilmeli?

7) Kendi özgür iradesiyle değil, baskıyla kapanmak zorunda kalan kadınlar için neler yapılacak? Böyle kadınlar var mı var. En büyük örneği Emine Erdoğan. Emine Erdoğan bir röportajında abisinin baskı ve telkinleriyle başını kapatmaya ikna olduğunu söylemişti. 

Aykut Erdoğdu’nun Palavraları

Aralık 30, 2020

Ak Parti iktidarının yolsuzluklarını ortaya çıkarmanın en kötü yolu, yolsuzluk iddialarının abartılmasıdır.

Aykut Erdoğdu son 20 yılda 1 trilyon “dolar”lık rüşvet pazarının oluştuğunu, bunların da 5 trilyon dolar zarara yol açtığını iddia ediyor.

Bir de bunu ortalama hesaplarla bulmuş. Ortalama hesap ne demekse.

Türkiye’nin layığının Ak Parti olmadığını söylüyoruz.

Ama Türkiye’nin layığı şu anki CHP de değil.

Aykut Erdoğdu hiç değil.

Zayıf Devlet Adamları ve İngiltere

Aralık 29, 2020

İngiltere Thatcher ve Blair gibi güçlü politikacılar üretmekte güçlük çekiyor.

Son zamanların en güçlü politikacısı Boris Johnson bile bu iki dev politikacının yanında sönük kalıyor.

Ama bu durum İngiltere’nin güçlü ve büyük devlet olma özelliğini pek etkilemiyor görünüyor.

Aşağıdaki şekilde görülebileceği gibi, İsrail ve Bahreyn gibi iki ufak ülke bir yana bırakılırsa, Covid aşısının uygulanmasında açık ara en başarılı ülke İngiltere.

Doing Some Biology Using Powershell

Aralık 28, 2020

There is a wonderful article at the following link explaining what is the Covid virus and its vaccine like, from an IT guy’s perspective.

Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine – Articles (berthub.eu)

From that article, we learn that DNA is like hard disk, RNA is RAM memory and BioNTech/Pfizer vaccine uses RNA segments, a novel approach in vaccine technology.

The aim of the vaccine is to inject some RNA segments of the virus into the body so that body can develop necessary arms against the actual virus.

A segment of the virus RNA is like:

AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU

The DNA and RNA consists of molecules, called nucleotides. They are A, C, G and U. And these nucleotides are grouped into three-nucleotide parts, called codons, like AUG above.

We expect the RNA in the vaccine will be the same but they are not. Vaccine RNA is somewhat different:

AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU

Some nucleotides in the vaccine are replaced by some other ones and this does make any difference because resultant three-nucleotide part are synonyms.

Ok, they are synonyms but why are they replaced at all, just for the sake of being synonyms?

For some reason, this conversion made by replacing the parts in virus with their synonyms makes the vaccine more efficient.

And after this conversion we have this table:

The table shows virus and vaccine RNA and replaced nucleotides are marked by an exclamation mark under them.

When we look at the strings and the resultant table, it seems easy to create the same table using powershell string and array manipulations.

First approach to do that may be using compare-object command two compare arrays and display the differences, after creating arrays of three-nucleotide parts out of the virus and vaccine strings.

The following code can be used for this purpose:

$RNAVirus="AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU" -split " "

$RNAVaccine="AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU" -split " "

Compare-Object -ReferenceObject $RNAVirus -DifferenceObject $RNAVaccine

The above command will create the following output:

We may love the output because it clearly shows what is different in the strings, but other than us nobody will love it, especially the biologists.

So, we must create exactly the output shown in the first figure.

Then, second approach may be using the strings as arrays and comparing the characters one by one and saving the result in a new array, then displaying them successively.

The code for the second approach is:

$RNAVirus="AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU"

$RNAVaccine="AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU"

$length=$RNAVirus.Length

$result=@{}

$resultantstring=""

for ($i=0;$i -lt $length;$i++) {

if ($RNAVirus[$i] -eq $RNAVaccine[$i]) {

$result[$i]=" "

}

else {

$result[$i]="!"

}

}

$RNAVirus

$RNAVaccine

for ($i=0;$i -lt $length;$i++) {

$resultantstring=$resultantstring+$result[$i]

}

$resultantstring

This code produces the exact output we want:

In the article, it is said that exact array of nucleotides is a couple of thousands long. If a biologist asks us to do a similar thing for all those thousands of nucleotides, then we should change our approach once again because it will not be nice to display them in longitudunal lines.

We may change the code a little bit and display the arrays column-wise. The code will be:

$RNAVirus="AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU"

$RNAVaccine="AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU"

$length=$RNAVirus.Length

$result=@{}

for ($i=0;$i -lt $length;$i++) {

if ($RNAVirus[$i] -eq $RNAVaccine[$i]) {

$result[$i]=" "

}

else {

$result[$i]="!"

}

}

for ($i=0;$i -lt $length;$i++) {

#$RNAVirus[$i],$RNAVaccine[$i],$result[$i]

$RNAVirus[$i]+" "+$RNAVaccine[$i]+" "+$result[$i]

}

And the output may make everyone happy, all the time:

Now it is better suited to display thousands of nucleotides.

Asgari Ücret

Aralık 28, 2020

2021 için asgari ücret açıklandı: 2825 TL. Yüzde 21’lik bir artışa karşılık geliyor. İyi mi?

Arkadaşlarım genelde bu rakamın iyi olmadığını düşünüyor. İyi rakam ne? 3 bin küsur. Neden 2825 TL kötü de 150 TL fazlası iyi?

Bence asgari ücret iyi. İyi olup olmadığını şuradan anlayabiliriz: Bu ücrete çalışmaya razı olan çok kişi vardır. Bu razı olma yalnızca işsiz sayısının fazla olmasından kaynaklanmıyor. Yani, bir çeşit fırsatçılık değil işverenler açısından. Hatta işverenler, özellikle küçük olanlar, asgari ücretin bu şekilde "yüksek" olmasından rahatsızlar. Çünkü işçi bu rakamı net alırken işveren bunun üzerine işçinin vergisini ve SGK primini de ödüyor.

Daha iyi bir çözüm ne olabilir?

Birkaç seçenek var:

1) Asgari ücret diye bir şeyin olmaması. Asgari ücret diye bir şey olmasa bunun üzerinde ya da aşağısında bir ücret belirlenebilir. Bu göründüğü kadar kötü bir şık değil. Asgari ücret yok diye işverenler en az ücreti vermeye çalışmaz. İşçiye hak ettiğinden az bir ücreti teklif eden işveren çalıştıracak kişi bulamaz.

2) Asgari ücret yurt çapında değil bölge bölge ya da şehir şehir belirlenir. Çünkü 2825 TL İstanbul’da yaşayan birisi için düşük görünürken Yozgat’ta yaşayan birisi için çok çok iyi görünebilir.

Her yıl asgari ücret iyiydi-kötüydü diye tartışmaya girişmeden bu seçenekleri düşünmekte yarar var.