Picking up my Own Guitar

Category : Guitar
Date : September 4, 2023

When I first started learning guitar, back in January 2022, I started playing with a very old Ibanez. It felt ok and, really, I wasn’t sure that I would stick with it so using that old thing was a low risk way to see how far I could go. I was tempted to get a new one but I just promised myself that if I was still playing and enjoying it after a year, well then I could justify getting my own guitar.

It turned out using that old guitar actually held me back a little. So, yeah, I probably would not have started playing without it but, on the other hand, I probably would have gone farther faster with a better guitar. As I mentioned in my last post, I managed to borrow a Fender Tele when I figured that out after about 8 months. That was a great guitar to practice with and by then I knew that I was going to keep at it. So over the next few months I researched what guitar I would get when I hit that 1 year mark.

Elvis Costello - My Aim is True album cover

I ended up getting a Fender Jaguar.

I’m still not sure why I landed on getting an offset guitar. I think (although TBH I’m not sure) it’s because I’m a big Elvis Costello fan and he has played a Jazzmaster since forever. You can see it front and center on the album cover for “My Aim is True”, his debut album. I guess somewhere in the back of my brain that offset shape imprinted on me early. I didn’t even make the connection until someone pointed it out and then it was, well duh, of course he did.

Fender Squier Contemporary Jaguar guitar
Squier Jaguar

So yeah, around mid-January 2023 I got a Jaguar. More specifically I got a Fender Squier Contemporary Jaguar HH ST in Skyburst Metallic. I did look at the Jazzmaster but the whammy bar seemed like too much and I’d heard that they tend to make it hard to stay in tune.

I ordered from Sylvan Music, a music shop in nearby Santa Cruz that is a Fender dealer. They seemed to be really knowledgeable and friendly. And by friendly, I mean that they did not laugh at me when I asked stupid questions. What? You need a strap to play? Oh, you didn’t bring a pick? No problem; here you go.

They just handed me the guitar and let go off to a small quiet room to play with it for as long as I needed to. That was different from the experience I had when shopping at the massive Guitar Center in San Jose. Just walking around looking at that wall of guitars and having to play in the middle of dozens of other people that seemed so obviously much better players that I was, was just too intimidating for me. I walked out without having touched a guitar.

The Jaguar is a great guitar. I love the sound. I love the feel. I love the look. I leave it on a guitar stand in my home office so that it’s always ready for me to pick up and play. I wish I did that more but I do it enough that I feel like I’m making progress.


Picking up a decent guitar

Category : Guitar
Date : August 6, 2023

In my last post I mentioned that that my son didn’t think that his old Ibanez guitar was really worth much. I was fine with that. I promised myself that if I kept at it for at least a year then I’d buy myself a new guitar. I kind of ignored what my son told me about the Ibanez needing a fret job. I could see that the frets were worn but in my mind I figured that, as a beginner, it didn’t really didn’t really matter. I mean, when you first start playing you’re not supposed to sound great, right? I plowed through the Justin Guitar beginner course and started to be able to play a few chords. I could hear the chords didn’t sound great; there was lots of buzzing. I didn’t mind.

And then in September 2022, my wife and I visited my son and I got a chance to play his new guitar. It was a super low end Epiphone Les Paul (like a $150 guitar) but it shocked me. It was just so much easier to play that one than it was to play the old Ibanez. I think I had been pressing down on the strings much harder than was needed in order to compensate for the worn down frets. That made it harder and more painful to play. I think it also slowed me down a bunch. It took me just a few minutes to realize that I had been working a lot harder than was really needed. It seemed obvious that I needed to replace the Ibanez.

When I got back from that trip I asked Zack, a good friend of mine, who has been playing guitar for years if he could lend me a guitar for a few months. I still wasn’t sure if a different guitar was going to make a big difference and I wasn’t ready to go out and buy new one yet. Zack came through; he lent me a Squier Telecaster. A sweet looking one in Butterscotch Blonde. It sounded great!

When I started playing the Tele it became pretty obvious that I had missed stuff while struggling to learn on the worn Ibanez. I skipped back a few lessons in the Justin Guitar course. It never feels good to do stuff over but this was different. Stuff that I had struggled with got a little easier. Lesson learned! don’t play shitty guitars.


Picking up the guitar

Category : Guitar
Date : July 30, 2023

About 18 months ago I started learning to play the guitar.

