Friday, May 08, 2015

Self learning update for May 2015

See my autodidact post for an introduction of what this is about.

04 May 2015: Took one week off to port my Java game to Android (50% of my time), hobby electronics (25% of my time) and German improvement (25% of my time). I started with Developing Android Apps course but made no progress due to technical difficulties:
  • Android Studio is painfully slow on my laptop, Samsung ATIV Book 9 Lite (NP905S3G). Specs: Windows 8.1, Quad Core 1GHz, 4GB RAM, 40GB free disk space.
  • When I tried to use the emulator, I got "ERROR: x86 emulation currently requires hardware acceleration". Tried to install Intel HAXM, got "Computer does not support Intel Virtualization Technology (VT-x)". Checked BIOS, VT-x was enabled. 
  • Plugged in my Nexus 10, Android Studio did not recognize it.
  • I don't know what else to do.
05 May 2015: Tried my luck again with Android Studio, still no progress. Started watching  Android Development for Beginners which explains MIT App Inventor 2.

06 May 2015: Started using KanbanFlow.
Android: Android Studio emulator still not working, still not recognizing Nexus 10. Tried to build unsigned apk, success! Realized that my laptop does not recognize my Nexus 10. Installed universal adb driver, disabled USB debugging on Nexus, success. Copied apk to Nexus via USB, install, success. I still cannot see my real Nexus 10 on Android Studio. I might need a better computer. Main source of video lectures: Android Studio Tutorial by Derek Banas.
German: Two practices on Duolingo (20XP)
Electronics: Managed to control a DC motor.

07 May 2015:
Android: Wrote an app that counts from 0 to 9 with 500ms delay. I first tried Thread (which is usual for desktop Java apps), but Nexus said "the application stopped". Then I used postDelayed and finally it worked. This means that my existing Java library knowledge is not of much use, I have to learn new libraries. My tiring workflow was (without any debugging capability):
  1. Work in 25 minute blocks.
  2. Build app (~2min the first time, ~30s afterwards)
  3. Copy apk_debug.apk to Nexus.
  4. On Nexus install apk_debug.apk.
  5. Run apk_debug.apk.
  6. Repeat until you get what you want. 
German: 20 XP
Electronics: Get data from two photoresistors, drive servo motor. Problem: Humming in servo motor, sounds like instability.
Book review: Started working on Capital.

08 May 2015:
Book review: Finished Capital. Total pomodoros: 5
German: 30 XP
Electronics: Investigate servo humming

Book: Capital in the Twenty-First Century

"Capital in the Twenty-First Century", Thomas Piketty

This is a 500+ pages book. The first 200 pages were full of very similar looking data and tables. It became interesting after page 200, and riveting after page 300. I like books that show how ignorant I am and this is definitely one of them.

Read it if the following questions are of interest to you:
  • What is the source of income inequality and how does it harm society?
  • How should the income from production be divided between labor and capital?
  • Why is it so difficult to tax the super rich and multinational corporations?
  • Is publicly available financial information enough to form a healthy opinion about financial matters?

Tuesday, May 05, 2015

WinDirStat

WinDirStat is a disk usage statistics viewer and cleanup tool for various versions of Microsoft Windows. I used it to clean up my laptop.

Sunday, April 19, 2015

Book: How The World Works

"How The World Works" - Noam Chomsky, 2011, 335 pages

The book contains collections of interviews with Noam Chomsky. It is a good summary and I would strongly advise it to anyone interested in why the world is as it is and wants to lift the curtain of lies. An essential guide in search of the truth...

Friday, April 17, 2015

İnternet alışverişinde durum

Uzun zamandır aklımda olan hobi elektroniğine başladım ve bu hafta direnc.net'ten ilk siparişimi verdim. Bu yazıda siparişle ilgili tecrübelerimi aktaracağım.

Önce iyiden başlayalım: Memlekette online elektronik bileşen alabileceğim bir site olması büyük lütuf, Ulus'a gitmem gerekmiyor.

