Tuesday, August 22, 2017

Enterprise Integration with AWS

Today I published a blog post at IO Connect Services blog where I describe my experience building a solution to achieve enterprise integration Amazon Web Services in a serverless paradigm using Simple Workflow, SQS and Lambda.

Here I tried to print the tips that I found the most useful. Once you read you'll feel too because rather than talking about API or command-line or alike I talk about pure design and software development basics.

http://blog.ioconnectservices.com/2017/08/achieve-enterprise-integration-with-aws.html

Hope you find it useful and don't forget to ask any questions or comments you may have.

Happy reading!

Tuesday, June 20, 2017

AWS Certified Developer Associate tips

Today I presented and passed the AWS Certified Developer - Associate exam. I found it tough even though it's an associate level but with due dedication it can happen.

I'd like to share my experience with you.

I got into AWS as part of my work at IO Connect Services with one of our customers. It's exciting as it's my first time doing Serverless and Cloud computing with AWS Lambda. Because of this, and other plans in my list, I decided to prepare for the AWS CDA exam. One thing I didn't realize is that there's a lot you have to learn for this, so in my mind it's not an associate level and you'll see why.

First of all, the topics you have to learn, and mostly memorize are:

  • AWS Cloud computing fundamentals.
  • Identity and Access Management (IAM).
  • Elastic Cloud Computing (EC2).
  • Elastic Block Store (EBS).
  • Simple Storage Service (S3).
  • Virtual Private Cloud (VPC).
  • Elastic Load Balancer (ELB).
  • DynamoDB.
  • Simple Workflow Service (SWF).
  • Cloudformation.
  • Simple Queue Service (SQS).
  • Simple Notification Service (SNS).
  • Elasticbeanstalk.
All these services are spread in 4 categories within the exam:
  1. AWS Fundamentals.
  2. Designing and Developing.
  3. Deployment and Security.
  4. Debugging.
The format is in questions with multiple choices, where in multiple times you have to select all that apply.

In my experience, from these topics, you have to thoroughly go through IAM, VPC, EC2, DynamoDB, SQS and S3. The exam is bloated with questions about these services in deep, so you better get familiar with them and make sure that you can deploy an application by memory.

Also note that at this point I haven't mentioned SDKs. They are not covered in deep. As long as you can identify the supported SDKs you'll be mostly fine. This means that you will not be questioned about a particular API or routine from the SDKs. Bear in mind that you will be questioned about the REST API.

Like I said, it's tough but not impossible. I used the resources listed below to prepare myself.

Udemy

I took these courses from Udemy. They are video tutorials and the instructor really does a good job at explaining each of the topics and scenarios. Also, the practice exams gave a lot of chance to improve as you can see explanations of the answers and you get to retake the exams and see how you improve.


Even though I also looked at different resources, I think these links will give you a good understanding of the feeling for this exam.

Safari Books.

Also, as I have a subscription to Safari Books, I used these video tutorials too. You can find them also in Packt.


Test King

Here you will find questions that are a lot like the ones in the exam. Really useful resource. I encourage you to go through all questions and also read the comments, as some of them are wrong but the folks in comments give you a really good hint.


Mobile app

These are mobile apps with a variety of exam-like questions. I bought it for under $10 USD. Available on Android and iPhone.


AWS FAQ

Last but not least, make sure you read the FAQ, particularly for S3, DynamoDB, EC2 and VPC. A lot of the questions are about things that do not come up often at development time, like limits, region support even corner cases specified there.

Is it an online exam?

No. Have in mind that this exam can only be applied by authorized proctors and probably you will have to allocate budget for your travel like I did. When you schedule your exam, you'll get to see the authorized centers close to you.

I know I didn't include a lot of information, but rather I wanted to give you a hint about what to study and where you can find resources. With this I also want to engage a conversation on the comments, so ask any question.

Happy reading!

Friday, April 28, 2017

SeeedStudio's 4A Motor Shield

I recently have been playing a little bit with an Arduino UNO I have at home. I gotta admit that, even though I'm utterly bad at electronics, this microcontroller makes it really easy for people like to build simple prototypes.

