Monday, 12 September 2016

Keep your Playstation disconnected, Sony may steal your content!

I recently had a dispute with Sony which is ok, since from invention of trade merchants and customers have disputes. When disputes happen, some companies favor customer satisfaction such as amazon and some don't which is again ok since the customer is free to walk away. But what is not ok is to steal materials not subject to that dispute. This is no where near professional nor civilized. Here is the story how Sony decided to steal my paid content because we just simply didn't agree.

I don't play games a lot but as a fallout fan, last night I decided to play for a couple of hours before I go sleep. As I launched the game there was a warning saying my additional content from my season pass is removed. I realized my account was not signed in and online so I quit the game and tried signing in. While trying to sign in another message appeared saying I need to check my email and reset my password.

After several unsuccessful attempts, I contacted the customer support for help but got an absurd response that my account is banned and my previous paid content is removed. Now let me flashback to tell the whole story.

About a month ago, I got an email from paypal about a $25 transaction from playstation store. Since the only content I bought in recent months was Fallout Season Pass, this was clearly a fraud transaction which I did not authorized. At that point I had no clue if my paypal account is used in another playstation account or my playstation account is used on another device but the first option made more sense. Since it should be my paypal account which is stolen, I logged in my paypal, changed my password and dispute the transaction. Clearly Sony got mad from my action and decided to ban my account which is understandable, if either the merchant or the customer is not happy with the other they may choose to leave. However, Sony did not stop there and also removed my previous paid content from my account which is in simple words 'theft'.

The customer representative told (or threaten?) me that I can never dispute transactions over banks but should raise it Sony which is not correct according the customer rights given by mastercard, visa, american express and paypal. But I was not there to fight so asked him how to remove the dispute from paypal and move the dispute to sony. He told me to go and buy playstation pre paid cards, pay the amount subject to dispute and than he would give access to my PSN account. Really?!? what next, pay ransom to get save files?!?

First this is not much different then breaking into your customers house and steal your previously sold items just because you are not happy with the last sale. Second and worse, this simply favors fraud! Virtual (non paper) currencies and payment methods are not safe. Sony itself had previously leaked many credit card information of their customers, this is why all major payment systems favor customers against fraud. Most reputable companies also follow the same principle but clearly not Sony. The moment I raised the issue, Sony should have stopped access to the content subject to dispute, inform me and try to understand what is wrong. Third, even if I am bad person and liar who bought something and asked for my money back, the only thing Sony could do is remove that content and ban me for future purchases but removing previous content is simply stealing and against the law. Clearly Sony is backing fraud by asking their customers pay and not raise claims and even worse not afraid to steal.

8 months ago I saw a transaction from amazon which I did not place. I called my bank and report it. My bank refunded the money and send me a new card. A week later I received two shipments from amazon and realized amazon had splitted an order of mine into two shipments and two transactions. I did not carefully checked the first transaction which was why I thought the second one was fraud. I called my bank, approved the transaction and sent an email to Amazon to apologize. Amazon simply responded that it was ok and the surprising thing was they did not even care to contact me about the bounced payment. The next day I bought an Amazon Prime and since then use Amazon even for buying toilet papers. Guess what the next day after last night... I will be buying an Xbox S, cancel my preorder for Playstation VR and dispute all my previous transactions from Sony since my access to them is blocked. Well done Sony.

Tuesday, 19 July 2016

New Season's Android Talks are here!

Since I finished writing my book and the devfest season is approaching, it is time to focus on technical talks. I have created some new talks and also updated an existing one. Most of the talks listed below are complete although some may need a little more work.
If I happen to miss your event and do not submit a talk but somehow you came across this post and interested in one of my talks just ping me!

Android and the Seven Dwarfs
This talk is about libraries and frameworks which are crucial for any project and was previously delivered in Devoxx Belgium, Devfest Silicon Valley and Android Developer Days. Below you may find the video from Devoxx version but I rewrite all the content and rebuild all the slide deck (well, except for the jokes).

Abstract: Android is a great OS and it's Java based programming environment has offered an easy learning curve, great adaptation but also brought its own pitfalls and problems.
The httpclient shipped with android is buggy and outdated, Java's programming model does not encourage developers to use separate threads for non-ui related tasks, use of anonymous inner classes for listeners create a burden and ugly code and of course this list goes on.
This talk will focus on seven great open source libraries which do fix Android's programming model, the way jquery fixes javascript. The libraries will be covered with example code, advantages, disadvantages, internals and when to use them.
#libraries #frameworks #butterknife #dagger #okhttp #volley #retrofit #greenrobot #realm