I’ve wanted to learn how to play since I was a kid but I could never justify to myself buying a guitar, as it always felt like a whim that I would get over. And then, when I quit, I’d have a guitar sitting in a closet mocking me every time I noticed it.

Ibanez RX-20 guitar
Ibanez RX-20

My son visited us in December 2021. He drove down from B.C. in order to grab a bunch of his stuff to take home with him. He had left a couple guitars with us when he went off to college and when he left this time he took the acoustic guitar with him but decided against taking the electric. He asked that we give it away as he felt it was not worth much.

And that was it. I had a free guitar. A guilt-free guitar that I could use. The guitar he left me was a Ibanez RX-20. It’s a nice looking guitar; basically a Fender Stratocaster knock-off with dual humbucker pickups. Using the serial number I was able to figure out that it was built in Korea by Cort in 1994. None of that mattered. What mattered was that it was enough to get me going.

I did some basic research online and with friends and found many mentions of Justin Sandercoe’s excellent justinguitar.com. So, since sometime in early 2022, I’ve been working my way through the free guitar course there.

It has been slow going and I’ve had to reset a couple of times but I’ll leave that for future posts.

Start your own guitar journey here: https://www.justinguitar.com


Posting again

Category : Guitar, Personal
Date : July 30, 2023

I haven’t posted on this blog since 2015. I recently started learning to play guitar and this feels like the right place to post about that. So kind of a learning log of sorts.

So, yeah, there’ll be more posts here but they will not be technology focused.


Important Microsoft Edge URLs for Devs

Category : Microsoft Edge
Date : November 11, 2015

Developer Portal

The Microsoft Edge Developer Portal.  The place to go for all things developer-related

Platform Status

Developer Blog

Testing for Compatibility

Preview Builds
Dev Tools
  • Virtual Machines for Mac, Linux and Windows
  • Remote Test on Mac, iOS, Android, Windows and Phone
  • Scan your web site for out-of-date libraries, layout issues and accessibility
  • See how your site renders across 9 common browsers and devices
Vorlon.JS
  • An open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript
WebDriver
Bing Webmaster Tools
Feedback and support

Learn More

Microsoft Edge Web Summit 2015

The team behind Microsoft Edge presents the latest updates to the Microsoft Edge roadmap, the EdgeHTML rendering engine, the Chakra JavaScript engine, and F12 dev tools.  Also includes a lineup of Microsoft and guest speakers sharing their expertise on modern web technologies like ES6, SVG, WebGL, Web Audio, Hosted Web Apps, IE11, and testing best practices on Mac and Linux.

Interoperable Web Development – Hands-on Labs
How to Debug a Website with Internet Explorer F12 Tools (Microsoft Virtual Academy)

Important Microsoft Edge URLs for Devs

Category : Microsoft Edge
Date : August 7, 2015

Developer Portal

  • The Microsoft Edge Developer Portal.  The place to go for all things developer-related

Platform Status

Developer Blog

 

Testing for Compatibility

Preview Builds
Dev Tools
  • Virtual Machines for Mac, Linux and Windows
  • Remote Test on Mac, iOS, Android, Windows and Phone
  • Scan your web site for out-of-date libraries, layout issues and accessibility
  • See how your site renders across 9 common browsers and devices
WebDriver
Bing Webmaster Tools

 

Feedback and support

 

Learn More

Microsoft Edge Web Summit 2015

The team behind Microsoft Edge presents the latest updates to the Microsoft Edge roadmap, the EdgeHTML rendering engine, the Chakra JavaScript engine, and F12 dev tools.  Also includes a lineup of Microsoft and guest speakers sharing their expertise on modern web technologies like ES6, SVG, WebGL, Web Audio, Hosted Web Apps, IE11, and testing best practices on Mac and Linux.

Interoperable Web Development – Hands-on Labs

How to Debug a Website with Internet Explorer F12 Tools (Microsoft Virtual Academy)


Localization session at Windows Phone Meetup in Silicon Valley

Date : May 16, 2012

Nokia-popupI had a great time last night at the Windows Phone Meetup in Silicon Valley.  Many thanks to all that attended and thanks to the Nokia folks for hosting the event.  There were a ton of great questions and comments.  I hope you all go out and start localizing your apps for the 63 consumer markets now waiting for them.

As promised, I’ve posted my slides and demos to my SkyDrive.  Let me know if you have any questions about any of the topics.

You can reach me via the contact form here on my blog or via twitter.

You can also follow me on twitter at https://twitter.com/benriga.  Do it for the puppy! Dog face

