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 Yurtiçi Kargo yazıyordu. Sonra paketi kimin yolladığını sordum, İnt-El (direnc.net'in şirketi) olduğunu öğrenince paketi iş yerine yollamalarını söyledim.
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.

Saturday, January 31, 2015

Book: The Inner Game of Tennis

The Inner Game of Tennis by W. Timothy Gallwey argues that success can result only if you don't try too hard which sounds counter intuitive. Trying too hard means becoming emotionally attached and being judgmental. He gives practical tips on how to achieve relaxation while practicing. First and foremost, you have to be interested in what you are doing.

A very good book for anyone who wants to be a better person by using tennis (or any other practice) as a means to achieve inner peace and perfection.

Thursday, January 15, 2015

Minimal Software Design

A minimal software design effort should include the following:
  • What problem are you trying to solve? Is the problem specified clearly?
  • Comprehensibility: What will you do to help others (or yourself one year later) understand your code/design. Hint: Wiki, coding conventions, KISS.
  • Modularity/dependency: What approach will you take to make your modules independent? Hint: Encapsulation, MVC pattern.
  • Testability: How will you make sure that your implentation will be as unit testable as possible? Hint: Keep methods short. Whenever you can, make objects/methods static.
  • Error handling and logging: What error cases do you foresee and what mechanisms will you have in place to log and recover from errors? Hint: Exceptions.

Friday, November 28, 2014

Difference between a hobby project and a product

One of the most important lessons an engineer learns is that a going from a demonstration prototype (i.e. "hobby project") to a product that other non-engineer people can use requires a lot of additional work. I would say that prototype to product transition requires as much work as creating the protoype.

A product
  • is well tested and can work under a wide range of conditions (this is the main cost difference because additional testing reveals previously unknown weaknesses and will force you to make major design changes)
  • anticipates internal errors / environmental anomalies and has mechanisms in place to recover gracefully
  • anticipates user error and guides the user when he does something wrong
  • has an intuitive user interface (i.e. people don't need to ask an engineer how to operate it)
A novice thinks he almost has a product when he demonstrates basic functionality. The wise one knows that he has only covered half the distance.