Saturday, November 5, 2016

Erlang and my inferiority complex against functional programming

A few weeks ago in the middle of October 2016, I had some interesting exchange of tweets inspired by an Alvaro Videla's tweet. Alvaro wrote he always told people Functional Programming (FP) in Erlang was a necessity, not part of the original design (emphasis mine).

I later found Robert Virding, one of the founders of Erlang language and concurrent system, explicitly stated in this talk (video at Functional Conf 2016) (at 4m23s) as follows:

We were not out to implement a functional language
We were not out to implement the actor model
We were trying to solve the problem

Robert's statements in the quote above are the exact reason why I started and still like Erlang.

I've already erased the tweets (I keep most of my tweets ephemeral) of my response, but I would like to write my story about FP.

My first exposure to FP was through the books of Lisp in 1980s. I didn't understand the FP principles, but I got rather interested in the symbolic processing capability and the ease of handling data structures.

I'm not interested in slow (i.e., not sufficiently fast for a purpose) systems. In 1980s Lisp systems were running mostly on interpreters, so I have a strong recognition bias that tells functional languages are slow, which is incorrect as of 2016; a counter evidence is shown as a production level documentation tool written in Haskell called Pandoc, and by compiler-based FP systems such as Common Lisp. Nevertheless, in 1980s, FP systems were mostly slow. Until the late 2000s, I hadn't been really interested in FP again.

I've got a very strong inferiority complex when I tried to study something about FP and Lisp from 1988 to 1990 at a university laboratory where the main research topic was about the programming languages and paradigms. I utterly failed, because my main interest then was how to connect the people in Japan and the world, through email, USENET (NetNews), UUCP, and affordable TCP/IP links.

