Thursday, November 15, 2018

The usual rants

1. Senior Engineers

I had to work with a senior engineer (per our standards). He seems to have about 16 year of work experience on the same platform, .NET since its beginnings. Still it took him four days to make a simple NancyFX based RESTful API. And then about a week for running it in a container. Very hard to make him comprehend the documentation. Or understand conventions in software projects.

2. Architects

Yes, sometimes I feel ashamed that I am called an architect. It seems that wee are a peculiar breed that forgot that we do software. Some of my colleagues have their head so deep into their butts so that they cannot get out of their own paradigms. They consider that the single piece of software is the product on that they worked for years and it could solve all humanity problems by a matter of its configuration. They really have the philosophic stone. Too bad that their product doe not sell. Other consider them some ethereal creatures that do not have to do anything with code(that's peon work) and they stay in slideware land where they draw boxes. GO CODE DUDES! Draw nothing until you have tested at least partially your fucking suppositions. Don't stop on a single solution. Use the architectural methodologies that YOU say that YOU know (ATAM, CABAM, or other mambo-jambo).

3. Build managers

Well, Mordaks. Doing everything to hide their inability of understanding how software is constructed. They are never part of project but hinder projects by enforcing stupid policies and environments. They are irrational and cannot be convinced with arguments. They "know their drill" albeit nobody else does. Correct software is not created by pushing every night a compliant build environment. Correct software is with a good pipeline that means a good version control, fast compilers, TESTS and deploys. Many of them. Not only every 2nd year or so...

4. Myself

I really reached the conclusion that I speak in vain hence I have nothing to gain. So I should shut up and smile as Taylor Durden did when all the skyscrapers were collapsing. It makes no sense to make things right as long nobody cares. Everybody will continue getting its pay check. And nothing good or shippable comes out.
     

Tuesday, October 30, 2018

Scratch for engineers

I am often spending time at home playing in Scratch with my daughter. We can do so many wonderful things there. One of our favourites is to create a fairytale. We take princes, princesses, dragons and unicorns and make them interact. It is very nice to see dialogues, spells and fights based on the little visual language. It's truly addictive.

But what are in fact doing is programming an actor system. Actually Scratch is a very crude but effective actor system. It is not meant for doing production stuff as Akka but it can be used for showcasing some concepts and do quick, dirty and funny prototypes.

So instead of resorting to some heavy frameworks and dry prototypes why not make a funny prototype in Scratch? A scenario turned into in a fairytale? We could model some of the services as knights, some of the threats as dragons. Wouldn't it be funny to have a database princess? Or a unicorn dispatch service? 

The mental image of a fairytale might be more evocative on the long term and give some human touch to some abstract concepts. The prototypes get some story, they are no longer abstract proofs that a solution exists somewhere in the vast solution space.



Given that I am a dragon. When I receive "attack_dragon": Then I think "hmmm..." for 2 seconds. And I loose one head

One can read the above script in Gerkin terms.Does it make sense? Which one is more acceptable? Which one is easier to remember?

I am really thinking that Scratch can help learning in a funny way about actors, messages and programming.
And yeah, do some impressive presentations. Computer Science is full of these analogies, think about the "Dragon Book" or Valgrind. So, yes, I do not think that I am out of the line.

Sunday, July 8, 2018

Surviving Vacation

I finally did it. After a full day of driving home through heavy rain I can say that my vacation is over. 

I feel relaxed. I can wake at 7 without any alarm. I haven't had any thought about work or politics for two weeks. 

So it means that I am ready for the next adventure, whatever it might be.


Friday, April 20, 2018

The interesting bits of the day

1. Oracle GraalVM: awesome - runs almost every possible language allowing for true polyglot development.
2. Kata Containers interesting alternative to Docker
3. Rhei Clock:Fascinating clock with a ferro fluid display
4. Bad sectors scanning tool: mechanical drives are still cheaper than SSD and provide higher capacity

Friday, March 16, 2018

And here is March already

Worked quite a lot but not on what I would have liked to. Mostly documentation/specs... Boring.

Learnt a little bit of MiniZinc, that was interesting.

Today I have migrated sonar 6.2 to 7.0. that was awesome. The new version is far better, cleaner UI and works like a charm on not-so-great VM. Because this went well I also updated Jenkins and, alas, installed "Blue Ocean". This was kind of unfortunate. Blue Ocean is okay but highly incomplete for an enterprise. I tested it because I wanted something that could outperform M$ TFS 2017 in terms of usability and integration.

The current machines I am building with are:
1. A GitBucket ALM + Repository VM
2. A SonarQube 7.0 VM (standalone only because of Postgres DB)
3. A Jenkins build master VM

All these are 2CPU/4GB RAM/128GB HDD. Probably I should consolidate them on a single, more powerful machine.

4. A MacOS build slave
5. A Windows build slave

In the meanwhile I got fed up with Azure CLI for another project.

Sunday, January 14, 2018

Thanks PSI, Trug and Wildfire!

I will probably remember these call-names forever as they were the initial guiding lights of my developer career.

Somewhere around 1994 our school received the first 386 computer. It had also a SoundBlaster Vibra card. It was a fantastic machine compared to the old monochrome 86 and 286 machines we had in the lab. In order to test the machine we decided to play some games or install Windows... In the end somebody remembered that he has something extraordinary that runs only on 386 machines. It was Future's Crew Second Reality demo. Unzipped the two floppy archive. Started it. Watched it to the end. We were speechless. We watched it again. And then again. And again. It was clearly addictive for us. We wanted to do the same tricks as PSI, Trug or Wildfire.

Up to that point I was not much interested in programming. Although I was learning algorithms I didn't had any practical use for them. Second Reality changed that. It was clear that if we wanted to do something similar to what Future Crew did we had to learn. In 1994 obtaining documentation was quite hard. There was no internet available for us, no access for BBS or similar sources. The only way to get some info was from older friends that were already at the university and had access to information. I collected dozens of disks with text files about assembly language,VGA graphics, protected mode, interrupts, algorithms. It was the moment I started to understand algorithms - Bresenham's Line algorithm was one of the revelations. Then slowly, in about one year, my colleagues were able to replicate most of the things we have seen in the demo. It was a great achievement for us as we did not reverse engineered the code but created a similar demo using from scratch implementations. As the 386 machine was hard to reach the demo worked reasonable well on 286 processors.

I learned a lot in that year. From programming to system architecture, from peripheral handling, low level programming and basic DSP to objects and data structures. I learnt advanced algebra because I needed it for the code and 3D stuff and improved my physics due to the fact I had to understand also the internals of particle systems. It was probably the year in which I learnt the most in the software field. The knowledge gained then proved to be useful for many years as it eased my CS studies a lot.

Again I have to thank PSI, Trug and Wildfire for opening up a world of endless choices and possibilities! I am still impressed today of Second Reality as it continues to be stunning from every possible aspect graphics, sound code. It seems that others also consider it a marvel, the demo was included in Slasdot's top 10 hacks of all time. I learnt that if you have a goal and you are surrounded by smart colleagues (Dan, Vale, Cipi, Raul, Adi, Robi) things become possible and, through percolation, unexpected, marvelous results appear.