How I helped Israeli F15 fighters to continue flying?

F15Few days ago my wife called me “Do you know Yuval Rakhavi?”
“Yes, I do, he I have learned most of what I know in computer programming from him”
Mr. Yuval Rakhavi is one of the founders of BRM and now acts as a director of few Hi-Tech companies in Israel.

This talk about Yuval, reminded me of an interesting case that happened few years ago. At that time I worked as a freelance Linux consultant. While working on a customer’s problem I got a strange phone call “This is lieutenant …” from IAFB-8 Flight control. My immediate thought was that someone is making a joke here. I was at that time at the Israel Air Force technical squadron reserve forces, however I had no connection to Flight Control. At the beginning of my military service I used to be in Flight Control department but in a different air force base. The officer on the other side of the phone continued “Do you remember that on 1989 you built a testing device for Rate Sensor Assembly and Accelerometer Sensor Assembly?” At this point I understood this is not a joke. I did built such a device during my time at the Israel Air Force.

In 1988 while being a software engineer at Israel Air Force special maintenance unit we asked for budget to build automatic test equipment for Accelerometer Sensor Assembly that the unit was maintaining. The officer at Israel Air Force headquarters agreed to give us the budget if we build two such devices and test also Rate Sensor Assemblies. My commander at that time approached me with two US Air Force Technical Orders manuals for the two units (ASA and RSA) Each technical order manual was about 1000 pages. Few minutes later (yes it takes me only few minutes to understand long technical manuals…) I came back to him and said “Yes, we can build it but it might be expensive” His response was “Ok, please design it and let me know what equipment you need” At that time I did not know that the budget was practically unlimited as it was required for the maintenance of F15 fighters that where important part of Israel Air Force.

My task was to write the software for this device, the hardware and purchasing job was given to a young officer that has just joined the unit. I rad again the manuals, the actual testing was easy but it had few hundreds of test that most of them where like “Connect voltage to pin… and measure voltage at pin…”.
This seemed like a boring task to do and I tried to think how to give part of the task to someone else while keeping the interesting part (interfacing the hardware) with me.

I decided to write a simple programming language for such tasks. So I started writing a specification for a new programming language I called GAL (General Application Language). I wrote an interpreter, debugger and interactive system to test it. Including the actual implementation and testing it, it took about a year to write. When the interpreter was ready, I gave a young soldier the actual task of writing the test procedure for both assemblies.

In 1989 we installed a working device in IAFB 8 Flight Control unit and they have used it since then. I was happy to know this was still working at that time.

So returning to the interesting phone call, the officer told me that they have been using it for a long time but now there is some problem that they don’t know how to fix and if the problem is not fixed, in few weeks all F15’s might be grounded so they need my help. He asked it I can help them and as always I said “Yes I can…”.
He got the budget to call me (at that time it wasn’t so easy) and the next week I came there in the morning, he welcomed me and introduced me to the other soldiers at the department. The place seemed the same as I remembered from 1989. It seemed as if time stood still or they had a time machine that returned me to 1989 :-)
I don’t remember the actual problem, I do remember it was a hardware problem, software as you probably know either works of fools you, there is no such a thing as software does not work.  I remember that I imagined a quite skies with no roaming F15 engines sound… Since I thought it might be impossible to find replacement parts for this old equipment but, we where in a place where time stood still, so it wasn’t so complicated to find the replacement parts so we could fix it and upload the software from backup diskettes I left there (it was 5.25 inch floppy disks if someone remembers them).

After everything worked again, one of the soldiers there asked me about this programming language where did I find it and what is it used for? I told him I  invented it and it is used only for this. He looked at me with an admiring look and could not believe what I told him. I opened the source code for the interpreter (written in C) and showed him my name at the head of all files. He continued asking more questions on using these software tools, some of it I did not remember but fortunately I left enough documentation files so I explained him the structure of the documentation files and how to use them.

At the end of the day I told the officer that now I could fix it, but next time we might not find replacement parts for so old and obsolete equipment so he must think about building a new one. It was just like the old times when I was at the air force he said “Ok, give me a plan and price estimation” So I spent the next days writing a plan and a quotation for building new device and of course new version of the software, this time based on Linux instead of MS-DOS.

Unfortunately he did not find the budget and this was never built. I guess today these F15 models  are also obsolete so they may not need it any more.

Anyway it was nice to remember it.

 

