Sunday, May 3, 2020

Server & Database Scripting | I.T Crash Course part 1

-Behind the scenes-

In today's technology, computers, smartphones, and many other devices connect and communicate using networks, being the internet as the most accessible and popular among these networks.

On simpler methods, devices use a basic form of connection called, Peer to Peer connection, which device A , connects to Device B without intervention of another device or system, due to their network only consisting of a handful of devices, most of the time, only 2.

On more complex networks such as : websites like Social networking sites and Content streaming sites, Online games, computer networks found in big companies, and other complex networks that perform multiple tasks require and use servers and databases.

Servers are computers, often times built for better performance compared to consumer-grade computers. Servers can handle information in multiple ways, depending on how they are programmed or scripted, in order to perform the tasks that are assigned to their specific use case.

After the data has been handled by the server, it can now be stored inside a database.

A database is a software that can be installed in a computer, most of the time a server, which safe-keeps data that the server passes on to it.

In order to utilize servers and databases, professionals perform “scripting”

Scripting-  ,  essentially just computer programming, is the method which developers or programmers use to command devices like computers, in this case, servers, to automate tasks that are required int the interaction between servers and multiple client-side devices

_______________________________________________________________________________
Scripting, programming, front-end, back-end, software development in general can be daunting to beginners, and confusing even to intermediate developers;
If you are interested in software development tutorials, check-out my programming channel, Content Respawn Programming for software development guides


Tuesday, January 24, 2017

Pros of PHP-Centric Side projects

I have built a few database systems with PHP and MySQL, with the system relying heavily on PHP. I use minimal Javascript on my side projects due to the fact that I have no control over web browser updates, nor do I have control over the intended users of my products habit of updating their browsers, which is a prerequisit of running PHP-MySQL system. I am aware that intigrating Javascript functions in web pages imrpoves functionality signifaicantly, but that the whole system would potentially brake and will be rendered unsuable for some time. Due to my clients are mostly small businesses and has no in-house I.T programmer, and assuming that they might not find other willing or able developers in my area if I'm not able to address their problems with browser compatibility.

Using Nokia Lumia 550 as my main phone for 8 months.

I have been using the Lumia 550 since April 2016 and honetly I am satisfied with what I get from it considering it is a budget phone in our country's standards. I bought it for 7000 pesos ($140-US).

The phone comes with:

Windows 10 mobile OS
2100mah battery
Qualcom 210 Snapdragon
8GB internal storage
Micro SD expansion
Single nano sim
5MP rear camera
2MP front camera
4.7 inch display @ 720P
Earphones
Charger

The phone requires to connect to the internet on its first startup to activate Windows 10 and download its apps. Windows 10 mobile performs well on my daily tasks and in my opinion, it is well optimized for the phone's hardware due to the absence of perfromance drops in my tests.

I had the impression that 2100mah batteries will be just enough. I was surprised that when its fully charged, it can last more than three weeks on standby. Normal uses such as texting and playing music can last up to a week. The Lumia 550 needs more 2 hours to fully charge.

The Qualcom 210 Snapdragon is enough for a phone with this price. I never expected a cutting edge performance from it, however, I am comfortable on how it performs.

Like any other internal storage, phone will occupy storage space out of the box, and will expand more in the future. In my case, my phone now consume 3GB of internal storage out of its 8GB. That's why I store all my pictures, videos and music file on the micro SD expansion.

Saturday, December 17, 2016

Using Xubuntu 16.04 in VirtualBox

I have been using Ubuntu 14.04 since August 2015, then I realized that I need to try out other Linux Distributions for certain purposes, but I am intimidated by the software repositories I am not familiar with. I wanted to use a Linux distribution inside my VirtualBox virtual machine so I could mess around with it, revert back to its previous state, and not have it mess up my computer. Since it will run inside a virtual machine, I need a lightweight operating system, without loosing functionality. I ended up using Xubuntu 16.04 for all of my virtual machines.

Xubuntu is one of the most lightweight distributions I am familiar with that happens to be popular and well maintained by its developers. I came across it by browsing the Ubuntu website and searching for its derivatives. Installing it inside VirtualBox is as easy as installing a regular Ubuntu in a physical pc, but in my experience, faster, due to the fact that there is no spinning CD involved. The performance of the Xubuntu virtual machine is smooth and sresponsive in the Acer Aspire 4750G laptop which has an Intel i5 2nd gen @2.3 ghz and and Nvidia 540m, with Ubuntu 14.04 as its host machine. The guest Xubuntu machine never crashed or experienced any performance drop, while the host Ubuntu system still operates normally.

