Welcome

Welcome to Jenius, where you can get opinions from a certified genius who just doesn’t put the effort into it.

Here you will find a mixture of the heartfelt and mundane. Serious and silly. Topical and esoteric. Pretty much whatever comes to mind.

Posted in Uncategorized | Leave a comment

Don’t Believe SEO Spam

As a regular blogger with many regular readers (read Google search bot), I get my fair share of comment spam. Most of it is about knock off products for expensive shoes and sunglasses, but occasionally I get one about search engine optimization (SEO). The theory behind SEO is that there are certain things website maintainers and content providers can do to make their site show up higher on search results pages (SRPs).

In the past you could game the the search system by doing things like putting a bunch of terms at the bottom of your page or paying people to link to your page. There were more legitimate ways to get higher results on SRPs, too, but even those things, like using metatags, seem outdated by today’s standards.

Recently Google (the Kleenex of search engines) updated their algorithm for deciding on result order. With every iteration of the secret algorithm (which is really a collection of different algorithms working together) it gets harder and harder to game the system. For the last several years, in fact, the more you try to cheat, the more likely Google, and the others, will penalize you. Which is why SEO spam is dangerous to the point of ridiculousness.

Some of the things that this recent spam comment mentioned was using <h> tags on every page, putting keywords in the title, and judicious use of bold and italics with my keywords. While it is important to properly use keywords when optimizing for SRPs, none of that optimization has anything to do with format. It never has. And while no one outside of the major search engines knows for sure, I’m betting that those kinds of tricks would hurt your site rather than help it.

I don’t worry too much about SEO because I don’t have my livelihood riding on it. I wouldn’t mind having one of those popular blogs that gets free stuff just because they’re seen as experts, but as I’ve mentioned before, I like to run things a little looser than those blogs can. I rarely do any more than make sure my titles makes some sort of sense, and occasionally link to sites to show that I do read other people’s stuff. But I’m certainly not going to spend a bunch of time making it harder for people to find me by doing things that anger the search engine gods. But that’s what SEO spammers are telling people to do.

My personal rule is never to do business with anyone who spams me. Spammers are looking for a quick buck, so right away the trust is gone. And there are legitimate companies who’ve burned their bridges with me because they let some idiot tell them how to get new customers in an asinine manner. But even worse than the misguided, are those who are selling products and services that do more harm than good. In the case of the SEO spam comment I received, their “free” tips would have made my page rank lower on SRPs instead of higher. If I were credulous, I could end up sinking more and more money into the service to try to regain my status without realizing that the people I’m paying to help are making things worse.

Marketers by their very nature are in a kind of grey area of sleeze. We all know that advertisers manipulate us in varying ways. And we’ve accepted that as part of our society because we do benefit from it when we find products and services we actually like and can use. But SEO spam, like all other spam, is wholly selfish in nature. So don’t believe anything a spammer tells you, and especially don’t click any links in spam. That would just increase their page rank on the SRPs.

Posted in Misc. Tech. | Leave a comment

Mofongo!

I went to Puerto Rico for a week a few years ago and of course tried the local food. Unlike a lot of Latin food, Puerto Rican food isn’t especially spicy, so it’s easier for an American palate to adjust to. One of the most common foods was a mashed plantain dish called mofongo. Most Caribbean nations have a similar dish with different names. Puerto Ricans typically use garlic and chicharones (fried pork rinds) for flavor and texture.

Me being me, I had to try to make it for myself. When it came time to finally make mofongo at home, I found that I had eaten all of my pork rinds, so I made an acceptable substitution: bacon.

Tostones

Tostones in progress.

The first step to making mofongo is making tostones, which are deep fat fried plantain slices. I used a pot to fry mine because I didn’t feel like getting out the deep fat fryer. I heated my oil to about 295 degrees Fahrenheit, but anything between 275 and 350 would work. Slice your green plantains (more on that later) about an inch thick and fry in small batches until they float, about 2-3 minutes. Drain. At this point, you can refrigerate them to make your mofongo later, or you can continue to make it.

Mince two cloves of garlic and roughly chop two thick slices of bacon (or three regular slices). Crisp the bacon over medium high heat until it’s crunchy. Drain the fat to leave about a teaspoon of it in the pan with the bacon. Toss in the garlic and quickly fry it. If your tostones are cold, put them in the pot with the bacon and garlic and heat. If they’re fresh, put them in the pot and remove it from the heat.

Mofongo

Mofongo shaped in a bowl.

