PXE – Preboot Execution Environment

PXE – Preboot Execution Environment

Usually pronounced “Pixie”

For those who have visited or work in a corporate office, have you ever noticed how many workstations there are??? A LOT! Now you might also wonder how the respective IT department is able to deploy Operating Systems to these workstations. Almost every company/organization doesn’t want their IT department spending too much time on this, so installing and configuring every machine individually is out of the question.

Smaller organizations might store a preconfigured “image” of an OS on a portable storage medium (e.g. USB flash drive, portable hard drive), with all prerequisite drivers and programs already slip-streamed or injected into the image. But this method still requires you to be present to copy the image to the workstation. Most larger organizations won’t be doing it this way either.

So that brings us to network-based Operating System installation and configuration. In order to do this, we need to use a boot protocol called PXE (usually pronounced “Pixie”). Pretty much any modern BIOS/UEFI boot firmware will include an option to boot the workstation over the network using PXE. This will use the wired network card to get IP from DHCP to gain network access. Afterwards, a Proxy DHCP address is obtained which is the address of the boot server. A small bootloader will be retrieved from this server via TFTP, which will then perform the remainder of the boot process.

In terms of imaging, PXE will boot the workstation into an imaging console from your respective computer imaging software. This will allow you to pull an image from an imaging server an apply it to the local workstation. In fact, you don’t even have to be physically present at the workstation for any part of the process. If Wake-on-LAN is enable in the BIOS/UEFI, you can power on the machine over the network, have it boot via PXE, and run an unattended installation.

Advertisements

CD vs DVD??? Is there really a difference?

They look the same…

Most people would look at a CD or DVD and think that there is no difference. Well… THERE IS! Even though the two have the same appearance, they are not the same in terms of specifications.

Download this poster from https://wp.me/p8DWFt-b2

Even though the two have a similar physical appearance, they have different storage sizes and can even function differently.

For example, not all CDs are used for general purpose data. Some CDs can be burned as Audio CDs, which have a limit on audio duration rather than data size. The same concept applies to DVDs in terms of Video DVDs.

Older computers and players will not be able to recognize a DVD. This is because they were built to read only CDs. So the drive will either pop the disc out or return with an error. Always check the front of the drive tray to see what types of optical media can be read with it.

This logo is printed on drives capable of reading Compact Discs (CD)
This logo is printed on drives capable of reading Digital Versatile Discs (DVD)

Should User Account Control (UAC) be kept or removed from Windows?

User Account Control made its debut in November of 2006 with Windows Vista. It is designed to warn Administrators that a program they opened is about to make changes to their system. Also, it requires standard users to provide an Administrator’s credentials to allow programs to make changes to their system. Similar alerts exist within Mac OS X, as well as several Linux distributions.

What UAC prompts look like for Administrative users
What UAC prompts look like for Non-Adminstrative users
And a funny meme for those who dislike UAC

There are mixed opinions on whether this should remain an included feature with Windows. Now people on both sides of this “debate” have different computer setups that validate their reasoning.

Within business and corporate computer networks, many IT Departments already utilize Group Policy to set what Non-Administrative users can do with company systems. In addition, they can specify which programs can be run on a particular workstation. Lastly, any Administrative actions will still need an Administrators credentials and approval to complete an action. Rather than leave UAC enabled, some policies override and disable it, and also many IT Departments just manually disable it anyways. This will require Administrators to login to computer as an Administrator to complete the action. In fact, this was how Windows XP and prior editions were designed. UAC in these circumstances, essentially becomes a confirmation dialog, and not much more of a security feature.

Despite the above negativity from IT professionals towards UAC, it isn’t all that bad, and can be disabled if you desire.

Before I explain some of the benefits of UAC, you have to understand that it is geared towards consumers and small business users, who don’t possess the IT expertise to configure Group Policy and other advanced security measures. In fact, those who aren’t tech savvy are recommended to keep this feature enabled to its highest security setting. Also, since I mentioned earlier that Windows XP lacked UAC, home and small business users were common targets to malicious programs that modified system settings. This is because Windows XP gave all running programs the highest permissions that were available to the logged in user. Most users on home computers didn’t bother to create a separate user account without Administrative rights, and did their day-to-day work using an Administrator-enabled account.

In the end, UAC will probably remain within Windows, but you will have the choice to disable it (e.g. if you’re one of the people who hate it). But inexperienced home users will need to rely on it for security while using their computers. The choice is yours.

TCP vs. UDP

