Jump to content
View in the app

A better way to browse. Learn more.

hosang I.T.

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tech

Tech Articles from a wide variety of topics and categories
This is actually a pretty difficult subject since there are so many different programming languages out there.  I will be covering what I have discovered are the more common mostly used programming lanugages which are bash (shell), python and JSON since those are what I use on a daily basis.  I'm not an expert in any of these languages but I am happy to share my progress as I go through these.
You will find more info under the Programming Club on this site where you'll find discussions, blogs, images, files and more.  This page is just a doormat before you walk into the house of Programming.
Persistence—otherwise known as stickiness—is a technique implemented by ADCs to ensure requests from a single user are always distributed to the server on which they started.
Sticky session, or session persistence occurs when the load balancer creates a connection between a network and a user for a direction of the session.
Requests for sessions from a client in a sticky session means all requests go to the same machine that received the first request.
Sticky sessions ensure that the connection between the client and the network during a session is not lost as a result of requests being routed to different servers.
However, sticky sessions can cause uneven load distributions across servers.
Load Balancer
If user sessions depend on the client always connecting to the same backend, you can send a cookie to the client to enable sticky sessions.
Sticky sessions are only visible at the load balancer layer; the cookies used for sticky sessions are both set and stripped at the load balancer. Because those cookies are not present in the request sent to the backend Droplets, backend applications cannot use them.
Sticky sessions send subsequent requests from the same client to the same Droplet by setting a cookie with a configurable name and TTL (Time-To-Live) duration. The TTL parameter defines the duration the cookie remains valid in the client’s browser. This option is useful for application sessions that rely on connecting to the same Droplet for each request.
Note that sticky sessions do not work with SSL passthrough (port 443 to 443). However, they do work with SSL termination (port 443 to 80) and HTTP requests (port 80 to 80).
"1984" is an American television commercial which introduced the Apple Macintosh personal computer for the first time. It was conceived by Steve Hayden, Brent Thomas and Lee Clow at Chiat/Day, Venice, produced by New York production company Fairbanks Films, and directed by Ridley Scott. Anya Major performed as the unnamed heroine and David Graham as Big Brother. Its only U.S. daytime televised broadcast was on January 22, 1984 during and as part of the telecast of the third quarter of Super Bowl XVIII. Chiat/Day also ran the ad one other time on television, in December 1983 right before the 1:00 am sign-off on KMVT in Twin Falls, Idaho, so that the advertisement could be submitted to award ceremonies for that year.
In addition, starting on January 17, 1984 it was screened prior to previews in movie theaters for a few weeks. It has since been seen on television commercial compilation specials, as well as in "Retro-mercials" on TV Land. The estate of George Orwell and the television rightsholder to the novel 1984 considered the commercial to be a flagrant copyright infringement, and sent a cease-and-desist letter to Apple and Chiat/Day in April 1984. The commercial was never televised as a commercial after that.
Back in January 1984, Apple was on the cusp of debuting its successor to both the Apple II and the Lisa - called the Macintosh. But it was a commercial during the Super Bowl that already convinced a bunch of its users to buy one, before it had even been shown in public.
As a break began during the third quarter of Super Bowl XVIII, a George Orwell-inspired ad showed a lady running through a futuristic citadel, all directed by Ridley Scott of Alien and Gladiator. She throws a sledgehammer at a screen, to the shock of its citizens, telling viewers to prepare for the Macintosh.
It was a huge success, and it's due to its ongoing regenerations that you can go to an Apple Store today and look to buy an iMac, a MacBook Pro, a Mac mini and more - they all originated from that day in January 1984.
However, you could argue that the messaging that the commercial gave, brings more relevance now than ever before, due to where Apple is going with the Mac for Apple Silicon chips and rumored plans to take more control over what's inside the iPhone in the coming years.
 