Traditionally a mortar and pestle is used to mash the mofongo, but a potato masher works well. Mash the plantains until they are smooth and thick and form a mass on the bottom of the pot. Serve as a side to roast pork or chicken, or eat alone. You can also form dumplings for soup.

Mofongo is a dense, starchy food, so don’t expect to each as much of it as you can eat mashed potatoes. The greener the plantain, the better. I let mine ripen too much so my mofongo ended up being quite sweet. So sweet it would have worked well as a dessert, even with the garlic. It’s better to eat it all right away, but it can be reheated slowly for leftovers.

Posted in Food | Leave a comment

TV Babbles

Recently on Facebook a friend of mine posited a question on why “The Big Bang Theory” is such a popular show. “It’s no surprise to me that the Big Bang Theory is being renewed for another three years, but what is surprising is how widely popular the show is. I mean, the name drops, comic nods, and very niche material would only make sense to a small segment of the population. Some friends of mine who are from an older generation love the show and I don’t see how they could possibly understand half the show’s dialogue. What is it about the show?” I posted a rather lengthy reply (for Facebook) and then realized that I could stretch it out into a fully realized blog post about the nature of television, more specifically sitcoms.

I only started watching it when season three came out, but here I sit in my Bazinga sweatshirt two years later. And the funny thing is that my mom watched it from the beginning and still does. So, anecdotally, my friends assertion stands. The show appeals to people from multiple generations and different levels of education and interests.

I happen to be a geeky guy with a degree in physics, and while it would seem that the show’s demographic would be limited to people like me, the key to a good sitcom is not that you see yourself in it, but that it makes you laugh. You don’t have to be like any of the characters or even know people like them in order to understand the humor in the relationships amongst a disparate ensemble. People focus too much on how much the guys are alike each other and don’t realize that the it’s the differences that make the show watchable to such a large audience.

The only time that the pop culture and science references really matter is in merchandizing. It’s easy to sell a punchline or a catchphrase if it’s well known, even if it isn’t well understood. So the bazinga shirts, hats, and lunchboxes will continue selling even if many of the people who buy them can’t tell the difference between the white boards in the show and the white boards in a preschool class.

Posted in Nerdiness, Philosophy | Leave a comment

IRS Form 982 Explained

Unlike most years, I haven’t filed my taxes yet. And that’s because I finally have an issue that has stymied TurboTax online. My wife had her student loans discharged, more than doubling our yearly income in the eyes of the IRS. Rather than immediately filing and trying to come up with the tens of thousands of dollars in federal and state taxes, I stopped what I was doing until I found a way to mitigate the damage.

Through hearsay and rumor I heard about a form that I could fill out to help. My tax preparer friend was clueless because it’s a fairly uncommon form despite the millions of 1099C’s being sent out every year. But somehow I was able to use a web search to find IRS Publication 4681 (p4681), which talks about canceled debts and such. From that I found that if I filled out its worksheet and found myself to be insolvent, I could fill out Form 982 and reduce the pain.

My wife and I filled out the worksheet and found ourselves to have been insolvent before the loan was discharged. Not exactly the best news in the world, but it helps us out in this case. But then came Form 982…

After reading p4681 and the instructions for Form 982, I was stymied. I figured out that I needed to check line 1b because it was personal debt that wasn’t discharged because of bankruptcy. Line 2 was just the value we arrived at on the insolvency worksheet from p4681. Then came Part II. The beast. Part III is only for corporations, so I could ignore it.

Part II, in a nutshell, is where you find out that you have adjust the value of all your assets so that if you sell them in the future you can pay taxes on the adjusted values. It took me several blogs, articles, and Q and A websites to figure that out. I also figured out how to fill it out. I don’t have any complicated things like investments or a home business, so I could ignore most of Part II. And here’s the thing, most other people can ignore most of it, too. Unless the debt that was discharged was based on your house (e.g. student loans or credit card, the two most common reasons for receiving a 1099C), you just need to fill out line 10a.

Line 10a has its own complications, though. You fill it out with the smaller of three numbers:

  1. The value of your assets at the beginning of the year,
  2. Your insolvency amount from line 2, or
  3. Your assets from the p4681 minus the remaining debt you have after your loan was discharged.

It’s that third one that’s difficult to decipher from the instructions. Even the example they give is too complicated to make this easy. Nowadays, most of us have a lot of debt, so number 3 will be zero (negative numbers are rounded up to zero). If it’s not zero, then you need to worry about the rest of Part II and probably have to call a professional tax preparer.