Should we use TCP or UDP? This is one of the questions that professional application developers might have to ponder. Most commonly, when they begin development on a future computer application that will rely on communication over the internet to operate properly. Both of these data transport protocols have their advantages, but they do come with disadvantages that turn certain developers away.

Before I begin explaining both protocols in technical detail, let me provide some insight to those who might not be familiar to this subject.

Data sent over computer networks is transferred through packets, which are of a specified size (typically 1500 bytes), which is known as the network’s Maximum Transmittable Unit (MTU). These packets are delivered to the next network and/or destination in an order defined by the respective transport layer protocol (e.g. TCP or UDP). These protocols are designed with a different goal in mind. Every networked computer application uses one or more protocols that will deliver data pursuant to the applications needs.

Transmission Control Protocol (TCP)

The Transmission Control Protocol (TCP) is designed to deliver packets and data across local networks and the internet, while doing so reliably. TCP would establish linked connections across the data path all the way to the destination, to ensure data arrives at the intended destination reliably. If the connection is interrupted the host computers at both ends would be alerted and would work to re-establish the connection. Even in the case of missing packets, TCP would keep track. Any communications sent over TCP are “handshaked”. This is both the origin and destination host computer confirming every transmission made.

This is the typical TCP connection and transmission demonstrated as a human conversation.
Get it?? TCP won’t stop trying to transmit packets… UNTIL YOU GET IT!

So, TCP already sounds like the best protocol! Why bother using anything else? Well, you won’t feel that way after reading about the one disadvantage of TCP.

While consisting of a reliable method for data packet transmission, this causes TCP to transmit packets at a slower speed than other protocols that weren’t designed with reliability in mind, such as UDP. Let’s head over and see what UDP has in store…

User Datagram Protocol (UDP)

User Datagram Protocol (UDP) is designed to allow rapid packet transmission over local network as well as the internet. Because of this, UDP does not establish reliable connection to the destination, and does not verify if a packet was ever received by the end host or if it was received in the right order. Think about someone telling you a phone number as you are dialing it, but they are not confirming that you dialed the number as you have said. It is a simple protocol designed with speed in mind.

Thank you for reading! Please leave a question or comment below, and share this article with others.

iOS features that were already in Android and other platforms before

Yep… I am an Android fan. An Android fans can’t stand people who believe Apple was the first to create a feature in iOS that already exists in Android. Let’s dive right in.

Notification Center

Notification center allows you to swipe down to see your notifications (duh!) of missed calls, texts, email, etc. Android has had this feature since Andoid 1.6 (Donut) in 2009.

Apple didn’t implement it until iOS 5 in 2011. So, how were users being “notified”, and how did they view their notifications? Don’t worry, Apple’s got you covered. iOS had a terrible notification system that would popup in the middle of your screen no matter what you were doing. Imagine playing a real time game and getting a twitter notification.

Very irritating and just made you lose your game!

Over-the-air (OTA) Software Update

Hey iUsers (pun intended), remember all iThings required a computer with iTunes to get it setup or even update to the newer firmware? Android has always been able to update itself from the start and get itself setup. Android should have had the promo “No additional devices required for use”. In the case of Apple, you would open your new iPhone, power it on, and see this irritating screen (even more irritating if you didn’t have a computer).

This phone is essentially a brick without a computer. Even a flip phone has more capability without a computer!

4G Data Connectivity

In June of 2010, Sprint created the first 4G WiMAX network for the newly introduced HTC EVO 4G Android phone. At this point in time, LTE was far from common use in the United States. Where was Apple in regards to cellular data connectivity? The iPhone 4 had just been released, but only was avaiable on the AT&T 3G network. How’s that for limited carrier compatability? Apple was still only supporting one carrier… Awful AT&T! Meanwhile, Android phones were already supported on most major networks.

GPS Navigation

The original Maps application built into iOS, relied on the Google Maps API and Map Tiles. Also, there was no navigation intergrated into the app. Direction were listed similar to printed directions from the Google Maps website. Audible turn by turn directions were not provided. Android on the other hand, included the official Google Maps mobile application which had audible navigation built in and guided you as if you were using a Garmin GPS navigator device. Google Maps Navigation was released in 2009. Apple didn’t release their navigation feature until 2012 with their custom mapping service Apple Maps. However, Apple Maps had very inaccurate map data for awhile after release. Eventually, Google was allowed to put Google Maps on the Apple App Store, and iOS users have reliably stuck with it.

Do you really need a ferry? Tell me if this is right.

You could just use the golden gate bridge like everyone else!