50 Shades of Android Studio
As an eclipse veteran I always dragged my foot to Android Studio. This talk is mostly based on the teaching and lessons I got while writing Expert Android Studio book. The idea is IDEs are here to help you not to torture you. Most sadicstic yet errotic talk ever :)

Abstract: After years of Eclipse experience does Android Studio inflict you pain? Don't worry! Android Studio is getting better than ever each day! Whether you are a seasoned IntelliJ developer or an Eclipse veteran, Android Studio had many hidden features and gems which can unleash your true potential. This session will cover many tips, tricks and techniques varying from shortcuts, best practices, writing gradle and intellij plugins.
#intellij #plugins #shortcuts #gradle #buildlifecycle #codesniplets

The fault in our Apps: Android Design Patterns
Who doesn't like design patterns? Well at least who doesn't pretend they like it and know it all!! But but wait a minute, are they same on android? are they already there or need to be implemented from scratch, does android offer more? This talk will convince you that they are more than fancy words and teach you how and when to use them on your little green friend.

Abstract: In 1994, the famous Gang of Four, published their book "Design Patterns: Elements of Reusable Object-Oriented Software" and since then any developer who wants to look cool and respected is obligated to use them in their daily chats. Actually it is more than that, Design Patterns are decades of collective wisdom to provide solutions for common problems in software. Android makes heavy use of design patterns both internally and at the SDK level. This talk will focus on classical GoF design patterns and how they can be implemented on Android as well as covering patterns which are specific to Android and mobile software ecosystem.
#adapter #singleton #facade #flyweight #proxy #dependencyinjection #mvc #mvp #observer #command #builder

OpenJDK for the a'N'droidlings
We, android developers, have been dreaming to use lambdas and new language features for a long time. However, moving to OpenJDK has changed more then just the language syntax but the whole internal build and debug process. Well, don't worry! this talk covers all ;)

Abstract: The day has come, finally with version N, Android moved to OpenJDK from the old rusty "Harmony" based friend. With the move to OpenJDK finally aNdroid finally has access to many new language features lambdas, streams, default methods on interfaces and many more. You have listened all those features in Java talks for years, this time come and watch  how the new language features and invoke dynamics will change your aNdroid world. 
#jack #jill #javabytecode #artbytecode #invokedynamic #openjdk

Friday, 1 July 2016

Tips for writing a book..

Tip #1, don't even start. Turn your back, walk away, mark all related emails as spam. Seriously don't underestimate the time you need to invest and believe me it is never ever worth the money. Most probably many stuff will change by the time you delivered the writings which will drive you mad. BUT worse of all, you will become addicted! Even thought you know how hard it is you will jump into another opportunity when you are finished.

Tip #2, work with the best. Book writing is not a one man job. Find a good co-author and form a good team else you will burn out yourself, spend to much time on writing which will make your already written material to become stale and outdated. My first book I was very very lucky to come across the best people I could work with. My editor Mary James supported my book proposal and later did a tremendous job to bring a co-author, Alex Theedom on board when I burned out. Although I was terrified with the idea to share my book with another author at first suddenly I realized how team work raises the quality of the output. That's why I carefully selected my co-author at the very first day of my second book. Onur Dundar did a tremendous job in keeping me up to schedule and challenging my knowledge and the quality of the output. To summarize find a good co-author who will work with you as a team.

Tip #3, find an effective way to split the work. My first book, both Alex and me (mostly) work on the same content, writing in turns and giving feedback each other. This works pretty well specially on advanced topics but happens to be slower. On my second book, we followed another strategy with Onur. Each of us (mostly) working on a separate chapter bringing it to almost complete before passing it to the other for finalizing the content and the language. This happens to be way faster but also harder to follow same style of writing and still some chapters will require both authors to work on the same content to challenge each other. So the strategy you should choose to accept heavily depends on the chemistry between the authors and content you need to deliver.