I admit, I didn’t really explain the entirety of Form 982, but based on what I’ve read my situation is the most common. Once you fill out Form 982, transfer the numbers to the insolvency section of the cancellation of debt form of your taxes. If you are using the download version of TurboTax like I ended up doing, you’ll have to switch to form view and enter some fields manually. But it is possible to reduce or remove the tax burden you have based on getting rid of debt. And any little bit helps.

Posted in Rants | Leave a comment

Missed Week and Nothing New

So in the rush of real life I had absolutely nothing to say last week. I still don’t have anything to say, but I am trying to  post every week, so basically I’m acknowledging that there’s nothing going on. Well, there are things going on, but I haven’t finished any new projects or done any noteworthy coding.

It’s been a week or two since I worked on my patchwork quilt. It’s going to be a big sucker and I’m at a crucially monotonous part of the process. The last time I picked up a crochet hook was to make a loom band bracelet. I plan on making a different version of my zoot suit for parties, but I don’t even have the material for it yet. A friend and I are going to make a dress for her. The big news on that front is that I’ll be creating the pattern from scratch rather than using a purchased one. Hopefully that’s not a disaster.

On the coding front, I’ve moved back from VBA to DXL again at work. There’s nothing quite like using old code to create a new project and realizing that you’ve done something completely silly in the past that needs to be corrected. Without going into too much detail, I basically had a loop running in a Layout script rather than the script it was added from. So hundreds of loops instead of one. The bright side is that I’ll be making the script amazingly more efficient to run now.

Oh, and Happy St. Patrick’s day, I guess. I don’t know. I’ve always been more of a William of Orange man, myself. But then again, I’m quite contrary.

Posted in Crafts, News, Programming | Leave a comment

Unembed Documents in Word

For about six months now, I’ve been struggling with a bit of Word automation for a project at work. And it’s one of those only too common instances where I can just record a macro and go from there.

I have several documents exported from a DOORS database that contain embedded Word documents. Every time I create these documents, I need to open the embedded documents, copy the contents, close the embedded documents, deleted the embedded documents, then paste the contents in their place. It’s completely quick and easy, but because I have to do it regularly, it would benefit from automation.

Usually Google is my friend when it comes to questions like this, but I ran into several issues this time. First of all, it’s hard to figure out what terms to use in my search. I looked for variations of copy embedded documents in Word. That gave me lots of things that were similar, but not quite right. And the more variations I used, the more I found all the same results popping up. I ended up with several bits of code that seemed like they would work, but didn’t.

Fast forward a few months and while in the middle of a different automation project, I noticed a piece of code that purported to do what I needed. I spent quite a long time trying to get it to work, but it was way too complicated and written for an older version of Word, which never helps.

Finally was able to find some code that didn’t work at all, but pointed me in the right direction. Using the debugging features of the VBE, I slowly narrowed down the problems and came up with a piece of code that works for me.

'-----------------------------------------------------------------------------
' Function: UnembedTablesFigures
' Description:
'   This function replaces embedded documents with their contents.
'-----------------------------------------------------------------------------
Private Sub UnembedTablesFigures()
  Dim shape As InlineShape
  Dim dEmbed As Document, dMain As Document

  Set dMain = ActiveDocument

  For Each shape In dMain.InlineShapes

    If (shape.Type = wdInlineShapeEmbeddedOLEObject) Then
      shape.OLEFormat.Activate
      Set dEmbed = ActiveDocument
      Selection.WholeStory
      Selection.Copy
      dEmbed.Close SaveChanges:=wdDoNotSaveChanges
      Set dEmbed = Nothing
      dMain.Activate
      shape.Select
      shape.Delete
      Selection.Paste
    End If

  Next shape

End Sub 'End UnembedTablesFigures

There are a lot of limitations with this code. First of all, it assumes that your inline shapes (the embedded documents) will always be Word documents and nothing else. This assumption works for my needs, but should be generalized for other possibilities. There is also no error checking, which I’m terrible at because I just assume my code will always work (don’t be like me, kids!). But it does loop through all of the embedded documents and replace them with their contents, which is exactly what I needed. Finally.

Posted in VBA | Leave a comment

Bacon-Wrapped Ribs

The best food I found at the 1st Annual Blue Ribbon Bacon Festival, Jr., was the bacon-wrapped ribs from Jethro’s BBQ. The best food I found at the 7th Annual Blue Ribbon Bacon Festival was the bacon-wrapped ribs from Jethro’s BBQ. I think you see where I’m going with this.

Not one to dismiss a challenge, even a challenge of my own invention, I decided to try my hand at bacon wrapping some baby back ribs. Luckily for me, I still had a couple of racks in the deep freeze from when they were ridiculously cheap a while back. And I got a coupon for bacon at the festival, which helped mitigate the cost of two pounds of it.