Definitions
CVSS: Common Vulnerability Scoring System.  The CVSS framework is maintained by the Forum of Incident Response and Security Teams (FIRST), a nonprofit organization consisting of more than 500 members.
CVSS scores are calculated using a formula consisting of vulnerability-based metrics. A CVSS score is derived from scores in these three groups: Base, Temporal and Environmental. Scores range from zero to 10, with zero representing the least severe and 10 representing the most severe.
CVE: Common Vulnerabilities and Exposures. CVE divides threats into two categories: vulnerabilities and exposures. The catalog, which is sponsored by Department of Homeland Security's (DHS), is designed to standardize the way each known vulnerability or exposure is identified.
CVE system is a vulnerability classification scheme, which assigns each vulnerability a unique identifier, as listed in the National Institute of Standards and Technology (NIST) National Vulnerability Database. CVE identifiers are formatted as follows:
CVE-[Four-Digit Year]-[Sequential Identifier]
I'm use to using all these different software packages available to other CMS sites like Wordpress, Joomla, Drupal, etc.. that would perform routine backups of your site and make it very easy to restore.  In fact cPanel has backup and restore built in for Wordpress sites but that's where it stops.  Apparently we are all suppose to use the very slow Wordpress solution.  NOT!
Briefly here is how you can create the routine to backup your website regardless
1st concentrate on the Database backups since many times you could reinstall the software but much of the content you can find in the database.
BACKUP DATABASE in cPANEL with CRON JOB
OPTION 1
cpanel
cronjobs
/usr/bin/mysqldump -u dbusername -p 'dbpassword' dbname > /path/backup.sql
OPTION 2
file manager
+ file
.my.cnf
edit .my.cnf
[client]
user = dbusername
password = "dbpassword"
host = localhost
SAVE CHANGES
cronjobs
mysqldump dbname > /path/backup.sql >/dev/null 2>&1
Now let's concentrate how to backup the files for your website since many of us have files/attachments and we want them to retur
Many of us have to supply a report showing our devices are compliant based on auditors requirements.  What tool out there does compliancy checks?  A great free opensource compliancy tool is called netshot.
The open source compliance network software. Freely available : www.netfishers.onl/netshot
My MacBook Pro got updated to MacOS Monterey (12.2.1) and since then, I can't use git at all.  When I run git I get this
USDETMNBSJEMD6R:~ iSupport$ git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun So in reading about others having this issue they just run 
USDETMNBSJEMD6R:~ iSupport$ xcode-select --install xcode-select: note: install requested for command line developer tools This popped open a window showing the install (which isn't a fast install at all)

Eventually it will give you a pop up like the one shown below that states the software is installed.

For my own sanity I just check version to see if the command git will work now and it does
USDETMNBSJEMD6R:~ iSupport$ git --version git version 2.30.1 (Apple Git-130)
Being a mac user and sometimes linux user (never Windows), I miss Visio since that's how I created my diagrams.  I tried many different software replacements to just be let down.  I stumbled on lucid.app which my initial reaction was, no way a web based anything could come close to Visio but man was I wrong.
Yes you can import stencils
Yes you can import Visio diagrams, OmniGraffle, Gliffy, Draw.io

Yes you can export Visio

Is it free?  No but its very affordable or I wouldn't be using it.  I haven't done the compare in cost but I'm fairly confident it's less expensive than the subscription to Visio and no obligation.  As you can see I use the Individual plan which runs $95/year but includes more than enough to be a competitor with Visio and other similar tools.
Some of us dabble a bit in Wordpress but we had to start somewhere which means we got help from somewhere.  This blog entry is in hopes to give some material to help a newbie in the world of Wordpress.
There are a few different great tools to use to build/customize your site and one of them I like to use is called Elementor.  Here is a great starter guide/video that is a bit older but he does a great job at walking you through building a wordpress site.
 
This video focuses mainly on how to use Elementor to customize the site for you
 
This video is more about creating everything for an eCommerce site using Woo Commerce (the free plugin) installed on the free Wordpress.com
 
And you can Google search Elementor Wordpress Theme and come across lots and lots of video tutorials.  No other Web platform has as many tutorials available.
 
Going to add that you should leverage helpful free tools to evaluate your site to make it more SEO compliant so you show on searches.
You should make sure you have meta content on everything, especially your photos.
Make sure your website is using Google Developer Tools (formerly known as webmaster)
Also check out this tool that goes through and check out your site for issue/errors.
Meta Data Google Developer Tools WAVE
Many companies regardless if its I.T. related, medical or anything really, businesses have discovered they can save a ton of money but utilizing resources over sea's where the cost of living is much cheaper which in turn means talent is also less expensive.
Obviously some downfalls come with using overseas
no face to face via in office conversations no participation in out of office gatherings biggest issue many times is language barrier as recorded below  
A browser connecting to the secure server will use the SSL protocol to connect and verify the server’s certificate. However, customers can also use Mutual Authentication to have both the client and server use signed certificates to authenticate each other. With Mutual Authentication, both client and server will provide signed certificates for verification.
How Mutual Authentication Works
Client sends ClientHello message proposing SSL options.
Server responds with ServerHello message selecting the SSL options. Server sends Certificate message, which contains the server's certificate. Server requests client's certificate in CertificateRequest message, so that the connection can be mutually authenticated. Server concludes its part of the negotiation with ServerHelloDone message. Client responds with Certificate message, which contains the client's certificate. Client sends session key information (encrypted with server's public key) in ClientKeyExchangemessage. Client sends a CertificateVerify message to let the server know it owns the sent certificate. Client sends ChangeCipherSpec message to activate the negotiated options for all future messages it will send. Client sends Finished message to let the server check the newly activated options. Server sends ChangeCipherSpec message to activate the negotiated options for all future messages it will send. Server sends Finished message to let the client check the newly activated options. How the Client and Server Accomplish Each of the Checks for Client Authentication
Digital Signature:  The client sends a "Certificate Verify" message that contains a digitally signed copy of the previous handshake message.  This message is signed using the client certificate's private key.  The server can validate the message digest of the digital signature by using the client's public key (which is found in the client certificate).  Once the digital signature is validated, the server knows that the public key belonging to the client matches the private key used to create the signature.
Certificate Chain:  The server maintains a list of trusted Client Authorities (CAs), and this list determines which certificates the server will accept.  The server will use the public key from the CA certificate (which it has in its list of trusted CAs) to validate the CA's digital signature on the certificate being presented.  If the message digest has changed or if the public key does not correspond to the CA's private key used to sign the certificate, the verification fails and the handshake terminates.
Expiration Date and Validity Period:  The server compares the current date to the validity period listed in the certificate.  If the expiration date has not passed and the current date is within the period, then this check succeeds.  If it is not, then the verification fails and the handshake terminates.
Certificate Revocation Status:  The server compares the client certificate to the list of revoked certificates on the system.  If the client certificate is on the list, the verification fails and the handshake terminates.
Additional Information
Verify the Client Certificate with auth-root
Run the following command to verify the client certificate:
openssl verify -purpose sslclient -CAfile auth-root.crt testcert.crt
Test Connection with Client Cert
Run the following command to test the connection with the client:
openssl s_client -servername example.com -connect example.com:443 -key client-cert.key -cert client-cert.crt
 
