Archive

Archive for the ‘Software’ Category

Buy the Album, Guys. [EVE 6 - Speak in Code: Audio Quality]

May 9, 2012 Leave a comment

One of my favorite bands, EVE 6, recently got back together after a multi-year hiatus and put out a new album. “Speak in Code” came out a few weeks ago. I caught the band on their tour through Seattle just before the CD release, so ended up having to order mine from the Internet instead.

I bought the vinyl of the album because it seems like a more interesting collectible than a CD, and while waiting for it to arrive downloaded the MP3s of the album from a non-BitTorrent download site. Just yesterday, my copy of the album arrived and inside was an unexpected code for a Dropcards.com Free Digital Download of the album! I went to check it out and download the files and got a great surprise – the free digital downloads were uncompressed WAV files. That’s about as close to the master as you can get without knowing the sound engineer who mixed it.

Eve 6 Speak in Code Album Cover

I wanted to see the difference between the purchased uncompressed files, and the less-than-legitimate free alternative so I generated two spectrum analysis plots (FFT) and placed them on a common axis. I used the second track on the album, “Victoria” which rated decently on the top Alternative charts.

 

On the left of the frequency plot, the “Inner Sanctum” release MP3s – the only MP3 downloads of this album I was able to find. On the right, the free digital download from Dropcards.com. As you can see there are some differences – both large and small. Click the chart for the full sized version. If you’re not familiar with an audio spectrograph, the vertical axis of the chart plots frequency with bass notes towards the bottom and treble towards the top. The horizontal axis represents the amplitude, or volume, of that frequency in the song. The further away from the center you go the louder the sound.

Eve 6 - Victoria (2012) - Differential Audio Spectrogram

The MP3 track starts dropping off more sharply than the uncompressed track at around 12 kHz and completely starting at 19 kHz while the uncompressed track carries more detail in those higher frequencies and extends all the way up to 22 kHz. You’ll have to listen for yourself to hear the difference, though, so go and buy their album!

I might post a more detailed comparison later, with some more analysis points, if I can come up with an iTunes version of this track for comparison…if you have one and don’t mind sharing it for this experiment, get in touch!

Google just killed Google Reader – and they don’t even understand why.

November 1, 2011 Leave a comment

Yesterday, Google officially rolled out the “much anticipated” (by them, perhaps) revisions to Google Reader which removed most of its compelling functionality and added integration with their social network Google+.

We hope you’ll like the new Reader (and Google+) as much as we do, but we understand that some of you may not. Retiring Reader’s sharing features wasn’t a decision that we made lightly, but in the end, it helps us focus on fewer areas, and build an even better experience across all of Google.

I’ll start off with the glaringly obvious usability features. The first one, of course, was best expressed by an anonymous Internet comment that it “looks like a browser with the stylesheets turned off”. It’s mostly white, with a handful of navigation buttons around the top, and an excessive amount of whitespace. The navigation buttons have been rearranged and are in a row along the top, where the previous and next item buttons were previously at the bottom, and the new code doesn’t prefetch as well or scroll as smoothly. Result? It takes a lot longer to get through items. This is a big problem if you use Reader like I do. I skim the contents of about 250 feeds every day, for between 1000 and 2000 news items, but only spend time reading the most interesting ones. It’s taking me between 2-4x as long to get through my unread items as it did previously.

The worst issue, though, is that it’s removed the social functionality from Reader and forces you to use Google+ for your news item discussion. The discussion about this fact seems to center about the fact that it’s not obvious about how to share your new items, to the point where former Google Reader product manager Brian Shih trashes the new revision:

“It’s as if whoever made the update did so without ever actually using the product to, you know, read something. Reader is a product built to consume information, quickly. We designed it to be very good at that one thing. G+ is an experience built around browsing (similar to Facebook) and socializing. Taking the UI paradigm for G+ and mashing it onto Reader without any apparent regard for the underlying function is awful and it shows,” says Brian.

Google, of course, attempts to counter this argument but completely misses the mark. They released a nice blog post showing how to share an item more easily, because it’s a bit non-obvious.

The fundamental flaw, though, isn’t that it’s more challenging to share an article. The real flaw is that it’s now 100% more difficult to actually have a social discussion about the articles you’ve shared.

“Old” Google Reader had a convenient view of showing who was in your sharing circle and highlighting comments they’d made, seen in this WebProNews screenshot:

