Archive for the Systems Engineering Category

Android Studio Setup Error

miqrogroove
2017-06-27T11:29:39+00:00

While installing Android Studio for the first time, I encountered the message below.

The following SDK component was not installed: Google Repository

Simply clicking the “Retry” button allowed the installation to continue successfully.

Relevant log dump quoted below.

java.nio.file.AccessDeniedException: C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository.backup\com\google\android\support\wearable\1.0.0\wearable-1.0.0-javadoc.jar -> C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository\com\google\android\support\wearable\1.0.0\wearable-1.0.0-javadoc.jar
Warning: Failed to move original content of C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository back into place! It should be available at C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository.backup
java.io.IOException: Failed to move away or delete existing target file: C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository
Move it away manually and try again.
Warning: An error occurred during installation: Failed to move away or delete existing target file: C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository
Move it away manually and try again..
Warning: Observed package id 'extras;google;m2repository' in inconsistent location 'C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository.backup' (Expected 'C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository')

Preparing "Install Google Repository (revision: 54)".
Found existing prepared package.
"Install Google Repository (revision: 54)" ready.
Finishing "Install Google Repository (revision: 54)"
Installing Google Repository in C:\Users\{user}\AppData\Local\Android\Sdk\extras\google\m2repository
"Install Google Repository (revision: 54)" complete.
"Install Google Repository (revision: 54)" finished.
27 Jun 2017

Category:
Systems Engineering

Discuss:
Comments Go Here

ownCloud Using Wrong PHP Configuration

miqrogroove
2016-12-19T21:23:34+00:00

The ownCloud community dropped support for Windows Server, so I must resort to documenting such problems here instead of contributing open source.

One major symptom that confirmed ownCloud was using more than one PHP environment on my server was the presence of session handler files in more than one directory.  Specifically, I was finding orphaned files in C:\WINDOWS\Temp even though my one and only php.ini production file specified a different path as well as garbage collection.

I traced the session file generation as far as the ownCloud calendar “app”, which lives in owncloud\apps\calendar\appinfo\remote.php and related places.

Debugging results were fascinating in that not only was the wrong configuration file loaded, after dumping all phpinfo() to disk I also found that the calendar app was running under an entirely different version of PHP.

The culprit:  After the most recent PHP upgrade, my site-specific Handler Mappings ended up with mismatched verb restrictions.  Somehow the new version ended up restricted to GET,HEAD,POST by default, while the old version remained unrestricted.  Although my handlers were in the correct order to give all *.php files to the correct module, any time a CalDAV client sent a PROPFIND or similar request, IIS essentially downgraded to the unrestricted version of PHP.

The solution:  Remove verb restrictions for the ownCloud site’s Handler Mappings, and then remove all but one of the PHP Handler Mappings to prevent any other versions from running without throwing errors.

If you get a bogus error about spaces in “the path to the script processor” when updating verb restrictions, just add double quotes around the path, and then click “No” on the ensuing bogus error about needing to create a new FastCGI application.  (facepalm)

19 Dec 2016

Category:
Systems Engineering

Tags:

Discuss:
Comments Go Here

Offline Files Access Denied over VPN

miqrogroove
2016-07-01T17:16:27+00:00

I just tried taking a Windows 10 laptop on the road for the first time.  Everything was great until I tried the VPN for the first time.  Suddenly, I was getting Access Denied errors, and “You do not have permissions” errors for all files made available offline.  I confirmed the VPN tunnel and even browsed to other shared folders on the same server.  The offline files errors persisted after dropping the VPN.

When I returned to the domain Wi Fi, file synchronization completed normally and there were no errors at all.

Am I to believe that Windows 10 is completely incompatible with VPN synchronization?  I never had a problem with this on Windows XP, and I am dreading the months of research and experimentation normally involved in fixing this kind of Microsoft failure.

Read the rest of this entry »

12 Jun 2016