My inferiority complex against FP is still not gone yet. Three PC member roles, Two accepted papers, and one workshop chair role (in 2011) for ACM SIGPLAN Erlang Workshop events were something I would have least expected in the late 1980s or early 1990s. FP people are generally much smarter than me and they are amazing. I have been lucky to meet the talented and productive researchers, including John Hughes, Simon Thompson, Kostis Sagonas, and many others (which I'm very sorry to omit their names here).

On the other hand, however, I still have some feelings that some FP people are too theoretical and not respecting well on practicality of currently programmed system, when I am watching on (mostly Japanese) FP communities, especially those on Twitter. My gut feelings are like this: Theory is nice. Theory is beautiful. Beauty is important and often essential in programming. I think that's what academic and research communities for software are for. But the real virtue of programming prevails on how it solves the real-world issues and problems. There's no side-effect-free world so long as having to deal with I/O devices. Memory is limited. CPU speed is limited. Network bandwidth is limited. Isn't FP a way to deal with these real-world limitations while maximizing the ease of abstraction on programming? (I think Object-Oriented Programming (OOP) is also trying to solve the same issues, but that's another issue; I still need to understand why Java/C++/C#-like OOP languages are simply that much complex.)

Erlang has been one of the rare language systems which didn't impose or force me to do the things in "functional" way, though the FP principles are embedded deeply in the core, such as the immutability and no-shared object/process principles. I think Elixir follows these principles well, though I see some interesting FP technologies in Elixir such as macros and metaprogramming. In short: Erlang (and Elixir) didn't trigger my inferiority complex against FP!

So some trivial lessons I've learned:

  • You are never too late to learn new paradigms.
  • You are never too late to re-learn things once you failed to learn.
  • There's something fits for you even for a category you don't feel like to study.

I think my inferiority complex against FP will stay until I die, but now I don't have to feel FP is not my stuff. And that is good.

Monday, September 19, 2016

Phasing out old media

Getting rid of the old stuff and formats is one of the hardest things to do in a materialistic society.

I've managed to dump and have gotten rid of the following formats of media so far as of September 2016:

  • MiniDisc (MD)
  • Digital Audio Tape (DAT) and the data format DDS (including DDS2/DDS3)
  • Various optical disks other than CD/DVD (including Panasonic's PD)
  • Flash memory formats other than SD including Smartmedia / Compact Flash
  • 5.25" and 8" floppy discs
  • Vinyl LPs
  • VHS video tapes

The following media formats are not acceptable as of September 2016:

  • Blu-ray (including BD-R) (The reliability issue still remains suspicious)
  • Super Audio CD (playback only)

And the following old materials are in the archive mode and will not be accessible on demand (i.e., packed and will not be opened unless a critical demand from those who may concern (e.g., legal authorities), which may take days to access):

  • DXCC paper QSL cards (caution: I may discard all paper QSLs at any time, details undecided)
  • Old Apple ][ documents
  • Old TL/1 language and GAME language compiler documents
  • Old SWL paper logs
  • Old private music demo tapes

Note well: I will issue no paper QSLs anymore, even if I ever make more ham radio contacts. I will not make a paper QSL request. All new paper QSL requests will be immediately and unconditionally discarded. This has been effective since 1-NOV-2014. LoTW and ClubLog uploads will still be conducted for new contacts.

The following media formats have been for business acceptance only (i.e., the playback hardware exists but no new recordings) since September 2015:

  • 3.5" floppy discs
  • Cassette tapes

The following media formats have been for business transactions only (i.e., the recording hardware exists, but will not be activated unless requested by the customer) since September 2015:

  • CD-R
  • DVD-R (single layer/dual layers)
  • (micro)SD(HC/XC)
  • Generic USB memory sticks

I will still be buying necessary software pieces including music CDs, software on DVDs, and paper books, but will do my best on getting rid of them as many as possible.

Bottom line: I need to remember that the room spaces are always the most precious resources.

(This article first appeared on my Facebook Notes dated 27-SEP-2015)

Sunday, May 25, 2014

On skin allergy

I've been chronically suffering from skin allergy, at least since when I was three, for more than 46 years. The fear of itchiness haunting me and distracting me from focusing onto what I'm doing is so deep that I still really don't want to freely talk about it.

I will write about it anyway, however, to speak up about my own weakness, and unfair discrimination against me due to the skin allergy.

My history on allergic skin

During my childhood and teenage years I got a lot of severe allergic reactions on many parts of my body. The toughest one was on my right eye which caused cataract.

The second toughest allergic reaction was during May to June 2002, when the percentage of the eosinophils among the white blood cells exceeded 33% of the whole white blood cells, whose regular value for healthy people was between one to five percents. I was suffering from chronic oozing of blood and lymph from damaged skin on my legs and elsewhere I had to scratch due to simply unbearable itchiness. I was on the verge of sepsis, which would be lethal. I got hospitalized and had IV treatment of pulse steroid therapy for a few weeks, and had daily skin-protection treatment for two years.

The third toughest allergy-related attacks on my skin are chronic shingles appearing on my left inner thigh in 1979, and on my face and neck, on 1983, 1987, 1988, 1992, 1995 (twice), and 2002. Before anti-VZV medicine became available in 1990s, I had to suffer the pain of damaged skin and nerves for more than a week after every shingles attack. While I am lucky enough that no visual sign of shingles is left on my face, the deep and untreatable pain still often emerges, especially when I'm under a severe mental and physical stress. Fortunately, since 2002, I've never experienced a severe attack at all.

I am still suffering from skin rash, nevertheless, especially on my neck and genital area due to the chronic persistent damage. This is one of the reasons I don't want to wear ties and white business shirts; I usually wear cotton-made polo shirts or T-shirts and a loose-fit pair of pants (cargo or chino), to get rid of the possible sources of skin allergy.

Skin allergy is about the immune system

There are lots of misunderstandings on allergic reactions, and the medicines and treatments used to deal with the symptoms. I was one of them who didn't really treat the disease or symptoms in the right way until the year 2002, when I was 37. Note well: you need to discover your own way to find out how you treat yourself. My stories are not necessarily applicable to you.

Ointments, creams, or lotions with steroids are essential and necessary to alleviate or mitigate the irritation and inflammation. The problem is that you shouldn't use those with antibiotics unless absolutely necessary; they are often too strong. And when you use steroids, you need to monitor your immunological condition regularly (once a month or even more); otherwise your skin or immune system in general may over- or under-react and will cause a fatal consequence.

I should also say that you can't stop scratching your skin when you feel itchy. Can you stop the reaction of coughing or asthma? You can't (or otherwise you will suffocate). So don't advise the patients of skin allergy to endure the torture of itchiness; instead help them solve the systematic immune problem by consulting to a dermatology and/or immunology specialist. The treatment strategy will not be accurately defined unless checking out the portfolio of the white blood cells and other notable markers of the patients.

Discrimination against skin allergy patients

The social stigma of having skin allergy, eczema or dermatitis, is enormous in Japan. Having damaged skin especially on the parts of the body exposed to the public will significantly degrade the self confidence of the patients. The damaged parts of skin are not infectious to other people, but quite often the patients themselves are prone to get infected by the common germs and viruses such as staphylococcus aureus.

Japanese social norm of forcing all business people (especially men) to wear ties and white-collar dress shirts (which are also stiff and cause more damage to the skin) is inherently very discriminative to the patients of skin allergy. Quite often the patients are targets of bullying and social exclusion. The easiest way to solve this is to allow wearing the less intrusive shirts and pants, unless absolutely necessary due to the external or more formal dress code (which I try to avoid as much as possible).

Patients of skin allergy or any forms of allergic reactions should not be victimized just because they are suffering from the symptoms. They are suffering from diseases which are not responsible on their own. People should recognize some people need regular intake of pills and ointments to survive, and don't laugh at them because of the needs. I've once been orally harassed from colleagues when I took necessary pills after a lunch meeting.

What I've lost and I've gained

I've lost many chances due to the skin allergy. I have to stay in the area where I can get the sufficient medical treatment in affordable manners, and I should be very cautious on exposing myself in outdoor activities. I don't swim (though I can), because I don't want to get myself damaged by the chloride in the pool water or even the sea salt. I don't enjoy natural hot springs by the same reason.

On the other hand, suffering from skin allergy makes me pursue more modest way of life, and makes me very self conscious on the medical condition of myself. After all, you've got to live with what you've got and what you've got to suffer from.

I always thank my partner Kyoko for living together with me for 22 years, before, during, and after the whole allergic skin mess in my life. And I know it's not over so I've got to be very careful as always.

Thursday, April 24, 2014

My new startup: Kenji Rikitake Professional Engineer's Office

This is an announcement of my new startup business.

I've started my own business, as a Japanese government-licensed Professional Engineer of Information Technology (in Japanese it's called Gijyutsushi), since April 21, 2014. It's called Kenji Rikitake Professional Engineer's Office (KRPEO).

KRPEO provides the consulting and engineering services on information technology in general, including but not limited to: information and network security, the design, deployment, implementation and performance tuning of Erlang/OTP, FreeBSD, and Riak. KRPEO will provide all services in both Japanese and English.

I had been looking for a full-time job since October 2013, and I made a conclusion that the job market near Osaka was mostly for energy-consuming legacy programming tasks due to the fact that most of the high-end software engineering companies were only located in Tokyo. Most of the employers in Japan do not accept remote teleworking due to the cultural and legal reasons either. So I had to lean out from the traditional corporate culture of Japan, for a more sustainable business model, making myself, my family, and my customers happy at the same time. I understand this is a hard challenge, but I will definitely take it.

My involvement in the open-source developer and network operator communities in Japan and the world will remain the same and unchanged.

The English announcement site for KRPEO is at http://www.k2r.org/krpeo/. The Japanese site URL is: http://www.k2r.org/gijyutsushi/.

Update 28-APR-2014: add the URL of the English site, correct the URL of the Japanese site.

Thursday, April 3, 2014

Erlang Factory SF Bay 2014: list of some notable talks

(Photo: a shot during my talk by Yoshihiro Tanaka, used by permission)

(Disclaimer: there were too many talks I wanted to listen to, but I couldn't.)

Here's the list of talks I thought intriguing for Erlang Factory SF Bay 2014 (links are to the slides or videos):

I also wanted to listen to the following talks, and found the slides intriguing:

I will post my impressions for the above talks in later articles. I would like to note some personal impressions for the audiences this year:

  • Erlang is no longer an exotic language or system. The audiences want the real solutions and hints.
  • Elixir is gaining popularity, and will surely contribute to reduce resentment against BEAM (Erlang VM) and the ecosystem.
  • The implementation talks were getting more detailed and hard core, and the questions were also more specific.

Video quality

Thanks to the hard-working video and audio recording and editing team, this year's video quality is very high in overall. While the live streaming was not possible due to the prohibitive cost, some videos were made available within six hours from the end of the talk. I think this was impressive and a practical solution to make a trade-off between the turn-around time for the availability and the quality of video of the talks.

[To be continued in another article]

Monday, March 31, 2014

Erlang Factory SF Bay 2014: erltrek and the beginning

(Badge photo by Kenji Rikitake)

It's already been near a month since Erlang Factory SF Bay 2014 as I'm writing this blog article. It was my fifth Erlang Factory, consecutive once a year since 2010. The topic I've talked are so diverse:

  • 2010: SSH RPC
  • (sponsored by NSIRG, NICT, Japan)
  • 2011: SFMT on Erlang
  • (sponsored by ACCMS, Kyoto University)
  • 2012: IPv6 example of DNS simultaneous resolution with IPv4
  • (sponsored by IIMC/ACCMS, Kyoto University)
  • 2013: Riak on amateur radio data analysis
  • (sponsored by Basho Technologies)
  • 2014: Star Trek game revisited
  • (this year no sponsorship - I paid all by myself - thanks Erlang Solutions for accepting my talk proposal!)

The topic list shows how broad range of subjects and topics which Erlang and OTP can cover.

Highlights of this year

There are so many things I have to write about for Erlang Factory in this year 2014. Listing the topics (before I forget) here:

  • My erltrek implementation of the Star Trek game (immediately modified into a completely new thing, with a great help and massive contribution from Andreas Stenius)
  • Erlang Foundation and Intermediate Certificates
  • (Foundation: passed, Intermediate: failed.)
  • Concuerror (invitation-only) workshop by Kostis Sagonas
  • Elixir tutorial by one of the Erlang Gang of Four, Robert Virding
  • Fréd Hébert's presentation and autograph on LYSE
  • ... and many more

So let's start from the erltrek.

Why Star Trek?

The ultimate reason is: no one seemed to did it. Period. It was a completely improvised idea, after I was browsing the FreeBSD old games library, reading the BSD Trek code, written by Eric Allman (one of the Sendmail people), in ANSI C89. The BSD trek's last update date was in 1993, so it was a 20-year old code. I decided to rebuild the game in the following procedure:

  • Read the C code
  • Port it to Lua so that I can at least read through all the C functions
  • Rebuild the Lua code (luatrek) into more Erlang-ish one

Was the strategy successful? I think it was not bad, but the part of rebuilding into Erlang was revealed utterly insufficient, soon after I opened up the code. I will describe the reason later in another article, but the main reason of failure was that my thinking and design of the code were completely procedural, neither fully functional, nor Erlang process-based. I have to write that I've been doing the coding and reviewing of the erltrek software even after I come back to Japan from the Erlang Factory event; that is one of the reason why this article gets so late. It's still a work in progress, as of 31-MAR-2014.

Venue

Marines' Memorial Club and Hotel again hosted the Erlang Factory. In fact they also hosted a part of JavaScript event series called JSFest at the theatre (a very nice and large one) on Sunday 9-MAR-2014. There was no fire alarm this year (as it happened in the 2011 and 2013 events.) I didn't socialize much, as I don't as usual (I'm not really an extrovert person), but this year I had a few dinner hangouts with the Erlang all stars and I really enjoyed them. The hotel service was very good and my favorite chicken-flavored S.O.S. Oatmeal was always there at the breakfast; and the catering was very good as well.

People

I met a lot of people. Monika, Andra, and Alison of Erlang Solutions, and all the staff members including the volunteers, kept running the conference and all the other events very smoothly. Meeting with old Erlang friends, especially the Francophones including Fréd Hébert, Loïc Hoguin, and Benoit Chesneau, was always intriguing (especially when the three were having a very heated discussion in French.) Greeting Basho people was also nice. I will not mention all the people in this article, but it was nice to meet a newcomer from Japan, Keisuke Takahashi; he showed a strong interest into the Elixir language and I'm sure he'll drive a community in Tokyo soon.

[To be continued in another article]

Monday, September 30, 2013

Leaving Basho - many thanks!


I will resign from Basho. 30-SEP-2013 will be the last day.

I'd like to thank everyone in Basho, especially Basho Japan KK members. Having been a part of the teams will be an unforgettable experience.

I will continue supporting Riak and Erlang/OTP after leaving Basho, as I've been doing so since long before I joined the company.

My next step is yet unclear for the time being, but I'm sure I will still be a part of computer and internet professional dev and op communities. There will be a lot of challenges, but I will take them.

Thanks again to the people who supported me during my Basho days.