Sunday, April 22, 2012

Using Apple product and Freedom


I am using Mac Book Air since last friday (April 13, 2012). Although I used Mac and Powerbook in early '90, it is the first Apple product in 21 century. I don't use iPod, iPhone, iTunes, iPad, nor any of Apple products.
Mac Book Air at Office

Last weekend I set up new Mac Book Air (mba, here after). By the way, it is a corporate computer so I don't pay it. I had wanted to make software development environment, so did google. I learned Xcode is popular tool. So I tried to download and install it.

You need Apple ID to download it. What is Apple ID? You need to register developer's site to install it. In order to register Apple ID, you have to provide your name, address, birth of date, telephone number and/or credit card number, and so on, to Apple, Inc. In order to register developer's site, you need to provide your Apple ID, affiliation, interests,  development OS, products information, many personal information to Apple, Inc.

I have a netbook which is built by Asus. When I started using it three years ago, I did not accept Microsoft agreement  which means that Windows were erased from my netbook and I didn't use Windows on it but I installed Ubuntu. So I have never provide my personal information to any companies, like Microsoft nor Asus.

I like free software. Because it is free. It means freedom like freedom of speech.

I was shocked that I have to provide my privacy to Apple, Inc. I just want to use this mba but if I want to use it, I have to pay my privacy. It is not free.

Now I understand Richard Stallman never uses Apple products.

Thursday, April 12, 2012

Lean Software Development, Leaders Workshop at Rakuten












Today we have a workshop led by Tom and Mary Poppendieck who are well known lean software development experts.

The workshop is in English without translators. As I wrote the previous blog, our company's official language is changing from Japanese to English.

There are good things and bad things without translators.

Bad things; you may have some difficulties to understand what Tom and Mary said. You may misunderstand them. It is very difficult to ask in English.
Good things; You don't need translators. The translation are expensive and sometimes wrong. Communication speed are much faster than having translators.

Poor English is better than translator's translation . You may disagree with me. But my belief is a dialog with poor English makes you clear and concise understanding between each other. Because you have to think about subject very clearly to translate your idea from Japanese (or your native language) to English. If you don't understand what you are talking, you can not translate it to English.

Anyway, Englishnization gives a lot of opportunities for us. I'm really exciting about this company's transformation.

One more thing. "It is easier to ask forgiveness than to ask permission". This is well know agile style or hacker way. I wrote a blog in Japanese. http://d.hatena.ne.jp/hyoshiok/20110205#p1
I learned this quote from Kawaguchi san and he learned from Hiranabe san who attended Mary's keynote speech about lean software development.

This is very exciting moment for me.

Sunday, April 1, 2012

Englishnization


Rakuten is known as a Giant EC company in Japan but it is not well known in the world. I am an employee of Rakuten.

Two years ago our CEO said "we will use English as a company's official language" when we had a weekly all company meeting on Monday morning.

Very few Japanese companies use English as an official language. Some of hardware manufactures such as Sony and Nissan are using English but their official language are still Japanese.

It is very radical decision. There is no other choice if a company wants to be a global company.

Two years ago many of us were not good at English and still struggled with it.

We have to pass an English examination. I had never took TOEIC (English examination) so I did not know if I had good enough skill. Fortunately I passed the examination.

Many meetings are running in English now and we get used to use English. Average score of TOEIC are increasing in this two years. We use English in our internal SNS. We can exchange our internal information not only Japanese employees but also non Japanese speaking employees in the world.

Last month we had an internal training by Jonathan Rasmusson at Rakuten. No translation was provided but many of us enjoyed it. Many questions was asked in English.

If we can use English, we can learn the leading edge technology.

Learning English is our great opportunities. English is the language of Internet and the global economy. We are learning the business of Internet services and it is very exciting thing.

Our experience of Englishnization will be a good role model of being a global. How do we change our language to English? I'm enjoying this experience.

Tuesday, March 20, 2012

Agile Do It!


Yesterday (March 19) I attended 'Agile Do It!'. The program is the following


  • Agile in Nutshell, Jonathan Rasmusson
  • Project Management of Game development, Yoshihisa Hashimoto (CTO, Square Enix)
  • Yahoo!, Rapid Software development, Onozawa (Yahoo!) and Takahashi (Yahoo!)
  • Scrum on DeNA, Kaise (DeNA), Oide (DeNA), Mori (DeNA)
  • Panel Discussion, Nishimura (Eiwa), Jonathan Rasmusson, Tachiki (Yahoo!), Takahashi (Yahoo!), Kaise (DeNA), Komai (DeNA), moderator Kakutani



All of the presentation except Jonathan are case study of each project. Many tacit knowledge were published and discussed. There were many scrum masters and we exchanged our experience.

I think this kind of meetup are very important and valuable. We can learn from each other and exchange our best practice, do/don't, good thing, bad thing and so on.

The after conference party was really good and I enjoyed so much. I would really appreciate DeNA who made the conference, speakers, and participants.

Sunday, March 18, 2012

long time no see.

Hi, how are you doing?

I have not wrote anything in this blog since 2009. But I have decided to start writing this blog again.

Enjoy.

Thursday, June 25, 2009

Debug Hacks, Table of Contents

Hi,

I've translated Debug Hacks table of contents into English.
Please feel free to ask me if you have any questions.

