Saturday, May 28, 2016

Soldo, my first step as a customer to the 'smart' payments world.

As I have written many times in this blog, from the moment I had the chance to work in the development of 'traditional' retail banking software, I immediately became interested as a 'customer' & software engineer to this new wave of rival services and applications, especially those related with micro-payments and 'electronic' wallets. Despite the fact that traditional banks, today move forward modernizing most of their 'retail' service offering, I still believe they are less flexible and a bit slower  comparing to other companies in the field.

For a month or so, I have been using 'daily' the e-payment solution of Soldo. The company is one of the newcomers in the electronic-micro payments world. Currently their service is in beta, so I was very happy to be one of the  few to try and evaluate their offering. Special thanks to my friend M.Charatzas.

So how does it work? When I 'entered' the service, I simply had to download an iOS application, complete the registration (adding my personal details). Upon activation, I got an 'electronic' wallet where I could see my balance, top up my account, search my transactions, get a virtual credit card (Mastercard) and a new real card (sent via post).  My new wallet (or account), can be credited either by regular bank account transfer, or by using one of my regular 'cards' from my traditional bank and 'debit' it. The overall process took just a few minutes, and the real card was sent within one week. Sweet!

During my initial week I did transfer a small amount of money to my new wallet, and started using the e-card and the regular one (it is contact less as well) in different places. In general I did not have any problem, only in one place the contact- less payment was not working). The real added value of these services is not the regular debit/credit card use. This is something already provided by traditional services. 

So the more you get to use the app, the more you get addicted to the plethora of information around your payments. The notifications upon each payment (or failed payment) are instant, the transaction history is simple enough and easy to use, so I can scroll through my payments and check available details. I am able to see during the previous month, when and how much money I did spent. I really like the 'today' view, where you get to check how much money you spent this very day.

Also I am able to control many aspects of the regular and virtual card like, like the max amount I can debit the card in each transaction (I guess parents would really love that kind of feature), or the basic types of payments my card can be used for. For example I can enable or disable my Sold Card, for 'Online' payments, 'cash points' or payments 'abroad'. Of course at the end of the day, in case someone, steals your card, with the switch you can completely de-activate it and report that has been compromised.

The more I use, this kind of interactive payments, the more I get a feeling that I am in control of the overall process. So kind of 'security'. This is the main reason I am eventually switching to a 100% daily use of my Sold wallet. For example, there are a few cases, that I do feel a bit unsure when my card is 'walking' around 'shops' or restaurants, or when you get to a very busy place where a dozen of people 'attack' the point of sales, example a bar, and the personnel just swipe 1000 cards per minute trying to serve the people. In all these cases, I have stopped using my regular card in favor of Soldo, the moment my card is debited I get the notification and I can see what is happening or double check. 

Also, during traveling out of the UK, I can complete my transactions, based on the current 'exchange' rate of GBP and the Euro, with no extra fees! How cool is that!
Up until now the experience was very nice and I am very happy with this kind of services and offerings. I find my self to use this card more often comparing to my regular bank's card and it I think I might switch completely for day to day use and online shopping.
I am sure there are other products and services out there and I am very excited in general, because retail banking and micro-payments is a world where I totally believe there is room for improvement and innovation, both in the IT (software development) and business wise. 

So hello new world of micro-payments and e-wallets! 

Tuesday, May 24, 2016

Kubernetes London Meetup - picking up momentum #kubernetes #london

One of the great things, when living in London is that you have access to meetup's and communities  for almost every technology you will ever manage to get interested in. After attending the first EU Kubernetes Conference - KubeCon (2 months ago), this was my second time attending the 'Kubernetes London Community' in one of their regular meetup's at the premises of SkillsMater.

I would like to give credits to the 2 main organizers Peter Idah & Milos Gajdos for working towards, building a vibrant community for a technology that IMHO is not only trending but will become very relevant. I am might be a bit biased, but Kubernetes is one of the few 'things' out of this DevOps / Containers / Microservices tsunami of technologies, that is going to make a change - market wise. Thumbs up to 'GoogleCloud' for sponsoring beers and pizzas before the talks - good job. I would be very happy next time with an uber cool 'Kubernetes TShirt' for my summer vacation!