Below is an example of two-way SSL authentication on the BIG-IP system and how to configure mutual or two-way (mutual) authentication using a Client SSL profile to protect application traffic.
One-way authentication
Using one-way authentication, clients perform SSL handshakes when initiating a new connection with SSL protected applications.
During the SSL handshake, the protected application sends its public SSL certificate to the remote client for validation (referencing the photo on the right the remote client is shown as Server).
The remote client (Server) validates the application's public SSL certificate by searching for the signing Certificate Authority (CA) certificate in its trusted CA store.
If the remote client (Sever) is unable to validate or find the signing CA for the public SSL certificate, it should not complete the SSL handshake and abandon the new connection attempt.
 
Two-way authentication
Two-way authentication is a less popular method for protecting application traffic as it requires an additional layer of security. When using two-way authentication, clients perform a slightly modified SSL handshake when initiating a new connection with SSL-protected applications. During the modified SSL handshake, the protected application sends its public SSL certificate to the remote client for validation and requests that the remote client sends its Client SSL certificate for validation as well. Both the remote client and protected application validate the SSL certificates they receive by searching for the signing CA certificates in their respective trusted CA stores. If the remote client or the protected application is unable to validate the received SSL certificate, they should not complete the SSL handshake and abandon the new connection attempt.
 
REFERENCE:
K12140946 K15137
So for a year or two I have been looking for a Point of Sale system that accomodates all my needs which isn't alot but most POS's are focused on the restaurant business or retail and thats pretty much it.  We end up having to try and make one or the other work for events. I'll start off with the requirements then work give a review of each POS I've tried so far.
Requirements
Let's first start with my least liked POS but it didn't start that way...