Rubbed and Rested

Rested overnight with rub.

I started by cutting the excess fat off the racks of ribs. Restaurants will also take the top muscle off that runs perpendicular to the ribs, but I like to leave it on. Then I put on a generous coating of the rub I always use for ribs. It’s based on the recipe from Alton Brown, I just mix up the spices based on what I have on hand. I covered my half sheet with aluminum foil and let them rest in the refrigerator overnight.

Wrapped and Ready

Wrapped in bacon and ready to rest overnight.

The next night, I sliced each rack into individual ribs. Then I wrapped each of the ribs with a slice of bacon. Wrapping a curved rib with wide bacon isn’t easy, but it would have been next to impossible with thick-sliced bacon. Keep it thin. I let the wrapped ribs sit, uncovered, on the bottom shelf of the fridge. Never put raw meat above other food, even if it’s covered. That’s just asking for cross-contamination.

Rested and Foiled

Done with second rest and ready to wrap in foil.

The next morning, I got my smoker out and heated it to 200 F. I split the ribs onto two pieces of aluminum foil and brought up the ends and lightly sealed the edges. I did this in two packets because my electric smoker has a square footprint so I had to use two racks. I let the ribs braise in their own juices for four hours.

After the braising was done, I emptied the juice into the liquid container of my smoker. In all honesty, I spilled about half of it into the bottom of the smoker, but no open flames means no flare ups. Once the fluid was drained, I moved the ribs to the racks of the smoker and continued to cook them at 200 F for another four hours. In the meantime, I started soaking my wood for the smoking process.

Finished

Finished ribs.

In the last hour of cooking, I added the wet wood, hickory, I think, to the smoker box and brought the temperature up to 250 F. The raised temperature will allow the wood to more easily smoke and finalize the cooking process. One day, I’ll have a cold smoker and do this completely different.

When they were done, I took them out of the smoker and let them rest for about fifteen minutes. Then I served them up with a little barbecue sauce and a bunch of napkins.

They turned out even better than Jethro’s. I really thought that I would have to try this recipe a few times to get it right, but I got it in one. A family friend even ate them off the bone, and she never eats meat off the bone. The only real problem is that I don’t want to spend three days cooking dinner when I want ribs. It’s all about trade-offs.

Posted in Food | Leave a comment

Han Was the Only One Who Shot

A few weeks ago, I pointed out that we’ve all been pronouncing Han Solo’s first name wrong. Of course I was wrong. It turns out that Carrie Fisher pronounced it wrong in the one scene I heard it when it occurred to me to write that post. I was listening to A New Hope in the car while my kids watched it and sure enough, when Han introduced himself, he rhymed in with yon.

It turns out that the different accents heard on the set caused Fisher to kind of affect one herself occasionally. Ah, well, she was young. I don’t have the excuse, I was just wrong.

Posted in Nerdiness | Leave a comment

My Obsessive Friend

Recently soccer player David Beckham started some sort of clothing line/marketing scheme with H&M, a fashion store for wannabe hipsters. As part of the ad campaign, they had a meet and greet at an H&M location in New York on Saturday, February 1st. There was a photographer there taking pictures of everyone who attended which were then posted on H&M’s Facebook page for the event. A friend of mine from high school was first in a line of teeny boppers. Below is her account of how she managed that.

Ok so you guys wanted the full story..here it is… So, I decided when I heard last Monday that maybe Beckham was going to do an appearance in NY I was going to go meet him because I am in love with Beckham and Enrique Iglesias. I try to call Hand M in New York but apparently they are like the White house because their number is not given out…lol..so I call the main number and they have no idea what I am talking about. So like the crazy person I am I call every day to get info until finally on Wed, I get a guy and start kind of flirting with him to get the real details on time and even and what exactly he will be signing…and he gives me the New York number…

So, I ask if anyone wants to go with me and no takers for camping out so I am determined to do this on my own. I find a Tripper bus that takes me to Times Square for 27 bucks. I book but of course on Friday morning, I am late for my bus because I have to go to the bank, get a portable phone charger, and get my hair straigtened to look cute for Beckham (which was dumb because after sleeping on street for a night, hair did not look straight or as cute).

Since I miss my morning bus, the driver for next bus was nice enough to let me on because I told him of my quest. I get there around 5 pm in Times Square and it took an hour for me to get to Hand M because stupid Super bowl fans do not move..staring at all the Super bowl crap. Also, everyone headed one way and I am fighting hordes of people track cause Iam going toward Beckham not Super bowl crap. I arrive with my camp chair, a book, water, protein bars, peanut butter sandwiches, blankets, hand warmers, body warmers, foot warmers whch don’t work by the way and some NASA heat wrap (yes they make them)

