Good Vibe

I am happy to announce that very recently I released my first skill for Amazon Alexa called “Good Vibe“. It’s one project that I built from an idea to it’s current state for about a month in my free hours after work. I definitely learned a lot of things in my effort to create a public service like it, and I would like to cover the highlights for it.

The idea

The idea came very recently after I bought an Amazon Echo device, I was looking for a similar skill that I can program how to respond with text or audio on specific queries. I wanted to get my hands dirty on developing a skill for Alexa.

Big influencers for the skill were also good friends of mine Serge and George with whom we were discussing a chat bot that can be easily customized by any user to respond to certain strings parts of a message. This was my intention as well, to be able to customize Alexa, without actually having to write a skill backed by running server or lambda with Python or Node.js.

I started from predefined set of commands responding only text to what Good Vibe is now, supporting any input as commands and responding a mix of text and uploaded and recorded audio. Of course all of this wouldn’t be possible without my wife standing next to me, validating my ideas and supporting me.

The tech stack

The skill by itself is naturally using Amazon’s Lambda service to read and create custom commands to and from database. What’s more interesting to this skill is that I also provide a web app which you can use to manage the commands and additionally create ones with audio.

For the web app, both the UI and backend are JavaScript based. For the UI itself I decided to try the Clarity design system that brings beautiful  and modern components and designs. Although I am trying to keep things very simple in the UI, the fonts the buttons and modal styles are Clarity based.

I do use only the styles of Clarity, without the Angular components. In fact I’ve tried to keep things as simple as possible in technical point of view as well, and not introducing any JS framework or unneeded library, it’s pure JS.

One of the best things the skill offers is also the ability upload an audio file or record one. Here I’d also like to take the opportunity to thank all contributors behind https://wavesurfer-js.org/ that I use it for audio visualization for recording and edit an audio before uploading it. For the microphone recording piece,  https://github.com/mattdiamond/Recorderjs provided big help.

The logo

screen-shot-2017-03-05-at-6-12-18-pm

The logo is something I am really delighted with. It’s not so much of the design, as you can see I wanted it to be closer to the Alexa logo. It is something entirely based on Alexa, that enhances it in a way, this is why we have the 3 squares around it representing that. But what I am mostly happy about is the interactivity of the logo as it’s live, to really bring the feeling of “Vibe” the glowing squares levitate around the Alexa circle.

As with many of the features in “Good Vibe” a great influence for this was my wife. One night I was struggling making the squares around the circle to look more live, as if they really are “vibing”. So while I was complaining how hard this would be, she just said “why not make it animated?”. I was like “wow that’s a great idea!”. But how am I supposed to create an animated logo, with GIF? Definitely not! Such animation of 10+ seconds can result in a very large gif file. Even if we can shrink to a reasonable size, still the question of the quality and transparency stands. So after quickly discarding the gif option, it got me thinking that actually everything I want to create for the logo is possible only with CSS! This way the logo can scale for any device, can have the best quality and is super small in terms of size of resources, smaller than even 1 frame of a gif or a single png file.

Current state and the future

Currently I am pleased with the 30+ users that have tried “Good Vibe”, most of which have defined more than 5 commands and are using it daily.

I am hoping this skill to reach more and more users and bring at least little joy to the ones using it and their close ones. Excited to see what the future holds!

You can try it out by enabling the skill here – https://www.amazon.com/dp/B06VV3F7RM

As well as visiting the web app to manage your commands here – https://alexavibe.com/

Automate business groups creation with catalog items and entitlements

If you are a business admin and you have to create a business group for a newly on-boarded department, and you want to entitle OOTB catalog items for the members of this group, how will you do it? Through the UI, you would

  1. Create a business group by:
    1. Open the Business Groups tab.
    2. Click on “new business group”.
    3. Fill in group information: name, description, default machine prefix, managers, managers emails, users, etc.
  2. Create Entitlement
    1. Open the Entitlements tab
    2. Click on “add entitlement”
    3. fill in entitlement information: name, description, expiration date, status, business group
  3. Assign the same users from the business group
  4. Assign catalog items to the entitlement

