Category Archives: rant

Rebuttal | Top 9 ethical issues in artificial intelligence (www.weforum.org)

Please read this before understanding the context of this post.

They are asking silly questions, that need to be nullified.

1. Unemployment. What happens after the end of jobs?

It has been established very strongly that weak minds fear technological advancement. If you are not ready to upgrade yourself, you become stagnant in your current work. So overruled! We should have one objective: advancement in technology should not be subject to professions unless it in unethical. Ask the truck drivers, about the ease of remote car locking( I am sure they are using it). Why did they not protest for locksmiths? Its a statement to create unnecessary tensions.

2. Inequality. How do we distribute the wealth created by machines?

Why? If you stumble across a pot of gold in AI for by providing some solution, you choose how you spend the money you own. Did anyone ask how to distribute money <some-business-tycoon> earned from their business? Such events occur and machines do not own wealth, there’s no inequality.What’s this question for?

3. Humanity. How do machines affect our behaviour and interaction?

We might need to start training everyone on this front. Already we(atleast I) find myself struggling in my behaviors and interactions with fellow humans, another human like AI, with no heart and consciousness, well you are only going to make things complicated. Hence the need for training. Related post here.

4. Artificial stupidity. How can we guard against mistakes?

Remember what Einstein said about Stupidity? Well we should solve/address things that are solvable and not something unpredictable. Can we program stupidity? I think we are still far from it.(stupid != foolish)

5. Racist robots. How do we eliminate AI bias?

Why do we put racist behavior inside AI first? Fix the root, you get a better fruit. See #7 resolution for more on this.

6. Security. How do we keep AI safe from adversaries?

Propaganda. Read a resolution for it in my earlier post here.

7. Evil genies. How do we protect against unintended consequences?

Simply have an insurance policy for AI: Any person/entity who produces an AI product, will be held responsible for any consequences coming from it. And that ownership will be lifetime. Not conditional or not lease based. I do not know why have we forgotten Newton’s 3rd law!

8. Singularity. How do we stay in control of a complex intelligent system?

Two examples come to mind: Alphabet and UN. One is perfectly managed complex system(Alphabet) and the other is a hopeless mess of crap(UN). Learn from Alphabet. I doubt if there is any other convincing organization really working for us humans, genuinely.

9. Robot rights. How do we define the humane treatment of AI?

I am surprised this question is being raised by heartless minds. Rights are for entities that have life(insects,plants,animals,humans qualify). Have we arrived at a state where human rights are protected on whole planet forget about the others? Unless that state is not arrived at, it is unfair to ask for something called robot rights. Did we ask for TV’s rights and camera’s rights and toasters rights? Referencing this post here again.

Hope this takes the thought process in a better direction.

Java EE 9 Survey ~ Technology has gone Democratic and Political(rant!)

If you are in the Java ecosystem, please fill out this survey.

After you are done laughing and wondering what you just saw, I will pen down my thoughts and serious objections to the way they are doing the survey.

Here are a few things asked, which I think are absolutely unnecessary, humorous to ask in a tech survey:

  1. How important is Eventing support for the next generation of cloud and microservices applications?

    • Is there any application which does not have eventing? Is there any application that has only Eventing support system??
  2. The current practice of cloud development in Java is largely based on REST and asynchrony

    • So cheeky statement!
  3. Application development style is changing…

    • This is happening for the first time in history of mankind!
  4. How important is HTTP/2 for the next generation of cloud and microservices applications?

    • What if it is important and then What if  a newer protocol/standard comes?
  5. How important are the new features proposed in JSON-P for the next generation of cloud and microservices applications?

    • How many people are aware of these concepts?
  6. The databases may be used as replacements or additions to standard RDBMS storage

    • ha ha ha ha ha ha ha!
  7. Should we standardize a Java EE application configuration API?

    • no let United Nations drive this initiative.
  8. In the Cloud, failure of application instances and services are inevitable

    • Truth statement, not a survey question!!!
  9. Should Java EE introduce a mechanism to communicate the health of the cloud application to the cloud infrastructure?

    • umm.. why just health? why not a cumulative health parameter listing?
  10. Current trends talk about building ‘stateless’ applications and services, but the need to store some state exists nonetheless

    • why NoSQL did not happen yet?
  11. To be successful, many microservices need a scalable, fault tolerant state management solution

    • someone tell me how Oracle defines a micro service?
  12. Should Java EE investigate standards for state management? Should Java EE 9 investigate how to package a set of microservices together?

    • Let some federal body do the investigation? Is modules dead??
  13. The Java EE runtime components could provide an “embedded” API

    • what on earth is an embedded API? some kind of zombie api??
  14. We could enhance key Java EE APIs such as JAX-RS to better handle these technologies.We could integrate JCache with the Java EE platform

    • so kind of you!
  15. We could define a secret management facility suitable for a cloud environment

    • there oracle’s way of management is *secret*… Where on earth are Sun Microsystems engineers?
  16. How important is MVC API for the next generation of cloud and microservices applications?

    • (scared of the spring tools?)
  17. How important is the Management API, as proposed in JSR 373, for the next generation of cloud and microservices applications?

    • So there will be a mgmt api and a secrets management api! I already  like Oracle!
  18. How important is the continued evolution of the JMS API for next generation Java EE applications?

    1. wow! That is so political, stop working on something just because there is little traction… Does not happen in tech guys!

