Tuesday, December 29, 2015

How do the real SEO professionals account for a delayed effect?

I've always approached SEO in a sloppy, unscientific way, but a true professional is going to measure changes in Excel sheets or in-house tools to hone in on exactly what works instead of just making things vaguely better cowboy-style. How can they tell their tweaks apart without making one per month and waiting a month to really be sure that the change that happens, or the lack there of, is bound to the most immediate tweak? That paradigm would make improvement too slow for my patience. Hmmm. I guess some changes are actually distinguishable from others that might get jammed into the same rollout such as referring links with appended GET variables. But, if you change the name of an image, for example, or add some copy, how do you ever know (qualify/quantify) what it gets you all and all?

Roy G. Biv

This came up in conversation at an event on Xmas Eve. It is an acronym to help you remember red, orange, yellow, green, blue, indigo and violet which are the colors of the rainbow in the order they appear. I suppose there is also infrared before red and ultraviolet after violet but human beings cannot see infrared or ultraviolet. I had a college class on color as a piece of my associates degree in multimedia, and I learned that in additive color's scope (light coming directly to the eye, as in computer monitors) the colors all have different wavelengths and the actors towards the front of the list I've just given come to the eye in a quicker, more direct path than the ones father down the list which wave back and forth more.

This allows a red shirt to look orange in low light. The orange is lingering over time more than the red. Well, actually that is an example of subtractive color honestly. Subtractive color as a paradigm has to do with light bouncing off of things back to your eye, such as the things printed on pieces of paper. Paints and inks really only have colors of their own insofar as they set rules as to how light bounces off of them and back to your eye to convey color. That silly high school art class you had where you made a color wheel and they told you that the primary colors are "Red" and "Yellow" and "Blue" should be taken with a grain of salt as these more appropriately correspond to the Magenta, Yellow, and Cyan in the CMYK of subtractive colors respectively. (The K is for blacK.) The subtractive colors to some degree cover white paper to make white paper something other than white. Mixing different things makes for different colors. To get an eggshell off-white you are not applying any one of the colors 100%. Also:

  • Sound waves wave back and forth even more than ultraviolet light, making sound travel considerably slower than light.
  • The four CMYK colors of the subtractive paradigm are replaced with RGB colors in the additive paradigm. The colors are Red, Green, and Blue and if you crank them all up to full blast and put all three together they mix to make white. Turn them all down to nothing and you get to black of a monitor that is powered off. Different levels and different combinations make different colors.

Monday, December 28, 2015

PATCH http verb for restful routing?

This suggests it's for idempotent updates like PUT only you don't have to send the whole object across the wire. A minimized object with just the data points needed for the updates will do.

Sunday, December 27, 2015

You'll need a SIM card in an iPhone 4S to get Verizon Wireless to work in Sweden.

You may already have it. They found an ICCID number for my phone at Verizon's store and concluded that I had it. Without it you can only hit the default CDMA network for Verizon. That might be spotty in Stockholm. I'm not certain as I haven't been yet. A better thing might be to use other networks and for that you'll really need the SIM (subscriber identity module) card. In advance of a trip, you'll tell Verizon to turn on the roaming capability for a month-long window. Turn the phone off or put it on Airplane mode (kinda the same thing) on the flight over and then go back to using it on the other side of the Atlantic.

Friday, December 25, 2015

merry Xmas everyone!

Yesterday, for Christmas Eve, I went on an outing with my mother's boyfriend in his Toyota Prius, which is a hybrid run by both a gas engine and electric power, and he showed me some of the digital displays. I tried to take some photos.

Above the car is coasting and the act of the wheels turning is putting energy back into the car and charging the battery. Below, in contrast, the car is doing some real work.

Tuesday, December 22, 2015

happy Winter Solstice everyone!

I guess today's the solstice for most everyone. I got together with my mother and sister to play cards yesterday and my Mother mentioned that at 10 something PM on the 21st is when the solstice technically happens in Texas (that's hill country Texas folks, not El Paso), so we celebrated last night. Anyways, my sister gave me a USB drive as a Xmas gift and on it were a bunch of old games that she bought for me at old-games.com. Classic 1980s PC Junior games Below the Root, King's Quest, Lode Runner, and Microsoft Adventure were given to me and while I've even proactively tried to find some of this stuff on my own before, I've never been successful in getting old stuff to actually run on my laptop, but old-games.com explicitly packages stuff that is just easy to run in modern Windowsland without a painful (impossible) install. old-games.com seems like a good place to buy old games. I for one am impressed. I was able to get all four of the titles I've mentioned up and running quickly! Yay!