I get there at 6 pm and tell the security guard I am here to see Beckham. He laughs and says, the line forms at 1 am. I said no it doesn’t the line forms now…I am here and I am first in line so I will just go outside and create the line then. He laughs and says its cold, I will give you a wristband, why don’t you just wait in here where it’s warm and there is a restroom and you can eat. He gave me his name and said when the store is about to close near 1 am find me at the front entrance and I will make sure you will be in front. So, there is a God people. I got stares in my camping chair eating my turkey sandwich reading my book but oh well. I started shopping and looking around…I made friends with more security and the manager who told me that he only signs stuff from his Beckham line purchased that day so I wait till 12:01 and then buy a shirt..should have bought the underwear cause then I could frame the signed box but at least I have the shirt to sleep in and say I slept with Beckham

At about 7:30 while I am looking around, some girl about 15 taps me on my shoulder and says , are you here for Beckham, I said yeah how did you know? She said the guard told me “there Is another crazy one like you camped out here somewhere.” She came with her mom. Go mom for helping your kid out with her dreams.

Ten minutes to one, there are 5 crazy girls including me. Security calls us the Beckham 5. They take amazing care of us and watch us over us sleeping out in New York. We meet crazy people, Minnie Mouse, Mickey Mouse, drunks, prostitutes, and even Santa Claus who was trying to hand out flyers to a gentleman’s club..tried to tell him he should try giving them out to guys not girls..One guy said he was Beckham, dropped his pants and started dancing..At about 3 am, the girl’s mother said I can’t do this, gave her kid subway fare brought the 5 of us hot chocolate and left. several homeless people made fun of us but I was not moving and Depends came in handy.

9 am arrives. line is crazy. There are barricades. Guard switches shifts. Guard next to me is baby faced and its his first big event. I told him look when Beckham comes, all these women behind me are going to push and so you have to brace yourself and this barricade. I will push back but I can only do so much so you have to bring in some reinforcements to help me. He says “are you serious, they will push”. I say count on it so get ready.

News people arrive. They want to interview the first person in line and instead of sounding articulate and intelligent and talk about Beckhams’ soccer skills, when they ask what time I got here and why I would sleep here, my genius response is “look up at that billboard above me..that’s why”. I look and sound like a crazy person. As I say this, the 15 year old takes out the underwear box starts screaming and pointing to it saying “this is why this is why”. Beckham arrives an hour late like a prima donna but his car gets stranded in street because people wont get off it..

So, it’s time to meet him, I look gross and smell like a sewer. In an attempt to look somewhat presentable, I get out my makeup kit, concealer, blush, eyeshadow, eyeliner, and some gloss. Security guys say are you serious, and I say umm I am getting a picture taken with Beckham. I put on cherry blossom hand lotion on my face and hands so I wont smell. I take off my coat because a coat picture would not look cute now would it? We are told we can not take our own pictures and everything will be handed to a handler when we get close but I put my camera in my bra and took two shots of him signing stuff in case the photographer guy didn’t take my pic

Now here comes the part where you laugh: I go up to see him. He is better looking in person and wearing my favorite color red He sits across from me and smiles. I have never been speechless. He says “hi” I say “hi” and stare like an idiot. He says hi again and I say hi again and stare then I say I came from MD since 6pm and slept on the street for you. He said “well then you deserve a kiss” and kisses me on the cheek. Girls go nuts start screaming and trying to claw my face. Eww..Apparently, they have a live feed up on that jumbo tron thing ( I wonder if they keep that video cause I would want it -its only proof of the kiss). The man smells great and I can still feel the bristles on my face. Because it was unexpected the photo man didn’t capture that but I did get my shot which I uploaded to facebook…

So, yes it was worth it. Follow your dreams no matter how crazy they may seem and what people say–that is the lesson learned and be nice if you can–I gave my extra blankets and food to the homeless when I left.

The adult in me thinks that she’s nuts, of course, but mostly I’m happy she got to do something she obviously relished. I just can’t imagine myself doing anything remotely similar. I’m not that big a fan of anyone or anything, I’m impatient, and I’ve stayed out of NYC for almost 40 years for a reason. (Paranoia, but that’s not the point.) Her final admonition is a good one. Follow your dreams. You may just get a kiss from your obsession. Or at least a great story.

Posted in Philosophy | Leave a comment

Punk Rock Quilt