This is my opinion. Could be utterly wrong or out of context.

But Dear World, use democracy judiciously, by indicating you are a a thought leader, do not sit on the general opinion and say you created a standard. A standard creation needs long term vision and astute conformance that a chosen approach would suffice for years to come!(Java is 20+ years already no?)

(Here is an aside…)

It is like you have your food daily on the dining table, its a standard. What you are saying, hey our neighbors are here for couple of days,they have trouble walking, why don’t we have the food daily in the bed itself?So let’s ask everyone if its okay to have food in the bed daily? Let’s ascribe whether we can have chow mien while we are still  in bed?

So please STOP taking opinions and start taking a firm stance and start defending it to your core.You all are at the top of your game so when are you going to put to use of that knowledge? And if something is wrong, humbly accept that for the betterment of the standard. You all sound like a group of politicians gathered to sit and harp on majority public opinion.

Now is the best time for all the smartest minds of the world to forge and take charge and establish standards that are the outcome of their experiences, and not just there to please the majority public opinion. What is correct as per their experiences should be put forth and debated as standards. Not whether X should be a standard or should Y be the standard. What is the use of your expertise then?

Please get back to being engineers and not just tinkerers!

The messaging wars are at its peak!

WhatsApp deviated from their no-advt policy just at the start of this month. That triggered everyone to start searching for alternatives to WhatsApp’s addiction!

Here is what I could find (and wanted to try) since then:

1/ Amity : They claim themselves to be the Interactive Messaging app, and they hail from Australia. Seems very exciting!

Here is an introductory video too:

2/Allo : This is the recently launched chatbot from Google! I think this will win the race hands-down! Their AI is very slick and you maybe even (if I say so) more human than Siri! (what am I saying?)

Although there are other non-Zuckerberg players like: Telegram,Viber,Hike,WeChat,Skype But now the segmentation has started to take its evil form in! With WhatsApp you never needed to think if the other person might or might not have the software!Kudoz to them for launching the app for Symbian S60 platform!! But ever since FB took over, just as with the deviation from no-advt policy, who knows what level of invasion might creep in! :-/ Hence my motivation to stay away from any Zuck platform!

Coming to my current phone: Jolla: Sadly only whatsapp (dislike now) and telegram seem to work via ported android apps on Sailfish OS. I wanted to try out amity app and allo on Jolla but there’s a bit of an exercise involved over there to get things working!

Further, here @RL, we had  thought of creating a messaging app ourselves couple of years ago! We thought of calling it ‘Z.(shout out to deamypixel@RL) It was build around the premise of adding a ‘Z to every greeting.

say: good morning, ‘Z says: good morningz

say hi, ‘Z says: hiz!

say bye, ‘Z says: byez!

Maybe when the right opportunity comes we will give a shot at churning this one out! Any collaborators?

Until then the search for the the whatsapp alternative is still on!

Sculptor’s Log

There was once a log, ready to have a meeting with the Sculptor, getting ready for the grind!
Casually it approached the scene, not knowing what is to happen to it next,
Waiting to see who/what is the Sculptor is and what can he do for it?
Seeing a couple of wasted logs around the scene, it could not resist but ask their state!
They said in chorus – “One word, Do as the sculptor says” as they were tossed out of the view.
“Ahh, What could the Sculptor ask me to do” was the only thought pacing up and down the log’s mind!

Log being chiseled!

And the moment of the log’s meeting arrived…
Placed in the hands of the Sculptor, the log could not giggle profusely!
And then.. Bam! Sculptor’s chisel tore apart a big chunk from the log.
And the log screamed to the Sculptor, “What are you doing, please stop”
The Sculptor stopped, and asked whether the this log did not have a chatter with other logs?
The log said, “They said only-to listen to you,they did not tell you’ll make me undergo this chisel”
The Sculptor looked clueless, and the log asked itself to be excused.