Monday, December 21, 2015

When sending an email from C#, how may I tell if the email bounces?

It looks like you can't. A bounce message really takes the shape of an email coming back to your inbox and some mail servers may not necessarily even send the bounce messages. There will not be a common expected format if messages do make it to you. You would have to set up email bounce messages at your mail server, determine a format to predict, and write something to crawl your inbox for these messages. This has some code on looking through folders in Outlook. Outlook.MailItem appears to be the object for an email at that thread. Whatever. It's too much work. There is a reason that no one does this.

Sunday, December 20, 2015

register.com's whois lookup is still the one I use.

It's at this spot. A whois lookup for a domain name should give you some data about who owns the domain name and, in a pinch, I've used this to find a way to get ahold of someone at a web site by way of phone number or email address. The domain name will point at nameservers and the primary nameserver (the others are failovers for the first) will route traffic based on DNS records. The gunk that comes back from register.com for register.com itself is:

Domain Name: register.com
Registry Domain ID: 3441369_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.register.com
Registrar URL: http://www.register.com
Updated Date: 2009-08-26T04:00:00Z
Creation Date: 1994-11-01T05:00:00Z
Registrar Registration Expiration Date: 2019-08-04T04:00:00Z
Registrar: Register.com, Inc.
Registrar IANA ID: 9
Registrar Abuse Contact Email: abuse@web.com
Registrar Abuse Contact Phone: +1.8773812449
Reseller:
Domain Status: clientTransferProhibited http://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited http://icann.org/epp#clientUpdateProhibited
Domain Status: clientRenewProhibited http://icann.org/epp#clientRenewProhibited
Domain Status: clientDeleteProhibited http://icann.org/epp#clientDeleteProhibited
Registry Registrant ID:
Registrant Name: Domain Registrar
Registrant Organization: Register.Com, Inc.
Registrant Street: 575 8th Avenue
Registrant City: New York
Registrant State/Province: NY
Registrant Postal Code: 10018
Registrant Country: US
Registrant Phone: +1.9027492701
Registrant Phone Ext.:
Registrant Fax:
Registrant Fax Ext.:
Registrant Email: domainregistrar@register.com
Registry Admin ID:
Admin Name: Domain Registrar
Admin Organization: Register.Com, Inc.
Admin Street: 575 8th Avenue
Admin City: New York
Admin State/Province: NY
Admin Postal Code: 10018
Admin Country: US
Admin Phone: +1.9027492701
Admin Phone Ext.:
Admin Fax:
Admin Fax Ext.:
Admin Email: domainregistrar@register.com
Registry Tech ID:
Tech Name: Domain Registrar
Tech Organization: Register.Com, Inc.
Tech Street: 575 8th Avenue
Tech City: New York
Tech State/Province: NY
Tech Postal Code: 10018
Tech Country: US
Tech Phone: +1.9027492701
Tech Phone Ext.:
Tech Fax:
Tech Fax Ext.:
Tech Email: domainregistrar@register.com
Name Server: ns2.register.com
Name Server: ns3.register.com
Name Server: ns4.register.com
Name Server: ns1.register.com
DNSSEC: Unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2009-08-26T04:00:00Z <<<

Saturday, December 19, 2015

Amazon now asks me what card-on-file I want to use.

...instead of assuming. While I like this, this does add another step to check out and thus another opportunity for a sale to drop off. It kind of surprised me given what I learned here, and yet... I like it! There was also a page in the checkout wizard that was just an ad for an upsell that I clicked through and this too surprised me. That change has to be a negative however. I can see how you can argue a case for reminding someone to explicitly pick the card with which to pay, but bombarding people with ads is another thing.

Friday, December 18, 2015

Alipay may offer a StatusCode of P for Pending instead of the usual all-is-well Y.

When the ambiguity is resolved, Alipay will then send on an affirmation of as much asynchronously and after a while, but in order for this to be caught the listening party has to have an endpoint that Alipay may speak to.

Thursday, December 17, 2015

Zoom display size in and out at Google Chrome.

Hold Ctrl and then either use the wheel in the middle of the mouse or press the + and - keys.

Split a string on spaces in C#.

I'm doing it like this...