The Dev in the DevOps

I always feel, like a silent minority in that kind of meetups, especially the Kubernetes one. Despite the fact that I totally relate to the concepts and the technology, I do belong more to the Dev side of the DevOps culture rather than the Ops. As I have stated numerous times and in some of my 'introductory' talks around Kubernetes, I came 'close' to this technology and evaluated it's potential strengths, from the software developer's / architect perspective rather the Ops or DevOps developer. For me Kubernetes is an excellent abstraction for concerns that as a software developer I don't have to worry about, especially when I need to focus on delivering  / writing business code. These abstractions safeguard concerns and mitigate risks that I will have in the future, when my solution potentially will need to be flexible, scale-able, deployment environment neutral etc. I do follow the developments of the go language, I do try to relate to the complexities and specifics of AWS or Google Container Engine, but the main priority for me is the 'code' the solutions me and the team I belong to, needs to write and architect. I am not glorifying the Ops centric technologies, I see them as an enabler and a problem solver for 'business and technical concerns' many software solutions will face. But, as you might have experienced before, a lot of software projects do die, or never get to the mainstream in order to phase challenges that technologies or environments like Kubernetes or the Cloud have to offer. I do worry about the fact that 'we' the developers, have found a new 'box' of emerging technologies, that for sure are relevant but we kind of settle (or we consider uncool) the actual code written to provide the solutions. Still out main concern should be whatever lives within the container - and not the container neither the infrastructure around it. Yes they are important but not the main priority. Enough for my devs first rant - I hope I don't get flamed by the 'Ops' audience - which I have total respect.

About the meet-up 

The first talk was from Martin Devlin, from Pearson Plc, Bitesize PaaS Project. They are using Kubernetes for then 'upcoming' platform. I did keep some notes regarding some of the 'solutions' they keep in the mix for their platform. Unfortunately I did not have the chance to elaborate, but I kind of wondered, why you would need to use services like Consul, or Vault within Kubernetes where actually the framework already abstracts and provides in some extend this needs. Maybe at Pearson they do have special cases and requirements, which of course I can not relate to. The 'Vault' section was interesting enough. A kind and positive reminder to the 'Martin' for any future presentation, it would be nice he could add some more diagrams and more slides so that we can have a better idea of their solution and what was presented.

The second talk, was from Justin Santa Barbara. Really great talk, from one of the most important committers of Kubernetes, responsible for the AWS support. One of the many questions I get to have or hear in talks regarding Kubernetes adoption, is 'Can we use this in AWS, can we use this feature of AWS with Kubernetes? etc. So it was really great to have Justin presenting and passing his views and describing the current state and road map towards this area.

I really liked his 'all kubernetes' view of things, which totally makes sense for me. Kubernetes is  providing a rich set of functionality in different 'areas' around application deployment, that eventually containerized applications that will be 'living' inside this environment could be aware of these (capabilities) or even use them. 

Very nice interactive presentation and I do hope the London Kubernetes community to host more committers and devs of Kubernetes in the future. In my notes from Justin's presentation was, the 'PetSet' Controllers that is coming soon enough, and will eventually answer the question ' How about hosting my cluster-aware  MySQL  or ElasticSearch within kubernetes. Last but not least, there were a lot of questions around the applicability and availability of the 'Ubernetes' type of deployment (meaning multiple kube clusters in different regions/zones - acting as one).

It was really, time well spent yesterday and I am really looking forward for the future meetups and developments of this 'emerging London community'. If you are considering adopting, or trialing Kubernetes within your company in London, I totally encourage you to join this community and share the experience. 

Go Kube!


Sunday, May 15, 2016

Ένας χρόνος μακριά απ' την Ελλάδα.