DEBUG HACKS,
english translation by Hiro Yoshioka
6/25/09

Table of Contents

Chapter 1 Introduction
1 what is a debug
2 road maps of debug hacks
3 hints of debug

Chapter 2 The Things you have to know before debugging
4 how to get core dump of a process
5 introduction of gdb
6 introduction of gdb, part 2
7 introduction of gdb, part 3
8 basic of Intel architecture
9 basic of stack
10 basic of parameter passing of function call (x86_64)
11 basic of parameter passing of function call (i386)
12 basic of parameter passing of function call (C++)
13 how to learn assembly language
14 mapping between source code and assembly code

Chapter 3 Getting Started Kernel Debug
15 how to read Oops messages
16 connecting serial console using minicom
17 getting kernel messages thru network
18 debug using SysRq key
19 getting kernel crash dumps using diskdump
20 getting kernel crash dumps using Kdump
21 how to use crash
22 getting kernel crash dumps using IPMI watchdog timer when a kernel freeze
23 getting kernel crash dumps using NMI watchdog timer when a kernel freeze
24 assembly language idiom in the kernel source code
25 assembly language idiom in the kernel source code, part 2

Chapter 4 Practice of application debug
26 application program aborts SIGSEGV
27 corruption of a back trace information
28 destroying memory by invalid access of an array
29 detecting invalid access using watch point of gdb
30 defects and faults of malloc() and free()
31 application stall (deadlock)
32 application stall (infinite loop)

Chapter 5 Practice of kernel debug
33 kernel panic (NULL pointer)
34 kernel panic (destruction of list data)
35 kernel panic (race condition)
36 kernel stall (infinite loop)
37 kernel stall (spin lock)
38 kernel stall (spin lock, part 2)
39 kernel stall (semaphore)
40 stall of real time process
41 slow down
42 high cpu load

Chapter 6 Debug Techniques
43 using strace to detect the cause of error
44 useful options of objdump
45 how to use Valgrind (basic)
46 how to use Valgrind (advance)
47 getting kernel internal status using kprobes
48 getting kernel internal status using jprobes
49 getting kernel internal status using kprobes (inserting probes)
50 getting kernel internal status using kprobes (inspecting variables)
51 getting value of a variable optimized out by a compiler using KAHO
52 debugging running linux kernel using systemtap
53 debugging running linux kernel using systemtap, part2
54 reading /proc/meminfo
55 /proc/PID/mem to read contents of memory
56 behavior and implementation of OOM Killer
57 fault injection
58 finding hidden bug in the linux kernel using a fault injection
59 init section of linux kernel
60 solving performance issues
61 getting information using VMware Vprobe
62 getting memory dump by XEN
63 understanding an implementation of a function call thru GOT/PLT
64 debugging an initramfs image
65 detecting a stall of a realtime process by RT Watchdog
66 check 64bit capability of intel x86 processor
The editor of Debug Hacks gave me the following description of this book in English. Thanks Ryoko Akaike

HIGHLIGHT

This explains the debug techniques fully under the long term development of Linux Kernel and application development process. This book covers the necessary preparation, its knowledge, quick finding tools of problems and how to solve them quickly by using the most useful techniques and tools. There are many examples to be used in the book. This book helps the Linux development engineers.

Mr. Yukihiro Matsumoto, creator of Ruby strongly recommends this book for the process of programming development.


DESCRIPTION

This book provides the feature of the debugging techniques of Linux development
Engineers.
The readers can :
- Know how to find the problems.
- Prepare for the knowledge to find the problems.
- Find the bugs of the system.
- Amend the problems.
- Get the useful techniques and tools.
- Get the most effective tools in the development stage.

Master the problem solving techniques by the detailed examples.

ABOUT THE KEY AUTHORS
Mr. Hirotaka Yoshioka
Dr. Kazuhiro Yamato
Mr. Naohiro Ooiwa
Mr. Toyo Abe
Mr. Shunsuke Yoshida

All engineers belong to Miracle Linux Corporation, which provides the Linux
System packages and its global consulting services of Linux to the various
Corporations in Japan.



Saturday, April 25, 2009

Debug Hacks

Debug Hacks is a book to introduce tips and tools for removing bugs. Debugging is one of time consuming process in the software development. However there is few books to describe debug.

Debugging is a kind of black art. We have never been taught in a class room. We need to have debug skill. Each programmer has own debug techniques but almost nobody try to describe their tips.

This is our challenge to describe the art of software debugging. The authors are linux kernel engineers of Miracle Linux Corporation (http://www.miraclelinux.com). I am one of the authors :-)

It covers from C/C++ application debugging to the Linux kernel debugging. We show the real world examples which we have fixed in our services.

Chapter 1 Warmingup, Chapter 2 Preparation for user land programs, Chapter 3 Preparation for kernel debugging, Chapter 4 Debugging for Application programs, Chapter 5 Debugging for Kernel Programs, Chapter 6 Various Tips and Tools.

This book covers GDB, strace, objdump, Valgrind, kprobes, jprobes, KAHO, systemtap, proc file system, oprofile, VMware vprove, fault injection, Xenand so on.

You will learn many tips to debug your programs.

Bad news is that it is written in Japanese. You may ask O'reilly Japan to translate this book to other languages, that is, English, Chinese, Korean, and so on.