char space = ' ';
string[] words = poem.Split(space).ToArray();

 
 

...but, this thinks I should do this..

char[] space = new char[] { ' ', '\t' };

 
 

...as the \t will address "whitespace"

Catch a variable posted to an .ashx Generic Handler that is appended as a URL line variable.

<%@ WebHandler Language="C#" Class="Endpoint" %>
using System.Web;
public class Endpoint : IHttpHandler {
   public void ProcessRequest (HttpContext context)
   {
      var whatever = context.Request["Whatever"];
   }
   
   public bool IsReusable {
      get {
         return false;
      }
   }
}

When you kick back changes to be made in SmartBear's Collaborator...

...and they come back to you fixed, you have to open each of your defects and click "Mark as Fixed" for each before you may set the review to a "Complete" state.

Tuesday, December 15, 2015

Lithium

...could be defined as "a full-stack web application framework" per Wikipedia. It's canned PHP gunk. It provides an MVC pattern.

Monday, December 14, 2015

The distinction between .MapRoute for MVC controllers and .MapHttpRoute for Web API controllers is crucial to understand.

I added the content in white to RouteConfig.cs:

using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Http;
namespace SomethingSimple
{
   public class RouteConfig
   {
      public static void RegisterRoutes(RouteCollection routes)
      {
         routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
         
routes.MapRoute(
            name: "Foo",
            url: "Foo/{id}",
            defaults: new { controller = "Foo", action = "Index", id = UrlParameter.Optional }
         );
         routes.MapHttpRoute(
            name: "Bar",
            routeTemplate: "Bar/{id}",
            defaults: new { controller = "Bar", id = UrlParameter.Optional }
         );

         routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index",
                  id = UrlParameter.Optional }
         );
      }
   }
}

When you can't reach a JavaScript file at a web app and the error thrown up to you has to do with Global.asax.cs...

Well maybe the application just can't compile, you know?

Sunday, December 13, 2015

some random notes

Things discussed at work on Tuesday:

  • SAP Biller Direct is a canned way to show people bills and let them opt in to pay the bills in the SAP space.
  • PPS stands for Practical Project Steering perhaps?
  • SAP S/4HANA looks to be something new from SAP. The ERP, as an ERP, lets you do a great swath of things in the name of ostensibly managing all concerns of an enterprise from paying bills to inventory and it looks like SAP S/4HANA is a bunch of modernizations and optimizations and greasing of the wheels to make this all more efficient.
  • FatWire is some sort of CMS that Oracle owns.
  • POS stands for point of sale. Duh.
  • There is such a thing as a Cerberus FTP way to do FTP, and that's Cerberus not Kerberos, an authentication protocol, a means of security.
  • AQtime is software to judge the performance of other bits of software, your software.
  • lynda.com has tech training classes online stuff. think: pluralsight

 
 

These are some more notes from this tech talk that I've decided I care enough about to type up:

  • Nessus will determine where vulnerabilities are in your software and OpenVAS is basically the free version.
  • QualysGuard, Nexpose Rapid7 (which plays nicely with metasploit), SAINT, and GFI LanGuard are other vulnerability scanners.
  • Core Impact was put up on a pedestal as the very best pen testing tool at the tech talk. Others include: CANVAS, the Social Engineering Toolkit (SET), and SAINTexploit.
  • Metasploitable is a VM full of security holes that you can break into to try to educate yourself in how to attack and how to defend.
  • WebGoat is an OWASP application full of security holes along the same lines as Metasploitable.

Saturday, December 12, 2015

When the Zoom Tool starts zooming out instead of zooming in at Adobe Photoshop...

Well, it should work the other way around right? It should zoom in by default and only zoom out when you are holding the Alt key, correct? Well, as it turns out this behavior is now an option on the tool that you may toggle allowing for you to reverse the behavior if you wish (i.e. only zoom in when holding Alt and otherwise zoom out). When you are suddenly plagued by the reverse behavior it means that you've managed to toggle the toggle without realizing it, and believe me, I don't know how I did it. Undo the wackiness by selecting the tool and changing the setting at the top nav where the settings for the currently selected tool, whatever it may be (in this case the Zoom Tool), lay.

Spec an extra chunk of a route when hitting the Web API!

Alright, open Visual Studio 2015 and make a generic application which mixes MVC and the Web API. Quickly, set up the CORS stuff as suggested here and then rewrite the default "home page" view to look like this:

@{
   string fullLocation = HttpContext.Current.Request.Url.ToString();
   ViewBag.LocaleParts = fullLocation.Split("/".ToCharArray());
}
<script src="/Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script type="text/javascript">
   $(function () {
      var url = "http://";
      url = url + "@ViewBag.LocaleParts[2]";
      url = url + "/Api/Whatever/Foo";
      $.ajax({
         type: "POST",
         url: url,
         dataType: 'json',
         data: {Bar:'Baz'},
         success: function () {
            console.log('yay :)');
         },
         error: function () {
            console.log('nay :(');
         }
      });
   });
</script>

 
 

Clearly, we are trying to hand an API endpoint at "Whatever" two bits of data in two different ways. We are trying to pass in "Foo" as a chunk of the URL and we are trying to pass "Baz" as a setting on a JSON object. This is all doable. The "Whatever" Web API controller looks like this:

using System.Web.Http;
using System.Web.Http.Cors;
using SomethingSimple.Models;
namespace SomethingSimple.Controllers
{
   [EnableCors(origins: "*", headers: "*", methods: "*")]
   public class WhateverController : ApiController
   {
      public void Post(string id, Qux qux)
      {
         var breakpoint = "OK";
      }
   }
}

 
 

If we set a breakpoint at the line of code in the controller which has "OK" in it (and which does nothing whatsoever in and of itself) and we debug the application with the debugger, we ought to be able to hit the breakpoint and inspect both the "id" and "qux" variables. The first variable holds "Foo" and the second holds an instance of Qux with the Bar property set to "Baz" as desired. My Qux class looks like this:

namespace SomethingSimple.Models
{
   public class Qux
   {
      public string Bar { get; set; }
   }
}

Set up CORS in a modern Visual Studio 2015 MVC5 application which mixes MVC and the Web API.

  1. Go to: Tools > NuGet Package Manager > Package Manager Console
  2. Change the "Package source:" dropdown to be "nuget.org"
  3. Type in: Install-Package Microsoft.AspNet.Cors
  4. Put config.EnableCors(); in WebApiConfig which is a class found in the App_Start folder.
  5. Now slap [EnableCors(origins: "*", headers: "*", methods: "*")] on a Web API controller. It should work!

 
 

Addendum 12/20/2019: In modern times Install-Package Microsoft.AspNet.WebApi.Cors is probably the thing to use in step three above.

What's vbscript?

I don't know. I know what it's not however. This suggests that vbscript and VB.NET are super different to the point at which the difference is as extreme as Java and JavaScript which have nothing to do with each other. I guess I've never used vbscript and when I've said that I have I've mispoken.

Friday, December 11, 2015

pre-commit processes exist in Smart Bear Collaborator

In addition to code review codes of post-commits, there is also a way to generate code reviews off of Subversion Diffs and even tie in Collaborator to Subversion hooks so that one may not commit without a code review being done first. There is an actually desktop client for (at least) Windows beyond the web site for Collaborator and you have to use the client to do the pre-commits. A post-commit may be done with the client too even though I have been using the web site myself.

Thursday, December 10, 2015

You can't start a class name with a digit in C#.

This may lead to some stupid names like: ThreeDMovie

The zh-CN resources may be thought of as in Mandarin Chinese.

This says...

  • Mandarin and Cantonese are actually dialects
  • If something is written in simplified, it is most probably Mandarin, and most probably Mandarin as spoken in mainland China

Also, the Traditional and the Taiwan flavors of Chinese are BOTH of: zh-TW

Wednesday, December 9, 2015

Explicitly keep a button from submitting a form.

There are a couple of ways to do this:

  1. <button id="button" onclick="return false;">Go</button>
  2. <button id="button" type="button">Go</button>

 
 

I found the second approach of explicitly denoting a button type of "button" to be a little alarming. Here I had to explicitly go in another direction (there is also type="reset" which keeps the form from posting while clearing values out of form fields) and that begs the question: What is the default button type? This suggests a discrepancy between IE and other browsers and buttons in forms and those that are not so, and also suggests that one should always explicitly specify a button type at a button.

Fusebox

...is a set of standards for Cold Fusion.

if (!e.Expanded) return;

Put this in a DetailRowExpandedChanged event at a DevExpress ASPxGridView to prevent the code ahead from happening if you are closing the row again instead of opening it.