Πριν από 4 μέρες κλείσαμε 1 χρόνο ως νεο-μετανάστες, όπως πολλοί που διαβάζουν αυτό το blog είναι ήδη υποθέτω. Θεωρώ ότι ανήκουμε στην κατηγορία,  'αργήσατε αλλά τα καταφέρατε' μιας και αρκετός κόσμος την είχε ήδη κάνει την τελευταία πενταετία. Θυμάμαι εκείνο το πρωινό στον Ελ.Βενιζέλος, νόμιζα ότι πάω διακοπές και θα ξαναγυρίσω. Αλλά δεν γύρισα, ίσα ίσα ήταν η αρχή για ακόμα μεγαλύτερες αλλαγές.

Φύγαμε απ' την Ελλάδα κυρίως για επαγγελματικούς λόγους, οι οποίοι έχουμε άμεση σχέση με το γενικότερο well being και φυσικά το μέλλον μας. Εγώ προσωπικά στα όρια της απογοήτευσης μετά από πολλά χρόνια στην Ελληνική αγορά να πολεμάω για τα αυτονόητα ή να έχω αυταπάτες (όπως πολλοί manager-τέτοιοι μου είχαν πει). Δεν ξέρω τελικά τι ήταν σωστό ή λάθος. Για να μην γίνομαι κακός με ανθρώπους, καταστάσεις, κουλτούρα και εταιρίες θα καταλήξω στην πιο ώριμη εκδοχή.

"Στο τέλος της ημέρας όσο πιο μικρή είναι η αγορά, τόσο λιγότερο ανταγωνιστική, οσο λιγότερο ανταγωνιστική τόσο πιο φτωχή σε ευκαιρίες, όσο πιο λίγες ευκαιρίες τόσο πιο βαρετή και σκληρή για να σε βοηθήσει να εξελιχθείς σε γνώσεις ή και οικονομικά. Όσο πιο πολλά θέλω, απαιτήσεις, αυταπάτες (πες το όπως θες) έχεις από την δουλειά σου και την καριέρα σου, τόσο πιο πιεσμένος θα νιώθεις σε ένα τέτοιο περιβάλλον. Όσο πιο απογοητευμένος νιώθεις τόσο πιο πολύ πιέζεσαι να αποδεχθείς την κατάσταση και να αγκαλιάσεις το 'σύστημα' ή απλά να φύγεις."

Ήταν τελικά στο εξωτερικό καλύτερα τα πράγματα- επαγγελματικά; 

Ναι και όχι. Στην πρώτη μου απόπειρα όχι δεν ήταν (για τα δικά μας θέλω). Βρεθήκαμε σε μια χώρα όπου κατάλαβα πόσο στρεβλή είναι η ελληνική αίσθηση της ποιότητας ζωής, που κατάλαβα πως είναι να λειτουργούν οι βασικές δομές του κράτους και του γενικότερου συστήματος. Αυτό μου άρεσε, μπόρεσα να ξεπεράσω το σοκ και την ιδέα ότι έφυγα από την χώρα μου, είδα ότι υπάρχει μέλλον και ζωή έξω. Μου άρεσε αυτή η αίσθηση της οργάνωσης, της ηρεμίας, του προγράμματος, της σταθερότητας.

Επαγγελματικά  βέβαια (IT), βρέθηκα σε μια ακόμα πιο μικρή χώρα σε ευκαιρίες, με εντελώς στρεβλή αγορά εργασίας (μονόπατη για να το πω λαϊκά, ή μονοθεματική), λογικούς μισθούς για τους newcomers (οι πιο παλιοί θα είχαν ζήσει χρυσές εποχές) αλλά σε γενικές γραμμές κανένα σημάδι ότι θα μπορούσα να 'συμπληρώσω' στο βιογραφικό μου εμπειρίες και ονόματα που θα με βοηθούσαν στο μέλλον ή θα ένιωθα ότι 'ξεδίψασα' άπ' τα επαγγελματικά μου θέλω. Correction time.

