Welcome to MindTester.com

     Mindtester.com is my personal software development site. I started it back in 2001 while I was a student as a place to document a private Instant Messaging Client / Server package called MindTester Messenger that I was writing in C++. Executables for those projects and other projects I wrote as a student are still located in the Downloads section. These days I work as a Senior Software Developer for a hosting company in New Jersey. The majority of what I write for work is written in C# for the Microsoft .Net Framework. Most recently, a great deal of my personal projects have been written in Java for the Android platform, the largest of which is the SMS Assistant Pro suite of text messaging tools. The majority of what I'll post here will be updates to my various projects, a bit of code that I find interesting or useful, or anything else I might find interesting.

SMS Assistant Pro 1.4.3 update

  I've been busy this last weekend and a couple of evenings this week adding some new functionality to SMS Assistant Pro that I've wanted to add for a very long time. I've already posted about the changes that were made earlier in the week. Here's a couple more changes that were published last night. 

     To make the app a little easier to use with phones that have larger screens, I've added the option in the settings screen to move the function tabs to the bottom. When this is changed you'll need to back all the way out of the app and restart it for the change to take effect. 


     Second, I've added what has become by far the most requested function to the application. Scheduled Mass SMS. Now, when configuring a Mass SMS to be sent, you can select "Send now" or "Schedule for later." Using the "Schedule for later" option will add all of the generated messages to the ScheduledSMS list on the Schedule tab. 

Schedule MassSMS Radio Buttons Appear in SMS Assistant Pro


Looks like I accidentally published the last update with some interface for a new feature that I was working on. Unfortunately those selections for "Send Messages Now" and "Schedule Messages for Later" don't mean or do anything yet. I've published a new apk to Google Play to remove them, but don't worry, they'll be back soon enough with the ability to schedule your mass messages very soon!

SMS Assistant Pro / SMS Assistant Free 1.4.2 Update has been published to Google Play

 I've published a bunch of updates to both versions of SMS Assistant today.

     First, I believe I've resolved the issue where SMS messages over 160 characters get broken up into many messages. (They still do, but they now get sent in a way where the receiving phone should recognize it and put them back together on the recieving end). I had to explicitly tell Android to send the collection of messages as a multipart SMS. 

    Second, at the request of a user I've added a check box to the Schedule SMS screen to allow you to turn off the notification when a Scheduled SMS gets sent. 

    Finally, in the Pro version only you will notice three new permissions: Course Location, Fine Location, and Internet Access. I'm working on some experimental features that allow you to add special replacers into your outbound SMS Messages from any function. They include the ability to add your current location to outgoing SMS, so I needed access to the GPS and Google Maps API via the Internet. As always, I'm not collecting any personal information. If you would like to try them out, be warned they are experimental and not guaranteed to work, and I haven't put any interface in to add them to your messages so they will need to be typed manually (Including Square brackets exactly as they are below) into your message templates. 
[LOC-CITY] - Return Current City
[LOC-ADDR] - Nearest Address
[LOC-LAT] - Latitude
[LOC-LON] - Longitude
[LOC-PROV] - Location Provider
[LOC-PLACE] - Place Name
[LOC-STREET] - Street Name
[LOC-STATE] - State
[LOC-DIR] - Direction(bearing) in degrees
[LOC-SPEED-MPH] - Speed in MPH
[LOC-SPEED-KPH] - Speed in KPH
[LOC-ALT-METERS] - Altitude in Meters
[LOC-ALT-FEET] - Altitude in Feet
[LOC-ACCURACY] - Accuracy of current location
[LOC-URL] - Google Maps URL for current location

[BATTSTATE] - Text Charging / Discharging etc.
[BATT%] - Battery % Charged