Voice Typing

Just because Apple called this a fancy name (Dictation) doean’t mean that it’s never been invented before under another name and is “revoltuionary”. This has been around before Android in the software Microsoft Office XP:

I think that speaks for itself and against Apple’s “new invention”. And just to further back this up: Microsoft Office XP was released in 2001. Dictation wasn’t released until 2012!

My verdict: Apple isn’t a company who innovates, but instead replicates.

Wi-Fi Diagnostics Apps for Android

Sometimes your “Wi-Fi Neighborhood” becomes crowded, congested and sometime unusable. But how can you diagnose what outside wireless networks are interfering with your own connection? You could buy an expensive enterprise handheld Wi-Fi analyzer, but that would be impractical for residential environmemts. Instead, you could just use mobile applications on your Android smartphone that could provide Wi-Fi congestion and diagnostic information. The applicatio that I have used is “Wifi Analyzer” on the Google Play Store.

This app will provide details on WiFi networks located on 2.4ghz and 5ghz spectrums. Data and details provided include:

  • SSIDs or Serivce Set Identifiers
  • Access Point MAC address or BSSIDs
  • Access Point Manufacturer
  • Signal Strength
  • Channels
  • Spectrum Map/Visualizer

This app will help you spot the source of wireless networking interference and allow you to setup your network to work around the interence.

Just a sidenote to those who don’t setup their Access Points on the right channels…

PROPER WIFI ETTIQUITE IS TO ASSIGN YOUR NETWORK TO 2.4GHZ CHANNELS 1, 6, 11 WITHIN THE UNITED STATES. FOLLOWING THIS ETTIQUITE WILL REDUCE INTERFERENCE IN YOUR WIFI NEIGHBORHOOD AND MAKE EVERYONE WITHIN THAT NEIGHBIRHIOD HAPPY.

Restricted file and folder names in Windows

I bet you never would have thought that there were names that could not be given to files and folders within Windows… NEITHER DID I. You’re probably thinking Microsoft wants to limit and have control over everything you do on your computer (which might be true in other cases). But the reality is that this is due to technical reasons within Windows which actually date back to the MS-DOS era. But before I cover any technical details, let me list the names that cannot be assigned to files or folders:

  • CON
  • PRN
  • AUX
  • NUL
  • COM1
  • COM2
  • COM3
  • COM4
  • COM5
  • COM6
  • COM7
  • COM8
  • COM9
  • LPT1
  • LPT2
  • LPT3
  • LPT4
  • LPT5
  • LPT6
  • LPT7
  • LPT8
  • LPT9

I bet you’ve already tried to create a folder with one of these names already, and received an error. Now depending on which version of Windows (or MS-DOS if you can’t run Windows on your 1983 Intel 286 desktop) you are using, you’ll get an error message with a slightly different message. Windows 10 will report an invalid device name, MS-DOS will report a duplicate file name.

Screenshot 2019-03-16 at 23.52.55

But what is preventing us from doing this? The names listed above are files that actually exist in system. WHAT?? Let me explain…

As an example let’s use the file LPT1. If you were able to get notepad to save data (plain text) to LPT1, it would actually send this data to port LPT1. LPT or Line Print Terminal is a (definitely old) printer port that allowed your computer (your computer is definitely old if it has one) to send bytes of data and plain text to the printer to be printed on paper. See the picture below…

Image result for lpt

Those were the days

Basically LPT1 isn’t technically a file stored on the computer, but is set up that way so that programs don’t have to implement more advanced programming of printer routines. Instead they just print or “save data” to a file and it would print at the printer.

By the way, the numbers next to LPT or COM are there because systems could have several of the same ports onboard (As mentioned earlier, if you have at least one of these traditional ports your computer is old, let alone multiple).

CON is the same thing except anything saved to it would print in the command prompt or just on your screen if your were using MS-DOS (a.k.a the fullscreen command prompt that was before windows). It’s short for CONsole which is what a command prompt is displaying.

Musical Floppy (Moppy) Drive Control Software

As I was researching the Musical Floppy Project, I noticed the control software was quite complicated to setup. It required installation of NetBeans IDE on your computer, which some people wouldn’t want to do. Also, you’d have to run the control software from within NetBeans and not as a portable Java JAR application. I did some tinkering with the program and was able to integrate all required Java libraries into the application itself. Feel free to grab a copy of the pre-compiled application and/or source code.

 

MoppyDesk Musical Floppy Control Software

MoppyDesk Project Files (.ZIP)