Xubuntu comes with several useful software by default. Some of which I install in my Ubuntu host machine separately every time. Xubuntu's “Software”, which is its application for browsing and downloading programs from the repositories, opens and run smoothly. Since I have Xubuntu 16.04, it has Libre Office 5, I find its version of Gedit to be very helpful for programmers like myself, packaged with Linux kernel 4.4, and a lot more desirable features. Xubuntu's RAM consumption is very minimal; it only consumes 700MB while running Firefox with 3 tabs, LAMP stack with PHPMyAdmin, Ninja IDE, and a few open file browsers.
   
I was surprised on how customizable Xubuntu is out of the box, due to my main Linux system is customizable to an extent, and I have to download additional software for other customization options. Pulse Audio Volume Control is installed by default in Xubuntu 16.04; this made me very satisfied with my choice of virtual machine due to it is a necessity for my audio recording. GUFW, a graphical user interface for Ubuntu operating systems, also come by default and this makes my multiple installations easier by saving time in installations.

Like other tools, the kind of technology you are using matters, but the way you are using it matters more. What I do with my setup is I'll create multiple virtual machines with different software and settings, thus, different purposes. I am aware that any network connections that reaches the guest virtual machine wil of course go through and affect the host machine, therefore the concept of using virtual machines to browser untrusted websites is not viable. But since my hardware can handle multiple Xubuntu virtual machines and it may still add some layers of protection, and at least the browsing data of the virtual machine will not affect the main browser I am using in the host machine, I setup a dedicated Xubuntu virtual machine for browsing in an attempt to protect my main web browser. My most important tool in my system is my dedicated software development Xubuntu virtual machine. I open several applications and some of which runs continuously while I am using the host machine and using other virtual machines. Despite the hardware I am running this system is outdated, everything in every virtual machines perform great. I look forward in the future release of the Linux distribution.

Friday, December 9, 2016

When I switched to Ubuntu 14.04

After experincing issues with my previous operating system which is Windows 7, I considered switching to Linux, not only due to it being free while being legitimate and continiously supported by updates, but for its freedom-centric open-source solutions for several Windows-based program counterparts.

The only thing I am skeptical about is Linux's support for games. After a hours of research, I was baffled when I found out that Linux has support for games, which consist some known games played on Windows. At that point, I was sold in using Linux on all of my computers. But there is a question that remains: Which Linux should I use?

There are large numbers of Linux distributions, excluding there variants and versions, making my task of choosing one even more difficult. A lot of my attention went to Fedora and Kali Linux, apparently too complex for me at the time. When I searched for simpler, user-friendly, and general accessibility, I discovered some Debian based Linux distributions. Then I narrowed my choices to the Ubuntu distributions: Ubuntu, Xubuntu, Kubuntu, Lubuntu, Ubuntu Gnome, Ubuntu Mate due to them being well-known, ease of use, and actively supported by their developers. In the end, I opted for plain Ubuntu distribution for its longer update support, which is five years for my Ubuntu 14.04 compared to the shorter support for the other distributions which are three years at most for the Ubuntu 14.04 counter-parts.

I was satisfied on how easy the installation process was and surprised on how fast it got finished installation for older, lower-end computers. After installation, there are a few things I had to do in order for it to be as secure as it can be, without spending money, using “helpful” free-to-download software that would either not do anything helpful, or cause problems to the computer instead, and doing overly complex methods.
   
Updating the operating system: A required step not only to make it secure, but also to make the system function better. I can be done via graphical user interface, like using any other programs we use today, or via terminal, or some Windows users call the “command prompt”. Depending on the time between you are updating a newly install Linux OS and the time the Linux OS became available to be downloaded, your update time will vary. So far, I never experience an update the downloads more than 600MB.

Settings: Checking the settings for privacy and security is easy. It would only take a few click at toggles and other selections.

Firewall: By default, the operating system's firewall is turned off. As of this time, the plain Ubuntu does not have a default GUI for its firewall, so the only way to interact with it is via terminal.

Clam virus scanner: A free scanner, but unlike most known anti-virus in Windows, it does not actively protects the system. It only scans directories when you activate it. Like other scanners, it updates its database at least once a day.

These things may not make the OS unbreakable, but combined with discipline, common sense, updated, and research it is enough to make it more secure unlike other computers reported to be victims of exploits.

For productivity, the OS can do basic office tasks like word processing, spreadsheets, slide shows, etc. Image editors can be downloaded like GIMP. Wacom tablets, drawing tablets known by graphic artist and animators, can be used. There are a few choices for CD burning. Recording audio is easy and efficient with audacity.