[IM] - Incoming Message (AutoReply and Forward only)
[I#] - Incoming Phone # (AutoReply and Forward only)

Long SMS Messages in SMS Assistant Pro / SMS Assistant Free

Recently, I've gotten a number of comments that SMS assistant pro is unable to send "Long SMS messages" and that it breaks large messages up.  This is the intended functionality. Standard SMS messaging uses 140 bytes (octets) per message, which translates to 160 characters (7 bits bytes) of the English alphabet using 7-bit encoding or as few as 70 characters for languages using non-Latin alphabets using UTF-16 encoding. Android knows this limit. For convenience purposes I decided to take whatever message you send and divide it up into as many messages as needed to send the text that you've entered. This is also how many other messaging apps including the stock android sms app work. Sometimes the recieving SMS client will combine the messages back so they look like one message; Often they don't. As of version 1.4.2 message parts are sent as a multipart SMS. This should allow most smartphones to recombine the messages on the receiving side. 

Is Google listening to my phone calls?

     I wanted to share a strange thing that happened today. I know a while back Google filed a patent that implied they wanted to advertise based on the "background content" of your phone calls, but today I got a call on my Google Voice number that was forwarded to my mobile. During the course of the conversation I recommended my friend contact his attorney. I said it twice during the course of the conversation. Now, a couple of hours later  I'm seeing all sorts of Google ads for local lawyers in places where I usually see targeted ads (specifically, Cracked.com, a website that I visit regularly that seems to always have ads for things from my last Newegg or Thinkgeek search on every article, but also other instances of Google adwords ads around the web.). I haven't done any searches for lawyers, composed or recieved any emails about attorneys, This leads me to believe they are absolutely using keywords from my conversation target ads. I can't find anything in the Google Voice TOS or Privacy Policy that says that I am agreeing to them doing this. I'm pretty sure I agreed that they could do this with the content of my voicemails so I could have them automatically transcribed, but certainly not answered calls. 

SMS History Faker published to Google Play and GitHub

     A while ago I created an app meant as a source code example of adding messages to the Android default SMS Content Provider.  Today I finally got around to publishing the app up on Google Play and GitHubClick Here or SMS History Faker on the navigation menu for the main app page. 

    The app itself will let you add messages you never sent, or never recieved to your own message history. There are plenty of prank / dishonest uses for that kind of functionality, so please use responsibly :-p.

Multiple Updates in SMS Assistant Pro / SMS Assistant Free version 1.4.1

 Made a bunch of UI and usability updates in the last few versions. Haven't had time to post the updates.

Change your Afternic password

 This isn't really related to anything normally on my site, but if you're an Afternic customer, you should change your password as soon as possible. Before the website went down for a little while just now to a " / is Forbidden" message, I got the error message pasted at the bottom.  

For those of you who don't know what that gibberish means, there are a few things going on that tell me that their security is severely lacking.
First, they are connecting to their SQL server from their web site application as "admin." It could be a dummy account, but it could be their actual MySQL admin account. This is extremely bad practice. Any successful SQL Injection attack against their web server would be running SQL as the administrator account. 

Second, the admin password was in cleartext in the error message. I'm sure I'm not the only one who saw this. I've removed it from the paste, but the best I can figure their SQL Admin password is now out in the wild. You can't just get to their SQL server, as resolves to an internal IP, but a successful attack on their web server would give you access. Hopefully their downtime right now is a technical glitch, and they're not being attacked. 

Third, their PHP Configuration is set to show full errors out to remote users, which is what allowed me to see their admin password in the first place. This will let you see the next password if they change it to a more restricted user if they have the same problem.
I've emailed them, I'll update here if I get a response. 

Error: mysql_connect(): Can't connect to MySQL server on 'devandb1.buydomains.com' (110)
Code: 256 | Severity: 2 | File: /etc/helium/system/core/DB.php | Line: 108

#0 [internal function]: Helium\exception_error_handler(2, 'mysql_connect()...', '/etc/helium/sys...', 108, Array)
#1 /etc/helium/system/core/DB.php(108): mysql_connect('devandb1.buydom...', 'admin', 'THEIRSQLADMINPASSWORD!!!')#2 /etc/helium/system/core/DB.php(87): Helium\DB->bridge('devandb1.buydom...', 'admin', 'THEIRSQLADMINPASSWORD!!!')
#3 /etc/helium/system/core/DB.php(62): Helium\DB->point('master', false)
#4 /etc/helium/system/core/DB.php(19): Helium\DB->connect('master')
#5 /etc/helium/system/load.php(82): Helium\DB->__construct()
#6 /var/www/BuyDomains/html/index.php(23): require_once('/etc/helium/sys...')
#7 {main}

Broke 1000 downloads of SMS Assistant Free!

I'm updating the price of SMS Assistant Pro down to $0.99 USD for the next week to celebrate!

© 2003-2012 Mindtester.com