Mobi POS
At the beginning this was a great little POS with some custom options but its really focused around a restaurant which I'm not but made it work.  A few years back they introduced the cloud version which I loved the idea of..  build everything in the cloud and push your changes down to your Terminals.  MOBI is not good at this at all.  Originally (and they still have) a peer network where you have one iPad acting as the server and another iPad can be a terminal but that extra terminal is very limited on what it can do.
Pricing was okay but still pricey for what you get.  I found for the same price you can get into a nicer POS but MOBI was very easy to get up and going quickly if you have on one register.  They do offer a 14 day risk free trial at the time of this writing so give them a look, maybe they'll work for what you need.  Unfortunately MOBI isn't strong enough with features to do what we need a POS to do so they are now no longer a part of our infrastructure.
 

AirPOS
This POS felt like a step up from MOBI but more so in the cloud aspect.  Getting multiple terminals up is easy as well as configuring your products but it felt still like the feature set was lacking.  For example there is no discount or coupon area to add pre-populated information or an ability to run reports on discounts. 
When you log in via an assigned PIN there was a huge lag between each press of the number to where you would continue to enter the wrong number because the lag is so bad.
Pricing I never got into but they are currently very generous with there trial period of 30days which I was blown away with.  Thank You!  Support wasn't horrible but needs improvement but that could be because airpos is headquartered in Northern Ireland.  I'm sure the time difference has something to do with it.
Again, like MOBI if you have a simple setup then airpos may be fine for your needs but when you run into complicated environments like ours then it just won't do.
 

talech
My next attempt was talech which was found off a google search for a Point of Sale system that would work on an iPad.  I have much frustration with talech for mainly they have  promise but I should of known I was in trouble right from the start.  Salesman did a nice demo of the system and showed what I could do.  My staff and I brought up questions to the salesman which was answered no problem, talech can do that.  SOLD!  Paid for the product but it took a days to get the login information and to process the purchase.  Once I received the information I learned that you don't get all the features as demonstrated without purchasing the upgraded premium package.  Also an odd thing but you cant apply discount coupon to one item.  It says you can but if you have 5 of the same product and you only want to discount 2 of them you can't, the system applies the discount to all 5 of the same item.  Weird.  Also trying to edit items on the backend in the browser the system would just spin.  Also I can not run the reports on discount/coupons used.  It took awhile but I learned that talech, yet more feature reach than the other two, wasn't going to be our Point of Sale system.
 

iConnect
With the 7 day free trial of iConnect POS I thought I may of found a winner.  It is very feature rich and pretty easy to use.  In fact it had the most features of any POS I tested.  Also impressed with the support for iOS, Android and Web based.  So it sounds great right?  Nope, just a dress on a pig.
You will get different features based on what operating system you use so since you have three possible ways to connect to iConnect you also get three different environments.  For example the Android and Web interface supports drop down discounts but the iPad does not.  The iPad will support USB Printer where the Android Tablets do not... just to name a few differences.
Something I definitely did not like is if you apply a discount to an item it spreads the discount all over every items (like a percentage off).  It looks ugly and not sure who would want that.
Finally a feature that I feel is a serious bug.  If you process a refund on a sale it doesn't mark it in the system that you refunded an item off that ticket so that customer can go back as many times as they want and get a refund on the same ticket.  That was the final straw that broke the iConnect POS back.  I can easily see this happening in our environment.
I did love the ability to place an order on HOLD and pull it back up.  I could see the ladies in the office doing sales during the week enter all these sales in a HOLD pattern and finalize it on the weekend when they customer comes to the gate.
 

ShopKeep
Thank goodness for shopkeep.  I have tried all these and lost alot of money in the process.  The staff is very friendly and helpful.  After introduction from Nick which handed me off to a specialist named Tim which showed me what I needed to see.  I was up and running in less than an hour.
Now no one is perfect and I didn't see the ability to get a free trial of the system to play around.  I had to pay $138 for two terminals/month which is the most expensive of all that I tried but it works.  iConnect does have more features than shopkeep but Shopkeep just does what I need it to do.  Sometimes more isn't always better.  Unlike Revel we can shut down the terminals when not in use and I don't get billed the $69 for each terminal a month but if you want access to your reports still and keep all your products entered then you may a small price of $10/month.  When your season starts back up you pay the $69/terminal and it downloads what you need.
For me its a no brainer and I'm still on my first day with the product but what I learned from using all the other POS systems, this product is really great.
curl is a command-line tool to transfer data to or from a server, using any of the supported protocols (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP, or FILE). curl is powered by Libcurl. This tool is preferred for automation since it is designed to work without user interaction. curl can transfer multiple files at once. 
Syntax:  
curl [options] [URL...] URL: The most basic use of curl is typing the command followed by the URL.  
curl https://www.hosangit.com This should display the content of the URL on the terminal. The URL syntax is protocol dependent and multiple URLs can be written as sets like: 
curl http://site.{one, two, three}.com URLs with numeric sequence series can be written as: 
curl ftp://ftp.example.com/file[1-20].jpeg Progress Meter: curl displays a progress meter during use to indicate the transfer rate, amount of data transferred, time left, etc. 
curl -# -O ftp://ftp.example.com/file.zip curl --silent ftp://ftp.example.com/file.zip If you like a progress bar instead of a meter, you can use the -# option as in the example above, or –silent if you want to disable it completely. 
 
