Mobile First Means SMS First

Featured

MOBILE FIRST MEANS WHAT? IT MEANS SMS FIRST, OF COURSE. THE ONLY GORILLA IN MOBILE… IS SMS TEXT MESSAGING OF COURSE. 4.5X BIGGER THAN TOTAL GLOBAL SMARTPHONE APPS ‘ECONOMY’ (source: http://communities-dominate.blogs.com)

 

Keypoints:-

  1. There are more mobile phone accounts than humans alive.
  2. SMS text messaging is used by 75% of all mobile phone users on the planet by SAP latest numbers February 2015.
  3. SMS text messaging today in 2015 has more than twice the active user base than total installed base of all smartphones across all OS platforms, whether they use apps or not.
  4. If you are now pursuing a mobile strategy, and are thinking ‘mobile first’ of course you have to go SMS first.

DIGITAL REACH IN 2015 OF ALL HUMANS ALIVE (7.2B PEOPLE)

DEVICE USERS % OF HUMAN POPULATION
iPhone 300 million download iPhone apps 4%
Tablets (any OS) 600 million 8%
Whatsapp 900 million 12%
Facebook on mobile 1200 million 17%
Skype 1200 million 17%
Android 1300 million 18%
Facebook (all tech) 1400 million 19%
PCs (all types) 1500 million 21%
eMail on mobile 2200 million 31%
Mobile internet 2200 million 31%
eMail on any tech 2500 million 35%
Internet on any tech 3000 million 42%
SMS 5400 million 75%

 

 

Posted in SMS

USB Drivers of FX30 and MOBITEK S80 Have Conflict — Bad_pool_caller

Problem: the USB Drivers for both FX30 and MOBITEK S80 cannot be installed in the same machine. Otherwise the below blue screen error will appear when trying to connect MOBITEK S80 3G Modem to the PC/machine.

 

Solutions: there are 3 solutions to choose:

  1. reboot Windows into “last known good configuration” (source: https://support.microsoft.com/en-my/help/4026863/windows-fix-error-0xc2-badpoolcaller);
  2. run system restore to restore Windows to the a date before FX30 USB driver was installed; or
  3. uninstall FX30 USB driver.

Test Result of MOBITEK SMS Engine — Enterprise Edition with TLS 1.2

 

TEST DATE SMS ENGINE VERSION TLS 1.2 SSL 2.0 OS MS SQL SERVER ODBC DRIVER 64-BIT ODBC DRIVER 32-BIT .NET FRAMEWORK TEST RESULT
2020-05-14 8.3 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 16:50:30 SMS Engine Enterprise Edition service (8.3.0) started
16:50:35 Modem ID 8 : initialized
2020-05-20 7.1 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 09:47:04 SMS Engine Enterprise Edition service (7.1.0) started
09:47:09 Modem ID 8 : initialized
2020-05-20 8.3 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 10:29:17 SMS Engine Enterprise Edition service (8.3.0) started
10:29:22 Modem ID 8 : initialized
10:31:39 SMS Engine Enterprise Edition service (8.3.0) stopped
2020-05-21 5.8 Enabled Disabled by adding  DWORD: “Enabled” with value 0
in registry
Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.6 16:10:25 SMS Engine Enterprise Edition service (version 5.8.1) started
16:10:29 Modem ID 8 : initialized
16:10:49 SMS Engine Enterprise Edition service (version 5.8.1) stopped

Conclusion: MOBITEK SMS Engine — Enterprise Edition starting from version 5.8 until 8.x supports TLS 1.2

AutoHotkey: How to Define 2 Alphabet Keys as Hotkey

AutoHotkey allows user to define a custom combination of two keys (except joystick buttons) by using ampersand (&) between them. As for example:

a & b::MsgBox Hello!!!

Hold down <a> key then press <b> key to trigger the message box.

But by using this way, key <a> will become a prefix key. In other words, it will causes key <a> to lose its original function when it is pressed, i.e. “a” will not appear in text box. To avoid this behaviour, one of the way is to apply the tilde prefix (~) to the key.

For example:

~a & b::MsgBox Hello!!!

Using tilde in front of keys will maintain the native function of the keys used. However, Special hotkeys that are substitutes for alt-tab always ignore the tilde prefix.

 

Source:

Comparison of ReadAllText vs ReadLine vs ReadBlock vs ReadAllLines

When using ReadAllText method to read a log file with a size of 21.83MB, it takes between  7 seconds (for powerful CPU) to 12 seconds (for weak CPU).

 

SOLUTION SOLVED?
  1. I’ve used all possible method for loading .log/.txt extension file type into TextBox in VB.Net, eg. ReadLine, ReadAllLines, ReadAllText, ReadToEnd, but all methods result are the same. But the time load for the .log file is not actually long when execute in my laptop
  2. I think we should just stick with the current code because every solution that i found on the internet using the same all methods that i just mentioned. Probably will take much more longer time if want to solve this problem.
Failed
StreamReader.ReadLine

Source:

Dim file As New FileInfo("path\to\file")

Using reader As StreamReader = file.OpenText()
    While Not reader.EndOfStream
        Dim nextLine As String = reader.ReadLine()
        ProcessLine(nextLine)
    End While
End Using

 

NO

This method generates error maybe because the memory usage increase overtime due to many lines data read
I’m not sure what cause the error but the detail can be found here:
https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/contextswitchdeadlock-mda

Or maybe because i don’t actually know the correct way to use this method

StreamReader.ReadBlock

Source:

Const MAX_BYTES As Integer = 1048576 * 5 '=10 MB 
Dim bytesRead(MAX_BYTES) As Char
Dim numBytesRead As Integer
Dim currentPos As Integer = 0
Dim strFileName As String
Dim strm As System.IO.Stream
Dim TextLine As String
Dim FileDetail As IO.FileInfo

OpenFileDialogMain.ShowDialog()
strm = OpenFileDialogMain.OpenFile()
strFileName = OpenFileDialogMain.FileName.ToString()
  
Using reader As System.IO.TextReader = _
System.IO.File.OpenText(strFileName)
  numBytesRead = _
reader.ReadBlock(bytesRead, currentPos, MAX_BYTES)
  TextLine = reader.ReadLine()
End Using

txtEditor.Text = New String(bytesRead)
txtEditor.Text += TextLine
txtEditor.Text = txtEditor.Text & vbCrLf & Now

 

NO

This method can be used to fetch .log file but a bit slower than ReadAllText() method.

Completion time to load the log file into textbox is approximately 11-12 seconds

File.ReadAllLines

Source:

NO

This method opens a text file, reads all lines of the file into a string array, and then closes the file.

To load the string array into the textbox will use the same method as ReadLine() which is using Looping

 

Test Methodology

 

TEST DELL-E6410 MSI
StreamReader.Readline

How long does it take for Control Panel to load the log file
“X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

No result because of error No result because of error
StreamReader.ReadBlock

How long does it take for Control Panel to load the log file “X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

11-12 seconds 11-12 seconds
File.ReadAllLines

How long does it take for Control Panel to load the log file “X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

No result because of error No result because of error
What is the CPU? Intel(R) Core(TM) i5 CPU M560 @ 2.67GHz Intel(R) Core(TM) i5-4200 CPU @ 2.50GHz
What is the RAM? 4.00 GB (3.43 usable) 8.00 GB

Conclusion: stick with ReadAllText method to read a log file.

How to Run VB.net Code as an Administrator

Whenever you see this error message

“Cannot open [Windows service name] on computer “

error

you need to run the VB.Net code as an “Administrator”. There are 2 solutions available.

Solution 1: Modifying “app.manifest”

  1. Go to project and select “(Project Name) properties…”
    1
  2. Click on “View UAC Settings”
    2
  3. Find the code “<requestedExecutionLevel level=”asInvoker” uiAccess=”false” />”
    3
  4. Replace the code with “<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” />”
  5. You will be able to run your sample code now.
  6. Later, when the code is compiled to executable (exe), this VB.Net application will also run as “Administrator”.

 

Source:

 

Solution 2: Running Visual Studio as an “Administrator”

Step 1: Find Visual Studio IDE in program files, for my machine it is located at “C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”a

Step 2: Right click on “vbexpress.exe” and select “Properties”b

Step 3: Click on “Compatibility”, then check on “Run this program as an administrator” , then click “OK”
c

Step 4: Run the program and it will run as administrator.