And finally, be sure to subscribe to Top Ranked, my new podcast series on Windows Phone publisher best practices.  You can subscribe using either Zune or iTunes.


I think I’m turning European

passportI spent the last 2 weeks traveling through various countries through Europe talking to developers of all kinds.  The whirlwind tour through 7 countries in 14 days gave me an opportunity to hear many ideas and concerns and to learn about what developers are out there building. 

If you attended one of the events where I was speaking, thank you so much for your participation.  I enjoyed every single one of those.  There was a ton of great comments and questions.  Clearly, there is some passion out there for development on Windows Phone.

Over the last week of the tour I focused mostly on Windows Phone 7.5 Refresh at events in Denmark, Finland, Austria and Italy. At those events I gave an update of Windows Phone 7.5 Refresh.  I also provided some developer guidance for devs who are building apps and provided some info on how to optimize apps to adapt to the new requirements of lower end devices.  To encourage developers to take advantage of the many new countries and languages we now support, I also provided an overview of how to localize apps .  Finally I gave you some tips on publishing and more importantly some guidance on how to make a bigger impact with the apps you’re publishing.

I promised to post my slides for those events so I’ve now made those available for you to download.  I’d love to hear feedback about the events, any topics I presented or any other issues you may have hit.

Feel free to let me know your thoughts via the comments below or via private message using the blog contact form.

And finally for those wondering, I can say that the puppy is safe and soundOpen-mouthed smile

 

 


Top Ranked – Crash King


View or download the video on Channel 9 (includes higher quality video)

Bad stuff happens!  There is no way around that.  It’s a fact; your apps, out there in the wild on consumers devices, will crash.  This in itself is ok but only if you can get the information about those crashes and use that information to fix the bugs that cause them.  The Windows Phone platform actually captures stack traces and provides those to you, the publisher of the app.  You can get a view of the number of crashes that are happening as well as download an Excel file with all the appropriate information and stack traces.  This is a good thing and you should take advantage of that information as it may give you some good clues as to what to fix to make your app a higher quality product.

CrashKing-CrashCount

There are a few things that App Hub does not give you though.  The first thing is that it may not give you enough information about the bugs that you are hitting.  One example of that is that the version number of the app is not provided so if you have published a few different versions of your app it is possible that a user is hitting a bug that you may have already fixed in a later version. 

The other issue is that stats on App Hub are delayed.  As a result you don’t see the issues that your end-users are hitting for a few days.  If something is happening out there that is causing a lot of crashes then you may not see it until after users start posting lots of low ratings and negative reviews. 

Another thing to keep in mind is that App Hub does not provide any sort of notification of issues.  It’s up to you to visit App Hub regularly and pull down those stack traces to see what’s going on. 

Finally (and I realize this is more a perception thing than an issue) end-users have no idea that the platform is gathering up those stack traces and making them available to you.  And, of course, they have no idea if you are looking at those traces and working on bug fixes.  As a result, when they see a bug most will assume the worst and give bad ratings and reviews.  As I’ve mentioned on a previous post you really want to make sure that, whenever you can, you provide the ability for the end-user to provide you feedback as that helps build a relationship which ultimately will result in higher ratings and ranking.

Fortunately there is a way to get around all of these issues.  Andy Pennell, a colleague on the Windows Phone dev team has posted some sample code which he dubbed Little Watson that I think every developer should include in all their apps.  Just like “Big” Watson does on Windows, that code does exactly what you would expect in that it captures all that stack trace info (including additional info you may need) and allows the end user to email it you so you can get to work fixing whatever bug caused the error.

Little Watson is pretty easy to use.  There are a few steps that you need to do:

  1. The first is to include the LittleWatson.cs in your project
  2. Then you need to let Little Watson know every time an exception happens.  When you do that Little Watson captures the trace info to isolated storage.  This is done by calling LittleWatson.ReportException.  You’ll need to do that in both RootFrame_NavigationFailed and Application_UnhandledException.  Both of those are in App.xaml.cs
  3. Finally to allow the end user to send you the stack trace you’ll need to add a call to LittleWatson.CheckForPreviousException() in the constructor for your main page (i.e. whatever page it is that your app launches into, usually that is MainPage.xaml.cs).  When you make that call Little Watson checks for an exception report file in isolated storage and if one exists prompts the end user to send it to you via email. 