Category:
Systems Engineering

Tags:
,

Discuss:
Comments Go Here

Offline Files Stay Disconnected Over Wi-Fi

miqrogroove
2016-03-15T14:15:29+00:00

Configure Slow Link ModeEver since my move to a new apartment, I was frustrated by some of my network files going offline randomly and staying offline for 5 minutes or up to an hour or two.  The weirdest part was that it would only happen to the network files that were in a path with Offline Files enabled.  As a result, I would periodically lose access to files that were not marked “Always available offline”, and I would get frequent synchronization conflicts for any files that were still available offline.

Another symptom of this problem was that I could map a separate drive letter to the same or deeper path, not enable Offline Files for the networked drive, and then have no trouble with the files when I try to use the drive letter.  I could even browse shared folders using the server’s UNC path at the same time as my Offline Files cache seemed to be stuck offline.

I had several suspicions about why this was happening.  First of all, I had started using Wi-Fi networking on my desktop computer as a convenience until I could knock some holes in the apartment walls to run proper Ethernet cables.  The signal quality seemed good enough that I shouldn’t have persistent connection problems, yet the Offline Files system seemed central to the problem.  I eventually discovered that the Client Side Cache “slow link” mode was at fault for this whole mess.

Read the rest of this entry »

15 Mar 2016

Category:
Systems Engineering

Tags:
, ,

Discuss:
Comments Go Here

Shortcode Problems: WordPress 4.4

miqrogroove
2015-08-31T11:07:48+00:00

I will briefly summarize Shortcode API changes since WordPress 4.0 and then kick off some ideas for a roadmap.

The first major accomplishment was the expansion of the API documentation, including a new large section I wrote about the formal syntax for shortcode input.

I also put forward a robust parser concept for the function wptexturize() that promised to re-introduce the ability to use unrestricted HTML code inside of shortcodes and shortcode attributes.  That concept went through many, many changes before being introduced in v4.2.3.  After consulting with the WordPress security team, and after extensive testing of the shortcode parsing functions, we determined that the shortcodes-first parsing strategy was fundamentally flawed and could not be included with any version beyond v4.2.2.  This is why I added an HTML parser to the Shortcode API and ultimately curtailed the use of shortcodes inside HTML rather than expand the use of HTML inside shortcodes.

Read the rest of this entry »

22 Aug 2015

Category:
Systems Engineering

Tags:

Discuss:
3 Comments

Cookies Not Working in IE10

miqrogroove
2015-08-08T15:06:12+00:00

I’ve finally fixed a crippling bug in Internet Explorer 10 that was preventing me from using any website that required cookie support.

This problem seemed to plague my Windows 2012 server from day one.  I’m not yet sure what was special about this configuration.  No matter how many settings I changed, every website I visited told me that I had cookies completely disabled.

I used these steps right before the browser started working correctly:

Step 1 – Find the “Delete Browsing History” dialog box.

ie-safety-menu

Read the rest of this entry »

8 Aug 2015

Category:
Systems Engineering

Tags:

Discuss:
Comments Go Here

Shortcode Problems to be Resolved in WordPress 4.1

miqrogroove
2014-11-06T10:38:13+00:00
Illustration of wptexturize_parse() concept.

Achieving correct and exact results in several steps.

When WordPress first introduced its Shortcode API, it included an all-too-simple line of code that was supposed to help curly quotes not appear inside of the shortcode attributes while still adding curly quotes outside of the shortcodes.  But there were several known problems with this one line of code, such as what would happen if a URL contained square braces, and what would happen if a plugin author wanted to use HTML inside a shortcode.

In version 4.0, I made a substantial effort to fix these problems, but it resulted in some new limitations being placed on the ways shortcodes could be used.  Although I couldn’t find any documented examples or official support for the HTML features, I did hear from several members of the WordPress community who enjoy the full power of customizing their website HTML by using shortcode attributes and HTML values.