After some time of pondering…
The log thought of going through the process as one strike a day…
And the deal was made…
Days,Weeks,Months passed and the log took the blow daily and frowned and complained..
And then one fine day, the Sculptor said to the log, I’m done with you.
And then the sculpted-log was moved to a different place — not knowing where and for what, it cooperated!

Being sculpted

A few days later…
The log was placed at a higher platform, and then by chance it got to see itself in a mirror!
And it could not believe what it could see — A beautiful deity crossed its sight.
Not believing that was It, the log waited for another such day and then the belief was confirmed.

Outcome of fore-bearing the chiseling

The log had a good after thought..
All the suffering, the chiseling, was given to it for its shaping.
Had it complained and not gone through the grind, it might have become another wasted log…
Thanking the Sculptor, (and the wasted logs for the advice), for his efforts, it just smiled.

(This post is inspired from a story over-heard — all images are googled, no claim on ownership)

Bots – BOring Tasks Systematized!

We are surrounded and supported by a bots ecosystem. I will try to bring that into perspective to evaluate the current rate of explosion of bots and newer solutions coming around it — and how to stay human still!

Connected with the Bot Ecosystem!
  • When we wake up,with help from an external alarm clock , we are taking help of a Bot.
  • When we are parking our car and when reversing it, there is a smart system that warns us for the exact safe-distance to keep going. That’s a smarter Bot!
  • Notice the cool soap dispenser that spits soap when we put our hand under it? That’s a Bot!
  • Recall the automated vacation response you configured in your favorite email client? Well, you have guessed, that’s also a …Bot!

We have never thanked these systems for their existence, for we know they are physics concepts glued together mechanically. A Thank-You comes and goes via a heart! 🙂

Coming back to the topic, now imagine all of those Bots, fusing into a single system with a human structure!

SuperBot
Hey, I am SuperBot and can do everything that was listed above & much more!
  • What was your reaction when the last time, your car backing system told you incorrectly that you were 1 meter from an obstacle while there was a gap of roughly 5 meters!
  • When was the last time your alarm clock did not wake you up?(battery out or way too low?)
  • Isn’t it way irritating when the mechanical soap dispenser does not spit the soap, instead only throws out the air?
  • Haven’t we all misfired a wrongly configured vacation response and feeling way embarrassed and apologizing for it for all day long to colleagues and co-workers!?

As for the premise, these bots *independently* do their job perfectly. But when they break, nothing else is affected around it. Well I am yet to hear about misconstruing a vacation response due to a non working soap dispenser!(all right that’s way too much exaggeration — but we get the point!).

The fact that they are disconnected, allows us, the user of that system to fallback/switch to another means. Say the car backing system is down, well ask a passerby to help you. Your alarm clock is out, well start working on your body’s alarm clock(no excuse here!).

I will construct two hypothetical views that are actually happening in the bots eco-system and obviously I am opposed to such developments. Hence suggesting a way out, as I cannot stop these movements.

  1. Once these systems are connected, and one of its components starts acting strange(see I elevated it to a human), the whole behavior might be eccentric to say the least. If your SuperBot is out of battery, it might just get you to wake you up but might not be able to help you with and send the vacation responses.
  2. Add the internet to the mix!

    I’m out of order but controlled via the internet.

The take away from the whole story:

  1. Let us as individuals, not try to fuse all our bot dependency into a single system. It makes it highly probable to fail and although it gives us lot of convenience, but at a high cost of dependence. This whole connected thing is a convenience at the cost of our freedom.
  2. The most secure sites are still subject to theft/fraud ( I am only referring to financial losses). When a fused bot with the thinking of the whole internet is there, and one small error/condition unchecked/unnoticed will be not safe, to say the least.

As for the bots ecosystem, I would love to see

  • a centralized parking bot, letting a big relief to all humans from this petty job
  • an aerial bot that delivers newspapers

But then again, I won’t allow either of them talk to each other, A single Bot good for One Task. 🙂

Why is new-style(apps based) cab booking still a mess?

I assumed this new style will beat my old/traditional way of the whole cab experience, but HELL NO!