It's really better to use the HtmlRowCreated event instead of the DetailRowExpandedChanged event at a DevExpress ASPxGridView to push content to a DetailRow.

private void X_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
   if (e.RowType == GridViewRowType.Detail)
   {
      
//whatever
   }
}

There is a "Clutter" folder in Outlook which is not the "Junk Email" folder.

Yes, spam gets routed here too. Look here for that thing you can't find when you can't find it.

Tuesday, December 8, 2015

AllowFocusedRow in SettingsBehavior at a DevExpress ASPxGridView

...will allow for the rows you click upon to be highlighted and stay highlighted (until another is picked). Set the setting to True. Fun.

This parallelogram will open a new tab.

What is in the new tab and how it behaves seems to vary, probably driven by settings at Google Chrome.

Monday, December 7, 2015

Cherry pick stuff out of XML with an XmlReader in C#.

byte[] bytesData = Encoding.Default.GetBytes(_myXmlInStringFormat);
MemoryStream memoryStream = new MemoryStream(bytesData);
using (XmlReader xmlReader = XmlReader.Create(memoryStream))
{
   xmlReader.ReadToFollowing("Foo");
   _foo = xmlReader.ReadElementContentAsString("Foo", "");
   if (xmlReader.ReadToFollowing("Bar"))
   {
      _bar = xmlReader.ReadElementContentAsString("Bar", "");
   }
}

Use ReSharper to cast auto-properties to traditional getsetters.

  1. Click on the auto-property.
  2. At the hammer icon which appears at the left of the line of code pick: "To property with backing field"

If the code inside of percent signs inside of angle brackets in a web form refuses to compile in Visual Studio 2015 when you've changed nothing...

Close the file and try rebuilding. I'm serious.

Saturday, December 5, 2015

Today makes ten years since Adobe bought Macromedia.

I think the best slide in any tech talk I've ever seen was in a talk at the first of the two HTML5.tx conventions in 2011. I don't remember who the speaker was. He spoke on video in HTML5. He said "This used to be a solved problem." and had a slide of Flash Gordon looking heroic with the iconic lowercase f of Adobe Flash on his chest the way Superman might wear the S. The audience laughed. Of course it stopped being a solved problem once Mr. Jobs decided he did not want to allow Flash at the iPhone and that begged the question of what to do next. Per this we now have this:

<video width="320" height="240" controls>
   <source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4">
   <source src="http://www.w3schools.com/html/movie.ogg" type="video/ogg">
   Your browser does not support the video tag.
</video>

 
 

The .ogg and "browser does not support" items are failovers should their friend(s) upstream not be interpretable at a browser, though in 2015, in contrast to 2011, the .mp4 format seems golden to me and largely works everywhere. I never host video myself. If I want to use a video clip I loop in Vine or YouTube. Whatever. I digress. Anyhow, after Adobe took control of Flash, then, yes, it became to the de facto standard for web video and then it wasn't that anymore soon again after. Of course Macromedia had bought Allaire and so it had Cold Fusion when Adobe took over and so now Adobe has Cold Fusion. The day for that is perhaps done too. Fireworks is absolutely at the end of its run. At a glance it may just seem now like Macromedia was a bad purchase for Adobe as the most impressive products it offers (Photoshop, Illustrator, Acrobat) where products it just had to begin with while the Macromedia products have all aged badly comparatively. Don't be too quick to judge. There is something to be said for slaying a competitor and from the outside looking in I don't know how much of a thorn-in-the-side was alleviated from Adobe or how lucrative it may have been in the short term for them to milk the Macromedia acquisition (though I know the surprise with the iPhone's shutout of Flash had to hurt and could not have been in their projections). With regards to slaying a competitor, Macromedia was a thorn-in-the-side to some extent for sure, in direct competition with Adobe. I don't have a formal background in computer science. The only education I have beyond high school is an Associates in Multimedia from a technical college in Waco and one day while I is college, I, and some peers, went to a tech talk in Dallas somewhere which Macromedia was putting on on xRes, its would-be rival to Photoshop which looked like a plagiarized Photoshop with some optimizations. (Things that were floating above the background layer were kept in "objects" instead of "layers" making the app snappier.) Macromedia Freehand was a comparable rip-off of Abode Illustrator and these knockoffs (I don't know how Macromedia got away with it) had to be hurting Adobe's sales. Could their you-rent-Photoshop-monthly-from-us model of today even exist if they still had Macromedia offering to just sell you the same thing directly? At the event I attended in either 1995 or 1996 Adobe set up a booth outside of the space Macromedia rented to hand out swag to try to do damage control as a counterweight to all the badmouthing Macromedia was doing of them. I bet Adobe doesn't miss that!

