|
Posted on May 8th, 2012
Sometimes, when searching Google it takes all of 30 seconds to find an answer to a question. Other times, it can take minutes, or even hours. I’m writing this blog post, because I was just researching an issue that took me hours to figure out– and in the end, it was so simple, yet disappointing at the same time…
For the new version of Overseer, the network monitoring software I write, I was adding support for extended event logs– these are the “Applications and Services Logs” event logs below the regular ones in W2K8′s event viewer. I found I had to use the new EventLogSession/EventLogReader API. I found it required .NET 3.5, so I upgraded my software to require .NET 3.5(it was v2 compatible up to this point).
I got things working, and I was able to monitor event logs(new and old style) using the code remotely accessing Windows 2008 and Windows 7 computers. I got an error when accessing Windows XP machines(and I’m sure W2K3 machines, but I didn’t have any to test with at the time). The error was “UnauthorizedAccessException - Attempted to perform an unauthorized operation.” To most, including myself, this seems like a permissions issue– so I looked into all sorts of potential impersonation problems, etc. I scoured the web looking for anyone even having the same problem, but didn’t find it.
Eventually, I found a reference buried in some forum reply, that one of the API calls that the new EventLogSession/EventLogReader calls is Vista/W2K8+ only. That’s just great– the whole API is now Vista/W2K8+ only… Why Microsoft wouldn’t add a compatibility layer for Windows XP and Windows 2003 is beyond me… But once I found this, I at least was able to move on, realizing that I had to detect the version of Windows running on the remote machine and use the different API’s accordingly… If only Microsoft had included proper documentation clearly specifying this new API was Vista/W2K8+ only, had an error message indicating something of that sorts, or actually did the right thing and wrote a compatibility layer into it, I wouldn’t have wasted so much time on such an unproductive search.
Posted on September 14th, 2011
As some of you may know, I spend a large portion of my time contracting with a specific client. The rest of my time, I spend doing operations things, and trying to develop and promote my products, Overseer Network Monitor and Employee Scheduling Pro. The time demands of my primary contract, along with personal time demands, sometimes leaves me very little time to develop and/or promote my products. It can be quite frustrating at times. In the past 6 months or so, I’ve been doing my best to force myself to do a little bit every week. I created a whiteboard that tracks how many days it has been since my last release, blog post, sale, etc. for each of the products. As I see this number go up, I get more motivated to do something with the product so I can make a release, and therefore a blog entry, and hopefully all this will spur sales(or potentially do some marketing to make the sales # move)…
While this has been helpful to keep me from being totally idle on my products, I’ve found it’s caused a different problem. I’ll notice late in the week that a number is high, and be motivated to make a release to bring that number down to 0. So, I’ll search my feature database for something I can bang out in a couple hours or maybe a day– tops… If I have a bit more time, I’ll do a couple to make it a more substantial release… The problem with this, is I’m always pressed for time in a week– so only small enhancements get done… The exception to this rule, is when I have a customer specifically asking for features– then I focus all my development efforts on getting the list of features implemented that the specific [potential] customer requests. I feel I get a lot done in this manner, but it often spans multiple periods of my non-contract time. This is good, because I stay focused.
After noticing this pattern and doing some research online, I’ve come to the realization that I can’t continue without a little more structure. I need to start planning software releases– to create a simple schedule. I need to take some time, sit down, and choose a certain few features(big and small) to be included in a release. I then have to schedule out how long that’ll take, and get it done– accepting upfront that this will take numerous sessions– I can’t bang out a substantial release in an afternoon as I’ve been doing…
Posted on June 10th, 2011
This has been a busy week involving multiple new releases– one for Overseer, my network monitoring software, and the other for Employee Scheduling Pro, my employee scheduling software. In addition to this, I’ve had more hours than usual for a regular client of mine… Overall, it’s been a very busy week.
I’ve also been looking at adding support to Overseer for USB temperature sensing units. I ordered a few for prototypes/development units, and hope to add a budget alternative to the extremely expensive Sensatronics EM1 option that Overseer currently supports.
Posted on April 1st, 2011
About a month ago I switched to using Google Analytics. I was previously using Urchin for web analytics, and had accepted that it simply didn’t work for tracking goals, etc.(I reported this to Urchin and they refused to acknowledge it). When I switched to Google Analytics, I setup goals for tracking downloads of my Network and System Monitoring Software. This seemed to work, and replaced my weblog analysis that counted the downloads for conversion tracking.
This past Friday, I launched my Employee Scheduling Software and setup goal/download tracking the same exact way. I downloaded it a few times, and it never showed up in Google Analytics as a conversion– or as content. I analyzed what could be wrong, and found that everything was setup perfectly.
So, being a software developer, I loaded my download page up in Chrome and turned on the Javascript console. I found that when clicking the download links, it would come up with an “undefined” error, yet still allow the download to take place. With some experimentation, I found that the tracking code always fails when linking to a binary/downloadable file, but works for linking to pages… Of course, that doesn’t work for me, as I need to track downloading of files… I couldn’t find any solutions online, and I tried multiple different ways to track the downloads with GA… It appears to be browser specific(with Chrome), which is why the problem was masked with Overseer downloads… But this just makes it clear to me that I can’t trust Google’s numbers…
So, it looks like I’ll be switching back to tracking downloads from my logs… The plus side of this, is I can go back historically and won’t be limited by GA’s lack of data, lack of Javascript support on some browsers, etc… The problem is I won’t be able to see ‘goals’ inside GA’s interface… I suppose there’s worse things.
Posted on March 1st, 2011
For many reasons, many people may want to Email a text message to their cell phone. This might be used to notify themselves when their servers or websites go down– or simply to notify them of backup completion or a new sale. If you’re interested in receiving Emails when your servers or websites go down, you may want to check out Overseer, which does exactly that– it is able to send an Email to your phone when your website goes down.
If you’d like to Email a cell phone directly from your Email client, from a script, or something else, you can still do so quite easily. This has the benefit of being free for the person sending the email, but the recipient may still pay to receive the email as a text message. To send a text message to someone’s cell phone via Email, you will need to know their phone number and what cell phone carrier they use. To send a text message to a cell phone, simply send an Email to the appropriate Email address:
| AT&T |
phonenumber@txt.att.net |
| Cingular Wireless |
phonenumber@mobile.mycingular.com |
| Cricket |
phonenumber@sms.mycricket.com |
| Metro PCS |
phonenumber@mymetropcs.com |
| Nextel |
phonenumber@messaging.nextel.com |
| Sprint PCS |
phonenumber@messaging.sprintpcs.com |
| T-Mobile |
phonenumber@tmomail.net |
| US Cellular |
phonenumber@email.uscc.net |
| Verizon |
phonenumber@vtext.com |
| Virgin Mobile |
phonenumber@vmobl.com |
Remember to keep your EMails short, as the recipient will be receiving them on a small screen, and long Emails may be cut off or split between multiple text messages(and they’ll get charged for each one by their carrier). Also, if your carrier isn’t here, it may be here: Cell Phone Email Addresses.
Posted on February 28th, 2011
Most mobile phone and pager carriers provide Email gateways into their SMS/Text messaging networks, allowing for the free sending of text messages to these devices. These Email addresses sometimes change, so I’ve provided a list of SMS cell phone Email addresses here. Some of these may not work– it’s best to try sending an Email to each address for your provider and see if you get the message. If you know of a provider/Email address combination that’s not here that you know works, please contact me at dkalweit@sensiblesoftware.com so I can add it to the list. Note that messaging rates on the device may still apply. For more details, please see How to Email a Cell Phone. If you’re interested in monitoring your servers, websites, and network devices, and getting Emails to your cell phone when they go down, please check out Overseer Server Monitoring Software.
| Provider Name |
Email Address |
| 3 River Wireless |
phonenumber@sms.3rivers.net |
| ACS Wireless |
phonenumber@paging.acswireless.com |
| AT&T |
phonenumber@txt.att.net |
|
|
| AT&T Pocketnet PCS |
phonenumber@dpcs.mobile.att.net |
| Advantage Communications |
pagernumber@advantagepaging.com |
| Airtouch Pagers |
pagernumber@airtouch.net |
| Airtouch Pagers |
pagernumber@airtouchpaging.com |
| Airtouch Pagers |
pagernumber@alphapage.airtouch.com |
| Airtouch Pagers |
pagernumber@myairmail.com |
| Alltel |
phonenumber@message.alltel.com |
| AlphNow |
pin@alphanow.net |
| Ameritech Clearpath |
pagernumber@clearpath.acswireless.com |
| Ameritech Paging |
pagernumber@pageapi.com |
| Ameritech Paging |
pagernumber@paging.acswireless.com |
| Andhra Pradesh Airtel |
phonenumber@airtelap.com |
| Arch Pagers (PageNet) |
pagernumber@archwireless.net |
| Arch Pagers (PageNet) |
pagernumber@epage.arch.com |
| BPL mobile |
phonenumber@bplmobile.com |
| BeeLine GSM |
phonenumber@sms.beemail.ru |
| Beepwear |
pagernumber@beepwear.net |
| Bell Atlantic |
phonenumber@message.bam.com |
| Bell Canada |
phonenumber@bellmobility.ca |
| Bell Canada |
phonenumber@txt.bellmobility.ca |
| Bell Mobility |
number@txt.bellmobility.ca |
| Bell South (Blackberry) |
number@bellsouthtips.com |
| Bell South Mobility |
phonenumber@blsdcs.net |
| Bell South |
phonenumber@bellsouth.cl |
| Bell South |
phonenumber@blsdcs.net |
| Bell South |
phonenumber@sms.bellsouth.com |
| Bell South |
phonenumber@wireless.bellsouth.com |
| Bluegrass Cellular |
phonenumber@sms.bluecell.com |
| Boost Mobile |
phonenumber@myboostmobile.com |
| Carolina Mobile Communications |
pagernumber@cmcpaging.com |
| Cellular One East Coast |
phonenumber@phone.cellone.net |
| Cellular One PCS |
phonenumber@paging.cellone-sf.com |
| Cellular One South West |
phonenumber@swmsg.com |
| Cellular One |
phonenumber@mobile.celloneusa.com |
| Cellular One |
phonenumber@cell1.textmsg.com |
| Cellular One |
phonenumber@cellularone.textmsg.com |
| Cellular One |
phonenumber@cellularone.txtmsg.com |
| Cellular One |
phonenumber@message.cellone-sf.com |
| Cellular One |
phonenumber@sbcemail.com |
| Cellular South |
phonenumber@csouth1.com |
| Central Vermont Communications |
pagernumber@cvcpaging.com |
| CenturyTel |
phonenumber@messaging.centurytel.net |
| Chennai RPG Cellular |
phonenumber@rpgmail.net |
| Chennai Skycell / Airtel |
phonenumber@airtelchennai.com |
| Cincinnati Bell |
phonenumber@gocbw.com |
| Cingular Wireless |
phonenumber@mobile.mycingular.com |
| Clearnet |
phonenumber@msg.clearnet.com |
| Comcast |
phonenumber@comcastpcs.textmsg.com |
| Communication Specialist Companies |
pin@pager.comspeco.com |
| Communication Specialists |
7digitpin@pageme.comspeco.net |
| Comviq |
number@sms.comviq.se |
| Cook Paging |
pagernumber@cookmail.com |
| Corr Wireless Communications |
phonenumber@corrwireless.net |
| Cricket |
phonenumber@sms.mycricket.com |
| DT T-Mobile |
phonenumber@t-mobile-sms.de |
| Delhi Aritel |
phonenumber@airtelmail.com |
| Delhi Hutch |
phonenumber@delhi.hutch.co.in |
| Digi-Page / Page Kansas |
pagernumber@page.hit.net |
| Dobson Cellular Systems |
phonenumber@mobile.dobson.net |
| Dobson-Alex Wireless / Dobson-Cellular One |
phonenumber@mobile.cellularone.com |
| EMT |
phonenumber@sms.emt.ee |
| Edge Wireless |
phonenumber@sms.edgewireless.com |
| Escotel |
phonenumber@escotelmobile.com |
| Fido |
phonenumber@fido.ca |
| GCS Paging |
pagernumber@webpager.us |
| GTE |
phonenumber@messagealert.com |
| GTE |
number@airmessage.net |
| GTE |
number@gte.pagegate.net |
| Goa BPLMobil |
phonenumber@bplmobile.com |
| Golden Telecom |
phonenumber@sms.goldentele.com |
| GrayLink / Porta-Phone |
pagernumber@epage.porta-phone.com |
| Gujarat Celforce |
phonenumber@celforce.com |
| Helio |
phonenumber@myhelio.com |
| Houston Cellular |
number@text.houstoncellular.net |
| Idea Cellular |
phonenumber@ideacellular.net |
| Infopage Systems |
pinnumber@page.infopagesystems.com |
| Inland Cellular Telephone |
phonenumber@inlandlink.com |
| JSM Tele-Page |
pinnumber@jsmtel.com |
| Kerala Escotel |
phonenumber@escotelmobile.com |
| Kolkata Airtel |
phonenumber@airtelkol.com |
| Kyivstar |
number@smsmail.lmt.lv |
| LMT |
phonenumber@smsmail.lmt.lv |
| Lauttamus Communication |
pagernumber@e-page.net |
| MCI Phone |
phonenumber@mci.com |
| MCI |
phonenumber@pagemci.com |
| Maharashtra BPL Mobile |
phonenumber@bplmobile.com |
| Maharashtra Idea Cellular |
phonenumber@ideacellular.net |
| Manitoba Telecom Systems |
phonenumber@text.mtsmobility.com |
| Meteor |
phonenumber@sms.mymeteor.ie |
| Metro PCS |
phonenumber@mymetropcs.com |
| Metrocall 2-way |
pagernumber@my2way.com |
| Metrocall |
pagernumber@page.metrocall.com |
| MiWorld |
phonenumber@m1.com.sg |
| Microcell |
phonenumber@fido.ca |
| Midwest Wireless |
phonenumber@clearlydigital.com |
| Mobilecom PA |
pagernumber@page.mobilcom.net |
| Mobilecomm |
number@mobilecomm.net |
| Mobileone |
phonenumber@m1.com.sg |
| Mobilfone |
phonenumber@page.mobilfone.com |
| Mobility Bermuda |
phonenumber@ml.bm |
| Mobistar Belgium |
phonenumber@mobistar.be |
| Mobitel Tanzania |
phonenumber@sms.co.tz |
| Mobtel Srbija |
phonenumber@mobtel.co.yu |
| Morris Wireless |
pagernumber@beepone.net |
| Motient |
number@isp.com |
| Movistar |
number@correo.movistar.net |
| Mumbai BPL Mobile |
phonenumber@bplmobile.com |
| Mumbai Orange |
phonenumber@orangemail.co.in |
| NBTel |
number@wirefree.informe.ca |
| NPI Wireless |
phonenumber@npiwireless.com |
| Netcom |
phonenumber@sms.netcom.no |
| Nextel |
phonenumber@messaging.nextel.com |
| Nextel(Brazil) |
phonenumber@nextel.com.br |
| Ntelos |
number@pcs.ntelos.com |
| O2 |
phonenumber@o2.co.uk |
| Omnipoint |
phonenumber@omnipointpcs.com |
| Omnipoint |
number@omnipoint.com |
| One Connect Austria |
phonenumber@onemail.at |
| OnlineBeep |
phonenumber@onlinebeep.net |
| Optus Mobile |
phonenumber@optusmobile.com.au |
| Orange – NL / Dutchtone |
phonenumber@sms.orange.nl |
| Orange Mumbai |
phonenumber@orangemail.co.in |
| Orange |
phonenumber@orange.net |
| Oskar |
phonenumber@mujoskar.cz |
| P&T Luxembourg |
phonenumber@sms.luxgsm.lu |
| PCS One |
phonenumber@pcsone.net |
| Pacific Bell |
phonenumber@pacbellpcs.net |
| PageMart Advanced /2way |
pagernumber@airmessage.net |
| PageMart Canada |
pagernumber@pmcl.net |
| PageMart |
7digitpinnumber@pagemart.net |
| PageNet Canada |
phonenumber@pagegate.pagenet.ca |
| PageOne NorthWest |
10digitnumber@page1nw.com |
| Pioneer / Enid Cellular |
phonenumber@msg.pioneerenidcellular.com |
| PlusGSM |
phonenumber@text.plusgsm.pl |
| Pocket Wireless |
phonenumber@sms.pocket.com |
| Pondicherry BPL Mobile |
phonenumber@bplmobile.com |
| Powertel |
phonenumber@ptel.net |
| Price Communications |
phonenumber@mobilecell1se.com |
| Primco |
number@primeco.textmsg.com |
| Primtel |
phonenumber@sms.primtel.ru |
| ProPage |
7digitpagernumber@page.propage.net |
| Public Service Cellular |
phonenumber@sms.pscel.com |
| Qwest |
phonenumber@qwestmp.com |
| RAM Page |
number@ram-page.com |
| Rogers AT&T Wireless |
phonenumber@pcs.rogers.com |
| Rogers Canada |
phonenumber@pcs.rogers.com |
| SBC Ameritech Paging |
pagernumber@paging.acswireless.com |
| SCS-900 |
phonenumber@scs-900.ru |
| SFR France |
phonenumber@sfr.fr |
| ST Paging |
pin@page.stpaging.com |
| Safaricom |
phonenumber@safaricomsms.com |
| Satelindo GSM |
phonenumber@satelindogsm.com |
| Satellink |
pagernumber.pageme@satellink.net |
| Simple Freedom |
phonenumber@text.simplefreedom.net |
| Skytel Pagers |
7digitpinnumber@skytel.com |
| Skytel Pagers |
number@email.skytel.com |
| Smart Telecom |
phonenumber@mysmart.mymobile.ph |
| Southern LINC |
phonenumber@page.southernlinc.com |
| Southwestern Bell |
number@email.swbw.com |
| Sprint PCS |
phonenumber@messaging.sprintpcs.com |
| SunCom |
number@tms.suncom.com |
| Sunrise Mobile |
phonenumber@freesurf.ch |
| Sunrise Mobile |
phonenumber@mysunrise.ch |
| Surewest Communicaitons |
phonenumber@mobile.surewest.com |
| Swisscom |
phonenumber@bluewin.ch |
| T-Mobile |
phonenumber@tmomail.net |
| T-Mobile(UK) |
phonenumber@t-mobile.uk.net |
| T-Mobile(Austria) |
Austria phonenumber@sms.t-mobile.at |
| T-Mobile(Germany) |
Germany phonenumber@t-d1-sms.de |
| TIM |
phonenumber@timnet.com |
| TSR Wireless |
pagernumber@alphame.com |
| TSR Wireless |
pagernumber@beep.com |
| Tamil Nadu BPL Mobile |
phonenumber@bplmobile.com |
| Tele2 Latvia |
phonenumber@sms.tele2.lv |
| Telefonica Movistar |
phonenumber@movistar.net |
| Telenor |
phonenumber@mobilpost.no |
| Teletouch |
pagernumber@pageme.teletouch.com |
| Telia Denmark |
phonenumber@gsm1800.telia.dk |
| Telus |
phonenumber@msg.telus.com |
| The Indiana Paging Co |
last4digits@pager.tdspager.com |
| Triton |
phonenumber@tms.suncom.com |
| US Cellular |
phonenumber@email.uscc.net |
| US West |
number@uswestdatamail.com |
| Unicel |
phonenumber@utext.com |
| Uraltel |
phonenumber@sms.uraltel.ru |
| Uttar Pradesh Escotel |
phonenumber@escotelmobile.com |
| Verizon |
phonenumber@vtext.com |
|
|
| Vessotel |
phonenumber@pager.irkutsk.ru |
| Virgin Mobile |
phonenumber@vmobl.com |
| Virgin Mobile Canada |
phonenumber@vmobile.ca |
| Vodafone |
phonenumber@vodafone.net |
| Vodafone Italy |
number@sms.vodafone.it |
| Vodafone Japan |
phonenumber@c.vodafone.ne.jp |
| Vodafone Japan |
phonenumber@h.vodafone.ne.jp |
| Vodafone Japan |
phonenumber@t.vodafone.ne.jp |
| Vodafone Spain |
phonenumber@vodafone.es |
| Vodafone UK |
phonenumber@vodafone.net |
| VoiceStream / T-Mobile |
phonenumber@voicestream.net |
| WebLink Wiereless |
pagernumber@airmessage.net |
| WebLink Wiereless |
pagernumber@pagemart.net |
| West Central Wireless |
phonenumber@sms.wcc.net |
| Western Wireless |
phonenumber@cellularonewest.com |
| Wyndtell |
number@wyndtell.com |
Posted on February 22nd, 2011
Generally when designing a software product, I have to weight the pros and cons of rolling my own code for everything, or strategically using control libraries for key parts of the code. A couple years ago, I decided that for the front-end GUI in my .NET apps, I’d use the Winform controls from DevExpress. Generally, this has worked fairly well. As with working with any control library, there’s little quirks that I have to get used to. This control library likes to put most of their functionality under a “Properties” parent property… That’s one of the key things to remember when working with their controls…
Today these quirks with DevExpress’s XtraScheduler control exceeded annoying and went into downright frustrating. I was trying to setup a timeline view to span midnight(some customers of my Employee Scheduling Software will have operating hours that go unto the wee hours of the morning). To do this, I had to create a custom TimelineScale object. This makes sense, but the names of the methods and the logic that I have to implement in them just doesn’t make sense to me… And the documentation on these properties is obscure at best… I finally got things working after a lot of messing around, and I’m glad to finally have it behind me. Overall, I think using the scheduler control will probably provide useful eye candy to the software while keeping me from having to re-invent the wheel.
Posted on February 17th, 2011
Well, after integrating WordPress into my websites, I was able to get my blog live for Overseer Network Monitor. I created posts for each of the releases from my release notes file going back almost 2 years to seed the blog with some posts. These posts are full of information regarding the new features added to Overseer in 4.x. A couple of the features deserved their own posts, so I wrote about a couple of those as well.
For those that are unaware, Overseer is a Network and System Monitoring Tool used by system administrators to monitor their systems and notify them(via Email, cell phone, pager, etc.) when something goes down.
|