Posted in Uncategorized

Installing Ubuntu 16.04 on HP 255 G4

I recentrly purchased a new HP255 G4 laptop. It came without operating system, to be exact, it came with  free-DOS.

The computer does not have any CD-ROM. The only boot option is USB.

I downloaded Ubuntu 16.04 from ubuntu.com and created a live USB-DoK

I tested the DoK on another computer that it works, it gave me an error: gfxboot.c32 not a COM32R image. After a short search on google I found out that I have to press tab and then live. This did the trick and the live DoK booted Linux.

However when I tried it on the new HP255 I got the grub> prompt and did not know what to do from there. I tried several options, searched google and found nothing (that is why I write this post).

When you get the GRUB> prompt, insert ‘initrd’, you willl get an invalid pointer error, press any key and you will get a boot menu, in this menu there are few boot options, two of them are USB, choose the second one without UEFI.

This will give you the gfxboot.c32 not a COM32 image. Clicke tab and enter live-install and the install program will start.

Hope this helps someone…

 

Posted in Uncategorized

Python 2 vs. 3? – Why move to Python at all?

Many people are talking these days about Python 3 vs. Python 2. This started after the Ubuntu team announcement that Ubuntu 16.04 will come only with Python 3.

I would like to ask, why move to Python at all?
I have been programming for the last 30 years in many languages,  stated with C, tried C++ now working mainly with Perl and PHP. I did read some Python scripts and found them cumbersome and hard to understand.

In fact the whole notion of Object oriented seems to me cumbersome, unnatural and complicated. Why do I have to define classes, define variables and methods and then define objects and work on them?

I did try to learn Python after I rad that it is easy to understand and it’s syntax emphasizes readability. Well, it somewhat does it, but the language itself is some cumbersome so I decided to stop learning it and return to Perl which I find easy to understand and easy to program with.

For example, python uses the ‘lambda’ construct which until now I still can’t understand what it is and why use it? I have seen many scripts using it, It only make the script harder to understand, not easier to understand so why Pythonists  say that Python is easy to understand?

I use Perl many times for ad-hoc scripts and more complicated scripts, I found it easy to learn and also a powerful programming language when dealing with strings of text, which today are my main needs. Maybe Python is good in other fields, but I did not find them yet.

 

Posted in Uncategorized

Women and computing – International women day

March 8th is the International women’s day, so I feel this is the right time for another post on women in computing. This is not the first time I write about women in computing.

During my career as a manager of a software company, I hired many women and few years ago, I came to the conclusion that women are generally better then men in programming, this is a rather strange conclusion when looking at this industry that is unfortunately dominated  by men. I got to this conclusion after interviewing many men and women. Around 1997 most of my company was women, most of them programmers (and one administrative manager). At this time I talked with a colleague who was a manager of a software team in a big company in Israel (that was later acquired by Applied Materials). He said during this talk “You know women are better in this [programming]”. I felt the same, but could not explain why so I said innocently “Why is that?” I am surprised that he did not wonder about the innocence of my question since he knew that my team was mostly women :-) Anyway, he tried answering and said that he things women are more ordered in their thinking. I am not sure he is right though. I think it is because women are better at abstract thinking, but this is also not proven.

Today although my company has shifted to a new area (digital books) It is still mainly a software company, but now the software team is mainly men (one woman though).

Grace hopper near UNIVAC I (source - Wikipedia)

This is the time to talk about one remarkable woman that without her contribution the computer world would not look the same as it is today. This is Grace Murray Hopper (December 9, 1906 – January 1, 1992).