Sorunlar:
  1. Sitede parçalar hakkında çok az bilgi var, genellikle düşük çözünürlüklü fotoğraftan başka bir şey yok (Örnek: Zener Diyot Paketi). Ben ayrıntılı bilgi içeren yabancı sitelerden neye ihtiyacım olduğunu tespit edip öyle sipariş veriyorum.
  2. Pek çok irili ufaklı parçadan oluşan siparişimi P.tesi verdim, kargoya Perşembe günü verdiler. Kargoya verdiklerinde mail atmadılar. Kendi sayfalarındaki hesabıma girince görebildim. Kargo firması olarak Yurtiçi Kargo yazılıydı, takip numarası yoktu.
  3. Cuma günü MNG kargodan aradılar, paketim olduğunu, "şubeden alınacak" olarak işaretlendiğini söylediler. Önce yanlış aradıklarını düşündüm çünkü siparişimde firma olarak Yurtiçi Kargo'yu işaretlemiştim. Sonra paketi kimin yolladığını sordum, İnt-El (direnc.net'in şirketi) olduğunu öğrenince paketi iş yerine yollamalarını söyledim.
  4. Güncelleme 24 Nisan 2015: İkinci siparişimi verdim, siparişimde orjinal Arduino Starter Kit olduğu halde klonunu koymuşlar, neyse ki telefonla arayıp bilgi verdiler, ben de en azından içindeki işlemci kartını orjinal Arduino ile değiştirmelerini istedim.
  5. Güncelleme 27 Nisan 2015: MNG kargodan "kargonuz şubemize ulaşmıştır" diye SMS mesajı geldi, şubeyi aradım, "şubeden alınacak" olarak işaretlendiğini söylediler, iş yerine yollamalarını istedim. Bu artık bardağı taşıran son damla oldu, direnc.net ile işim bitti, bu yazıyı okuyanlara da uzak durmalarını tavsiye ediyorum. Bir dahaki sefere Robotistan vb. alternatifleri deneyeceğim.
Basit adımların bir türlü tam olarak yapılamadığı örneklerle dolu yurdum internet alışveriş/bankacılık siteleri. İş kurmak isteyenlerin öyle orjinal fikirler peşinde koşmasına gerek yok, mevcut işlerin hepsinde ciddi sorunlar var. Steve Yegge abimizin de dediği gibi:
It's easy to come up with new product ideas if you start with the understanding that everything sucks. Everything can stand improvement. Just think about what you'd change if you were doing it for yourself, and everything should start falling into place.
Kritik husus gerekli bağlantılara sahip olmak, o da sosyal becerileri geliştirmekle ilgili ve uzun zaman alıyor. Teknik insanlar için sosyal beceri ipuçları içeren faydalı bir site: simple programmer.

Friday, February 13, 2015

Book: The E-Myth Revisited

The E-Myth Revisited, Gerber, E. Michael.

It is a too verbose text for my tastes, so I will summarize it for you:

People usually start a business with a technician mindset but a successful business requires balanced entrepreneur, manager and technician roles.
  • Entrepreneur: What do people need? How much would they pay for it? How will they know about my product (marketing)? What is my future vision for the company and myself?
  • Manager: Provide structure (processes, manuals etc.) to the organization.
  • Technician: Check technical feasibility of product ideas, build products.
Each role requires the same amount of time and attention. The main reason for business failures is that their founder is not aware of this and is stuck in one (usually technician) role.

Tuesday, February 10, 2015

Notes about A*

A* (AStar) is a relatively easy to implement pathfinding algorithm. There are good resources that explain the algorithm, so I won't go into detail here:
I find the following particulary interesting:
  • Closed list does not mean pure path list. It contains the path nodes and all the nodes that were considered as path nodes some of which not being on final path.
  • Once the end node is reached, path is constructed by starting from end node and going backwards to parent nodes until start node is reached, i.e. until parent node == null.
  • If open list becomes empty (i.e. no more nodes left to consider) before end node is reached, it means there is no path from start to end.
  • Switch parent according to G cost.
  • If h is admissable (i.e. if h >= hOptimal), A* will find shortest path.