“New” Reader completely lacks any commenting functionality built in. This means you need to visit 2 different web sites to have a discussion. One web site to read and share the content, and another web site to talk about it with your friends. That’s a 100% increase in the number of steps needed to have a discussion. Trying to make reading the news more social by making it more difficult to have a conversation about the items, is extremely counter-intuitive  at best. Mostly, though, it just reinforces what Brian Shih said above: that they don’t know what they’re doing.

Reader Comment threads were something I looked forward to every day. They’ve been effectively eliminated from my life at this point. Many of the people following my Reader feed specifically preferred not to sign up for Google+, and even the ones who are “users” of Google+ use it in the sense they log in once a week to see how little content there is and feel better about not using it.

I’m not surprised they’ve taken this approach to drive new traffic to Google+ – it’s been in a pretty sharp decline since it was released. They just waited too long between announcing it, and opening it to the public, combined with the fact that it makes a lot of people nervous to have one company with complete access to e-mail, web search behavior, photos and social networking all in one place. Facebook is enough of a privacy nightmare, being specifically designed to break European data protection laws (things we don’t have in the United States) but at least they can’t read my e-mail, too.

I really think this is the end of my time on Reader. Many of the people I previously talked to, just won’t be signing up for Google+ to continue using it. I have no reason to use Reader in Google+ if I don’t have anyone to talk to, and my Reader shares have always been restricted to a very close-knit, hand selected group of people. Now I’m looking for an open-source replacement we can migrate to on an open server. If anyone knows of one, let me know.

Goodbye, Google Reader. We’ll all miss you. And I don’t think Google is going to learn anything from this experience, either.

October Projects

October 3, 2011 1 comment

September was a good month for projects. I accomplished all the things I set out to do and more:

I have a few projects queued up for October which should be equally interesting.
There’s a Sanyo 2050 that I’m working on for a friend, it needs the controls cleaned:
I’ll be repairing my 1941 GE LF-116 console radio that’s been a display piece in my office for about a year. Pre-War FM Consoles are relatively rare, this is yet another one the Radio Museum doesn’t have a photo of, so I’m especially excited to repair this one and contribute the photos to the collection. Personally, I find this style of radio to be less attractive and interesting than others – post-1940 most consoles started to look all the same – but the fact it has the earlyFM band makes it interesting enough from an engineering perspective to offset the aesthetics.
Along with the GE radio, I need to refurbish my EICO 460 oscilloscope to do a full FM alignment on this radio – so I’ll be replacing the capacitors, out of spec resistors and any weak tubes. It “works” currently but it’s unstable, it’s only a matter of time before it stops working. I’ll have to recalibrate it as well.

Microsoft Word

August 16, 2011 Leave a comment

Wouldn’t it be neat if Outlook were smart enough to download a GAL when connected to an Exchange server, then add all of the names to the spell-check dictionary so they’re not flagged?

On the pervasiveness of communication.

July 5, 2011 Leave a comment

We’re living in an age where we’re inundated with communication and information all the time. Smartphones are expected to exceed 50% of all cell phones in circulation this year and with that, millions of people will join the already large ranks of the constantly connected. A smartphone in your pocket brings voice and text, along with personal and corporate e-mail, video chat, instant messaging and social networking to you with always-on push notification in addition to pulled services like navigation and search.

We’re constantly being bombarded with attempts to reach us, but the software we use to manage these attempts hasn’t really caught up. Google Voice takes a stab at organizing voice and text-messaging, providing a number that can deliver messages to your mobile device or to any web browser and offering up the ability to set rules, ring groups, calling times and default behaviors per-caller but there’s no good solution for the other items. For example: I wake up in the morning, and see my phone will have a few notifications. Typically, a few text messages, e-mails on both my personal and work accounts, and frequently several instant messages or a missed call or two. That’s a lot of messages to sort through, and the phone’s default behavior of handling all incoming notifications from any source exactly the same way just doesn’t match the way I want to organize my interactions.

I’d like my phone to be able to decide what to do with a message automatically based on rules I set up. Rules that let my device decide what to alarm about based on the day and time, the sender, the medium and keywords in the message. “Don’t make noise for incoming messages between Midnight and 5AM unless it’s from a priority group, in which case make extra noise”, “automatically send all unknown number calls to voicemail”, “always alarm for boss phone call even if otherwise muted”. Right now, all the settings are either on or off all the time: either notifications make noise, or they don’t. I either miss things I don’t want to miss, or am woken up by alerts for spam e-mails. I think we’re just slightly too early for this kind of granularity, but I expect it’ll catch on soon.