Since Andy blogged about Little Watson, other devs have grabbed that great idea and taken it further.  One example of that is the Northern Lights open source project.  Northern Lights has many different capabilities that are useful to Windows Phone developers.  One of those is an implementation of Little Watson based on the work I mentioned above from Andy Pennell.  One thing that Northern Lights does beyond Andy’s code is that they provide you the capability to automatically send the trace info to a web service behind the scenes so that the end user does not have to see it.  You should probably be careful in doing something like that.  As I mentioned above, it might actually be a good thing for end-users to know that you care about bugs.  You may also want to be careful about sending stuff to a web service behind the users back.  Some users will get freaked out about that if they notice.  This would be especially bad if you were including any sort of Personally Identifiable Information (PII) along with those traces.  In general, you’ll probably want to let users know somehow that you are doing that and definitely stay away from capturing any PII.

Below I’ve included the source code for the project I used in the video.  It’s a ridiculously dumb app but I often get asked for source so I’m including it here for completeness. 

 

Let me know what you think about this episode of Top Ranked.

If you have questions about any of the videos, about problems or issues you’re hitting or if you have topics that you think would be of interest to other devs on the Windows Phone platform then drop me a note. I’d be particularly interested in hearing about some of the best practices you’ve adopted that you think have raised your quality or your ratings/ranking in the Marketplace. I’ll be sure to give full credit and link love whenever I can.

The Top Ranked series is hosted on Channel 9. You can view all the past videos there. You can also subscribe to the entire series via Zune or iTunes. All of that is available here:
https://channel9.msdn.com/Series/Top-Ranked

Let me know what you think by dropping me a note with the contact form on my blog here:
http://blogs.msdn.com/b/benriga/contact.aspx

Or better yet follow me on twitter and drop me a note there:
https://twitter.com/benriga

 

CrashKing.zip


Top Ranked – Element Alignment

Misaligned elements is probably one of the most common issues I see with apps in the marketplace.  In this episode of Top Ranked, I delve into why this is an issue and how easy it is to check for that and fix it.  Alignment is a part of the overall Metro design language.  I’ve even seen some designers in our UK COE group actually put post-it notes on their screens or on a device to verify that elements align properly.  This acts as a sort of forcing mechanism for them to check alignment.  The reason they do that is that you may not explicitly notice that stuff is out of alignment but when it is, you intuitively feel like something is off.  In general your app will feel a little sloppy when the element alignment is out of kilter.

The Metro design language does take alignment into account and as a result there are some things that you can keep in mind when designing and building pages.  The magic number 12 seems to resonate throughout the experience. Most elements in the native apps align up in a grid of one form or another.


View or download the video on Channel 9 (includes higher quality video)

The ingenious Jeff Wilcox built a development utility that makes getting the alignment right super simple.  This utility is called MetroGridHelper is also simple to find since you can grab it with NuGet.  Once included in your project you turn it on in App.xaml.cs in the same place where you turn on and off the frame rate counters and redraw regions etc.  You simply add MetroGridHelper.IsVisible = true; in the if block where the profiling info is included.  By doing it there you are assured that you will only ever see that grid when the debugger is actually attached (i.e. only in development).  When you run your project with the MetroGridHelper turned on, you’ll see a series of red squares layered over every screen in the app.  Those squares are strategically placed to make it really easy for you to see when elements are out of alignment.

Another thing to keep in mind while we’re talking about element alignment is the amount of space you leave to allow users to tap on an element (like an item in a list for instance).  Again here the magic number 12 is the number that you need.  Make sure that you have at least 12 pixels between tappable items so that the user can easily tap the item they want as opposed to mistakenly tapping nearby items.

You can read up on Jeff Wilcox’s MetroGridHelper on the original blog post but really all you need to do to use it is to grab it using NuGet.

Let me know what you think about this episode of Top Ranked.

If you have questions about any of the videos, about problems or issues you’re hitting or if you have topics that you think would be of interest to other devs on the Windows Phone platform then drop me a note. I’d be particularly interested in hearing about some of the best practices you’ve adopted that you think have raised your quality or your ratings/ranking in the Marketplace. I’ll be sure to give full credit and link love whenever I can.

The Top Ranked series is hosted on Channel 9. You can view all the past videos there. You can also subscribe to the entire series via Zune or iTunes. All that is available here:
https://channel9.msdn.com/Series/Top-Ranked

Let me know what you think by dropping me a note the contact form on my blog here:
http://blogs.msdn.com/b/benriga/contact.aspx

Or better yet follow me on twitter and drop me a note there:
https://twitter.com/benriga


@