There is almost nothing less punk rock than quilting. Quilting has rules, patterns, and pink fabric. Plus it takes a long time. Punk is meant to be fast, rebellious, and dangerous. Jeans, leather, spikes, and studs. And I had a pile of jeans, spikes, and studs already available. Not having the money to get a leather hide for the back, I used vinyl. Even punks have to compromise occasionally.

Quilting without the standard rules makes for some trouble. I pieced everything together on the fly which meant that nothing lined up right and every step of getting the top done was a pain. Sometimes I had to cut pieces that had already been sewn on. Sometimes I had to use my machine in ways it wasn’t designed for. For the first time ever, I bent the hell out of a machine’s needle. And it ended up denting my machine’s metal plate. Oops.

Finished Top

Finished Top

I made the top to fit the vinyl I had cut to the dimensions of my batting. I chose crib sized batting because of course I did. It was the right size for the amount of denim I knew I would be working with. The fact that it’s crib sized is just a humorous accident.

I knew I wanted to make a tie quilt and opposed to a stitch quilt and that allowed me to sew the layers together with the right sides inside, turn everything, and then finish off the edges. Denim and vinyl are very bulky materials so I couldn’t easily stitch to the corners. I chose to stitch to within an inch, or so, of them, instead.

Corner Detail

Detail of finished corner

After the edges were finished, I had to tie it. Using screw on spikes, of course. Any quilt that requires the use of a screwdriver to assemble is a good quilt to make. Here you can see a the screw of one of the spikes.

Screw Detail

Closeup of screw on back of quilt

And here you can see a row of them in the finished quilt.

Spike Detail

Row of spikes

Spikes are easy to add to leather or vinyl, but they can be a pain on denim. Especially when there are a couple of layers between you and the denim. The trick I learned was to use a metal dart. I’ve had one in my sewing kit for years. It was from an old set I had that had a broken shaft, so it worked well. Even the biggest upholstery needle won’t work for this. You really need the dart. The problem on the denim side was that the dart would slip between stitches, which the flat-tipped screw couldn’t do. So, on the denim, I just used my scissors to cut a little slit from the hold the dart made.

And here is the finished project. A lot less cursing went into this project than many punk projects. Then again, this may have denim, spikes, and a leather substitute, but it’s still just a quilt. One that starts cold then quickly makes you sweat.

Finished

Finished quilt

Posted in Crafts | Leave a comment

Disappearing Links in IBM Rational DOORS

Recently a user came to me with an interesting issue. They would add a link from one module to another, but when they reopened the target module, the incoming link indicator was missing. After extensive searching I found that this was an occasional complaint with earlier versions of DOORS and even though the problem was supposedly fixed in version 5.2, it still pops up from time to time. The solution is to loop through the objects in the module and follow the links. Below is the code to do so (this is a vastly stripped down version of the code that the incomparable Louie Landale wrote and shared on the forums).

// ReDisplayLinks.dxl - Fix incoming Link corrupted indicators.

/* ReDisplayLinks.dxl addresses an unknown corruption anomoly where sometimes
valid links that exist cannot be seen in the target module; this script simply
lets those links be seen again. Even though the symptom is noticed in the
target module, the solution involves opening the link's source module, loading
each link, then saving the module (even though no changes are made). */

pragma runLim, 0

// RUN FROM MODULE OPENED FOR EDIT
Module mCurr = current
Module mOther
Object obj
Object oOther
Link l
string NameOther

void saveAll(){
  Module mod
  for mod in database do{
    if (isEdit(mod)) save(mod)
  }
}

void closeAll(){
  Module mod
  for mod in database do{
    if (!isVisible(mod)) close(mod)
  }
}

for obj in entire mCurr do{
  for l in obj -> "*" do{
    NameOther = fullName(target l)
    mOther = edit(NameOther, false)
    oOther = target(l)
  }
} // end for all objects

saveAll
closeAll

refresh mCurr

infoBox("Process complete: " dateOf(intOf(today)) "")

Unfortunately, it didn’t work. Neither did inlinks.dxl that Telelogic wrote in 2001 to do the same thing. Frustrated, I went about gathering information.

The source object had almost a dozen instances of the link added to it as people tried to re-add the link over and over again. I deleted them all and just added the one. It didn’t work. When I tried to follow the link from the source a message popped up in the target window saying that the object had been deleted even though I could navigate to the object.

In my searching I stumbled across a similar issue in the DOORS bug log. One of their solutions was to create a link from the target to the source module to reset the inlinks table. When I tried that, I wasn’t able to create a link from the problem object. I could link from a different object though. But creating the link didn’t help.

