Artificial Intelligence is increasingly visible on what it can achieve in this new era of computations and massive data storage. Until recently there was not enough computational power to perform anything miraculous by the AI algorithms, most of which have been defined in research papers 30-50 years old. These techniques ain’t new. Their implementations and effects are visible now.
I have been discussing with my friend around possibility to create neural networks to perceive images and predict functions to compute a procedural generator from it. Below is what another friend sent accidentally and is worth sharing. This is a research paper and a video around how AI can perceive images and build 3d models from it.
You must already be aware about the projects like Deep Style Transfer which can transfer image styles and apply to completely different photo. Look at the end of link to see the images and their effects. This is the kind of visual power AI is coming up with. Adobe has recently developed this technology with Cornell Researchers behind this innovative effort in attempts to safeguard the future for themselves. [Reference]
Than there is CycleGAN which can understand the maps between two images and use it to create similar images. It can make horses to zebras and vice versa, apply seasons on images you can not imagine and mimic artistic styles. This is one of the top github trending projects now.
This is an era of Cloud Computing. Cloud computing in turn is based on Virtualisation. Linux has turned a winner in era of Virtualisation with its amazing features around networking. However sometimes it becomes really confusing to understand the networking used in Virtualisation.
Hypervisor is the basis on which your Virtualisation works. There are many Hypervisors available today – KVM, LXC, XEN, VirtualBox, VMware, HyperV, OpenVZ and XEN HVM.
The following situation will apply to in general all virtual environments and also will provide you understanding of how a bridge networking works and how to implement it in Linux. It can also help you understand how to work with a local LAN situations where instead of each virtual machine you can have a physical machine.
A linux bridge is a networking component whose functionality mimics a traditional bridge – which is to join 2 different non connectable ends together which in this case are network interfaces.
Did not get it ?
Okay. Let’s consider the following networking configuration. ( Open the networking file using “cat /etc/network/interfaces” command on shell )
Above is a simple networking configuration. It says the following :
Therefore this interface is only used on your machine for access and can not be shared by others.
To share this to others we need to have a bridge on this interface. How to form a bridge ? Pretty easy !
First remove the details from the eth0 interface and make it a manual one.
Like this :
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.10.1.2
netmask 255.255.255.0
gateway 10.10.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
In the above you can see the eth0 now has been made manual. We have added a new interface called vmbr0 which is a bridge. Similar IP configurations have moved to vmbr0.
bridge_ports is an important field here which actually tells you that this interface now is going to bridge eth0 with itsself.
After this you can see this bridge in your linux machine with the command “brctl show”. As and when other devices will attach to this bridge you will be able to see them in the output of brctl show.
This bridge will now be used as a interface on which virtual machines can attach. It can now allow you to use same network interface eth0 but with multiple machines. Machines connected from this bridge will remain accessible from outside your network freely.
Remember that this is now connected directly to your physical interface and IP address which can be accepted by your upstream providers will only work here. This is useful in case if you have multiple ip address for your server – in that case you can simply configure each virtual machine to use their own IP inside the machine and use the same gateway as you are using on the bridge.
This can be used in any virtual network situations now.
A typical way of defining in LXC to use this bridge can be as follows :
lxc.network.type = veth lxc.network.flags = up lxc.network.link = vmbr0 lxc.network.name = eth0 lxc.network.hwaddr = 80:84:16:xx:xx:xx lxc.network.mtu = 1000
In the next post we will see how to make a private networking using bridges.