Thursday, October 29, 2015

Is it a duck?

Last week, I was so happy. I had a working webclient for pwd! My integration test script allowed me to start a web server (using lighttpd).

Enters Travis CI. This useful tool reminded me that integration tests are not enough. I had broken my unit tests. Not good!

OK, let's fix that. I thought it would be fast. It was not (indeed, it is not over).

I needed to work quite a lot this week. Eiffel allows "expanded classes"; that is, value object classes. That is very useful but almost as easily testable as singletons.

I kept those classes… as simple façades. The release code automatically wires the façade with its underlying implementation. The test code, on the other hand, allows to set a test implementation; in other words, a mock.

Of course, faster said than done. There were two bugs in Liberty Eiffel; I had to fix them.

I also worked a lot on Liberty's mocker tool and library to give it new possibilities.

That done, I began by generating mocks and preparing my scenarii. I also split the tests for better legibility.

The work is still ongoing.

My last words are for Eiffel afficionados, based on my freshest experience.

I had lost the idea that Liberty Eiffel's insert keyword (equivalent to ECMA's ugly inherit {NONE}), brought a whole interface to the class. Not what I wanted.

So, my advice: you should not insert a class if you don’t want to expose its features in your interface. Use an attribute instead. Using export {} is an alternate solution, albeit not pretty because you'd need to also insert ANY to keep valid export clauses for standard features.

If it’s not a duck, it should not quack.

Happy hacking!

Thursday, October 22, 2015

Web access

At last the web client implementation of pwd works!

It means that very soon I will be able to query my passwords database using web access. (Of course, the zone is a private SSL zone with credentials access).

Next steps: a bit of HTML prettiness, and more features as announced previously.

Thursday, October 15, 2015

Moods and features

One month without posting.

One month during which I quit my previous job, moved near to Paris, and started something new.

One month during which I had to think a bit about my open-source future.

I played with the idea of stepping away from Eiffel. Well, I cannot. Eiffel, and particularly Liberty Eiffel, is in my blood.

On the other hand, I really need new features for pwd.

The feature #1 one being a secure web access, to avoid having to resort to ssh from the office, while still being able to get my passwords.

The infrastructure is already there. I have my own server, with an nginx server, and a pam-protected private area (URL not disclosed, obviously).

The feature #2 is the ability to add data to each key:
  • user name
  • url
  • tags
Compounded with this feature, I will need to change the internal format to something more flexible. Certainly JSON.

So that's my new aim. Enhancing pwd. And go on hacking, anyhow.

I guess I am back online.