How I have switched from Intel to AMD

I’ve written in an earlier post that I’m in the process of purchasing a brand new computer. The main purpose of this PC is to virtualize other Windows and Linux machines. I’ve opted for an Intel configuration that will aid me in achieving the desired needs. The computer would use an Intel I5-3470 processor with 3200 Mhz, 16 Gb of RAM and an Nvidia GTX 660 video card. For more information check out this article about Choosing the right computer configuration.
After browsing a little bit I’ve discovered that the Intel processor wasn’t good enough for the money spent on it. Another AMD processor is on the market that has some real improvements in terms of processing speed. This is the AMD FX X8 8350, 4000MHz, 16MB with the AM3+ socket. Imagine that this processor with 8 cores and 16 MB of cache memory is around 200 $. Check out these images from to see the difference between these two processors:
The Intel I5-3470:

CPU benchmark
And the AMD FX 8350:
CPU benchmark
You can see that there is a big difference in terms of overall performance between these two CPUs. You can also see that the prices of these two processors are almost the same. I would recommend anyone to choose these AMD processor instead of the Intel-3470. Note that I’ve search a little bit and it seems that the AMD processor works around 50 degrees. If the temperature rises buy and install a cooling system.
   Because I’ve changed my processor and opted for a new architecture, the motherboard needs to be changed. I’ve surfaced the Internet and I’ve discovered an ASRock 990FX Extreme3, AMD 990FX + SB950 motherboard. The chipset equipped on this motherboard is one of the most powerful that are used on this kind of architecture. The motherboard is around 130 dollars and I think will suit most needs. It offers support for both SLI and Crossfire, it has a Gigabit LAN adapter, supports USB 3.0 and 7+1 audio devices. The 990FX Extreme 3 also supports 32 Gb of RAM starting from 1600 Mhz to 2133 in OC (Overclock). It has plenty of SATA and PCI express ports and it does also support AM3+ sockets. Remember that you can install the AMD FX 8350 processor without upgrading the BIOS.
   I’ve also changed my memory and opted for a pair of Corsair Vengeance DDR3, 2x8GB, 1600MHz. These memory bars are equipped with some large radiators and also support XMP. These are around 150$.
   For the power supply I’ve chosen a Zalman ZM500-LE. This 500 W power supply does the job perfectly and it has some safety measures such as Over Voltage Protection(OVP), Under Voltage Protection(UVP), Short Circuit Protection(SCP) and Over Power Protection(OPP). This power supply is around 50$. If you need to calculate the overall power consumption of your machine, check out this cool calculator
Remember that all these prices are available in my Country and may not apply to your location.
   I hope this article will serve well for those that want to switch from an Intel to an AMD processor. If you think there is more to be added here please leave a comment. Enjoy your day and stay tuned for more articles to come. Meanwhile, check out other articles available on IT training day.

Choosing the right computer configuration