She was a computer scientist and United states navy rear admiral. She was part of the team that built the first digital computer (UNIVAC I). She invented the first compiler that she called A (so the first programming language was named A while today we use C and it’s descendants C++ and C#) A compiler is a program that translates programming language into machine language executable by a computer. She was the first to understand that a programming language does not have to be tied to a specific computer hardware and machine language. So in fact she was the first to understand that programming language is actually a human language and not a computer language.

She also termed the word bug to described a malfunction in computer program. The story says that it was termed after a real bug in the relays of UNIVAC I. But what Grace herself said later was that this was not the case (I never really believed it anyway) she said the term was used by a friend of hers who was a mechanic.

Grace Hopper was a woman that has contributed a lot to the computer world and without her, the computer world would not be as it is today. She deserves a honorable place just like Dennis Ritchie who invented the C programming language and the UNIX operating system.

Posted in Uncategorized

How did I steal my own logo?

Two days ago I have uploaded a new version of Helicon Books Android EPUB3 Reading application. This was a minor update to the existing version that has been in google play for about two years now.

About 2 hours later, I received an email from google play, stating my application was rejected and that if this is an update to an existing version the older version is still there. The reason for rejection was: “Violation of the intellectual property and impersonation or deceptive behavior”

I looked at google play and it seemed they removed the older version. This was very stressing as this reading app. is the most popular reading application in Israel and major product of Helicon Books.

I tried contacting google but got no response (they said they will respond within 72 hours) We tried to figure out what intellectual property to we violate? The only thing we came up with was a digital signature of the Helicon Books cloud, the app. stored a copy of this signature for validation purposes. We don’t need it any more since we now use third party SSL signature that is verifiable and accepted by Android, so we could simply remove it (older versions of Helicon Books cloud contained self signed https signature). We removed it and uploaded the app. again. But again after 2.5 hours I got the same mail, this was even more stressing as I didn’t have any idea what intellectual property to I violate?

My guess was that it is more important to look at the second part of the rejection reason “impersonation or deceptive behavior” I recalled that about a year ago I uploaded an app. that included subset of the full app. designed only for books that I wrote. This app. used the same logo, so I thought that their automatic algorithm has rejected the new update after it found that another app. uses the same logo. This was easy to solve,  I removed the other app. from google play and simply resubmitted the latest update without actually changing anything.

Within 30 minutes, I have seen that google play was showing the latest version. I waited for 3 hours to see if I get any rejection mail and fortunately no rejection mail arrived.

Apparently google has tighten their acceptance rules for applications which is good I think, however their automatic algorithm didn’t look how owned the other app. If they would have looked, they would find out that I impersonate myself :-)

So now everything is resolved and people can enjoy the new app.

Posted in Uncategorized

Ada Lovelace Day

I am following the Free Software Foundation newsletter which always bring news about free software only. Today I found out that October 15 is Ada Lovelace Day. Ada Lovelace was a 19th century female mathematician and is considered the first programmer, although the programs she wrote never actually run. She assisted Charles Babbage in building the first computer.

This day is a celebration of women contributions to computer science. So I thought I will write something about my experience with women in computing.

I have managed several software companies and projects and in most of them where also responsible for the human resources. I think human resources is the most important role in a software project since good programmers make good software. I always like to meet new people, This is why I liked to choose the programmers and employees myself.

So during my career, I have interviewed many programmers both men and women. My interviews always include a short exercise where the candidate has to read a short text (short meaning about 10 pages :-) ) and answer few simple questions that are not directly given in the text. The idea is to test their learning skills. I believe a good programmer must have high learning skills.

From these interviews, I got the impression that women are better programmers. Therefore I had employed  and still continue to employ women.

The results proved that I am right women are generally better programmers. However up until now I didn’t find a suitable explanation why.

 

Posted in Computers & Software, Free software

Designing user interface for an application

Before commencing the task of building an application one must carefully plan the user interface or user experience. This is one very important factor in marketing an app.

There are two ways of doing it, one is the long way of users survey, in order to do this one must build several mock-ups and then do a users survey based on these mock-ups.

There is a much shorter way that can be used only if this is not the first application written for this task.

In my case when I took the task of designing a new EPUB3 reader, I could take the second way, as I am not the first one who designs a reader. Although there are not many readers for EPUB3, there are hundreds of them for EPUB2. So I downloaded several dozens of them and tried to use them for a while.

Most of them where so hard to use that I uninstalled them few seconds after trying them. The idea was that if I can not understand how to use them within 5 minutes, other users will also have trouble understanding it.

I also removed those applications who wanted me to register for their library before trying them. I don’t want to collect any data on my users (other then if they are using or not and even this anonymously so I don’t need registration).

After few weeks of trying many applications I was ready to write down the specification for my application. I wrote down the specification and we started to work on actually writing it.

Finally few weeks ago we where ready with an application, we gave it to several users to try. All users where users who where not familiar with Android applications. Some of them where familiar with reading a digital book.

So we went to the public and uploaded a first version (that we still call Beta) to google play store.