My proposed solution is to write a new parser function that will exactly identify the shortcodes and HTML elements being used, so that the function wptexturize() will finally be able to create its curly quotes without interfering with shortcode features.  Click on the diagram to see how this new code works.

Read the rest of this entry »

6 Nov 2014

Category:
Systems Engineering

Tags:

Discuss:
3 Comments

WordPress Formatting Roadmap

miqrogroove
2014-07-08T18:39:25+00:00

I was asked for ideas about how to fix some old problems in the WordPress code base.  Specifically, bugs in the Formatting component, which includes the very heart of blog post processing for millions of websites.  This roadmap lays out recent changes and a plan for where to go next.

3.9

  • Implemented NBSP compatibility for curly quotes to fix common cosmetic flaws.
  • Revised all regex in wptexturize to avoid slow searches.
  • Added a large number of unit tests to cover all known behaviors of wptexturize.

4.0

  • Implemented NBSP compatibility for shortcodes and smilies.
  • Deprecated and replaced function like_escape().
  • Fixed wptexturize parsing for square braces inside of HTML.
  • Sorted the texturize patterns into groups for better performance.
  • Refactored the wptexturize stack function for better performance.
  • Wptexturize now runs up to 5x faster compared to v3.8.

4.1 or Future Releases

Wpautop Phase 1 – Research Problem

Read the rest of this entry »

8 Jul 2014

Category:
Systems Engineering

Tags:

Discuss:
Comments Go Here

like_escape() is Deprecated in WordPress 4.0

miqrogroove
2014-06-18T00:33:31+00:00

Plugin authors and website developers who work with WordPress database queries should notice an important change coming in WordPress 4.0.

The function like_escape() is no longer used in WordPress core code.  It is still available as a deprecated function, so it still works in any existing plugins that rely on it.  However, a new and different function is available that should be used in all new code.

Deprecated means that anyone using code that calls like_escape() with WP_DEBUG enabled will see an error message.  If WP_DEBUG_LOG is also enabled, the error message will appear in the /wp-content/debug.log file.

Let’s look at an example of core code where I removed like_escape() and implemented the new function $wpdb->esc_like().

3.9 Old Style

$search_orderby_s = like_escape( esc_sql( $q['s'] ) );
$search_orderby .= "WHEN $wpdb->posts.post_title LIKE '%{$search_orderby_s}%' THEN 1 ";

What did this do?  It was an old snippet from /wp-includes/query.php that set up a search for post titles.  The input $q[‘s’] was escaped using two functions before it was added to the post_title LIKE expression.  Now let’s see how I replaced that snippet in the next version.

4.0 New Style

$like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
$search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_title LIKE %s THEN 1 ", $like );

Read the rest of this entry »

18 Jun 2014

Category:
Systems Engineering

Tags:
,

Discuss:
Comments Go Here

Folder Redirection Broken After GPO Changes

miqrogroove
2014-03-02T19:19:51+00:00

I am learning quite a bit about the Windows 2012 environment thanks to a recent server migration.  The biggest lesson so far deals with Folder Redirection, and the effects of repeated adjustments to the GPO settings.

Under certain circumstances, folder redirection seems to get “stuck” showing either an old folder path or none at all when the user goes looking for their documents.  The Group Policy Results tool seems to confirm that the Folder Redirection settings are not being applied at all for the user/computer profile that is stuck.  Frustratingly, I couldn’t find any problem with my Group Policy configuration.

No amount of logging off and on, adjusting permissions, or messing with Group Policy seems to have any effect.

In the end, I was able to clear up the problem by running this command:

gpupdate /Target:User /Force /Logoff

The key here is the Force option, which successfully resets the folder redirection policy for that user profile, and perhaps all the profiles on that particular computer.  Problem solved!  Windows 8.1, Windows 2012, and possibly other versions are affected.

2 Mar 2014

Category:
Systems Engineering

Tags:
,

Discuss:
2 Comments