Hello folks,
In this article I will talk about the things you need to consider when buying a brand new desktop PC. Some of these components are key factors in it’s performance, this is why you should choose them wisely. I’m in the process of buying a new computer so I though I share my thoughts with you. Please feel free to add any comment or if you have suggestions I’m here to listen. I suggest you buy your computer by parts because by applying this method you can optimize your computer’s performance and of course achieve a better price. There are many discounts when buying a computer by whole but in most cases the configuration is way lower than buying it by parts. The most important components of a computer are the CPU, motherboard, memory and Video Card. Probably, the most expensive of them are the processor and the Video Card. I think you should invest the biggest amount of cash in these two components. Of course, this depends on how you gonna use the computer. I’m looking for a configuration that will allow me to virtualize machines but also be able to play computer games with high performance and quality.
Before considering buying a computer, establish a budget and then think of the components that would fit inside it. From the beginning I exclude buying a MAC computer. I think these platforms are for beginners since the configurations are so weak (when considering also the money spent on them). What I think you are paying when buying a MAC are the brand and design. If you are a casual user and you don’t need high performance machine, buy a MAC. I personally think is a waste of money. If you are buying your components from US, the price will be lower since this country has cheap prices on electronics. My budget is around 1000 dollars which I think is a good price for a brand new computer (at lest in my country). Just to give you an idea, in Romania the average salary is around 400$ so a computer that is 1000$ is a high end PC in terms of cost. I’ve been browsing for components for a while now and I’ve found a proper configuration that will suit my needs. I will describe a little about the components I’ve chosen, note that the prices are from my country and may not apply in your location.
Motherboard – I’ve chosen a MSI Z77A-GD55, socket 1155. This motherboard is around 200$ and will satisfy all my needs. It is equipped with the Z77 chipset which is the best one in terms of performance/price for the 1155 socket. This motherboard uses Military Class III components (Hi-c Cap, SFC, Solid CAP, DrMOS II) that maximizes the life of the motherboard. MSI also incorporated Nvidia SLI and Radeon Crossfire features offering this motherboard the capability of supporting multiple Video cards. GD55 is also equipped with USB 3.0 and HDMI pro ports. The motherboard incorporates THX TruStudio PRO technology which provides high quality audio performance. I am an Intel fan this is why I’ve chosen this motherboard because it supports Intel I3, I5 and I7 processors. GD55 supports memory with the following frequency: 2667(OC), 2400(OC), 2133(OC), 1866(OC), 1600, 1333 and 1066. Memory supported by this motherboard can include features like dualchannel or ECC (Error-correcting code). With all these things in mind I think that this motherboard suits perfectly to my needs.
Memory – I’ve chosen a Dual Channel KIT (Kingston 16GB (2 x 8192MB), DDR3, 1600MHz) with a price of 150$. They include a radiator for thermal protection and also CL10 latency.
Processor Intel® CoreTM i5-3470 3200MHz, IvyBridge, 6MB, socket 1155. This 3200 Mhz processor with 4 cores will perform well in any situations. The price is over 200$ here, placing it in the mid-section class in terms of price/performance.
Video card – I think MSI nVidia GeForce GTX660 will perform good in any GPU intensive-use applications. The maximum rezolution of this Video Card is 2560 x 1600. It is equipped with a 2048 Mb GDDR5 memory, 192 bits bus and 6008 MHz frequency. GTX660 also supports DirectX 11, OpenGL 4.2, NVIDIA CUDA, nVIDIA PhysX, nVIDIA 3D Vision Surround, nVIDIA PureVideo HD and HDCP. It has installed 2 DVI connectors, one HDMI port and one DisplayPort. It includes a Twin Frozr OC Edition cooling system which will keep this video card cool. The price of this video card is around 250$.
 Hard-Disk – I’ve chosen a 120 Gb V300 Kingston SSD Sata 3 drive. The SATA transfer rate of this SSD is 600 MB/s, the reading rate is around 450 MB/s and the writing rate is 450 MB/s. The price is around 130$.
 Power supplyInter-Tech Energon 650W that is around 60$.
If we sum all prices, the overall cost is around 1000$. The only thing left is a computer case which I prefer to be as cheap as possible since I care about the computer’s performance not the aspect. I think that this configuration is one of the best in the 1000$ budget. Please share your thoughts about this article and comment. I wish you all the best and have a wonderful day

Content delivery network (CDN)