Since parts of DOORS seemed to think that the target object was deleted, I deleted it and undeleted it. No change. Then I deleted it, closed both modules, opened the target module and navigated to the target ID, which was a different object. I immediately realized that what was going on here was one of DOORS infamous duplicate objects problems. I left the bad version of the target object deleted, moved the good version to the correct location, and updated it with the missing information from the bad version. Issue resolved.

Posted in DXL | Leave a comment

I Am Not a Gay Jewish Black Man

Stereotypes are a tough thing to get over. They’re hard to avoid using. They’re hard to have directed at you. Especially when untrue. But sometimes stereotypes are so ridiculously wrong that move from insulting to outright funny. Sometimes.

1. I am not gay.

For several reasons I have been thought of as a homosexual. This has never bothered me, but I have often wondered why. Only twice have I been given any reason for this assumption, and neither reason made any sense.

The first time was when I told a classmate I ran into that I was engaged to be married. He said he thought I was gay because I used to “wear chicken hats to class.” I’m no expert on gay culture. I’ve known gay men and women for years, but admittedly without spending much time with them. I’ve watched movies that have been described as Gay & Lesbian by Netflix. I follow George Takei on Facebook. But I have never heard of any correlation between chicken hats and homosexuality. (Full disclosure: I did wear a chicken hat to class, but only once. I didn’t get my second and third chicken hats until years later.)

The second time was at a party where a guy was hitting on my girlfriend because he thought I was gay and she was just my friend. No worries, I’m not a jealous man, but when she told him we were dating, he said he thought I had a “Harvey Fierstein thing going on.” Apparently being a happy guy with a beard and a sense of joie de vivre makes one gay nowadays.

2. I am not Jewish.

Like my supposed homosexuality, my Jewishness occasionally pops up at the weirdest times. Once again, two blatant examples spring to mind. I will say that as opposed to the examples above, these at least make a little bit of sense. But only given the ignorant nature of people.

The first comes from a Bat Mitzvah I attended when I was in High School. It was for the daughter of a friend of my mother’s. It was an interesting thing to see, but mostly memorable for the Rabbi almost kicking me and the girl’s older sister out of the Temple for cracking jokes and laughing. (No, I hold no reverence for anything.) At the reception afterward I had a lot of fun talking to people, dancing, and winning the hula hoop contest. At one point I was approached by what had to be a Gentile woman, who seized up my dark suit, long hair, and unshaven face, and asked me if I was a Rabbi. I smiled and said no. She can almost be forgiven her assumption even though I was hanging out with other kids and wasn’t wearing a Yarmulke (I returned the loaner one Temples provide for visitors), but just because I had long hair and a beard doesn’t make me Jewish, even at a Temple.

More recently it has been remarked to my wife by some people that I seem Jewish. I don’t know any more specifics than that, but it almost makes sense. I grew up in a fairly Jewish part of the DC area. And I tend to use more Yiddish terms than most men int he Midwest probably use. That being said, most of the words I use come from TV and movies and my family (of mostly lapsed Catholics). So, I’m not sure how I act Jewish. It’s not insulting to me, but the sentiment that someone can act Jewish is certainly insulting to Jews.

3. I am not black.

Okay, this is weird to have to write given the fact that I don’t look anything but some kind of Caucasian, but there has been one occasion where my wife was asked if I was black. It wasn’t because of what I wear, how I talk, or even what I believe. It was because of where my wife went for Graduate School.

She went to a historically black college for a degree in African Studies with a focus on women’s health. She was talking to a classmate, or someone, and was asked if I was black. Because apparently there would be no reason for her to go to that school and study that major if she wasn’t married to a black man. I’d roll my eyes harder at that if I weren’t later asked if my wife were black for the exact same reason. People really are amazing sometimes. And not in a good way.

In summary, I am not a gay Jewish black man. I am part of the political, if not actual, majority. I am just a boring old white dude who tries to see the humanity in everyone. I fight my own prejudices every day and it bothers me when people mistake me for something I’m not. Especially when those mistakes are built on blatant prejudices of their own.

Posted in Philosophy | Leave a comment

Crocheted Hat and Scarf

As I promised late last year, here is the project that I was working on for a Christmas gift. And to mix it up, this crochet product isn’t at all geeky. It was difficult, but I managed to make something nice for my mom. (Luckily for her, I didn’t go with my first three ideas.)

Hat and Scarf

Crocheted hat and scarf

I wanted to use a new pattern for the hat so I did a simple image search and picked out one I liked and thought I could do. I ended up with the divine hat after skipping another one which looked cooler, but was essentially impossible for a returning to crochet project.