Έτσι χωρίς πολλά πολλά είπαμε να αποχαιρετήσουμε την χώρα των euro-δημοσίων υπαλλήλων (Λουξεμβούργο) και να πάμε σε μια αγορά που μπορούμε να παίξουμε με τις ευκαιρίες της και μάλλον να εκπληρώσουμε πολλά απ' τα θέλω μας. Enter London, UK.

Είναι καλύτερα;

Ναι, αν και η κίνση αυτή είχε μεγάλη ταλαιπωρία και άγχος τώρα μετά από 3 μήνες, νιώθουμε ότι κάναμε το σωστό. Είμαστε αρκετά πιο αισιόδοξοι επαγγελματικά, νιώθουμε ότι σιγά σιγά γινόμαστε πιο ανταγωνιστικοί και το πιο σημαντικό, παρόλο που πουθενά δεν υπάρχουν οι τέλειες ευκαιρίες, οι τέλειες εταιρίες, μας δημιουργεί ένα αίσθημα ασφάλειας το γεγονός ότι μέσα στην εβδομάδα τα τηλέφωνα θα χτυπήσουν 2-3 φορές για προτάσεις. Βαρέθηκα; δεν θεωρώ ότι η τωρινή μου δουλειά με καλύπτει από θέμα, φιλοδοξιών και  χρημάτων; Είναι μια απόφαση απλά καθαρά δική μου, για ξεκινήσω και να μπω στο ξανά στο job hunt. Δεν είναι εύκολο, ούτε ευχάριστο αλλά είναι καθαρά δική μου απόφαση, και αυτό με κάνει να νιώθω ήρεμος. No dependencies, αν θέλεις κάτι καλύτερο, αν πιστεύεις ότι αξίζεις κάτι καλύτερο, 'ιδού η Ρόδος, ιδού και το πήδημα'. 

Ωραία τα επαγγελματικά στο IT και η ζωή;

Είναι η πιο συνήθης ερώτηση. Δεν υπάρχει σαφής απάντηση. Μάλλον υπάρχει για εμάς, αλλά δεν σημαίνει ότι είναι συμβατές με τον καθένα. Προσπαθώ πάντα να 'καταλάβω' ή να μάθω το background του καθένα που με ρωτάει για να του φέρω απλά παραδείγματα ή στοιχεία που μπορεί να συγκρίνει. 

Δεν υπάρχει η τέλεια κατάσταση. 

Φεύγεις από την χώρα σου, από το σπίτι σου. Σου λείπει πάντα η οικογένεια σου, οι φίλοι σου, η γειτονιά σου και πόλη σου (σαν αίσθηση) . Πρέπει να μάθεις να ζεις σε ένα διαφορετικό περιβάλλον, να επικοινωνήσεις, να προσπαθήσεις να ενταχθείς σε όποιο νέο κοινωνικό σύνολο. Αν δεν έχεις διάθεση ή δύναμη να ασχοληθείς με πράγματα που δεν είχες σκεφτεί ότι θα σε απασχολήσουν στην ζωή σου θα δυσκολευτείς.

Αρκετός κόσμος, αναζητά ένα καλύτερο αύριο. Νομίζω από τις πιο πολλές ερωτήσεις που δέχομαι σε email και facebook, το βασικό κίνητρο (μετά από λίγο συζήτηση) και η μεγάλη ερώτηση είναι 'Θα βγαίνω οικονομικά;' . Είναι σύνθετη η απάντηση, αλλά μια γρήγορη απάντηση είναι, 'θα μπορείτε να έχετε 2 μισθούς στο σπίτι;'. Δεν είναι μακρυά και από την κατάσταση στην Ελλάδα, 2 μισθοί στο σπίτι σημαίνει μεγαλύτερες αντοχές, μεγαλύτερη ευελιξία. Το ίδιο ισχύει για έξω απλά επειδή τα ποσά είναι μεγαλύτερα και τα έξοδα πολλαπλάσια, δεν υπάρχει ευκολα χώρος για να συμβιβαστείς. 1 μισθός σε μια ακριβή χώρα ή πόλη σημαίνει συμβιβασμοί, ποιοί θα είναι αυτοί είναι σχετικό με το lifestyle και τις απαιτήσεις του καθένα. Εξαιρώ φυσικά  καταστάσεις όπου 1 μισθός μπορεί να συντηρήσει σε υψηλά standard ολόκληρη οικογένεια. Υπάρχουν και αυτές οι περιπτώσεις (δεν είναι πολλές) αλλά υπάρχουν. Δεν ανήκω σε αυτή την κατηγορία.

