Author: way0utwest

  • Long Term Pebble Classic Review

    I got a Pebble Classic watch for Christmas a few years ago, in Dec 2014 to be clear. That’s (as of now) about 18 months of use. I haven’t used it every day, but I’ve used it often, and here are a few things that I wanted to put down as a long term look at this device.

    This is the first smartwatch I’ve owned. I’ve been a Timex Ironman (or some variation) person for most of my life. I went about two years with just my cell phone when my last watch died and decided I didn’t like that, so I got the Pebble.

    tl;dr – I have really enjoyed the watch, but I’m not sure I want a (nother) device that lasts a year or two.

    Current Status

    The watch still works, though I have found that I need to charge it every 3-4 days. This seems in contrast to when I originally got it and the battery would last 6-7 days. In fact, early on I forgot my cord and went to the UK. I left Monday, returned Saturday, and the Pebble made it.

    The big issue, for me, is that I have screen tearing. There are times I can’t read anything, though changing watch faces usually corrects things. However, when you’re doing something and want to check the time and can’t see it, you don’t always want to do this. For example, I’ve been out working in the field, with dirty hands, and I couldn’t get the time without getting grease all over the watch.

    Looking Back at First Impressions

    I wrote about the watch when I got it. For the most part, things still work for me. I use the watch to change music when I’m traveling, and I get text messages on it. However, sometimes I get too many messages, and need to go through menus to turn off notifications from the phone. It’s annoying, but that’s somehow what happens with apps that notify you.

    I haven’t done much with timing on the watch, but I’ve usually found the phone to be more useful here.

    In terms of running, I wasn’t running a ton when I got the watch, but I run daily now. Perhaps that’s why the battery doesn’t last. Each time to flick your wrist, the backlight comes on, which is a lot when I run. I’ve noticed it on the treadmill. Perhaps the backlight doesn’t happen outside? Hard to tell.

    I do love the MapMyRun integration to see my time/pace. I use the audio coaching for motivation, but it’s nice to glance down and see my pace as I go. I wish this allowed me to change music and go back to the tracking, but I haven’t seen that work.

    Alarms

    One thing I’ve done a few times is use the alarms on the Pebble to wake me. The vibration is quieter and better when I need to get up at 5am for a flight, and this doesn’t wake my wife. It’s kind of nice. It’s also a great second alarm in hotels.

    However. I do forget to turn it off and the default is to repeat the alarm the next day. Good when I travel, bad when I come home and set it on the nightstand to charge. The vibration on wood is loud enough to wake my wife.

    Annoyances

    There are a few things that bug me. I have the phone sync sometimes fail, and I’ve struggled to get my Pebble reconnected without forgetting the device and doing a new phone pairing. It’s been simple sometimes, frustrating other times.

    The screen tearing is really annoying, as is the lack of battery life. It’s still better than daily charging for something like an Apple Watch or Samsung Watch.

    There isn’t good support for step tracking unless I have an app on the phone all the time. Not what I want and I miss this a bit since my Fitbit was lost.

    The band isn’t great, though that’s on me. I should get an aftermarket band that I like.

    How Long Should This Last?

    That’s a good question. The Pebble warranty is one year. I’m obviously past that. As a comparison, Timex provides a year as well. 30 days replacement online, then warranty replacement.

    However, I’ve usually had Timex watches last for 4-5 years. This seemed flaky at 14 months, which feels a bit like too short a period.

    What would I want? If this lasted two years, do I think that’s OK?  I think crossing a year mark has psychological significance. Now it feels like a one year old watch, but if it made it to December, that would be two.

    Ultimately I’m not sure. I know some people have had these last a couple years, so maybe that was just my luck.

    The Verdict

    The Pebble does most of what I need and want, and it’s been a good watch. I’m disappointed in the screen tearing, but it’s not unusable at this point. I can’t think of much more I’d want other than constant step tracking.

    I’ll need a replacement this year, I’m guessing. There is a Kickstarter for the newer Pebble 2, which will have heart rate monitoring. That interests me, as does the Core. The idea of not needing a phone and just carrying the Core is nice.

    I’m not into color or a lot of other features, and don’t like charging. The Apple Watch is out for that reason (and likely other Android wear). Pebble 2 is interesting, as is the Microsoft Band, but I’ll have to think a bit. Maybe I’ll go steel and see if that’s more durable?

    At the end of the day, I think Pebble is a good device for your wrist, if you want one.

  • Basic XML Node Query–#SQLNewBlogger

     

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

    I saw a question recently about querying an XML document. Certainly avoid this in the database if you can, but there are times you need to. Rather than link to the post, I wanted to show the basics of how you query a node.

    Let’s suppose I have an XML document like this:

    <Order>
      <OrderID>4FB9</OrderID>
      <ORderDate>2019-07-20-00.31.23.000000</ORderDate>
      <Status>Open</Status>
      <Customer>
        <CustomerName Type=”Individual”>
          <FirstName>Jon</FirstName>
          <LastName>Doe</LastName>
        </CustomerName>
      </Customer>
      <Customer Type = “Company”>
        <CustomerName>
          <CompanyName>Acme</CompanyName>
          <Account>12345</Account>
        </CustomerName>
      </Customer>
      </Order>

    Now, I saw someone query this with code like this to get the OrderID.

    DECLARE @xml XML;
    SET @xml = N’
    <Order>
      <OrderID>4FB9</OrderID>
      <ORderDate>2019-07-20-00.31.23.000000</ORderDate>
      <Status>Open</Status>
      <Customer>
        <CustomerName Type=”Individual”>
          <FirstName>Jon</FirstName>
          <LastName>Doe</LastName>
        </CustomerName>
      </Customer>
      <Customer Type = “Company”>
        <CustomerName>
          <CompanyName>Acme</CompanyName>
          <Account>12345</Account>
        </CustomerName>
      </Customer>
      </Order>
    ‘;

    SELECT
          t.b.value(‘(ORDERID)[1]’, ‘NVARCHAR(100)’) AS MSGID
      FROM
        @xml.nodes(‘/Order’) t(b);

    This doesn’t work.

    2016-06-15 13_09_07-Photos

    The reason this doesn’t work is that XML is case sensitive. Meaning ORDERID != OrderID. The former is in the query, the latter in the XML document. If I change the query, this works (note I have OrderID below).

    2016-06-15 13_11_23-Photos

    This would also apply to the .Nodes call. If I had .ORDER, this also wouldn’t work.

    2016-06-15 13_11_54-Photos

    The @xml.nodes() call determines the root at which I’ve essentially set the document. I could have this as /Order/Customer if I wanted. In that case, I couldn’t access the OrderID. The OrderID isn’t below the Customer node.

    2016-06-15 13_13_21-Photos

    However, from below Customer, I can get to the names.

    2016-06-15 13_14_05-Photos

    There is a lot more to know about XML, but you can experiment with the various nesting levels by including different paths. I’ll show a few more things in another post.

    SQLNewBlogger

    Querying XML is hard, and can be frustrating as the document size grows and complexity grows. However, this is a good way to showcase your skills (or build them), but tackling different query questions or challenges and writing about them.

    Hint: this will also help solidify your XML skills.

  • Monitoring and Alerting

    Monitoring your systems is important. It’s not just me that thinks so, as plenty of experienced DBAs and developers know the value of monitoring. Heck, most people have learned to build some sort of metric collection into their software. Azure makes it easy to instrument your application and gather lots of data on how well things are working. Perhaps too easy to gather too much data and then you pay for it, or can’t find time to analyze it. High performing software development shops use monitoring in their Continuous Integration (CI) and Continuous Delivery (CD) pipelines to better understand the health of their code and speed of their workflow, in addition to instrumenting the actual application.

    For those of us that need to ensure our database servers are running well, we not only need monitoring, but also alerting. I ran across a couple articles that have thoughts about monitoring and the difference between monitoring and alerting. While I don’t completely agree with all the items in the second piece, I do think that it’s important that you get alerting working well.

    I’ve had more than my share of un-actionable alerts, or even unnecessary alerts in my career. These days I’ve learned to better classify those items that matter to me. Most of the time what I find myself doing is downgrading most alerts because very few are actually mission critical. Far too often I’ve worried about 100% CPU or slow log writes or even zero sales in an hour or some other metric that “seems” critical. However, since few of these alerts stop business from flowing, I’ve learned to lower their priority or just remove them as alerts and allowing monitoring to track the values. I do need to watch the monitoring and fix issues, but I don’t need to get up at 3am.

    The other thing I’ve worked to do is automate responses to problems. If I know there are ways a computer can respond, let it. Don’t get a human involved if the system can manage itself. Certainly the automated solutions don’t always work, but have some escalation built in that only alerts a human after the system has exhausted its own responses. After all, we don’t want to exhaust humans if we don’t need to do so.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 2.4MB) podcast or subscribe to the feed at iTunes and LibSyn.

  • The Desktop Rebuild–Part 3

    This is the last part of this series, at least for now. If you haven’t seen Part 1 and Part 2, feel free to check them out.

    After I got through Part 2, I was working again. In fact, I continued to chocotaley install a few things, but for the most part, I could get productive quickly, working on writing, email, even code. I did install Visual Studio, SQL, and SSMS by hand, mostly to be sure they were the right versions I needed.

    However, things weren’t great. The two monitors I showed from Part 2 were OK, but the not great. I missed my third monitor, especially when I had the second one in portrait more. I decided I needed to just upgrade things again. Not everything, just the video card.

    I tried my two older cards, shown below, in various combinations, but every time I added them to the motherboard, I couldn’t boot. Remove them, and things worked again. After 4-5 tries, I thought it was time to abandon this path.

    Photo Jun 27, 12 54 11 PM

    I’ve been stretching my budget slightly. I’ve had a few expenses here, and while this is tax deductible, it still costs real money. I got a few recommendations for video cards, including this Quadro K1200, which looked great. However, another $300 right now would likely get my wife a bit more upset than I’d like.

    I looked around the Internet a few times at night and found some other cards that would support 3 monitors, at a more reasonable cost. In the end, I decided to switch from ATI to NVidia and got a EVGA GeoForce GT740 card with two DVI and one mini HDMI out. Quite a few people had used this for workstations and it seemed to support 3 monitors well.

    Photo Jun 27, 12 54 16 PM

    This was a large card, and the first one I’ve ever owned that needed its own power connections. Hardware has changed. This is also a card with 4GB of memory, which is a long way from the first computer I built after college that had 4MB of main memory.

    Installing the card was easy. It slipped in, I connected it to power and my desktop booted right up. Well, I had a CMOS error, but I cleared things and then it booted. The mini-HDMI cable was a tight fit, but I managed to get it in there.

    One note on cables, go longer. I got a 3ft mini-HDMI to HDMI and it wasn’t quite long enough. I had to rearrange monitors a bit, which is OK, but I should have just gotten a 6 foot cable and then secured the extra.

    I downloaded the NVidia driver before I’d shut down the machine, so I booted to a single monitor, installed the driver, and things worked right away. I configured things and ended up going with a 3 monitor config that has the center one in portrait mode.

    Photo Jun 27, 1 00 12 PM

    It’s been a few days and so far everything looks and works great. I’ve rebooted a few times, taken the desk up and down multiple times, and connections are solid, hardware is working, and I can get back to getting work done.

    I ran a test using UserBenchMark and got great scores everywhere but video and then only for gaming. Overall, this is a much faster machine, and seems to work smoother. I’ve had zero issues with the hardware and Windows 10 seems more stable since the fresh installation.

    2016-06-27 13_08_24-Asrock Z170 Extreme6 Performance Results - UserBenchmark

    My Windows Experience Index also changed dramatically.  The old machine was a 5.1, mainly due to graphics, with the other scores in the low 8s. The new score is 7.9, with graphics holding things back, but I have a third monitor now and more CPU and RAM resources.

    Summary

    Here are the changes I made. Note I’m not recommending these items. I got some recommendations from Glenn Berry, and they worked well for me. This stuff changes often, so check with friends and do your own research.

    Old

    • MB – Gigabyte, circa 2010-ish
    • 24GB RAM
    • 256 boot SSD, 512 SSD, 2x1TB HDD
    • ATI 512MB RAM graphics card, circa 2010
    • ATI 1MB graphics card, circa 2012
    • Corsair 600W power supply

    New

    ASRock Extreme6 motherboard – $109 (after rebate)

    Intel i7-6700k – $269

    32GB Memory – $50

    Cooling fan – $30

    EVGA Video – $110

    That’s $620 for a fairly substantial upgrade.

    I’m pretty happy for now, and I suspect this will last for some time. If I change anything, it will be adding another graphics card because I need video stuff (or I buy Doom 4) and getting a larger power supply.