Government Censorship on the Internet

May 6, 2011 Leave a comment

It’s important that speech on the Internet be afforded the same protections offered to speech in other venues. Freedom of speech is protected by our Constitution, and includes the right to publish software that is in compliance with the law.

The Department of Homeland Security, in a move I can only assume is partially to look busy and partially related to the regulatory revolving door of Washington, has been rebuffed by Mozilla in their attempt to have a browser plugin removed. These seizures are on pretty dubious legal grounds already but haven’t been challenged much. The plugin in question, Mafiaa Fire, restores connectivity to web sites previously seized by DHS.

Mozilla, in the tradition of open source, fired back with a probing series of questions:

1. Have any courts determined that MAFIAAfire.com is unlawful or illegal inany way? If so, on what basis? (Please provide any relevant rulings)
2. Have any courts determined that the seized domains related to MAFIAAfire.com are unlawful, illegal or liable for infringement in any way? (please provide relevant rulings)
3. Is Mozilla legally obligated to disable the add-on or is this request based on other reasons? If other reasons, can you please specify.
4. Has DHS, or any copyright owners involved in this matter, taken any legal action against MAFIAAfire.com or the seized domains, including DMCA requests?
5. What protections are in place for MAFIAAfire.com or the seized domain owners if eventually a court decides they were not unlawful?
6. Can you please provide copies of any briefs that accompanied the affidavit considered by the court that issued the relevant seizure orders?
7. Can you please provide a copy of the relevant seizure order upon which your request to Mozilla to take down MAFIAAfire.com is based?
8. Please identify exactly what the infringements by the owners of the domains consisted of, with reference to the substantive standards of Section 106 andto any case law establishing that the actions of the seized domain owners constituted civil or criminal copyright infringement.
9. Did any copyright owners furnish affidavits in connection with the domain seizures? Had any copyright owners served DMCA takedown notices on the seizeddomains or MAFIAAfire.com? (if so please provide us with a copy)
10. Has the Government furnished the domain owners with formal notice of the seizures, triggering the time period for a response by the owners? If so, when,and have there been any responses yet by owners?
11. Has the Government communicated its concerns directly with MAFIAAfire.com?If so, what response, if any, did MAFIAAfire.com make?

Kudos to Mozilla for doing their part to maintain the freedom of information. If you support the Mozilla Foundation, authors of popular web browser Firefox in their support for Internet freedom you may Donate at their web site. Contributions to the Mozilla Foundation, an IRS 501(c)3 organization, are tax-deductible.

Bing vs. Google on Downloading WinRAR [Winner: Google]

April 11, 2011 Leave a comment

I’m fighting with the beta of System Center Virtual Machine Manager 2012, a Microsoft utility for managing cloud computing resources. It’s a fight I shouldn’t have to engage in as Microsoft requires a pre-requisite that can’t actually be opened by the default tools installed with the operating system, the Windows Automated Installation Kit which is helpfully delivered as an ISO instead of something that can be opened natively.

WinRAR, a well-known and well-respected file compression utility is my go-to utility for opening ISOs as it will extract them into a folder with a single click. It’s also a program I never seem to have the installer on hand for, so instead of digging around for my department’s installer I go find the web page.  Bing is the default search engine for Internet Explorer on Windows Server 2008 R2 SP1 and I used it to search for “winrar”, expecting to be quickly taken to a download site. Instead, I received a search result page entirely devoid of what I was looking for.

That’s a screenshot of the data area of the browser, from the server in question. There were three results displayed on the first page (it didn’t want to scroll). Zero of these results are links to download WinRAR, or are even to the company that even produces WinRAR. Two of the results are sponsored advertisements to a WinRAR competitor, and one is the Wikipedia entry about the software. (The page extends to the right as well, with 5 more advertisements I cropped from the screenshot, none are links to the author’s web site.)

I was so shocked by this absolute lack of results I had to open a tab with Google on the same machine and search that way:

The very first result is the official homepage of WinRAR, complete with a quick link to Download. Perfect! The second result is the same as the “Download” quick link from the first result. The third result is another domain name for the same company, as is the fourth. And it continued with several more links to reputable download sites (CNet, etc.), and finally the Wiki entry.