Playing games is satisfying when the game itself is optimized for Linux operating systems. During December 2016, I Find it hard to work with AMD gpu drivers for my R7 250. Nvidia drivers works well with my GTX 750. Unless you are downloading from official sites, Ubuntu reposetories only offer the latest stable driver. While you can download games in the Ubuntu software center, I prefer downloading games from steam. Here are the game I played in Ubuntu:

DOTA 2
Counter Strike: Global Offensive
Half Life 2
XCOM: Enemy Unknown
Borderlands 2
Transistor
Bioshock Infinite

All mentioned games run well on my system. Although most of the time, Linux versions of games are more or less inferior to their Windows counter-part, you can still enjoy the games at higher settings if your system meets the requirements.

Since I'm a programmer, obviously I require my computer to have tools to develop software. Setting up developer tools and environments in Ubuntu is most of the time easy. Some, like LAMP stack (Linux + Apache + MySQL + PHP) can be tedious, but put in the right notes and patience, it is manageable.

When converting to Linux coming from other operating systems, it is a common problem that there is a particular application that you need to use but cannot be installed or does not have an alternative in Linux. What most Linux users do is to install the required operating system along with the application they need in a virtual machine. The virtual machine I installed is called Virtualbox. Ubuntu runs Virtualbox smoothly with Windows 7, and other Linux distributions I used. I have never experience any issues with it even if I run it in my Ubuntu system everyday.

Once I installed the applications mentioned along with other tools I found needed in the past, I still need to overcome the learning curve for my new operating system. I have to be updated to Linux Kernels, software versions, and other things needed to keep my computers in good shape. I also have to memorize terminal commands I realized I needed everyday.

Even though many Linux users in the world are not satisfied with Ubuntu, I find myself enjoying the features it has and appreciating how easy to troubleshoot and find solutions to my needs due to its ease of use compared to other distributions in my opinion.

Tuesday, December 6, 2016

Hard Drive Alternative

SSD stands for Solid State Drive. It is a storage device that has no moving parts. Comparable to the concepts of memory cards or flash drives. Since it does not rely on moving parts to function like a hard drive does, it reads and writes file faster and subquently is more durable.

Having an SSD as a boot device will significantly decrease the boot time of a computer, which is an ideal thing especially if that computer is used for work. When demanding applications like games, animation, photo editing, video editing, etc. are loaded from an SSD, it will not only decrease startup time, but the performance, reading, and writing speed while being used will be improved.

Of course since it's more advanced compared to hard drive, it is commonly priced higher per gigabyte. Some consumers may opt for an SSD due to its durability, but it doesn't mean it is completely unbreakable. The most unavoidable cause of SSD degradation is writing to a file. Reading from a file does not put stress on SSD's much, but writing files constantly will shorten it's lifespan, like any other storage device. Overheating is always an issue. SSD's may be shock (vibration) resistant due to the absence of moving parts, but it's still vulnerable to temperature.

As of December, 2016 the price difference of SSD's compared to hard drives are closing. And the quality and lifespan of SSD's are also improving, probably making it the ideal choice in the near future for storage. But, while this is happening, there are other technologies being built like M.2 drive; to over-simplify things, it's just like an SSD, but in a form remotely similar to a  RAM module, and has faster reads and writes due to its utilization of PCI expansion slots, instead of the traditional SATA ports.

Monday, November 28, 2016

Ideal Programming Languages to Learn in 2017

As of the time this post it being made, 2016 is coming to end while programming trends change. I Figured I'd point out ideal programming languages to learn in 2017 since I'm trying to understand new languages due to the fact that programmers are most efficient when they are updated. Note that the following are based on from what I experienced and what the progrmming language actually has to offer in terms of performance, jobs, opportunities, and popularity among companies.
C++
C++ has been around for quite some time now, yet newer programming languages that can compete with its speed. Its a go-to languages if you are figuring out what to use when you are developing a video game and critical programs that require short processing time.

Java
Potentially slower compared to C++ when handling multiple complex processes, it became dominant in  jobs market. It is used for online and offline applications, easy to maintain and debug. A lot of documentaion. One well known feature of java is that if you code one java program in one computer, you can run that same java program in another computer even if runs a different kind of operating system as long as that computer is installed with the Java Runtime Environment or JRE. Java is also used in Android app development.

Python
A prefferable first language to learn if you are new to programming due to its easy-to-pick-up nature. It can be used for a lot of purposes in a lot of ways. It's a high level programming language, meaning its code is mostly easily readable by humans when you are developing applications.

Javascript
Very widely used in programming websites' front end development. Javascript utilizes libraries like jquery. Node.js is based on javascirpt but works in the backend isntead.  If you want to develop websites, you MUST learn Javascript.