Tag: opinion

  • Don’t Schedule The Update On Your Tesla

    Don’t Schedule The Update On Your Tesla

    I had an incident that was as fortuitous as the alignment of the holes in Swiss cheese and, frankly, I wanted to take the vehicle to an open field, pour petrol on it and burn it. Fortunately, I am calm now and I think I will pay special attention to prevent that from happening again.

    Let me tell you what happened first. The fire alarm went off in the building next to our apartment and soon after I saw three or four fire trucks, police cars and ambulances and I realised how serious the situation was. There was an air of panic and I tried to stay as calm as possible and take precautions. I even didn’t have time to think about if there was a possibility of the fire spreading or not. At that moment I just wanted to get my family into the car and get away from the crowd for a while. We wouldn’t get cold and my wife and kids could sit in the car for a long time, or even sleep if necessary. I had in mind to switch on the camping mode, listen to music, put on cartoons and keep my daughters occupied.

    Guess what happened? No, it was charged, don’t worry. Even if the charge was 10%, that was no problem. There was a bigger problem:

    Yeah, when I needed the car the most, it started updating for half an hour. The car wouldn’t move, I couldn’t get the air conditioning to work. I also couldn’t open the doors in my first try, I had to use the manual handle to get out. I had to deal with this stupid thing while my neighbours were leaving the building with or without their cars. And Tesla didn’t help me when we needed it most. We had to wait outside in the cold.

    Now that I think about it, I realise that scheduling the update is actually a feature that shouldn’t be there. When I first got the car, I tried it in a supermarket car park to learn how to do the update. It took 45 minutes, and if it had taken another five minutes I probably would have got a ticket, Germany is very strict about parking. I then got into the habit of doing these updates at night, but I have learnt first hand that this is also a very bad idea, as you never know when you will really need the car.

    I have some questions to Tesla: Does it really make sense to you that for one reason or another you can’t drive the car for 45 minutes? I am okay with 2-3 minutes, but how about 45 minutes? Another question, I can imagine how technically difficult this is, but why can’t I drive the car during the update? At least that should be possible for a short distance to be able to get away from the scene, and at least I should be able to use the air conditioning. I also have to say that the black screen during this update is very annoying. I didn’t know until I tried it that I could wake up the car by touching the screen randomly, or at least use the door openers. I still don’t know if it was possible to stop the update somehow. It would be better to see some instructions instead of a black screen.

    For now, I will keep the following rules in mind for future update:

    • Update the software as infrequently as possible. Read the changelog and if there is no important update, skip it.
    • If you’re going to update, make sure you don’t really need a car. Choose a time and place where it is easier to get a taxi, take the bus or hire a car for a short time.
    • Ask for an update when you return the car to the service center, or ask for an update when you collect the car and carry it out there.

    Many EV lovers tell that you don’t need to leave your car to the service for updating the software, however it’s not such a harmless advantage. I would never ignore the positive aspects that an electric car has brought to my life, but at that moment any internal combustion engine car would have been more than enough, and believe me, I wanted it. I hope that never happens to anyone else.

  • The Future of Mobility

    I wanted to repost the part about the mobility of an article I wrote in Turkish for 2024 Trends in the Software World on my blog. The topic of mobility is still in my focus and I am still following the developments closely.


    … Now I will end my article with a topic I haven’t mentioned before: Electric vehicles, or in general terms, automobiles. We have entered a strange period that will closely concern the software industry. It is like the Quartz revolution in watches (or the Quartz crisis if we look at it from the Swiss perspective).

    To put it simply, a Japanese wristwatch company called Seiko produced the first commercially mass-produced quartz wristwatch in the world, the Astron model. In appearance, there were still hour and minute hands on the dial, but instead of mechanical parts, it was powered by an electrical technology. These watches could show the time accurately for longer periods of time than mechanical watches, were lighter, and as production became easier and costs decreased, they took over the watch market. Mechanical watches currently have a certain user base, and there are very valuable companies that produce these watches.

    Now we see something similar in the automobile market. An American company called Tesla brought electric vehicles into our lives, then Chinese battery and electric vehicle companies sprang up like hotcakes, and European automobile manufacturers fell into the same situation as Swiss watch companies. These electric vehicles have very powerful computer hardware and operating systems, and I think this will be a new field of work for software developers.

    Cars with internal combustion engines will continue to exist, just like mechanical watches; however, the mobility experience that electric vehicles provide to the user makes us think that we need to look at those vehicles with a different perspective. I just imagine, there is a screen in the middle, being able to put it in camping mode and sleep in the car all night without getting cold, being able to play games, listen to music, have a living space where you can isolate yourself in a capsule, being able to connect to the internet and download applications, being able to do things in the car that you can do on your phone, being able to control the car from your phone or computer, being able to remotely monitor the vehicle’s data, being able to access its cameras… I could list more, there are many possibilities and do you know who is needed to do these? Yes, you guessed it.

  • Apple Passwords, Finally!

    Authy was my bad decision to use it for two-factor authentication. I remember that I chose it because of its ability to work on both PC/Mac and mobile phone, so if I work on a PC, I don’t need to use my phone to see the validation code. The GUI was very bad on all platforms, but it was working at least. Authy is sunsetted, the team explained on their website and stated that it will no longer be supported after March 19, 2024.

    On the other side, I was using KeePass for storing passwords, backup codes, and other secret texts. The reason for the choice of KeePass was the same: it works on multiple platforms and devices. But there were some problems:

    • I need to find a way to sync the passwords myself. All KeePass clients have their options, and keeping the files in iCloud is one of them.
    • Every client comes with a missing feature or a bug. The fact that the application was paid was not a problem for me, but it’s not a good idea to make payment for each client. Some clients support multiple platforms, but they don’t work as well on all platforms.
    • I was using KeePassXC on MacOS and KeePassium on iPhone. If I decide to go back to Windows, I will have to find a client for that too. I really don’t have time to investigate it…

    In short, I was not happy with either of them and I started to search for an alternative app. My expectations are:

    • If it’s possible, I want to use one app for two-factor authentication and password storage to reduce app requirements and subscriptions.
    • I want to choose the sync method myself. You know there were leaks in some applications like LastPass and OnePassword, and there’s no a trustable way of syncing the passwords so each new syncing method means another system that must be secured. I want to continue to use my preferred cloud storage service for syncing the passwords.
    • And, of course, I still need to access my passwords from multiple devices.

    I would like to share with you what I prefer at the end of this article, but I really could not find a long-lasting solution to meet these needs. All I’m doing now is waiting, Apple announced that it is developing a new password manager called “Passwords”. I hope it will solve my problems completely.

    The existing password application in Apple is not a separate application; it’s a part of Settings. However, you can use it for two-factor authentication and storing passwords. For all other secret texts like backup codes and the secret keys of your blockchain wallets, you can use the Notes app, but don’t forget to lock the notes for added security.

  • Consumer

    For good things in life, you need labour, patience, and time.

    • To draw a picture,
    • To play an instrument,
    • To program software,
    • Or to produce something,
    • Even to complete a book,
    • To translate a text,
    • To tell the troubles,
    • To write what you think,
    • To prepare a broadcast,
    • For everything.

    Just sharing something in social media and consuming it is easy.

  • What age do we live?

    Our technology is not so advanced to be an eye or an ear for us.
    Or we’re not in an age where we don’t need our body yet.

  • Spreadsheet applications

    Spreadsheet applications are the most functional applications I’ve used. Excel, Gnumeric, Google Sheet, OpenOffice Calc or whatever, it doesn’t matter. You can use it as task management like Trello, make daily – weekly – monthly plans, store and transfer data, and follow your financial situation. It’s like a Swiss army knife and not a new invention.

    I’ll update this article when I find a more functional application.

  • Not Tutma Alışkanlığı Kazanın

    Not Tutma Alışkanlığı Kazanın

    Amir’in Reactive vs. proactive development yazısını okuyunca (hayır, reaktif / proaktif programlama paradigmaları ile ilgisi yok), benimsediğim yaklaşım daha bir pekişti. Ben sadece işte değil, hayatımla ilgili verdiğim birçok kararda proaktif bir yaklaşım içinde oluyorum; ama olası bir krizde ne yapacağımızı da iyi bilmek gerekiyor. Bu zamana kadar hiç kapıda anahtar unutmamış olmam, bundan sonra da unutmayacağım anlamına gelmiyor.

    Bir örnek üzerinden gidelim. Öğrencisiniz, bir sebepten sınavlara çalışamadınız, son günündesiniz. Ne yapmalı? Eğer biraz proaktif olabilseydiniz şunları yapabilirdiniz:

    1. Her şeyden önce dersi dinlerdiniz. Hocanızın önemini vurguladığı yerleri not alırdınız. Altını renkli kalemle çizer, haftasonları bir göz atardınız, konuları pekiştirip bir dahakinde çabuk anlardınız.
    2. Kendinize en çok fayda getirecek çevreyi seçer ve üyeleriyle aranızı iyi tutardınız.
    3. Dersi geçmiş arkadaşlarla irtibat kurup önerilerini dinlerdiniz vesaire.
    4. Aynı sınıftakileri davet ettiğiniz bir Whatsapp grubu kurardınız veya var olan gruba katılırdınız. Sosyal bir grupta olduğunuz için aldığınız kadar vermeye çalışırdınız.

    Ama şimdi çalışmadınız ve krizdesiniz, ne yapabilirsiniz?

    1. Kahve — kola karışımı denersiniz, bütün gece sınavı geçmenizi sağlayacak kısımlara çalışırsınız.
    2. Sınavla ilgili herhangi bir duyum, tüyo var mı araştırırsınız.
    3. Sınavda kopya çekersiniz.
    4. Dersi bırakır, ümidinizi kaybedersiniz.

    İş hayatında da benzer tecrübeler yaşıyoruz. Krizin olmaması için önlemler almak gerekiyor; ama kriz olduğunda da elimiz kolumuz dolanmaması gerekiyor. Sakince düşünüp, o krizi çözebilecek en iyi yöntemi bulup uygulamak gerek. Reaktif modu krizden çıkmanıza yardımcı olur, proaktif modu ise krizi önlemenize. Benim en çok sıkıntı çektiğim konular öncelikleri sıralama ve işin kapsamını zamana göre daraltma. Bunun için not alma alışkanlığımı geliştirmeye çalışıyorum. Şöyle bir akış diyagramı düşünün:

    1. Uzun emek isteyen bir işin ortasındasınız. Proaktif moddasınız. Bıraksanız, tekrar başlamanızın maliyeti en az 1 saat.
    2. Bir iş geldi, ne yapmalı? Reaktif moda gir:
    3. Eğer acil değilse not al. Basitçe bir not, iş açmak, kendine atamak falan değil. Not defterine tek satır yazmak bile olur.
    4. Eğer acilse, bu sefer şuan yaptığın işin en son kaldığın yeri not al. Ben en son bilmemne işini yapmak için bir modele yeni bir field ekledim ve migrationları yapıyordum, bundan sonraki iş bu özelliği arayüzde kullanılabilir hale getirmek gibi.
    5. Aciliyetine göre önünüzdeki işi bitirdin, sırada ne var? Notlara bak ve önem sırasına göre bitir.
    6. Notlar bittiyse, iş takip sistemindeki işlere geri dön.
    7. Bu döngüyü her iş için devam ettir.

    Bu döngü, anlattığım kadar basit olmayabiliyor. Hele ki proaktif moddan reaktif moda geçiş sanıldığı kadar kolay değil. Ama basit notlar tutmayı mutlaka deneyin. Ben bunun için Evernote kullanıyorum.

    Unutmamanız gereken iki şey var. Birincisi, eğer siz de benim gibi müzik dinleyerek iş yapıyorsanız, beyniniz artık daha fazla işi bir arada kaldıramaz. İnsan beyninin çoklu işleme elverişli olmadığı konusunda çeşitli yazılar var, Multitasking is killing your brain başlıklı yazıyı okumanızı öneririm. İkinci önemsemeniz gereken şeyse, stresiniz. Stres hormonu olarak bilinen kortizol belli bir seviyenin üstüne çıktıkça iş veriminiz bundan oldukça olumsuz etkilenecek. Günümüzün Seri Katili: Stres! başlıklı yazı da stresle ilgili ikinci önerim.

    İşleri önem sırasına göre sıralamak, zaman sınırını göz önünde bulundurarak işi iyi planlayarak yapmak ve işi teker teker yapmayı deneyin. Böylece bitmiş olan işler, bir sonraki işleri de aynı motivasyonla bitirmenize katkıda bulunur. Müsait olmadığınız zamanda da çevrenizdekilere hayır demeyi bilin.

  • Geliştiriciden İşverene Dağıtık Manifesto

    Not: Çok eski bir yazımdır. Aslı burada durmaktadır.

    İdeal bir dünyada yaşamadığımız malum. İşimizi yaparken birçok problemle karşılaşıyoruz; bağırarak yanımızda telefonla konuşanlar, oje sürerken kokusunun ne kadar rahatsız edici olduğunu bilmeyenler, laptopta kullanmak amacıyla bir fare ihtiyacımızı kimin karşılaması gerektiğini tartışanlar veya başkalarına aldırış etmeksizin klimanın ayarlarıyla oynayanlar.. Bunlar her zaman karşımıza çıkacaktır, şuanki dünya düzenini ele alacaksak yapacak çok fazla bir şey yok. Fakat bir nebze de olsa, aklımızdan geçenleri burada manifesto tadında sıralamak faydalı olabilir düşüncesindeyiz. Siz de aynı sıkıntıları yaşıyorsanız, iş arkadaşlarınızla (hatta gücünüz yetiyorsa işvereninizle) paylaşın; maddeler eksik veya yazıyla ilgili eleştiriniz varsa, yorum yazın, forklayın, harekete geçin.

    Sevgili İşverenler

    1. “Sen ne gerekiyorsa bana söyle, işini güzel yapman için gerekli ortamı sağlamak benim görevim” diye düşünüp hareket ederseniz, biz de işimizi düzgün yapmak için elimizden geleni yaparız.
    2. Bize telefon, hat, bilgisayar gibi araçları sağlamanın sizin sorumluluğunuz olduğunu düşünürüz. Tablet, dizüstü bilgisayar, gold konuşma paketi vb. sahibi olmamız bu durumu değiştirmez. Hele bilgisayarımıza normalde tercih etmeyeceğimiz yazılımlar kurmak zorunda kalırsak iyice mutsuz oluruz, bu da işe yansır.
    3. Nasıl ki sizin sağlık ve aile öncelikliyse, bizim için de öyle. İş çabuk bitsin diye fazla mesaiye zorlanmak, sıradaki işler ve ailemiz için yeterli enerjimiz kalmaması anlamına geliyor.
    4. Bir işin ne zaman biteceğine ne biz, ne de siz karar verebilirsiniz. Doğru geliştiriciyi, doğru işte çalıştırırsanız, tahmini süreyi, ne gibi problemlerle karşılaşacağınızı ona sorabilirsiniz. “İki dakikalık iş” diye bir şey yoktur.
    5. Müşteri sabırsızdır, bunu biz de biliyoruz. Bize işleri kısa zamanda bitirmek için psikolojik baskı yapmak yerine, harcanacak fazladan çabanın karşılığını verin.
    6. Acil durumlarda alanımız dışında işlere girebiliriz ama normal günler için görev dağılımı gereklidir. Bir geliştiriciyi hem ön yüz, hem sunucu bakımı, hem de yazılımın geliştirilmesi için kullanmaya çalışırsanız, üstüne üstlük bir de “bizim yeğenin okulunun sitesi var sen çıkarıverirsin aradan” derseniz, o adam kaçar. Biz isviçre çakısı değiliz.
    7. Eğer geleceğimiz ve ailemiz için endişe duyarsak, iş değiştirmemiz çok doğal. Bu nedenle önümüze süreli iş sözleşmesi, verilmiş sözler, hisse vaatleri sunarak bizi kendinize bağlamaya çalışmayın. Ne istediğimizi öğrenin, teklif edin. Bazı şeylerin “zamanında” mutluluğu daha önemlidir. Bir aile, her şeye bedel.
    8. Bizi motive etmek istiyorsanız, projeye ne kadar masraf yaptığınızı, nelerden feragat ettiğinizi anlatmayın. Elbette çalıştığı şirket hakkında bazı bilgiler edinmek güzeldir; ama bize “Eğer bu iş bitmezse, çocuğumuzu keserler.” diyerek işlerin daha çabuk biteceğini, bizim işi bırakmaktan vazgeçeceğimizi beklemeyin. Duygusal sömürüden uzak durun, bizim feragatlarımızı görmezden gelmek durumunda kalabilirsiniz.
    9. Biz uzun süreler için yoğunlaşmamız gereken bir iş yapıyoruz. Her gün toplantı yapmak her ne kadar “önemli iş yapıyoruz” duygusunu pekiştirse de, bizim dağılmamıza sebep oluyor. Toplantı sadece 5 dakika olsa bile bize saatler kaybettirebiliyor. Eğer konu birkaç kişiyi ilgilendiriyorsa, bütün ekibi toplantıya davet etmenin anlamı yok. Maksat herkesi bilgilendirmekse, bunun için e-posta göndermek, şirket içi paylaşım sayfalarında blog girdisi yazmak gibi çok daha az rahatsız edici yöntemlere başvurun.
    10. Bize verdiğiniz maaşın neyi temsil ettiği konusunda bizimle anlaşın. Biz, yaptığımız iş için değil, o işe harcadığımız zaman için ücret talep ederiz. Gün boyunca hiç kod yazmamış olmamız, o gün çalışmadığımız veya o gün için ücret almayacağımız anlamına gelmez. İşte geçirdiğimiz süreye veya yazdığımız kodun satır sayısına göre performansımızı ölçemezsiniz. Mal ölçecekseniz tuğla fabrikası açın, akşamları eve gitmeden sayarsınız.
    11. Bir işi yapmamız, bitirmemiz için ekip ile çalışılmıyorsa veya bütün ekibin ofiste olması gerekmiyorsa, bizim ofiste bulunma zorunluluğumuz saçmalıktan ibarettir.

    Notlar

    • Bazı maddelerin nasıl anlaşıldığı, nasıl yazılmasının daha doğru olacağı konusunda birçok kişinin görüşleri alınmış ve onların görüşleriyle beraber maddeler tekrar tekrar yazılmıştır. Yazıyı yazarken görüş bildiren herkese teşekkürler.
    • Görüş bildirenlerin bazıları kendi yaşadıkları tecrübelerini belli ortak maddelerde paylaşmıştır.
    • 11. maddeyle ilgili olarak, 37signals’in CEO’su Jason Fried’in “Why work does not happen at work” isimli konuşmasını izleyebilirsiniz: http://www.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work.html