Those are a lot of clicks. Imagine if you could do it with a single click (or a lot less than the above example), with an automated solution that is less error prone and fast! Well you can do it with the help of ASD and vRO and here we will show you how to do it. We will create a vRO workflow and an ASD blueprint out of it that we will publish to the Catalog.

Read More

Check 1, 2 … 1, 2

It’s been a long time since I last blogged, and it seems I miss it, so I decided it’s time to write a new post and try to start to write more frequently again.

One night we were out for a beer with Serge and he asked my what’s going on with my blog and why I am not posting anything and he got me thinking…
Part of my absence in this blog was because I have been busy lately. I took part in lots of new and interesting development projects, I’ve continued my education for a masters degree, I’ve been supporting the protests in Bulgaria, I traveled around and around, I even starred in a ski/snowboarding movie 😉
Another reason was that I started playing with JavaScript technologies, both front-end and back-end, things that in the past I tried to avoid, but one cannot afford to ignore them anymore.
Since this blog was more technically oriented, I will keep up this tradition and continue writing about my experiences with different programming technologies. I was a big Flex fan and most of my previous topics were on this theme, but these recent years, HTML, JavaScript and CSS technologies have evolved a lot, and now is a really interesting and challenging time to be doing JavaScript development. So I am really passionate about what can be done with these technologies and I think it will be nice to blog about it. I have few ideas that I think will be interesting to share soon, so stay tuned.

Hello VMware!

If you follow me on  twitter, you probably already know that, but it has been 2 months since I have left Obecto and started working at VMware Bulgaria.

This is a big change in my career and again it wasn’t that easy.

Working at Obecto was really cool! The people I have met there are very enthusiastic professionals and best at what they do. They are one of the Flex pioneers in Bulgaria, making great applications and as you know I am a Flex geek. I’ve learnt a lot working with guys like Todor and Vladi and all other colleagues. I had the opportunity to work on a big, unique and EXTREMELY interesting project, doing things that I am willing to bet no one had done with Flex. It was a pleasure working there and I am going to miss the atmosphere and the whole team. I can only wish them to continue with their passion making great projects and best of luck!

As I said it was fun, but I decided that it is time to move on. I cannot share a lot about my experiences so far at VMware, but I think it is great. I am still getting used working at such a large company with lots of colleagues and so much products and I am still getting confused sometimes with this “Inception thing” (VM inside of a VM) ::) Literally I am overwhelmed by information, but still want more. I like how I am constantly motivated to learn new things and be better. I also find it outstanding how developers are provoked to innovate and come up with new ideas, and how they are acknowledged.
A lot of things have happened these two months and I am so excited for the future, I am sure it will be interesting.

So what is next?
Be more awesome, of course! 🙂 I will continue with this blog and I will try to write interesting posts as before. I think now is a good time to say that this will continue to be my personal blog and will not represent thoughts and strategies of VMware

P.S. And since I am writing this when the hype is on whether Flex/Flash will live… I am sure there will be more mind-blowing websites and applications built with them.

I made it

I am happy to announce that I have successfully graduated the Faculty of Mathematics and Informatics at Sofia University “st. Kliment Ohridski” with bachelor’s degree in computer science.

You might ask, why I am so happy to write about that? The thing is that 4 years ago I graduated the Professional High School of Tourism in Sofia, with degree in hotel management. However even when I started studying there, my passion was in computers. The last 2 years in high school I had to study hard mathematics at home, and at private courses, because, as you might have guesses, at my high-school the level of math education was not that high. So with lots of hard work I was the only one from my school to be accepted at the Faculty of Mathematics and Informatics. And that was win No. 1

Win No. 2 – my bachelor degree, came even harder and tougher. Imagine the jokes that I received from some of my co-students, that had graduated high schools school with intensive learning of mathematics, and their belief that I will not be able to make it. Challenge accepted! That is why now the taste of success is even sweeter.

The whole thing that I am trying to say is that, these 4 years proved to me that nothing is impossible as long as you wish for it hard!

Now I am off to achieve the next big challenge!