The scarf was made using the blanket stitch that I’ve used before for a scarf. As you can see, it creates a nice texture that is nice and thick to keep you warm. And unlike doing row after row of single, half double, or double crochets, once you get started, the counting takes care of itself so it’s easier to maintain even rows.

The yarn I used was much softer and fuller than the cheap stuff I usually use. I bought the skein of blue to match the cream I had left over from a Santa hat I made myself last year. I wasn’t planning on doing a scarf at all until I realized that I could mix the two yarns to make complementary items. I think they fit together to make a nice, little set. And mom loved her homemade Christmas gift.

Posted in Crochet | Leave a comment

Spaghetti Coding Standards

I taught myself to program. And not as an adult who already knew how to do some things right, but as an eight year old kid who didn’t know anything. Because of that, it’s taken me years to even care about coding standards, much less try to follow any of them. Naming conventions were unheard. Comments didn’t happen. Gotos up the wazoo. You get the picture.

Because of that I have always struggled to maintain any sort of coding standards imposed on me. Over the years, I have improved the way I approach code so that it tends to be easier to maintain, but since I use so many different languages in different settings, it’s hard to stick with one standard. Impossible, really. Programming languages are different enough that it makes it impossible to use the same formatting standards across the board.

My three primary languages are php, DOORS DXL, and Visual Basic for Applications. And while php and DXL are similar enough, having taken their cue from C, VBA is completely different in how it’s written and therefore in the coding standards that have arisen to make it easier to write and maintain. So what’s a spaghetti coder like me to do? Change, as it happens.

While I can’t impose the same standards on every language I code in, I can, and have, developed some habits that make it easier. I give variables useful names, including initial type (although I don’t conform to Hungarian Notation, because who cares about that kind of rigid structure?). My functions tend to describe what they do. I add comments when I can, although they aren’t always useful, I must admit. And I try to keep the whitespace fairly consistent for easier readability.

All of this helps, but every time I produce some code for general consumption of someone else, I get feedback that this or that standard wasn’t followed. But that makes sense. I code for people who only stick to one language. They can afford to specialize. I prefer to keep my fingers in a few pots and make changes when needed. Confidant in the knowledge that I have greatly improved in my thirty years of programming. Jeesh, I’m old.

Posted in Programming | Leave a comment

Bacon-Wrapped Cheese Dogs

Usually I tend to out-hipster hipsters and eschew anything that’s too popular, but I refuse to let any latecomers to the bacon party ruin my love of cured pork belly. Last week I was discussing bacon recipes with a friend, and as is common in that situation, I started coming up with new ideas for cooking with bacon. One of my ideas sounded so good, I ran out and bought the necessary ingredients that night: bacon-wrapped cheese dogs. Normally I stay away from the hot dogs with cheese in them because I’m not longer ten years old, but bacon and cheese go together like bacon and my stomach. It’s a match made in heaven.

Unlike my previous foray into bacon bakery, Bacon Cheese Quick Bread, this recipe requires no real cooking skills, although it helps to know what finished bacon looks like. All you need is bacon (not thick sliced which would throw off cooking times), cheese hot dogs (I splurged for the all beef ones), a baking sheet and rack that fits in it (which mine doesn’t, but it works). I didn’t end up needing the toothpicks in the picture, but if you’re deep fat frying them, my original idea, or grilling them, they will be necessary.

Ingredients

What you need

Wrap each hot dog in a slice of bacon, taking care not to leave overhanging bacon. The way to do this is to angle the bacon so that if it was the hypotenuse of a triangle, the short leg of the triangle is the length of the hot dog. And, yes, this is really how I think when I’m coming up with things. I’m sure there’s a way to describe it without using the term “hypotenuse”, but I can’t think of the words.

Wrapping Dogs

Wrapping hot dogs in bacon

Once you’ve got them all wrapped, put them into a cold oven and heat it to 425 degrees. You don’t want to preheat in this case because the slow rise in temperature will help drain the excess fat from the bacon as it cooks and ensures that it stays on the dogs. The tricky part is that the hot dogs won’t be done when the oven is heated all the way. You have to leave them in until the bacon is thoroughly cooked. That will usually be about 20-25 minutes from the time you turn on the oven.

Finished Dogs

Hot from the oven

Carefully removed then from the oven and serve them like any other hod dog. My daughter requested pickle relish, I used a little hot mustard, and my wife opted for yellow mustard. But since aren’t very different from a bacon cheeseburger, anything works. The next day, I ate the leftover dogs with barbecue sauce. They were delicious.

Bunned Dogs

Finished bacon dogs on buns

Posted in Food | Leave a comment