In today’s networks, high availability, speed and performance are the key elements needed to consider. Especially with the over growing size of the Internet, better network resources become more and more demanded. In this article, I will talk about CDN, one of the most important aspect of the Internet. Imagine you work for a big company that consists of multiple websites that are scattered all over the world. You would probably think that installing a couple of web servers and adding a high bandwidth would solve your problems, but the things are a little more complicated. Let’s say your company has its main office in New York and this is the location where the websites are hosted. What would happen if a user from Australia would request something from your website? Since the Internet is so large you would probably think that the user’s computer would send an HTTP request to the web-servers directly and the servers would reply with the desired resource. How long do you think it would take for the server to receive that request and send the answer back? Imagine how many routers would the packets have to travel through, how many processing resources, encapsulation/decapsulation, routing and path selection mechanisms would it take to reach their destination (check out my networking articles if you don’t know what are these elements). This is just for an HTTP request. Imagine you need to download a large file containing your favorite game client, watch a movie online or browse for a resource that would require high bandwidth. Well, without CDN networks these things would not be possible, at least for remote locations or for large resources. A CDN or Content delivery network is a collection of servers interconnected, that are distributed around the world. I think you’ve heard a lot about the term “Cloud” but never understood the main principles behind it. Websites with high traffic require high availability and speed to serve all requests. Here is where CDN networks play their role. You’ve probably heard about Microsoft’s Azure, Rackspace, Amazon’s or Google’s clouds. A company that would want to create its own CDN network would have to install and configure multiple servers in datacenters all around the globe. The company would also have to lease ISP lines to have full interconnectivity between its servers. The servers would normally run the same applications that are replicated between them. When a new version or a new resource is added to a web application, this is automatically copied/updated to all servers inside the CDN (that run that particular website).
Large enterprises like Amazon build their own clouds to serve and lease their servers to smaller companies. In our days, a company that would require a high availability and speed website would lease storage space and server resources from a Cloud provider. When a user would try to access the website, the CDN would find out which server or resource is as close as possible to the user. Now let’s say that a user is requesting a file from a website. The user is located in China and the website is functioning inside a CDN that has servers in Japan, France and Argentina. The user will receive his desired resource from Japan since it’s the closest location from the user. These are the main principles behind CDNs functionality. Now imagine a second user is requesting the same thing from the website. How much bandwidth would it be wasted to fetch that resource again. CDNs use cache methods in which resources that were requested previously by a user, are stored locally so that when a new request with the same resource is demanded, the CDN would simply sent it directly to the user’s computer.
I don’t know the exact protocols or methods used inside CDNs because I’ve never worked for a company that owned one. At my workplace, we have a couple of production servers that host our high traffic websites. When developers add a new resource to a certain website, that resource is replicated from our servers to the  CDN. When users request something from our websites, they never reach out to our servers, the CDN’s servers would process their requests. This adds a certain amount of security since our core servers are not advertised outside.
I would really like to learn more about the protocols used inside CDNs so if you have anything to add or to share with us, please leave a comment, post a question. I think this is an interesting topic especially for those that work in the IT department. I hope you’ve made a general idea of CDNs, enjoy your day and stay tuned for more articles to come.