It’s no surprise that less than 1 in 10 web searches are on Bing when it can’t accurately return results for something that’s been around for years, has an excellent reputation and is very widely distributed. Winner in this unexpected challenge? Google. But I would like to thank Bing for a nostalgic trip back to the early days of web search in the ’90s when there were zero good options out there. I’m very glad that’s not the case anymore.

Bing Travel is excellent, it’s a shame their web search is pretty much useless.

Use WinDbg to Solve Blue Screen Crashes

April 11, 2011 Leave a comment

Everyone has experienced a Blue Screen crash at some point or another. Windows Vista and Windows 7 greatly reduced the frequency of this happening, and now it’s pretty rare. I’ve only seen one on my home computer in several years, and it was caused by a faulty sound card, not by Windows itself. And that’s normally the case now: the core operating system is stable, but devices and programs you add can take away from the system’s reliability.

One of the Directors at my company has been experiencing frequent blue screen crashes since upgrading to a new computer. We were suspecting a hardware issue, but weren’t able to pin it down to anything specific. That’s where the Debugging Tools for Windows come in. These are very in-depth, technical resources that dig deep into the internal workings of the operating system, and can determine exactly what the last thing that happened was before the system crashed and was shut down.

Before beginning any debugging steps, you’ll need to make sure you have a crash dump file. This can be enabled in your system’s properties. After recovering from a crash dump, Windows will display a prompt at the beginning of your next session with the location of the crash dump file. Make a note of its location, or copy it to a flash drive for debugging on another machine. The file can range from a few hundred KB, up to the size of your complete physical memory, depending on how verbose you’ve selected. Most crash dumps are on the smaller end.

After downloading and installing the tools above, you also need to download Symbol packages. These contain mappings from memory addresses, to entry points and function names and are necessary to actually see what’s going on. The symbols are a few hundred megabytes, and aren’t included by default because relatively few people need to use them daily. Once you’ve installed the SDK, start WinDbg from the “Debugging Tools for Windows” entry on your Start menu, and you’ll stare at a rather unfriendly looking console.

Now, set up your Symbols: File > Symbol File Path and add the location you’ve installed the symbol files. You can also add a link to an online symbol server, which will help fill in the gaps if you didn’t download the right symbol package.

Navigate to File > Open Crash Dump… and select the crash dump you’d like to investigate. Then wait a moment while it loads symbol files.

Type, or click, on “!analyze -v” to run the debugger through the trace and find out what happened. You’ll get a print-out:

7: kd> !analyze -v
********************************************************************************
**                        Bugcheck Analysis                                   **   
********************************************************************************
BAD_POOL_HEADER (19)The pool is already corrupt at the time of the current request.
This may or may not be due to the caller.
The internal pool links must be walked to figure out a possible cause of the problem,
and then special pool applied to the suspect tags or the driververifier to a suspect driver.
Arguments:Arg1: 0000000000000003, the pool freelist is corrupt.
Arg2: fffffa800a420080, the pool entry being checked.
Arg3: fffffa8007c34030, the read back flink freelist value (should be the same as 2).
Arg4: 1002026001f00705, the read back blink freelist value (should be the same as 2).
Debugging Details:
------------------

BUGCHECK_STR:  0x19_3
CUSTOMER_CRASH_COUNT:  1
DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
PROCESS_NAME:  UltraMonTaskba
CURRENT_IRQL:  2
LAST_CONTROL_TRANSFER:  from fffff8000300d70f to fffff80002ee3640