Options: 
-o: saves the downloaded file on the local machine with the name provided in the parameters. 
Syntax:
curl -o [file_name] [URL...] Example:
curl -o hello.zip ftp://speedtest.tele2.net/1MB.zip  
 

scp

SCP Linux Command – How to SSH File Transfer from Remote to Local
SCP Syntax
scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2 scp - It initializes the command and ensures a secure shell is in place. OPTIONS - They grant different permissions depending on how they have been used. Some of the most common options include: P(Caps) - specifies the port to establish connection with the remote host. p(lowercase) - preserves the times-tamp for ease of modification and access. r - copies the entire directory recursively q - copies files quietly, doesn't display the progress messages. Also known as quiet mode. C - for compression of data during transmission. To understand more about OPTIONS read scp options src_host - where the file is hosted. The source can either be a client or server depending on the origin of the file. dest_host - where the file will be copied to. Examples
Copy File from Local Host to Remote Host
scp test.txt user@destination:/location Copy all files ending in php to Remote Host
scp *.php user@destination:/~/ *.php - copies all the files with the .php extension in the currently specified folder. /~/ - means copy them to the home directory. Copy a file with one name but save it on remote host with a different filename
scp -P 8080 test.txt user@destination:/user/home/test2.txt  
Copy Files from Remote Host to Local Host
scp <remote_username>@<IPorHost>:<PathToFile> <LocalFileLocation> Copy File test2.txt from Remote Host to Local Host
scp user@remotehost:test2.txt . Copy Files from Remote Host to another Remote Host
scp [email protected]:/files/test.txt [email protected]:/files Copy Multiple Files
scp file1 file2 ... user@<ip_address_of_user>: Destination So SCP is a very powerful tool when needing to move files around between systems over the network
Basic Commands
Identify Version
tcpdump --version The general syntax for the tcpdump command is as follows:
tcpdump [options] [expression] The command options allow you to control the behavior of the command. The filter expression defines which packets will be captured.  
Use the -D option to print a list of all available network interfaces that tcpdump can collect packets from:
sudo tcpdump -D For each interface, the command prints the interface name, a short description, and an associated index (number)
To specify the interface on which you want to capture traffic, invoke the command with the -i option followed by the interface name or the associated index. For example, to capture all packets from all interfaces, you would specify the any interface:
sudo tcpdump -i any  
By default, tcpdump performs reverse DNS resolution on IP addresses and translates port numbers into names. Use the -n option to disable the translation:
sudo tcpdump -n  
Instead of displaying the output on the screen, you can redirect it to a file.  Two options and its important you use the correct one depending on how you plan on reading the output.
OPTION 1: text file
This is great if you just want what would be displayed on the screen to be captured in a text file.  NOTE: this will more then likely not be readable by any of the software packages designed to analyze captures like the very popular Wireshark
sudo tcpdump -n -i any > file.out You can also watch the data while saving to a file using the tee command:
sudo tcpdump -n -l | tee file.out The -l option in the command above tells tcpdump to make the output line buffered. When this option is not used, the output will not be written on the screen when a new line is generated.
OPTION 2: binary file
This is the way you want to go if you plan on sending to someone or even yourself to analyze the capture in a tool such as Wireshark.
sudo tcpdump -w <filename> Example
sudo tcpdump -n -i any -w file.pcap or a more intense version of the command
tcpdump -s0 -nnnvi 0.0:nnnp -vw /var/tmp/appname_$(date +%d_%b_%H_%M_%S)_$HOSTNAME.pcap host 10.47.78.103  
Capture Filters
 
WORKING DOCUMENT...  sorry for how incomplete it is

Important Information

Privacy Policy

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.