Several hundreds of people downloaded it and after a while we found that most of them where able to easily grasp the way of working with it. However very few users, all of them very familiar with Android applications and software in general, found it hard to switch pages, actually they thought they have to scroll some of them did not even though about the obvious of clicking left or right margin.

That was a problem we did not anticipate and now we are working on a solution that will involve both an explanation on the opening screen and arrows on the left and right margins of reading page.

Posted in books, Computers & Software, Digital publishing

Developing a new EPUB3 reader for Android

Helicon Books, my company has been marketing the first EPUB3 reader for Android, however due to business dispute with the original developer, we stopped working with them and stopped marketing this reader.

In July 2013 we started to develop a brand new EPUB3 reader, based on Readium. We decided not to write our own engine and leverage the power of open source technology. Those who know me, know that I always support free software and try to use it wherever possible.

EPUB3 is a complicated standard, some say too complicated, therefore building a display engine for EPUB3 is not an easy task. Even readium which is developed by some of the major IDF members does not fully support the standard. We have decided that for the first version we are going to support reflowable books only, no fixed layout and not media overlay. After all most of the EPUB books today are reflowable.

So I started the search for a decent Android developer, it did not take long to decide to work with Omer Zak a deaf software developer, I have seen some of his past work and knew him from his activity at the Free and Open Source Software community in Israel. The main reasons I chose him where mainly because he is working with open source tools and is part of the free software community.  He is also working alone and not part of a bigger company and I like to encourage small businesses. The fact that he is deaf did not disturb mainly because I knew the main communication will be email written communication so the fact that he can’t hear me, should not make a difference.

So I contacted him and asked if he would like to take this job. He asked for  more materials to learn the subject. He knew nothing about digital books and EPUB. Digital books are not very common in Israel so most people have no idea what EPUB reader is.

I supplied him with a specifications I wrote along with introduction to the EPUB3 standard. After reading it and reading more about Readium, he began to like it and decided to take this project. I am happy that he shared the enthusiasm I had for this project.

We both thought that it would take about 2 weeks to develop since the Readium project supplied the main reading engine and we just have to write the bookshelf, user interface etc.

Unfortunately, this was not the case. We found out that Readium is not easy to implement, the documentation is poor and also had many bugs. At first we thought about fixing these bugs but found out that not only that the EPUB3 standard is complicated, the Readium software seemed to be more complex and it even seem it was done in purpose.

However we managed to show something working within two weeks. It did not have a bookshelf yet, did not remember the last position in book etc.

During all the  process, Omer did the software development while I supplied EPUB3 standard consulting (after all this is my job now) I built the surrounding environment such as GIT repository, bug tracking system etc. (All built using free software tools using a Linux server). I also devised the user interface, supplied icons etc. So I practiced all my graphical skills.

I also wrote the help screens, about screen and opening screen (displayed when no book is loaded).

At first I thought that all work would be done by email or chatting since Omer couldn’t hear what I say so meeting would be fruitless. However when development was almost done, Omer suggested that we meet in order to close some relatively simple bugs. At first I was reluctant to do it, I did not know how to communicate with a deaf person and I have no idea of Israeli sign language or sign language at all.

I finally decided to accept Omer’s invitation and we mat at his house. I wanted our meeting to be near his computer with his development environment so it would be easy for him to fix any bugs we discuss.

Even though it wasn’t easy to communicated, the meeting was fruitful and we did fix few bugs and documented a solution to other bugs. Immediately after the meeting Omer could solve all the bugs we discussed and few more.

All the communication was done by writing even at the meeting. Omer brought a bunch of papers and pens so we could write. I hate writing on paper and have not done so for a long time so it was hard for me. At the second meeting I opened a text editor on my tablet and instead of writing on paper I wrote it on the tablet’s text editor. This proved as a better way of communication.

I must say that even though we communicated by writing during all the development process, somehow meeting was much better and I think we will continue meeting for the next phases of development.

I am happy to announce that on September 8th the first version of the application (Ver. 1.0B) was uploaded to google play. We call it 1.0B since we still feel this is beta only. Although I did not see any major bugs yet and use it daily to read books and test books that I convert for our customers.

The application features direct connection to OPDS enabled digital book stores for direct downloading or purchasing of digital books. It has the simplest user interface I have seen in other applications and also support easy reading of books from mail messages or websites.

You can download it from Google play

Following are some screenshots of the application in both Hebrew and English user interface.


 

 