Να φύγω;

αλλά για τους σωστούς λόγους. Ποιοι είναι οι σωστοί λόγοι; Εσύ θα αποφασίσεις αλλά προσπάθησε να μην σκέφτεσαι με το κλασικό Ελληνικό μεγαλείο. Όχι δεν είμαστε πιο έξυπνοι από άλλους λαούς, και δεν μας περιμένουν στο εξωτερικό για να μας δώσουν κουβάδες λεφτά και να μας δοξάσουν. Πρέπει να προσπαθήσουμε και εμείς όπως όλοι οι άλλοι. Όχι δεν έχουμε πιάσει τον πάπα από τα @@, που είμαστε μετανάστες (αρκετοί Έλληνες ιδιαίτερα εδώ στο Λονδίνο έχουν αυτή την τάση, να λένε πόσο φοβεροί είναι που ζουν εδώ, λες και είναι οι πρώτοι που ανακάλυψαν την Αμερική). Αυτή η  βλαχοποζεριά δεν μας αφήνει ποτέ. Ναι υπάρχουν ευκαιρίες παντού, και ανάλογα με τα skill σου, και σε ποια αγορά θα πας, θα πρέπει να κάνεις και τους κατάλληλους υπολογισμούς. Όσο δύσκολο είναι να διατηρήσεις το Α επίπεδο ζωής με έναν μισθό στην Ελλάδα και χωρίς δικό σου σπίτι, είναι διπλάσια δύσκολο έξω. Ρώτα και ψάξε όσο πιο πολύ μπορείς. Δεν είναι κακό ούτε ντροπή. Έλληνες υπάρχουν παντού, γνωστοί γνωστών, προσπάθησε να παίρνεις πληροφορίες από ανθρώπους που είναι φρέσκοι σε έναν τόπο και όχι από κάποιους που είναι πάνω από 10-15 χρόνια γιατί οι απόψεις τους και τα επίπεδα σύγκρισης είναι πια διαφορετικά και μακρυά από την πρόσφατη ελληνική κατάσταση.

Review του χρόνου ξανά! Καλή τύχη και καλό κουράγιο σε όσους το έχουν σκεφτεί ή έχουν πάρει ήδη την απόφαση. Καλή υπομονή και σε αυτούς που μένουν πίσω.

Tuesday, April 19, 2016

Judo ... στο Λονδίνο..και σκέψεις πίσω στον δικό μου σύλλογο.

 Το να βρω νέο dojo και να ξεκινήσω προπονήσεις είναι στιγμή ορόσημο σε κάθε αλλαγή χώρας. Εύχομαι ότι δεν θα χρειαστεί άλλη. 

Μετά απ΄το σύντομο πέρασμα σε ένα αρκετά συμπαθές και μικρό σύλλογο στο Luxembourg, σήμερα έκανα την πρώτη μου προπόνηση στο Sobell Judo Club, στην περιοχή του Isligton (κοντά στο emirates) που έχει γίνει και μια απ' τις αγαπημένες μου περιοχές γενικά, ιδιαίτερα απ' το Angel και προς τα πάνω.