STACK_COMMAND:  kb
FOLLOWUP_IP: nt!ExDeferredFreePool+cbbfffff800`0300d70f cc              int     3
SYMBOL_STACK_INDEX:  1
SYMBOL_NAME:  nt!ExDeferredFreePool+cbb
FOLLOWUP_NAME:  Pool_corruption
IMAGE_NAME:  Pool_Corruption
DEBUG_FLR_IMAGE_TIMESTAMP:  0
MODULE_NAME: Pool_Corruption
FAILURE_BUCKET_ID:  X64_0x19_3_nt!ExDeferredFreePool+cbb
BUCKET_ID:  X64_0x19_3_nt!ExDeferredFreePool+cbb

Below the Debugging Details header, is the real interesting piece of information, the PROCESS_NAME entry – in this case, UltraMonTaskba[r]. UltraMon is an add-on utility designed to make computing with multiple monitors easier and more intuitive by making per-screen task bars and allowing you to quickly manipulate windows across multiple monitors. In this case, it appears to have an incompatibility with his particular system configuration and is corrupting part of the system memory.

Updating UltraMon should solve the issue in this case, but if that doesn’t, then it may have to be removed entirely. I’ve used this technique to identify several difficult to diagnose problems including left-over remnants of an improperly un-installed Anti-Virus application, a failing graphics card, a third-party firewall that was stepping on the built-in Windows firewall, and more. The debugging output can be a bit verbose, but most of it can be ignored which makes it that much easier to use.

Google Chrome-to-Phone Usability Feedback

March 17, 2011 Leave a comment

Google offers an interesting extension called Chrome to Phone that works with Android 2.2+ devices to remove some of the barriers between computing. A small screen isn’t the best place for planning a trip or seeing transit data from multiple lines all at once – but a desktop is. With this extension, it’s possible to look up a web page and have it pushed to your phone. I use it frequently for grabbing directions or contact information for where I’m going and send it to my phone as I’m walking out the door, so I can finish the next steps (finding when the bus comes, etc.) while on the stairs.

My complaint about the service is the way the login mechanism is handled. Chrome to Phone requires you to be logged in to your Google account using the plugin to send to your phone. Makes sense, because the extension and corresponding phone app can automatically cause things to happen on your device without any additional user feedback – press the button on your browser, and the phone automatically turns its screen on and loads the requested content.

The sign-in page, though, is an actual web page that loads in the browser. If I designed it, the login username and password box would pop out of the icon in the corner. It loads a full on tab which presents you with the option of permanently signing in by remembering your login.

Now, the real problem: even remembering your password, you still must log in every day or so. You have to click “sign in” and allow it to load the web page. Once at the page, it doesn’t ask for a password – but if it knows enough to not ask for a password, it really should know enough not to need you to click the button in the first place. Especially since I’ve been unable to locate a “sign out” button, so there’s no real point to it.

System Center Virtual Machine Manager – Self Service Ownership Bug

March 15, 2011 Leave a comment

At the office, I use Microsoft System Center Virtual Machine Manager 2008 R2 to manage a few dozen Hyper-V servers hosting around 150 virtualized services. SCVMM allows me to manage all the servers across different high-availability clusters and physical locations easily from a single console, and also facilitates users managing their own virtual machines through the Virtual Machine Self Service portal, a nice web front-end to the management interface that doesn’t require the desktop console to be installed.

In order to allow a virtual machine to be managed by self-service, that virtual machine must be assigned an owner through its properties. This is typical for Active Directory-integrated services and objects such as managed Virtual Machines – but comes with a quirk that makes it almost useless, at least in my company’s needs.

Shown above, the virtual machine’s owner is assigned to a domain universal security group. This is also a very common configuration, supported by other Microsoft products: assigning ownership of a resource to “Engineering”, and adding members to the “Engineering” group allows all the users in the group to access that resource.

Unfortunately, SCVMM doesn’t correctly handle security groups. Assigning a virtual machine to a group is a valid assignment – but prevents that virtual machine from being managed, because the group does not have a valid “group login” to use (you use your own logins in a security group, and the Active Directory manages permissions for that group) and SCVMM blocks transitive ownership to the group members. In other words: unlike every other Microsoft product, a member “Bob” who is a member of the “Server Access Group” will not be able to manage a virtual machine whose ownership is assigned to that very same group. The correct behavior, would be to allow every member of the group to manage every virtual machine associated with that group. It’s frustrating finding out that you cannot assign a virtual machine to a security group and have it work, but even more-so because it doesn’t follow the behavior of every other similar product.

In my company, we have a stack of application servers that are self-administered by some of our software engineers to break as often as they want while testing early builds of our application. It makes sense to allow any of them the ability to manage the virtual machines at a hardware level, but because of the broken group mechanics, it would have been impossible to do this and I’d have needed to pick a single engineer for the task. Because that would unfairly load one individual, I tend to handle most virtual machine maintenance myself using the console. The self-service portal sits idle.

A new service pack for SCVMM is due out shortly (following up on Server 2008 R2 SP1 which introduced important new features into Hyper-V), hopefully it will address this glaring oversight.

Follow

Get every new post delivered to your Inbox.