Weekend Adventures in Coding - Visual Studo Customization - Order of Adornment Layers
Saturday, February 14, 2015Font rendering was helped by re-running the OSes Clear Type configuration and installing Text Sharp. If this sort of thing is important to you, you also want this free gem: MacType. It causes Windows to render fonts in a way that is more similar to a Mac which I find improves readability substantially. Unfortunately, it doesn't work perfectly everywhere, but some of Visual Studio is affected.
I've decided today to see if I can apply the last bit, a white shadow to text. This is a common effect throughout MacOS/iOS and I find it improves readability (particularly for high-contrast backgrounds).
Here's what I'm looking to apply (apologies for formatting, I'll get the code formatter working again, soon).
item.Effect = new DropShadowEffect
{
Opacity = 0.34,
ShadowDepth = 9,
Direction = 542,
BlurRadius = 9,
Color=Colors.White
};
Finding an efficient way to do this (preferably without having to hack about with Reflection) has been frustrating, but I've managed to apply all kinds of effects elsewhere while I was attempting to fill in the gaps of the documentation with some reverse engineering.Default order of Adornment Layers
While poking about, I thought it might be helpful to know the order of the default adornment layers. I just started (re-)evaluating OzCode and it was picked up by the "Exp" (temporary debug instance), so some of these belong to that. I'm also on CU4 so any that aren't documented may belong to that (search PredefinedAdornmentLayers or hit F1 for the documented ones).CodeBackgroundTextAdornment
vsMergeHighLightSpaceAdornment
Outlining
DiffernceChanges
Difference Space
BraceCompletion
DeltaFullLineAdornment
DeltaNegativeSpaceAdornment
HtmlProvisionalTextHighlight
CurrentLineHighlighter
VsTextMarker
TextMarker
HighlightCommentAdornment
SelectionAndProvisionalHighlight
Inter Line Adornment
Squiggle
LineSeparator
CollaborationMethodEndorsement
ScriptDebuggerSectionDivider
Text
PinnedLayer
vsMergeHighlightSpaceAdornmentAboveText
SmartTag
DragDropAdornmentLayer
Intra Text Adornment
VisibleWhiteSpace
Caret
SimplifyVisualController
PinnableTips
InitialDifferenceWaitingAdornmetLayers
HtmlChrome
I have no idea what I'll be doing with these, but that's the fun of reverse engineering. If you have to do such a task, OzCode is very helpful. It allows searching the contents of objects through several layers and can surface interesting bits to play with. This is, of course, experimental and likely will break between updates, but they've made extending Visual Studio so easy, it's not that bad to tweak between updates/versions. More to come if I figure this out!
Another chapter after 17 years
Saturday, February 7, 2015On to new things!
After 17 years, I have decided to resign my position at Level (3). 17 years. That's a lifetime in IT. I started at a small telecom located in Southfield, MI and ended up at an international telecom with a headquarters in Broomfield.What a ride
I started as a desktop tech, within a half-year I was doing servers. Ultimately Allnet was purchased by Frontier, Frontier by Global Crossing and then the bottom fell out. For the remaining years until about last year, I worked for a company that was effectively a start-up in a very competitive sector. Layoffs every year were normal while Global Crossing struggled (and ultimately succeeded) with survival. Level 3 purchased Global Crossing in 2011. For 15 of those 17 years, I rode the wave down and for the last two I've been riding it back up. It was strange working for a company that was not operating in survival mode.It was 17 years for me, but nearly every year I was given a new position, more responsibility and new and interesting projects. Mix in the fact that I was working amongst, what I considered to be, some of the best people in our industry.
Onto Development
I'd always been a programmer. I'm not sure why I took the ops route originally, but within two years I was writing code that was changing the way our employees worked and I knew right away that this is what I was made to do. I love programming...love it. Over the years I was given the freedom to code, experiment and learn. I quickly jumped on the C# bandwagon, missing the days of hacking about in C and Pascal/Delphi and fell in love. And I learned...So why now?
After 17 years, I've discovered that it's time for me to move on. During my time at Level 3, I had the privilege of working on some special projects involving Lync and Office Communications Server. This was my first exposure to an API that I couldn't simply Bing (there's one for you, MS) a million answers from people who had just learned the API. The APIs I was working with were pre-release, but after release the situation wasn't much better. For some reason, I enjoyed this immensely!What now?
I had sent my resume out to Modality, a Microsoft Partner and a company with a very successful business in the Lync space, earlier last year. This wasn't unusual for me. If someone mentioned a job that sounded interesting to me, I usually prepped my resume, took and interview and turned down the job. It's happened so many times over the years that I almost expected to make the same decision when Modality had a position available to me. After talking to the guys over there, much to my own surprise, my mind was made up.I'll be a US based, "work from home" (I prefer remote) employee working for a company that sells services and software for an application that, since 2008, has been the reason I could work effectively as a remote employee for Global Crossing and ultimately Level 3. Being a part of a company that was an early adopter--eliminating all phones on PCs and replacing them with USB headsets and speakerphones was far less of an adjustment than anyone could imagine---was great for me. The quality and effectiveness of audio conferences suddenly made it possible to have a workforce that was distributed far and wide without losing much other than water-cooler conversation.
Finally
Farewell, my Level 3 coworkers and friends! You are among the best and many thanks for the help, support and just-plain-fun you've given me over the last 17 years.Watching a Delta Jet Land Directly Overhead from the Beach in St. Martin (Sunset Beach / Airport Beach)
Thursday, November 20, 2014
I just returned from my vacation and am not yet ready to post the "big review" quite yet. But I had to share this. Earlier this week I wrote "Today, I had a plane pass over me so close, I could lick it."
Here's the video. It doesn't do the experience justice. At the end, you'll hear the roaring wind that's all around us. The phone's microphone is totally overwhelmed. It was just neat!
If you're interested in doing this yourself, find any Eastern Caribbean cruise that visits St. Maarten/St. Martin island. Take a cab from nearly anywhere to Airport/Sunset Beach, the rates are set by the government, for us it was $20.00 USD for my wife and I to get there. Watch a few puddle jumpers land to position yourself, and enjoy.
I'll post the other videos I grabbed from less ideal locations, but here's the best one:
FIX: T-Mobile Wireless (WiFi, not 3G) CellSpot / ASUS TM-AC1900 Port Forwarding Not Working
Wednesday, November 5, 2014Problem
You try to forward ports on your new $25 deposit ASUS Wifi awesome-router and it doesn't work. Neither does UPNP. Or maybe it works but not for very long.What's happening
Those clever folks at ASUS added a NAT acceleration capability. Unfortunately, as best I can tell, it basically does nothing much better than crash regularly. This is why you may have noticed that forwarding works occasionally after reboot. I, personally, found this to be very rare. I've also found that the NAT acceleration isn't noticed when it's disabled. I don't have Google internet, but I'm pulling 80/20 and the router is doing fine.Fix
Go to LAN -> Switch Settings. It will probably hang. Worry not, your router probably just crashed. You likely lost internet. Give it a full minute and refresh.Go to LAN -> Switch Settings. Set any setting that has the word Acceleration (or NAT) in it to Disabled. Your router will reboot and your ports will be forwarded.
Update: Around December, for no apparent reason, my NAT rules all stopped working again. Nothing had changed on the router (well, as far as I know ... we rarely need that functionality). See the comments for what I did to repair, but I'll summarize: Factory Reset and some other steps.
I couldn't find better information to help with this, so I went nuclear and blew away the entire configuration. It worked, but ... yuck!
My AT&T U-Verse Nightmare - Going on Two and a Half Years with Broken U-Verse High-Speed Internet
Update 1: I can't believe I'm saying this but Comcast to the rescue? I had a wonderful customer experience with a CSR, purchased Comcast service to replace my U-Verse TV at home until Comcast gets a digital line to my house. I'm told this will happen before the house gets its most use next summer! Also filled in some details...
The following is an account of my lousy experience as an unhappy customer of AT&T U-Verse (Specifically their High-Speed Internet DSL variant). It is accurate to the best of my recollection. This isn't one of those horror stories where the company bankrupted the victim or anything like that. It's just one of frustration and banging of heads into walls... I hope it will be entertaining and informative to you, dear reader, but I make no guarantees. This post is to get out my frustrations and hopefully plan a new solution to this problem. These are my personal opinions, and though my wife would probably agree with me, many others that associate with me may not. Don't blame them. I'll update with new information (or any adjustments as this was "from memory" as they come along).
The Lake House
No, this is not the movie. My family purchased a cabin up north. If this seems strange to you, you don't live in Michigan. Seriously, nearly everyone has one. These communities are, to say the least, underserved. For the most part they're a mix of rural and vacation property. My dad swore he'd never get a place up north. He did. We're really glad they did!Of course, being the most technically savvy in the family, the first thing I reached for was Internet access and I was pleased to find that AT&T offered 12/1 Internet service! Woot! I'm on-call and knowing that I could actually WORK from up there if I had to was a pretty nice thing.
Never Ending Quest for TV
The first thing we started looking into was TV. No dice. Comcast is the cable provider and they're analog only. Up until very recently, they offered so few channels for the price ($45) it was an extremely bad value. This was coupled with the problem that they offered no internet.A side note to cable/ISPs: When I call up and ask if you have service, ask for my address and verify, especially in small communities. Comcast's regional office was certain we could get digital service with internet. Not until digging down to the address was it realized that this was not possible.
Next was DirecTV/Dish. The property is very low lying, but in this area that's normally not a problem. The location of the property, however, makes it impossible to hit either satellite. There are some options but all involve installations that Dish/DirecTV installers are "forbidden from doing". Understandable, you don't need your employees dying to install service to your customers.
AT&T was out because the "U-Verse" branded service that they offer is really just slightly improved DSL from the early 2000s.
Hacking together a solution: VerseFinity
I've been a cord cutter for a long time, but my mom really likes to watch the news before going to sleep. Sleep habits are tough to break! My normal route of Netflix, Plex and Hulu would not suffice. My dad had purchased a Slingbox and since I have Comcast Business Internet at home, the bandwidth was sufficient between AT&T and my connection at home to share Plex and Sling with no issues. Couple an iPad and an Apple TV or Roku (we have both) and you have a slightly clunky, but totally usable solution. And two rather non-price-optimized bills.The first sign of stupidity
At my home I have U-Verse TV. I have SD service and one box. It's getting service from AT&Ts IP network using a low-end DSL modem (SD service doesn't net you the nice one). It's plugged into a Sling Box that pushes the TV signal out Comcast to my AT&T U-Verse Internet up north. Interestingly enough, it's coming in on the very same model low-end DSL modem that it's being sent to in my home! So basically, AT&T does sell IPTV service up north, you just have to buy a house somewhere else, Business Internet from Comcast and U-Verse TV.Trying to Right my DSL Past
I have had DSL service before, but this was around 2000-2001. At that point, almost all broadband installations were difficult, and almost all had problems after the fact. Eventually, however, they'd get fixed. My first trip around the DSL block in 2000 netted me an almost identical problem to what I'm experiencing. I ended up running a new wire in the house, fresh for the DSL connection and that resolved everything.Knowing this, and knowing that I have a history of running cable (and all of the basic equipment to test such cables), I eliminated all of the existing home wiring. We were not planning on having home phone service up there--we're well served by all carriers on the property--so it was gone. It was replaced with one straight run from the source about 15 ft. CAT-6 cable with the pairs wired properly. My own equipment can tell me a lot.
The intermittent mess - Beginning in 2012
The service never worked reliably. From the day it was installed it dropped off intermittently (which got worse progressively). It'd do this for a minute, look like it was going to connect again, disconnect, reconnect and be stable for a few minutes to a few hours. All. Day. And. Night. I called tech support and they sent someone out quickly. He saw no problems. Great. None-the-less, he replaced the box on the outside of the house and cleaned up all of the connection points. He checked my wire. Clean.Throughout the summer we disconnect a bit. We had TWO techs come out. One replaced the modem, one checked everything and did something ... I'm still not clear. Still magically the internet worked and didn't work... mostly not working. Toward the end of the summer we had another tech out because the connection was really flaky. He replaced the modem. It seemed fixed, briefly, but it returned. Again.
At the end of the year, I started noticing something I noticed with DSL service at a previous residence. When the weather would turn cold or rapidly change in temp, the modem would disconnect/reconnect continuously. Warm working days would give into freezing cold, barely 30-seconds of Internet between minutes of disconnection. There's little to do up north in November while waiting for a tech for 8 hours on a Saturday... at a $25 gas bill each time.
After 3 tech visits and 6 months of barely functional service, I'm getting frustrated.
I make one last arrangement in late November 2012. A tech visited and actually saw the problem on the line while visiting (it was easy to see, it was happening every ten minutes).
"Everything looks clean for a few minutes for a while then *BAM* thousands of errors."
He said it could be something related to the connection points on the wire all the way to the CO. As the wires expand/contract, they disconnect/reconnect. Look, I work in telecom, but I have nothing to do with the actual telecom stuff. I know a lot about communications equipment, networking, wiring ... It didn't sound exactly right, but it was better than the nothing explanations I'd been getting so far. The tech suggested that switching out the modem and switching the port at the CO might help.
Side note: This is where that explanation falls off. If the issue exists at a point where a wire connects with another wire "in the elements", I would expect that replacing/changing two things that reside in (I'm assuming) a temperature controlled environment isn't going to help. Nuts.
It might have worked?
The internet service seemed to come back for the remaining time that we were there. I suspected that it would still fail so I put a RaspberryPi up there to serve as a way to send small bits of data back and forth and record success/fail in Nagios.When the issues with the home were handled, we returned to internet service that was just down. This was the first point at which I started yelling on Twitter/Facebook. I didn't do so to get any attention, I was just angry!
Social Media to the Rescue? Maybe?
I got attention with my Facebook post. Suddenly my phone is ringing and helpful, state-side, folks are assuring me that everything is going to be fixed. A person is coming up there tomorrow. You don't have to be there. They did. They discovered the need to send someone out.I was assured during this time that everything was going to be handled. I'd be credited. I'd be well taken care of. We're very sorry, sir. (sir, me?).
I was told that they'd do a something-or-other "Home Run", which was described as "we'll just give you new wiring so that at least we know it's our stuff".
I was told they'd replace the modem. Again.
Upon calling to set up the appointment, I made the mistake of contacting regular customer service.
The second sign of stupidity
Evidently yelling on Facebook/Twitter gets you put into some sort of "Second-Class" tech support line. I say second class, because I am still not impressed, but compared to the way you're treated when you call the regular support line? Good Grief.The difference between Second and Third Class Support
In second class, I get all of those things I was told I would get. I didn't really want any of them. I wanted working Internet. I knew my pristine wire and all of its connections were clean. The modem had been replaced. Twice. Good grief, AT&T, what a waste of money! None-the-less, I was getting it because it might just magically fix the problem. And I was getting it with apologies for the frustrating service experience I'd had thus far.Not so when I called Third Class support. My very friendly but exceedingly unhelpful representative told me that modems aren't free nor is home wiring. The modem would be at least $200. I explained I didn't want it and that the "other guys" had set that up. I'm assuming AT&T uses some sort of ticketing system that falls very short of providing call center employees with useful information. This person should have known I was working with someone on an ongoing issue. I told the rep I'd try my hand at the phone number given to me in the e-mail. I did. My rep (names omitted even though they're probably internal-use aliases) assured me everything would be taken care of.
2014
The tech came out, replaced the modem and inspected the line. He told me the wire was better than what he'd install and wasn't worth doing. It tests well. Again, he left me with the impression that he thought he fixed the problem but couldn't articulate what the problem was. And, look, the modem is connected again. And it's a different kind of modem! Interestingly enough, this one displays a giant statistics page.I was bumped from one social media rep to another and basically lost. The internet service continues to go up and down and it's basically unusable during the winter. But this is what happens when you have one provider for a huge geographical area with extremely old equipment trying to somehow make it do magic.
I've surveyed my neighbors. Most of them have U-Verse. Most of them assume it's normal for it to disconnect. The ones that know it isn't gave up trying to get it fixed. It comes and it goes.
So when you hear that Broadband penetration is "x" in the United States, think of all of those areas that are about 30 miles away from a major city. In my rural cabin community, the survey indicates 12/1 service provided by AT&T. My guess is that needs a giant asterisk followed by "where it works at all and we don't just string you along until you give up complaining ..."
Options?
There are very few. AT&T is the provider of choice and if you pick someone else you're on their equipment anyway. There's Fixed Wireless provided by a few rural providers but the service is "five times the price and a tenth the speed". In addition, being on low lying property like that, the chances of getting a line of sight signal are nil.I see the orange Comcast Digital cable and I have talked to folks in town that have Comcast Digital service and internet.
The last sign of stupidity
I'm actually hoping that Comcast moves into the area so that I get better customer service. Good God, what is wrong with the world?That might not have been fair. I have been a Comcast Business Internet customer for 5 years and I couldn't be happier with their customer service. I have not, however, had great experiences with their residential service folks.
Subscribe to:
Posts
(
Atom
)