Tip #4, be patient for comments and edits. Never forget, the editors and reviewers are there to raise the quality, not to annoy you. Respond each comment and try to understand the point of view. Some comments may annoy you because a non-technical person is commenting on a very simple basic technical point like "what is an IDE, please explain each abbreviation". The last thing you should do is to get annoyed and say come'on this is a book about an IDE, if the reader doesn't know it he/she shouldn't have bought the book in the first place. The same also goes other way as technical people may comment in non technical texts such as stories. The trick to remember is everyone is in the same team and most of the reviewers and editors are much more experienced than you on writing and all they want is to raise the standards. Also be patient and calm for the comments you receive after your book is published. Try to contact and gather more feedback if someone is commenting on Amazon or any other platform.

Tip #5, make sure you are writing a book you want to read. Publishers may request high page counts or different topics to be covered and believe me they have a reason and they are not evil but you can only deliver quality content on what you know and what you want to deliver. If you are adding words or stories just to make it longer, just forget about it. If you are adding a chapter which you are not interested in writing or learning, just stop it. When I finished my first book and was writing the front matter, my co-author Alex has written a wonderful comment which summarizes the whole motivation we had. I strongly encourage everyone to follow this. Quoting Alex, "Every chapter that we wrote had the goal: write content that we would like to read ourselves". If you want to write a book, write something you want to read.

Tips #6, find a good topic. Writing a book like a "tutorial" for a framework or a platform which is already very very well documented is a waste of time. Android SDK, Hibernate. Spring are few examples of very well documented subjects. If you are going to write a book on beginning one of them, you should make a difference or even before publishing your book, their website will be more updated than your content.

Tip #7, find a good preface author. Specially someone you like to read or someone you admire can be a great foreword author. Again I was honored and very very luck to have Reza Rahman to write the foreword of my first book and Mark Allison to write the foreword of the second one. Reza was a huge influence for me with his book EJB in Action. Similarly Mark's blog has been a very good resource for my current daily work, not to mention both are great speakers on stage, Reza being JavaOne Rockstar and Mark being the magician and a GDE. Simply find someone you want to honor their name because of their work.

Tip #8, forget aggressive marketing. Best case you are getting paid a very very small percent from each sale. My first book was available on torrent even before I have seen it on paper. Use your book to get attention to your talks or work but forget about pushing people to buy it. Complaining about how much time you have invested in the book? Goto #1.

Tuesday, 10 November 2015

Wrap-up JavaOne'15

It might be a little late for the post but there is much to be said..

Another JavaOne is over, not only a JavaOne but 19th JavaOne on 20th year of Java!!

I just feel JavaOne is turning into a old friends gathering event for me than the technical conference it used to be. The conference is shrinking in terms of contents and number of sessions while Oracle Open World expands to sessions rooms which were part of JavaOne.

Don't get me wrong, I still enjoy going JavaOne, meeting friends and community. However, variety of sessions become much limited. The 20th year of Java keynote must have been the most boring one except for the part Scott McNealy was on screen. Actually it might have been the only worth to watch part of the whole keynote!

So what happened... why J1 is just fading away? Is java and us getting old?

It is not a secret that J1 has lost a lot of blood after being kicked out Moscone in 2010 but it got worsen with loosing the mobile track with the going down of Java ME. Since moved out of Moscone J1 was hosted in the Hotel trio Hilton, Nikko and Park55. However this the trio has become duo leaving another hotel to Oracle Open World. I really wonder if OOW need so many rooms (Moscone South/North/West and now an additional hotel!) while j1 is shrinking.
Also this year before J1, Oracle terminated contracts of many veteran Java Evangelists which left most fun part of Java and J1 in the dark. One may argue that Java does not really need evangelism anymore but than where was the fun stuff such as minority report demo at the keynote?

So what to do now? How can we bring back the spirit?

Here are my 2 cents to Oracle...

- I respect and understand you want to highlight stuff you are doing in the keynote but believe me it is boring. Either find a fun way to talk about it or just delegate this to session speakers. For the last 3 years we are just listening the same jigsaw and lambda slides and how Oracle is investing and engineering java! For the keynote, for once, forget marketing and make fun!
- Let's face it Java ME is long time dead on mobile but may re-born for IoT. This year was a good sign that Java ME can really shine with IOT but thats it.
- So Java lost the mobile phones?? No, hell no.... Even if you like it or not, Android has become the most widely used mobile OS and even if it does not run on JVM, it is still the Java language! The lawsuit is over, make peace and let Java survive on mobile! Let's face it what will happen if google walks away from java on android! Be wise Oracle, even Microsoft is investing on Android...
- Please, please, please keep j1 keynote in moscone!
- Finally, we are on the same boat Oracle... please don't just let it sink..