Wednesday, December 15, 2021

Khan Academy Progress Update

I have been using Khan Academy to teach my now 9.5 years old son Mathematics since 2019. Right now we are at 6th grade, Variables & Expressions. The main benefit is training my son's attention and persistence. Improving his math knowledge is a nice side effect. Currently he misses 1 in 5 questions (20%) due to lapse of attention.

Sunday, December 12, 2021

Yurt dışında endüstri mühendisliği lisans öğrenimi

Bir tanıdık yurt dışında endüstri mühendisliği lisans öğrenimi konusundaki tavsiye istedi (ne yazık ki bilgisayar mühendisliği istemiyor), Almanya'daki Karlsruhe Teknoloji Enstitüsü'nü tavsiye ediyorum, ayrıntılar aşağıda.

Dünya sıralamasında Türkiye'nin en üst sıradaki endüstri mühendisliği bölümü İTÜ'de, sıralaması 64. Bölüme 2021 üniversite sınavında en düşük 4810 başarı sıralaması ile girilebilmiş. Dünya'da bir numara MIT (Amerika). Avrupa'da bir numara (Dünya'da 9) Delft University of Technology (Hollanda) ancak bölüm Industrial Design Engineering yani endüstriyel tasarım, dili %50 İngilizce. Avrupa'da ikinci sırada (Dünya'da 12) Polytechnic University of Milan var, bölüm üretim ağırlıklı ve dili İtalyanca. Almanya'da birinci sırada (Dünya'da 34) RWTH Aachen University (Business Administration and Engineering - Wirtschaftsingenieurwesen), bölümü üçe ayırmışlar, inşaat, enerji ve makine alt dallarından oluşuyor, eğitim dili Almanca. İkinci sırada Münih Teknik Üniversitesi, üçüncü sırada Karlsruhe Teknoloji Enstitüsü var, eğitim dili Almanca.

İtalya'da çoğu bölümün eğitim dili İtalyanca, devlet üniversiteleri 2500Euro/yıl, özel üniversiteler 15000Euro/yıl [link].

Aachen mühendislik ağırlıklı ve 4 yıl iken Karlsruhe daha iktisat ağırlıklı ve üç yıl [link]. Türkiye'deki üniversite sınavında 50bin sıralama yapan kabul alabiliyor. Almanya'da eğitim nispeten ucuz, öğrencinin geçinmek için ihtiyacı yıllık 10bin Euro. Almanya Türkiye'ye yakın, uçakla 3 saat, son yıllarda daha da artan sayıda Türk üniversite öğrencisi var. Almanya Avrupa'nın en büyük ekonomisi, gelişmiş endüstriyel altyapıya sahip. İyi derecede Almanca bilme gereksinimi bir dezavantaj, bu nedenle bir yıl Almanya'da sıkı bir dil eğitimi almak gerekli, lisans eğitiminin en pahallı yılı dil eğitim yılı.

Lisans eğitimi için ülke seçimi yaparken üniversite eğitiminden sonra hangi ülkenin size daha çok hitap ettiğini de düşünmenizde yarar var. Ben çocukluğumda 5 yıl Almanya'da güzel anılar yaşadığım için Almanya taraftarıyım. Almanya'da olması ve işletme/iktisat odağı nedeniyle Karlsruhe Teknoloji Enstitüsü Endüstri Mühendisliği'ni tavsiye ediyorum. Üniversite okumanın ilk aşaması olan dil kursu için üniversiteden şartlı kabul almaya uğraşmayın, dil öğrenme vizesi alın. Vize almayı kolaylaştırmak için Türkiye'de A2 seviyesinde Almanca bildiğinizi sınavla belgeleseniz iyi olur, sizin Almanya konusunda ciddi olduğunuzu gösterir.

Almanya'da Fachhochschule ve Universität olmak üzere lisans diploması (BSc) veren iki yüksek öğrenim tipi var. Fachhochschule uygulama ağırlıklı (İngilizcesi University of Applied Sciences), Universität teori ağırlıklı, ikisinden sonra da mastır yapabiliyorsunuz. Mühendislik için önerim Fachhochschule çünkü mühendislik %10 teori, %90 uygulama. Bkz. Uni vs Fachhochschule - Vorteile & Nachteile. Okurken alanınızla ilgili bir işte çalışıp hem tecrübe hem de para kazanmak için Duales Studium tavsiye ediyorum.

Monday, November 22, 2021

Hosting a website on your local computer

If you want to host your website on your local Windows PC, you have to run a local web server:

  1. Setup IIS (it comes with Windows 10+). Use a port other than 80. Copy your website files to the folder that IIS recognizes. 
  2. Verify that on your browser, you can see your website when you type localhost:<Port> to the address bar.
  3. Add port to Windows Defender Firewall inbound rules.
  4. Add port to your modem so that the modem forwards traffic on that port to your local IP address. On my modem it is done in NAT Forwarding - Virtual Servers
  5. Verify that your website is online by turning off wifi on your mobile phone and typing http://<your global IP>:<Port> into your mobile browser address bar.
You cannot use https without a domain name for your local website because "In order to get a certificate for your website’s domain from Let’s Encrypt, you have to demonstrate control over the domain", i.e. you have to attach your IP address to a domain name.
Links related to SSL certificate:

Sunday, March 28, 2021

Follow marker with Raspberry Pi 4 and OpenCV

As part of a demonstration we converted an old 3D printer to a marker follower. The marker is glued on a box that is held and moved above the 3D printer by the operator. We used a Raspberry Pi 4 with camera and OpenCV:

You can find the code on GitHub.

Wednesday, February 17, 2021

Fantasy and quality

Estimating how long a complex project will take is difficult, especially if it contains software development. Experienced engineers can estimate cost based on past projects. However, I am puzzled to see time and time again senior managers who come up with overly optimistic schedules. 

One reason might be to motivate employees to work harder. The novices will think that a short duration overtime will solve the crisis and they will be back to normal where in fact it will take months. You can fool people only once, and when they find out, you won't be able to motivate them again.

Another reason is to avoid conflict with upper management and after some time, starting to believe in your own optimisim, see Waltzing with Bears.

When management continues to live in fantasy land, after a couple of months people will be disillusioned, morale drops and the project takes longer with lower quality than would be the case at a normal pace. This type of mismanagement is only rational if the manager is expecting a change of position soon, meaning that he/she won't have to deal with the mess. 

Quality suffers because everyone thinks that this will be over quickly with a firm push, resorting to quick and dirty fixes, reasoning that the mess will be cleaned up soon. The longer the crisis mode drags on, the more technical debt is accumulated, which in the end becomes so large that no one is eager to refactor the system, fearing that the slightest change will break it. This leads to high cost maintenance and can cause catastrophic failures whose root cause can be impossible to find. Due to endless rework and troubleshooting, total cost of project increases dramatically.

Intellectual work like software development requires good concentration which in turn requires a rested, motivated individual. Long overtimes are like killing the goose that laid golden eggs.

My suggestions in a nutshell:
  1. If you are a manager, avoid more than a couple of weeks per year overtime. Have a look at my reading list. Always look at past data, be aware that avoiding conflict with upper management might lower your stress in the short run but it has a high price down the road.
  2. If you are one of the "managed" ones, politely point out the risks. But if you see that no one is interested in that, shut up and concentrate on improving the quality of your work and documentation so that when disaster strikes, you will be able to quickly demonstrate that your piece of work is not to blame. Read Death March.