Ο sensei Σ.Σαμσών  8 νταν , με εντυπωσίασε,  πραγματικά έμεινα ευχαριστημένος  από την ευγένεια  αλλά και τον τρόπο διδασκαλίας του.  Επίσης μπορούσα να ανταλλάξω και μερικά ελληνικά μαζί του πάνω σε τεχνικές. Ιδιαίτερα φιλικοί και ευγενικοί οι αθλητές, το τμήμα είναι mixed, άνδρες, γυναίκες και μικροί Judoka,  είχα την ευκαιρία να τους γνωρίσω όλους και να με κάνουν να αισθανθώ αρκετά άνετα. Ότι περιμένεις δηλαδή σε κάθε dojo.  Οι προπονήσεις είναι 2 φορές την εβδομάδα, από 1.5-2 ώρες. Το dojo είναι μέσα σε ένα μεγαλύτερο αθλητικό κέντρο με πολλές δραστηριότητες και χώρους - μου θύμισε το γυμναστήριο του πανεπιστημίου πριν πολλά χρόνια - αλλα 3 φορές μεγαλύτερο.

Αυτή είναι η μαγεία του Judo, μια παγκόσμια οικογένεια με τις ίδιες αξίες. Δεν έχει σημασία που θα πας, όταν πατήσεις το πόδι σου σε ένα dojo, θα σε αγκαλιάσουν σαν 'brother' όπως μου είπαν σήμερα και θα προσέξουν να ενταχθείς γρήγορα. Ανεξάρτητα απο θρησκεία, χρώμα ή καταγωγή.

Μιας και το γράφω αυτά δεν ξεχνώ να βοηθάω και να συμμετέχω οσο μπορώ ηλεκτρονικά στον 'αγαπημένο΄μου σύλλογο, τον Συλλογο Judo Περιστερίου - Dojo Club. Σε πιάνει μια μελαγχολία μερικές φορές όταν βλέπεις τους δασκάλους σου και παλιούς συναθλητές σου σε φωτογραφίες, να συνεχίζουν την προσπάθεια, να κάνουν δραστηριότητες και να μεγαλώνουν τον σύλλογο. Αν είστε απ΄ τα δυτικά και θέλετε να μάθετε για το judo, κάντε μια βόλτα πάνω στον Άγ. Βασίλειο στο Περιστέρι - υπάρχει μια θερμή judo παρέα.
hajimeee λοιπόν και στο Λονδίνο! 

Sunday, April 17, 2016

Spring Async and Java's 8 CompletableFuture, a small change to the existing tutorial #spring #async #java8

It is known that I am not the biggest fan of Spring, but at the time being I work for an organization that maintains too many projects utilizing Spring (in different forms and versions). I still remain skeptic towards Spring, of course there are some very nice ideas, there are some nice (too many) abstractions, there are some very handy 'shortcuts' to bootstrap complex projects. I am not going to elaborate on the things I don't like in this post.

One thing I like on Spring's documentation, is their getting started guides. Well written and concrete. I was reading through, a short guide, for 'Async' method execution, through SpringBoot /RestApi [link] .

So this is this the implementation of the example 'asynchronous' findUser() method. Full source here.

public Future<User> findUser(String user) throws InterruptedException {
  System.out.println("Looking up " + user);
  User results = restTemplate.getForObject("" + user, User.class);
  // Artificial delay of 1s for demonstration purposes
  return new AsyncResult<User>(results);

I was wondering why there is still a 'Future' in the example, while we have been introduced Java8, CompletableFuture. I guess the original authors want to preserve backwards compatibility with previous versions of Java (6 / 7 ) - where this construct is not available.

It seems that someone else had the same question, and wrote a very nice example here. In one of the comments, you can see a hint that from version 4.2 and onward the Spring API, would be compatible with the use of CompletableFuture, on top of Future & AsyncResult which are already provided. I thought, `well it's a shame, why not try it or even document it, because if someone lands on this example, he/she might stay with the current implementation` - why not use something standard?. 

So I decided to make a tiny change, remove Future and replace it with CompletableFuture, also comment out the calls to Future.isDone() and replace it with the very handy CompletableFuture.allof() method.

So I changed the return type on the 'service' method

while, updating the, caller code - to sync on all 3 futures and once allof() them were done, we could print the results.

The modified, example can be found here. I found this and this blog posts from Tomasz Nirkewicz, a very nice and pragmatic walk through of CompletableFuture, rich method list. There is also a quite complete presentation by my favorite Devoxx Speaker , Jose Paumard you can find it here.