I just went through a long process of changing phones and mobile carriers and now that I have everything lined up I wanted to publish the configuration I'm using.
First, I was on Sprint for years and used their tight integration with Google Voice. I loved it because I could make/answer calls and texts from my laptop or my tablet or my phone. This was handy when I sat where I didn't have great mobile coverage (which was common at one cafe that I liked to work at) or was on an airplane. I would never be away from my text capability when flying which is actually quite handy on many occasions.
That said, having been a mobile developer I had a lot of reservations in moving to Sprint about eight years ago. The ease of changing a sim card to switch phones on a GSM network is a necessity as a developer. I had also been doing international travel and a GSM phone is a necessity. That was all in the past so I went with Sprint when AT&T was dropping my calls at home on a daily basis. The loss of GSM for my was by far the biggest concern though. When developing on Sprint phones (this was back in the J2ME days) we had to switch plans around to switch phones. Quite a pain. Eight years later I still missed GSM and wanted to get back. My phone, an HTC One, that I loved, was having battery life issues and my bank accounts have been strained lately. The idea of spending $500 for another phone, even if financed at 0% has always seemed absurd to me. The Sprint choices seemed very limited at the low end. I had heard of cheaper plans with Metro and T-Mobile as well as cheaper phones like ZTE. In my searching I ran across the Moto-G on Amazon for $149 and used old gift cards to buy it. I even got a 128GB microSDXC (The XC is meaningless and more about how dense it is than the fit. It seems all MicroSD cards fit the bill). With that SD card, it means I have all my music 60GB on my phone which is the first time I've ever had that which is a bit of nirvana in itself.
Anyway, I moved my phone over to T-Mobile and completely lost my Google Voice integration. To say Sprint has the best Google Voice integration is an understatement. No one does it better. You can simply click a couple of buttons, turn it on and it works. When you change your plan you have to re-set it up, but once you know that it's not hard to reconfigure each time. Overall, there is no fiddling to get Google Voice to work on Sprint. That integration has been a life saver, but the GSM issue and the cheaper GSM phones was too much too keep me on their network. I knew there had to be a way to get this working.
When I moved my phone over to T-Mobil it was super simple. I'm sure it would be just as simple to go to any carrier. That said, getting Google Voice to work right again was a ton of work and not well documented. There is a "lite" integration where you get just voicemail, but that definitely wasn't going to work for me.
I kept coming up against the menu option on Google Voice to "migrate your number" to Google Voice. This seemed drakonian and then I wouldn't have phone service, right. Yeah, there was that, but sure enough that is what you have to do and the Google voice system doesn't do a good job of describing that process until you've already gone that route. If I move my number that everyone knows to Google Voice, then how am I going to get calls on my mobile phone?
So, the solution is that you need a new number on the carrier, no one needs to know this number. You can get it before or after you migrate your number, but before is probably best so you can do the final setup once the migration is done. I setup a second number on my line and had a sim-card just for that line. I kept that sim in my pocket. My personal number I kept in the phone so people could still call me during the migration. That migration took about 45 hours for Google to complete, but during that time my phone worked properly and when I work up this morning I found it no longer had service.
I then swapped out the sim card, logged onto Google voice with my computer and set it up to forward all my calls to that second phone number. Done, right? Not quite. Everything worked with texting from Hangouts, you can't use the built in messenger because it still texts with the generic phone number, but hangouts is good when it comes to SMS. I do wish it had a search though.
The next part was calling with the phone. I called T-Mobile and they said they could only setup the caller-id to be a different number if I was calling land lines. This is great if the only person I call with a land line (my 80 year old dad who now has a mobile phone) actually had caller-id. That still leaves out 99.999% of the people I called. It was a big disappointment so I kept digging. I found there was an actual Google Voice app and when I loaded that I found the menu item for which phone to use
If you choose to "Use Google Voice to make all calls" this will set your caller-id from this phone to be your Google Voice number. This now works exactly like it did on Sprint with one added bonus. On sprint my MMS messages when to the phones messenger while all my SMS messages went to Hangouts. I would invariably miss MMS messages because I wasn't always watching that other system. I've already received one MMS photo on this new setup and that photo went to Hangouts as you would expect.
All in all, I would say I'm in phone Nirvana. I have a very inexpensive phone with an easy to change network. I have my Google Voice integration (not Nirvana if you like privacy because we all know that Google gives us up to the NSA, but that's another matter entirely so far the benefits out weigh big brother watching me and I'm sure Sprint gave me up to). With Google Voice I can make calls from any computer or tablet and no one can tell I'm not on my mobile phone. The MMS system is fixed. I'm pretty happy at this point. It took a lot of work, but I'm back to normal and better off than I was before. Now I can swap network providers and phone numbers and don't really care who they are as long as they give me a network. It's nice to be free.
To save yourself some costs, migrate your mobile number directly to Google voice. The second number costs $20 and I messed this up. Also, I moved my phone number to T-Mobile which meant I needed a sim card for that and another sim card for that second number. It added $40 to the cost when it could have only cost $20 for the second number. Just something to think about.
Hope this helped you.
Wood
Thursday, December 1, 2016
Wednesday, August 3, 2016
Running VBScripts standalone with Command Prompt
Over the past few years I've had to do a bunch of little vbscripts to create custom actions for Datacap. Recently I found a problem with a script and a friend showed me a quick little way to run my script standalone.
Simply put the script in a file with a vbs extension and use the command line to run it with cscript command. This was available on my default windows. Now with my limited memory I'll hopefully remember this blog post so I can come back and 'remember' how to do it.
Now, the other issue that I haven't been able to solve is why 2.28 != 2.28. It sure seems like a type problem, but I forced the types to Double and that didn't help.
Simply put the script in a file with a vbs extension and use the command line to run it with cscript command. This was available on my default windows. Now with my limited memory I'll hopefully remember this blog post so I can come back and 'remember' how to do it.
Now, the other issue that I haven't been able to solve is why 2.28 != 2.28. It sure seems like a type problem, but I forced the types to Double and that didn't help.
Dim sCResult
Dim sExpression
sExpression = "(760.27 + 64.56) = 824.83"
sExpression = "(1.27 + 1.01) = 2.28"
'sExpression = "(1.27 + 1.01) = (1.27 + 1.01)"
wscript.echo(" Evaling: " & Trim(sExpression))
wscript.echo( Eval("1.27 + 1.01") )
wscript.echo( Eval("2.28") )
sCResult = Eval(Trim(sExpression))
wscript.echo("Eval returns: '" & sCResult & "' ")
sExpression2 = "CDbl((1.27 + 1.01)) = CDbl(2.28)"
wscript.echo("")
wscript.echo("")
wscript.echo( Eval("CDbl(2.28)") )
wscript.echo( Eval("CDbl(1.27 + 1.01)") )
wscript.echo(" Evaling: " & Trim(sExpression2))
sCResult2 = Eval(Trim(sExpression2))
wscript.echo("Eval returns: '" & sCResult2 & "' ")
Running VBScripts standalone with Command Prompt
Over the past few years I've had to do a bunch of little vbscripts to create custom actions for Datacap. Recently I found a problem with a script and a friend showed me a quick little way to run my script standalone.
Simply put the script in a file with a vbs extension and use the command line to run it with cscript command. This was available on my default windows. Now with my limited memory I'll hopefully remember this blog post so I can come back and 'remember' how to do it.
Now, the other issue that I haven't been able to solve is why 2.28 != 2.28. It sure seems like a type problem, but I forced the types to Double and that didn't help.
Simply put the script in a file with a vbs extension and use the command line to run it with cscript command. This was available on my default windows. Now with my limited memory I'll hopefully remember this blog post so I can come back and 'remember' how to do it.
Now, the other issue that I haven't been able to solve is why 2.28 != 2.28. It sure seems like a type problem, but I forced the types to Double and that didn't help.
Dim sCResult
Dim sExpression
sExpression = "(760.27 + 64.56) = 824.83"
sExpression = "(1.27 + 1.01) = 2.28"
'sExpression = "(1.27 + 1.01) = (1.27 + 1.01)"
wscript.echo(" Evaling: " & Trim(sExpression))
wscript.echo( Eval("1.27 + 1.01") )
wscript.echo( Eval("2.28") )
sCResult = Eval(Trim(sExpression))
wscript.echo("Eval returns: '" & sCResult & "' ")
sExpression2 = "CDbl((1.27 + 1.01)) = CDbl(2.28)"
wscript.echo("")
wscript.echo("")
wscript.echo( Eval("CDbl(2.28)") )
wscript.echo( Eval("CDbl(1.27 + 1.01)") )
wscript.echo(" Evaling: " & Trim(sExpression2))
sCResult2 = Eval(Trim(sExpression2))
wscript.echo("Eval returns: '" & sCResult2 & "' ")
Tuesday, July 12, 2016
WinForms C# ctrl-z for undo and redo
I have a personal application I built to help sort pictures. It works really well for me, but no where near commercial quality. Every so often I add a new little feature to it. This time I'm adding undo and redo. The control key for handling was a little different than I expected and I had to look it up so I thought I would add it for my own future reference.
I originally thought I could get this to work with just the KeyPressed event, but had to do it a little deeper in the KeyDown and KeyUp events.
bool bUndoDown = false;
// checking for ctrl key
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Z:
if (bUndoDown)
break;
if (e.Modifiers == (Keys.Control | Keys.Shift))
{
bUndoDown = true;
Console.WriteLine("redo pressed");
}
else if (Control.ModifierKeys == Keys.Control)
{
bUndoDown = true;
undodebugcnt++;
Console.WriteLine("undo pressed "+undodebugcnt);
}
break;
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (bUndoDown)
{
if (e.KeyCode==Keys.Z)
{
bUndoDown = false;
}
}
}
I originally thought I could get this to work with just the KeyPressed event, but had to do it a little deeper in the KeyDown and KeyUp events.
Labels:
.net,
c#,
event,
keydown,
keypressed,
keyup,
sample,
source code
Subscribe to:
Posts (Atom)