Every riders woes – Minutes before boarding a cab!
  1. Booking beforehand
    • Apps:You cannot book the app based cabs beforehand. One service allows, but only 0000 to 0700 hrs ? That’s superb customer service, Their systems maybe do not take peak hour requests!
    • My Way: Go ahead and book the cab even two weeks ahead and the cab will be right there for your need!
  2. The day of the booking
    • Apps: You forget about your last minute travels plannings, instead dedicate one human to constantly check for cab availability.
    • My Way:No problemo sire! We’ll be there and we’ll also carry your luggage from your house to the cab!
  3. At the 11th Hour of the booking
    • Apps: Hope you get through “ride now” option! And if you cancel, you are logged out of making any further bookings! Grr!
    • My Way: We will be there in exactly 10 minutes! Unfailingly!! (beat this experience!)
  4. The cab is there — where?
    • Apps: I am standing here, where are you (happens atleast 2 times) + Sir I thought booking was for 1130 hrs, you are coming after half hour, please cancel your request + Sir, you please cancel as you are not coming + Once I had this cab driver run away,with the cab, right infront of my eyes! That was so sorry look on my face!
    • My Way: The cab is visible right infront of your gallery!(Beat that! again? anyone??)
  5.  The ride begins
    • Apps: Sir, which route?. Hope you know where to go. We’ll ask someone there.(spend 15 minutes searching and asking everyone around)
    • My Way:Sit back, relax, sleep, They tell me when the spot is reached!(They use their phone for reaching the destination! -Ain’t that smart!)
  6. Post-The-Ride :: Tu Kaun?
    • Apps: me:Thank you for not abducting me and extorting money!
    • My Way: me:Thank you for taking care of my traveling woes!

Although “My Way” is 2x cost wise, but other comforts are simply not comparable! I can quote 10 more other problems with the apps. It’s still not my preferred way of traveling!

Driving dislikes me! I am interested to reach my destination with least hiccups!

I’ll post a follow-up with the state of self driving cars!

Javascript muggles don’t mess with Java’s strong type def structure!

Yes, this is going to be a rant post!

If you are in sync with the recent developments happening in/around open jdk you might have come across the JEP-286 | Local-Variable Type Inference

This JEP has been authored by none other than Brian Goetz and endorsed by Mark Reinhold himself(Yikes!).

I will straight away come to the points why I(no-one) vehematically (n:vehement) oppose this improvement!

  1. Code is read more than just written.
  2. There is max context when someone is writing an implementation for a method! All context needs to be dumped then and there. By bringing in this change, all this context will be lost for ever!
  3. This change introduces the idea of “I know its suppose to return X”, there will be no way to verify the claim, except the compiler-interpretation.
  4. Such changes belittle the language semantics! Well remember this: Milk of a lioness can be held in a gold container only else it goes sour! Java respects this semantics as of now! (Its really cool!).
  5. You can leverage power of automatic type suggestions while one is on RHS of the equation/statement, which has given a great boost to the language via lambdas. LHS *has* to be clearly defined.

Following are demo videos showing how easy and quickly one can do an alt-enter in your favorite ide and have the LHS of the assignment automagically inferred!

1/Simple example from the JEP

 

2/Complex examples using files from the same JEP

local_var_file

 

There are couple of surveys seeking public opinion on the same here are their links:

  1. Survey 1
  2. Survey 2

Finally, if you have seen Mark’s Java 9 intro speech, he starts off by talking about

1/No copy pasting a feature from any language just because its cool!

2/ Readability:

This JEP is not only killing Readability, but its not consistent across the language.!? There goes universality and compatibility into the garbage collector!

Let’s just keep evolving without giving up the things that make Java really stand strong on its feet! #DieJEP286

Brute force AI : You don’t train the robots!

Isaac Asimov established three laws for the AI world:

  1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  2. A robot must obey orders given to it by human beings except where such orders would conflict with the First Law.
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

While studying A.I. we never questioned the validity of the 3rd law! What is existence — for a robot? Did we ever question the existence of the refrigerator and ever wondered how it *felt* when we are away for a long holiday? How is a robot different from a refrigerator?

Automatic Doors Have Feelings?

For most of us human-kind we are yet to understand consciousness at an individual/self level, forget re-imagining it(ha ha ha ha ha!) for a mechanical thing! And now we come to the moot point of this post – Why on earth are we training the robots?

Allow me to put things in perspective:

We train things where there is scope of learning. Try to picture this: need to learn = knowing you’re lacking something + you value what you want to arrive at!

Can a robot fit into this definition?

Would you ever want to teach your refrigerator to not give ice cold water to the elderly guest coming for the evening?

Would you ever want to teach your television to turn the volume down during the wee hours of the day?

Just because the refrigerator and the television have evolved to the structure of a human body, do we start believing them as humans?

Why should a human body only evoke human feelings of caring/empathy?

