Last week, I received an email from a recruiter who asked me to do Codility assessment. I had to answer three questions within 245 minutes. Although I’ve heard about Codility, this was my first Codility test experience. To be honest, it was really difficult to me.
These questions were not easy to understand, so it took me some time to understand each question. Then I tried to answer the questions by Java or Python programming language. Even though I eventually found the solutions and summited the answers, my average score was not good enough. When I finished this assessment, I was very disappointed about myself. I even thought whether I should keep a programmer job.😂😂😂
It seems that more and more companies like to use Codility assessments to evaluate developers, but I don’t think it is a best way to test a programmer’s coding/programmer abilities.
Recently, I tried to use Netty framework dealing with message transferring between different virtual machines which are including one server and some clients. Meanwhile, I need to use SSL mutual authentication and Google protobuf when these VMs do communication cross the internet. Although I had already encountered the term “SSL” a lot of times, I soon realised that I had never fully understood how it really works and how it could be implemented in Java.
I would like to share my experience about implementing SSL plus Google Protobuf on Netty. But I wouldn’t exactly tell you what Netty, SSL and Google protobuf are.
What is Chef?
Chef is a systems and cloud infrastructure automation framework that makes it easy to deploy servers and applications to any physical, virtual, or cloud location, no matter the size of the infrastructure. Each organization is comprised of one (or more) workstations, a single server, and every node that will be configured and maintained by the chef-client. Cookbooks (and recipes) are used to tell the chef-client how each node in your organization should be configured. The chef-client (which is installed on every node) does the actual configuration.
PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows.
I used the following command to install Java tools on Ubuntu14.04 , and it also works for old Ubuntu version.
Install Oracle JDK6, JDK7, JDK8
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java6-installer or $ sudo apt-get install oracle-java7-installer or $ sudo apt-get install oracle-java8-installer
Jaspersoft Studio is an Eclipse-based report designer for JasperReports Library and JasperReports Server; it’s available as an Eclipse plug-in or as a stand-alone application. Jaspersoft Studio allows you to create sophisticated layouts containing charts, images, subreports, crosstabs, and more. You can access your data through a variety of sources including JDBC, TableModels, JavaBeans, XML, Hibernate, Big Data (such as Hive), CSV, XML/A, as well as custom sources, then publish your reports as PDF, RTF, XML, XLS, CSV, HTML, XHTML, text, DOCX, or OpenOffice. But my focus is on how to create a simple report and simple code.
1. IP and Subnet Mask setting
- Assign IPv4 addresses to Network Interface
$ ifconfig *interface* *IPv4 address* e.g: $ ifconfig eth0 192.168.10.91
- Assign IPv6 address to Network Interface
$ ifconfig *interface* inet6 add *IPv6 6Address*/*IPv6 Prefix Length* e.g: $ ifconfig eth0 inet6 add 2001:b030:7015:ff01::1/64
- Assign a IPv4 Subnet Mask to Network Interface
$ ifconfig *interface* netmask *IPv4 Subnet Mask" e.g: $ ifconfig eth0 netmask 255.255.255.0
- 2. default gateway setting:
- Assign IPv4 Gateway to Network Interface
$ route add default gw *IPv4 Gateway* *interface* e.g: $ route add default gw 192.168.10.254 eth0
- Assign IPv6 gateway
$ route -A inet6 add default gw *IPv6 gateway* e.g: $ route -A inet6 add default gw 2001:b030:7015:ff01::ffff
- DNS setting:
$ vim /etc/resolv.conf nameserver *ip adress* e.g: nameserver 188.8.131.52