I only offer this video clip as an example of embedding a video clip as I was talking about such stuff above. I found it online at w3schools' web site. I don't know how to tie it into my topic. Perhaps Adobe is the bear fishing for fish (customers) and Macromedia is the seagull fishing for fish (customers) which flies away at the very end, chased off by the bear. I guess a better analogy would be if the bear ate the seagull so it could turn its attention back to fish. Whatever. Are those birds "sea" gulls if they are at a river? (dunno)

Friday, December 4, 2015

"Professional Human Resources" certification

There is now a certification Human Resources people at it is the PHR cert.

word-wrap: break-word;

This CSS style will make a big unbroken string of text with no spaces in it, such as the guts of a certificate, wrap to a second line!

When making a script to alter an existing stored procedure, first check into source control a version of the script with no changes.

This will help in illuminating what changed later on.

When making expandable rows in a DevExpress grid you may need to decorate the type you bind in a list with a fake ID.

If you don't make the KeyFieldName setting here I think you'll find that trouble may arise. In the background, it feels like an ID is being picked for you somehow if you don't set one yourself and this allows for circumstances in which two rows may have the same ID and two rows may expand open when one is clicked. In the absence of having an applicable ID, why don't you just make one? Put a getsetter on your POCO. Before handing back a list of Foo just set the fake IDs like so:

var counter = 0;
for (int index = 0; index < foos.Count; index++)
{
   var foo = foos[index];
   counter++;
   foo.PseudoId = counter;
}
return foos;

 
 

You cannot just make a setterless getsetter that just hands back a random Guid. I tried that.

Thursday, December 3, 2015

Am I the only one who sees this?

When returning a column from a sproc and when you wish to cast varchar data to a bit shape...

Just do something like this:

alter procedure SQL is followed with...
SELECT
x.Foo AS [MyFoo],
CASE WHEN x.Bar IS NULL THEN 'False' ELSE 'True' END AS [MyBar],
x.Baz AS [MyBaz],
y.Qux AS [MyQux],

...then yet more SQL follows

 
 

When you slurp a dataset into C# and then turn around and cast it to a POCO you will be able to map the 'False' and the 'True' to a bool type getsetter without issue.

goofiness in which a single mouse click is automatically selecting everything from the point where you clicked to either the beginning or the end of any file

I experienced this today and beat the problem by just pressing the Shift key a bunch of times.

Wednesday, December 2, 2015

PostSharp 3.1.49 may prevent you from debugging a library by way of not making a .pdb file next to a .dll file.

POSTSHARP_CONSTRAINTS;SkipPostSharp;POSTSHARP_CONSTRAINTS

...needs to go under the "Conditional compilation symbols:" under the "Build" tab of series of tabs one gets when right-clicking upon a project name in Visual Studio 2015 and picking "Properties" from the menu which appears. This will replace the .pssym file next to the .dll with a .pdb instead!

 
 

Addendum 5/11/2016: Please note that this will sabotage the ability to use aspects!

Tuesday, December 1, 2015

A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue.

This is a "very loud" in-your-face error which occurs just in Firefox. I don't yet know how to beat it. I found something online which suggested that if you pick "Restart with Add-ons Disabled..." under "Help" that it will run Firefox without any Add-ons so that you might rule out an Add-on as the culprit, but in my case I think the culprit is DXR.axd of DevExpress. Anyways, if you can't see the "Help" menu...

  1. go the hot dog menu at the upper right
  2. pick "Customize" at base of menu which flies out
  3. pick "Show / Hide Toolbars" at lower right
  4. pick "Menu Bar"

Save the copy in an HTML paragraph in one of the paragraph form fields in a story or defect in CA Agile Central to a template.

Click that blue-copy-on-white button at the upper right of the paragraph textarea to save what you have as a template or to recover the text from an existing template.

Adobe AIR

I've never used this. I thought of it recently. This suggests: "The Adobe AIR runtime enables developers to package the same code into native applications and games for Windows and Mac OS desktops as well as iOS and Android devices, reaching over a billion desktop systems and mobile app stores for over 500 million devices." AIR stood for Adobe Integrated Runtime but now it is just "air" standalone.