As the robots evolve in physical,analytical capabilities, we as humans are bound to develop attachment to them! Its our nature to en-lifen what crosses our path!

The problem comes when the thing starts to get reciprocated and we go into the spiral!

That cannot happen!

We waste precious time thinking/exchanging human feelings with a machine trained & programmed to behave as humans! Already there are dozens of problems to be solved and addressed at the individual level and we bring an inconsequential no-op to the equation!

Bigger / Better Things to figure out?

Human-Kind put to shame at the end of the following video:

For the sake of humanity, we should not do such things! We are trying to train the robot to complete its work, inspite of the human obstructing it to complete its task? I leave the dark consequences of this dare for you to figure out! I will summon The Terminator to my help!

Call this guy now!

To summarize:

  • You don’t train a robot (You are wasting your time if youre doing this)
  • You program a robot (You do it once and forget it for-ever!)
  • You can train a human (You may come across donkeys too!)
  • You cannot program a human (Except self, tread with caution!)

Please don’t code the heart into a machine!

(Brought to you by yet another reflection/inspiration via @ideapreneur)

Zero Fat( read: XML), Zero Cholestrol(read: Annotations) Web Services!

I have never been an advocate of XML per-say.
And I was faced with the difficulty of writing one recently overwhelmed by the amount of XML and Annotations, well I was looking forward to a hard day ahead. 

Then motivated to defeat XML in my own war, and reducing its footprint in the codebase I am working on, I put on the searching glasses and XFire came to the rescue(credits to them for integrating WS in the most cleanest manner done with Spring, that I know of!)

Now that the plot is set, here’s simple how to:

Presumption: You have two different projects one is the WS other is the consumer of the WS.

Step 1/ Write your service and its implementation in the WS project.
(eg: XXXService/XXXServiceImpl for the project YYY)

Step 2/ Configure the usual project as a spring web project.

Step 3/ Add the following snippet into the web.xml(append incase you have contextConfigLocation predefined.). This makes your project XFire aware.

  
    contextConfigLocation  
    classpath:org/codehaus/xfire/spring/xfire.xml  

Step 4/ Expose the service as Http WS through XFire Exporter:

    
                
                
                
        XXXService    

Step 4.2/ Inject the Service Impl Bean.


Step 4.3/ Configure the Url for accessing the Service.

    
        
                                                

Step 5/ Deploy the WS project an tomcat/jboss.

 

|| End of Server Side Configuration||

Step 6/ Test using the soap url:: http://localhost:8080/YYY/XXXws?wsdl

Step 7/ Configure the XFire client on the other project as follows:

    
      XXXService        
      http://localhost:8080/YYY/XXXws?wsdl    

Step 8/ Inject it in your client

  
      

Step 9/ The client should be configured as::

public class WsClient{    private XXXService xxxService;}
|| End of Client Side Configuration||

Step 10/ Done!

Things to remember::
1/The Java Interface XXXService needs to be shared with the client.
One can overcome this by creating a third common project shared for the WS Provider and WS Consumer.

2/Any changes in the WS provider, would require re-deployment of the first project.
This is the least a java developer(xml unfriendly) can absolutely live with!

3/Once these configurations are done, forget that you ever need to look into the xml’s!
Also any change addition/removal of the methods that needs to be exposed will be purely a java exercise, without requiring to smell XML.
Well you won’t be able to find any xml!!!, thanks again to the wonderful folks at XFire!

PS: All these steps are written here with the help of http://xfire.codehaus.org/Spring+Remoting and implementing this in a production environment!

Hope this helps you in reducing the amount of unnecessary XML’s in your java projects!

~rohit.

Dim Dim is no longer free!

Quoting from their mail received today:


Dear Customer:

Dimdim has been acquired by salesforce.com. Your free Dimdim account will remain active until March 15, 2011. After that date, you will not longer be able to access your free Dimdim account.

Please see the Frequently Asked Questions (FAQ) for additional information.

We appreciate your understanding, and we thank you!


The Dimdim Team


Pursuant to the Dimdim Terms of Use (the “Agreement”) governing the use of Dimdim Inc.’s (“Dimdim”) Site and Services (as defined under the Agreement) by you (“You”), Dimdim is hereby exercising its right to terminate Your Dimdim Account and the Agreement in its entirety. Dimdim will continue to provide Services to you until March 15, 2011. Following March 15, 2011, neither You nor Dimdim shall have any further rights or obligations of any kind under the Agreement, including the right to access the Site, or receive or use any Services. Dimdim thanks you for your business, and wishes you success in the future.


Sad news.