Hello dear readers,
In this short article I will talk a little bit about the HTTP and HTTPS protocols. HTTP stands for Hypertext Transfer Protocol and basically every web request (typing a site’s URL in a browser such as Internet Explorer) is done using this protocol. HTTP uses the client-server model in which a client requests something from the server and the server responds with the desired request. You can visualize this protocol as a collection of hyperlinks interconnected. You can learn a lot of things about the functionality of the client-server model by reading my networking fundamentals articles. HTTP uses port 80, if you request a a web content on a different port other than 80, your request will not be routed throughout the Internet. Have you ever seen that even if you type for example, your request is automatically redirected to ? (any request by default is an HTTP request). When you specify a HTTPS request, by default, the port used is 443. We will talk in a second about the main differences between these two protocols. The requests that HTTP can fulfill are the following (taken from Wikipedia

Requests a representation of the specified resource. Requests using GET should only retrieve data and should have no other effect. (This is also true of some other HTTP methods.)[1] The W3C has published guidance principles on this distinction, saying, “Web application design should be informed by the above principles, but also by the relevant limitations.”[11] See safe methods below.
Asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content.
Requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI. The data POSTed might be, as examples, an annotation for existing resources; a message for a bulletin board, newsgroup, mailing list, or comment thread; a block of data that is the result of submitting a web form to a data-handling process; or an item to add to a database.[12]
Requests that the enclosed entity be stored under the supplied URI. If the URI refers to an already existing resource, it is modified; if the URI does not point to an existing resource, then the server can create the resource with that URI.[13]
Deletes the specified resource.
Echoes back the received request so that a client can see what (if any) changes or additions have been made by intermediate servers.
Returns the HTTP methods that the server supports for specified URL. This can be used to check the functionality of a web server by requesting ‘*’ instead of a specific resource.
Converts the request connection to a transparent TCP/IP tunnel, usually to facilitate SSL-encrypted communication (HTTPS) through an unencrypted HTTP proxy.[14][15]
Is used to apply partial modifications to a resource.[16]
HTTP servers are required to implement at least the GET and HEAD methods[17] and, whenever possible, also the OPTIONS method.[citation needed]”

How a browser is requesting a webpage is a different topic, but if you are really interested, you can check out my IIS tutorials in which I’ve described how web servers work (at least Microsoft’s web-hosting service or IIS). If you’ve read my networking articles you already know the TCP/IP and the OSI models and how everything is layered. HTTP is a layer 7 concept (Application layer). This protocol is responsible for displaying information so that it can be interpreted by the user.
   HTTPS stands for Hypertext Transfer Protocol Secure, is a concept that uses HTTP and SSL when sending and receiving data. By adding the SSL protocol, HTTPS ensures that information sent between the client and the server is not intercepted. SSL or Secure Sockets Layer is a protocol used to encrypt information sent over the public Internet. I will not talk much about this protocol, you will have to know that it provides three main features: authentication, integrity and confidentiality. Authentication is made using asymmetric cryptography with a public and a private key (these keys are exchanged between the client and the server). Confidentiality is made using symmetric encryption and message integrity is done using message authentication codes. You can browse a little on Google to find out more about these mechanisms.
The main differences between HTTP and HTTPS are:
The first and most important is that HTTPS is secure while HTTP sends information in plain text.
HTTP uses port 80 while HTTPS uses port 443.
HTTP operates at the application layer while HTTPS works at the transport layer.
The URL is different in these two protcols: https:// and http://

secure HTTP connection
In a simple HTTP communication, the browser will establish a TCP connection with the server and will send a request for a desired resource. The server will respond with the requested resource and the TCP connection will close. If you want to know how a TCP connection is established or closed, check out my networking fundamentals tutorials. With HTTPS the client must first authenticate and then it will try to establish an encrypted connection using SSL. Only after these steps are complete, the HTTPS transfer can begin. Websites use certificates, signed by a public Certification Authority, to ensure users that the site is trusted. Most browsers will notify users when a website with an untrusted certificate is opened:
website certificate not trusted
   That’s about it for this post, I hope you’ve made a general idea of these two protocols. Leave any comment or question that you have, enjoy your day and stay tuned for more articles to come.

Video card – components and features

In this post I will talk about the components and features that make up a video card. A video card, as you may probably know, is a component used by computers or laptops to display information on a monitor. A video card can be integrated in the motherboard or CPU, or it can be dedicated (connected separately to a dedicated video slot). A onboard video card doesn’t have dedicated video memory this is why it uses the computer RAM memory. Because of this feature, integrated graphics have low performance. Unlike on-board graphics, dedicated video cards have their own memory and a special designed video processor. Because of these two independent components, the system resources are less used. Motherboards include a video chipset that can be either a AMD or Intel. Amd chipset use Radeon graphics and Intel chipset use Intel graphics.
The key components and features of video cards are:
The GPU (graphics processing unit) or VPU (visual processing unit) is a digital circuit integrated into the video card body and is used primary for 3D applications. The GPU processes information and sends it to and from the Video memory.
The Video memory has two main features, the memory clock rate and the Bandwidth. I’ve taken the following table from Wikipedia:
Memory clock rate(MHz) Bandwidth (GB/s)
DDR1         66 – 950           1.2 – 3.04
DDR2         533 – 1000       8.5 – 16G
DDR3         700 – 2400       5.6 – 156.6
GDDR4      2000 – 3600     128 – 200
GDDR5      900 – 5700       130 – 230
This table displays how the video memory clock rate and bandwidth evolved from DDR1 to GDDR5.
Modern video cards have sufficient memory to be used by the GPU. Usually a buyer first looks at the memory quantity, but remember that the most important component of a video card is the GPU. The GPU is responsible for the video card’s 3D performance (used mainly in gaming). There are many types of the same GPU, this is why you should also look at the frequency. Choose between Cuda cores (nVIDIA) and stream processor (AMD) or between Crossfire (AMD) and Sli (AMD) technology.
The memory Bus – the communication channel between the GPU and the video memory. This is used to send information between these two hardware components
The output connectors are the ports used by external peripherals (such as a monitor) to connect to the video card. There are many types of connectors like HDMI, DVI or VGA and there are video cards that offer multiple display connectors.
The cooling system, which is commonly composed of the heating fan and a radiator, is another important component because the GPU must remain in the temperature parameters all the time.
The digital and analog resolution – this component specify the distinct pixels in each dimension that can be displayed. It is characterised by the number of pixels per width × height.
   Direct X and OpenGL compatibility – these are standard APIs used by video drivers to specify 2-D and 3-D image processing. These two types of APIs are composed of elements that specify how the video component is processed. The next tabel from will display the differences between OpenGL and Direct X:

Feature: OpenGL DirectX
Vertex Blending N/A Yes
Multiple Operating Systems Yes No
Extension Mechanism Yes Yes
Development Multiple member Board Microsoft
Thorough Specification Yes No
Two-sided lighting Yes No
Volume Textures Yes No
Hardware independent Z-buffers Yes No
Accumulation buffers Yes No
Full-screen Antialiasing Yes Yes
Motion Blur Yes Yes
Depth of field Yes Yes
Stereo Rendering Yes No
Point-size/line-width attributes Yes No
Picking Yes No
Parametric curves and surfaces Yes No
Cache geometry Display Lists Vertex Buffers
System emulation Hardware not present Let app determine
Interface Procedure calls COM
Updates Yearly Yearly
Source Code Sample SDK Implementation

The interface between the video card and the motherboard – this component has some features like width, clock rate and bandwidth. The next image will display how the video interface features evolved in time:

Bus types

This table was taken from Wikipedia:
Maybe the least important factor is the physical size but of course you should check it out just in case the video card doesn’t fit your computer configuration. The parameters of the physical size are width, height and thickness.
I’ve pointed out all the main components and features that make up a video card, leave a comment if you have any questions or if you have something more to add. Stay tuned for more to come, meanwhile enjoy your day.

The differences between MBR and GPT partitioning architectures

In Microsoft Windows Operating Systems, there are two types of disk partitioning architectures, MBR and GPT. The main difference between them is how they access disk sectors and logical blocks. MBR or Master Boot Record was the first partitioning architecture invented for disk drivers that had the capacity lower then 2 TB (terabytes). GUI or GUID Partition Table was designed to cover the MBR size limit. Both architectures are in use today but there are some main differences between them. In this post, I will talk about the differences between these two disk partitioning types.

Data is divided into several blocks of information, that’s why partition tables were invented. Partition tables keep track of the mappings between sectors and logical numbering blocks. Imagine that you have a file stored on your disk drive. The file is segmented into several pieces of information (study the networking tutorials from IT training day to understand how this is done), each segment receives a label and this information is stored in the partition table. By checking the partition table, devices are able to reconstruct the whole information.
Master boot record was invented when only x86 computers existed. On a MBR disk you can create 4 partitions or three primary and one extended. Of course, the extended one can be partitioned further. One big problem of using a MBR architecture is the possibility of data corruption. There is only one partition table for each partition. The next image taken from Microsoft’s website will illustrate the MBR architecture:
MBR Disk
You can see from the image that there are four partitions (three primary and one extended). The primary partitions are C,E and F. Each of the primary partitions have 1 partition table. The extended partition contains the logical drives (G, H, … n).
The Master Boot Code contains a small piece of code that is executed. This structure is automatically created when a disk is partitioned as a MBR. The executed code does the following: scans the partition tables for the active partition(the partition where the Operating System is stored). The code also finds the location of the first sector from the active partition. It loads the boot sector code from the active partition into the memory and then transfers control to the executable code in the boot sector. If the master boot code doesn’t locate the boot sector code from the active partition, the following messages can be displayed: Error loading operating system, invalid partition table or missing operating system.

The 0x55 AA is a 2 byte structure that is used to mark the end of a MBR architecture. It is also called a signature.

GUID Partition Table – this type of partitioning is supported by hard drives that have more than 2 TB storage capacity. A basic disk that uses GPT partitioning, can have up to 128 primary partitions. This technology also supports CRC (Cyclic Redundancy Check), reliability and backup. This is how a GPT architecture looks like (from Microsoft’s website):
GPT Disk

You can see that GPT architecture uses a large part of the MBR architecture but also has other features. It contains GUID partitions (primary GUID partition) which can identify the type of data that is stored on the partition and the disk type. For each GUID partition table there is a backup partition. It also contains a GUID partition table header and a backup GUID partition table header. Read more about this on Microsoft’s website:
That’s it guys, enjoy it.

How to determine what Chrome tab is eating too much memory

In this post I will describe the steps that you need to take in order to determine what tab is eating too much memory in a browser, I am using Google Chrome and I usually open many tabs without closing the old ones. Sometimes I even save the opened tabs to be easy to access them again upon reboot. I am a big fan of Google Chrome because of one cool feature, the browser task manager.
To determine what process or application is eating too much memory I usually start by opening the task manager to check system resources. There are many ways to open this console: You can right click taskbar and press Start Task Manager, you can type in the search box Windows Task Manager, press Ctrl+Alt+Del and select Start Task Manager, press Ctr+Shift+Esc, open run console and type taskmgr.exe:

Task Manager

You can either end an Application from the first tab or you can press the Processes tab to see how are system resources consumed. For further investigation press the Performance tab:

Task Manager
On this tab you can see graphs that represent the CPU and Physical Memory Usage History. Now click Resource Monitor to open this application:
Resource Monitor
   This is a very useful tool because you can inspect resource consumption for each process. Check other tabs that are found in this application like CPU, Disk, Network etc.
   I personally prefer another Microsoft application to inspect processes and applications, it’s called Process Explorer. You can download this application from Microsoft’s website You can find here a short description:
“Ever wondered which program has a particular file or directory open? Now you can find out. Process Explorer shows you information about which handles and DLLs processes have opened or loaded.
The Process Explorer display consists of two sub-windows. The top window always shows a list of the currently active processes, including the names of their owning accounts, whereas the information displayed in the bottom window depends on the mode that Process Explorer is in: if it is in handle mode you’ll see the handles that the process selected in the top window has opened; if Process Explorer is in DLL mode you’ll see the DLLs and memory-mapped files that the process has loaded.Process Explorer also has a powerful search capability that will quickly show you which processes have particular handles opened or DLLs loaded.
The unique capabilities of Process Explorer make it useful for tracking down DLL-version problems or handle leaks, and provide insight into the way Windows and applications work.”
After you have downloaded the application double click it:
Process Explorer
As you can see my chrome browser is eating too much memory and one tab in particular is making my computer work very slow. I can see that this process has 6500 PID (Process identifier – read more on Wikipedia:
Read this interesting article from Microsoft’s website about task manager memory tab:
Now, I only know that I have a process with 6500 id that is consuming too much memory, but which one of my tabs is that one? Well this is where Chrome’s cool features becomes helpful. Press the Menu button, navigate to Tools and then click Task manager:
Google Chrome task manager
Now I can finally see that my Facebook tab is eating too much memory.
That’s it for this post folks, I hope you will enjoy it, have a nice day.