One of my pet projects is building a robot car, yes I'm that original 😉. For this, I bought a motor shield[1] from SeeedStudio which makes the Pulse-Width Modulation, PWM, very simple: You connect three cables to the oulets in the shield, program your Arduino sketch (no more than 5 lines) and use the SeeedStudio's library[2] and you will get your motor working. Just that easy!

However, I faced one problem that I was able to manage. In the library, the specified pins are

  • Motor A: 8, 11, 9. Pin 9 is used as PWM.
  • Motor B: 12, 13, 10. Pin 10 is used as PWM.
But for this shield in particular, the pins are different. Based on the schematics[3], I noticed the correct order:
  • Motor A: 5, 6, 9. Pin 9 is used as PWM.
  • Motor B: 7, 8, 10. Pin 10 is used as PWM.
I decided to fork the library in GitHub and make my own modifications to make them available to anyone who's having the same problem as me.


If you have a different board, make sure you are using the correct pins and also make sure that the PWM pin number you're specifying in your Arduino sketch is in fact an enabled PWM pin. They differ from board to board. For instance, in the Edison the default PWM pins are 3, 5, 6 and 9 and if you need pins 10 or 11 you'll need to adjust your PWM swizzlers[4].

Are you as interested as me on these pet projects? Share yours and lets exchange ideas.

Happy reading!

References

[1] https://www.seeedstudio.com/4A-Motor-Shield-p-1954.html
[2] https://github.com/Seeed-Studio/SeeedMotorShieldV2
[3] http://wiki.seeedstudio.com/images/9/93/4A_MOTOR_Shield_v1.0.pdf
[4] http://www.instructables.com/id/PWMSwizzling-an-Edison-Arduino-Breakout-to-work-wi/

Thursday, April 27, 2017

Batch approaches and Java EE development on Cloud

I've written a blog post about how can you pursue different approaches to run batch executions using Mule. This is a proof of concept to demonstrate how a well-thought design is in many cases better than using the out-of-the-box features a platform provides.

Bring your thoughts with you and comment it. I'd like to start a conversation about this.

Find it in my company's blog: http://blog.ioconnectservices.com/2017/04/mule-batch-approaches-benchmark.html

On another idea, SDJournal magazine re-published an old article about Java EE development on the cloud using IBM PureApplication System (PureApp) and IBM Rational Application Developer (RAD). I have to point out that this is rather old but the principles still apply, even though RAD no longer supports PureApp since version 9.1, I think, but it provides a set of Eclipse plugins that can be installed on top of RAD the will allow to deploy and start Java applications on it (even though not in the same UI fashion it does allow using Eclipse-like procedures).

Have a glance here: https://sdjournal.org/developing-java-ee-applications-cloud/

Happy reading!

Thursday, April 20, 2017

Starting over my own blog

Over the past few years I've used different blog platforms just for the convenience that the companies I worked for already had them up and running. Of course this is a bad practice I've been doing and this is my plan to do things right: Starting my own blog.

First of all, I want to recapitulate my previous content here, so if you're interested in my past work this is the right starting point.

First, I started using IBM developerWorks when I was an IBM employee. I mainly blogged about IBM Rational Application Developer and technologies such as Node.js, Apache Cordova, Swift, API economy and many other things
https://www.ibm.com/developerworks/community/blogs/victorsh?lang=en

After IBM I decided to do something a little different. I switched to a company named Tacit Knowledge[1], a company focused on building e-commerce solutions. There I posted about IoT
https://blog.tacitlabs.io/controlling-devices-over-the-internet-of-things-part-1-1d5d6ec38f84

My stay there was really short so I decided to post my two-part blog elsewhere, this time in a forum more adequate for the IoT topic, so I chose Instructables
http://www.instructables.com/id/Controlling-Devices-Over-the-Internet-of-Things-Pa
http://www.instructables.com/id/Controlling-Devices-Over-the-Internet-of-Things-Pa-1

Anyway, like I said before, something that I've been doing wrong but want to correct now. I hope you enjoy reading this and also that you find the things I post useful. Do not hesitate to ask, I love having constructive conversations as I like to learn from other point of views.

To you, my dear reader, thank you for taking time to read me.

[1] http://www.tacitknowledge.com/

Enterprise Integration with AWS

Today I published a blog post at IO Connect Services blog where I describe my experience building a solution to achieve enterprise integrat...