Posted in books, Computers & Software, Digital publishing, Free software, IDPF

Digital books and free standards

The digital books today resembles the first days of the internet. At the beginning we had services such as BBS which didn’t have any governing standard and thus created a fragmented world. Then Sir Tim Barners Lee has invented the HTML which lad the way to the web as we know it today, but even then many companies started to invent their own extensions to HTML and again we faced a fragmented world. This lad to the creation of the World Wide Web Consortium the W3C which promotes open standards on the web. In 2008 the W3C launched the W3 foundation (W3F) to promote the use of the standard and not just enhance the standard.

Today it seems the W3C and W3F had succeeded their mission and we can view most websites using any standard compliant browser we choose be it Chrome, Firefox Safari or any other browser.

This was the goal of the W3C that no matter what User Agent we choose to use, we can still get similar user experience.

The IDPF seems to be facing similar situation now. In today’s world each big vendor pushes it’s own standard that naturally works best only on one platform. So the digital book world of today is fragmented like the internet in its early days.

The IDPF is promoting the EPUB standard so that users can read the same book no matter what Reading System they choose to use and no matter what platform they use to read, be it Android tablet, iPad, smart phone, PC etc.

In my view, Reading System will become ubiquitous as browsers today and it will not matter which one you use to read your books. All reading system will be able to read all books, just as today most browsers can show most websites.

It took few years for the Web to get to this situation and it will take few years for digital books to reach similar situation.

In the future we will not understand how we could except such a fragmented world as it is today.

I have always pushed for open standard. Part of this effort was done while being the head of the Israeli W3C office.

Now when I am not part of the W3C, I joined the IDPF in order to promote similar things in the digital books world. Promoting the use of free and open standards in digital books.

I have also established Helicon Books to push the same goal, we strive to give the best solutions to publishers and other vendors in the digital book world.

Now it seems that efforts of the IDPF start to show their fruits – EPUB3 is gaining popularity. With the new announcement by the AAP (http://www.digitalbookworld.com/2013/publishers-getting-aggressive-about-epub3/)
It seems that more and more publishers will go with EPUB3
This is another step in adopting free and open standard.

 

Posted in books, Digital publishing, IDPF

DRM or Not DRM the debate continues

First of all for all those who are lucky enough to don’t know what DRM is, a very short introduction.

DRM is Digital Restrictions Management or as some marketing guys like to all it Digital Rights Management.
This is in other words copy protection. In an ideal world, it will prevent unauthorized copies of a book or music. But hey in an ideal world we don’t need it since no one will create unauthorized copies.

Why do I say that this is only in ideal world?
Unfortunately, copy protection schemes punishes only the legitimate users, since the unauthorized users cracked it anyway and can circulate it without any interruption.
DRM copy protection can be bypassed and they are bypassed all the time, therefore to really succeed with DRM a publisher has to invest a lot of money and effort in making better and better algorithms and change them all the times.

With DRM protected book, I need a reading system that can read the protected book, that means I am tied to one reading system and sometimes these reading systems can not read publications from other publishers, so I can not maintain a library of all my readings on one application or reading device.
Also if I want to replace my device, I loose all the library I purchased until now and after all in today’s world we replace our tablets, phone, e-readers etc. once every few years.

My company Helicon Books gives all kinds of services to publishers of digital books. One of the services is reading applications. We can add DRM to these reading systems so that customers will be able to read only the publisher’s books on these readers.
So from business perspective, I’d be happy to sell DRM solutions, this will tie the publisher to us for DRM algorithms upgrades and maintenance.

However in this post I would like to show what happened to publishers who knowingly dropped DRM from their books. There are currently two publishers that I know that has decided on no DRM policy for their digital books: O’Reilly and TOR (a UK based science fiction publisher).

TOR has decided about a year ago (On Apris 25, 2012) to drop DRM from all their titles. They have made their decision together  with their sister company in the US, so there is a very large audience that enjoys this decision. Now, about a year after that, Julie Crisp wrote in TOR’s blog –  “we’ve seen no discernible increase in piracy on any of our titles, despite them being DRM-free for nearly a year”

The reason for TOR’s decision is that their customers are a close-knit, with a huge on-line presence, and with publishers, authors and fans having closer communication than other areas of publishing do.

So what happened was that their customers where thrilled with the fact that they listened to them and removed DRM.

Posted in books, Computers & Software, Digital publishing