Bought this just to find out if it can replace the more expensive big fat PC as a basic computer for light usage.
The expectation were not high but the bar was also low: Web browsing, email, photos, text editing, and full screen video. For the price it was cheaper than the retail Windows license alone.

This was the first time I ordered from GearBest. Delivery was on time. The box inside a padded envelope was a bit dented. Inside the box were the mini PC, a power supply, and an HDMI cable. All showed signs of usage. A bit of scratches and some dust and smudges. Not a big deal.

It did power up and booted into windows with user admin and no password.
The system was not stable though. The “start” menu, when clicked, flashed momentarily somewhere at the top of the screen but did not open. A few more clicks until it finally opened.

It took several attempts until installation of windows updates succeeded.
After that the system was still not stable. The “start” menu still did not open every time. Some blue screens with the message: “Your PC ran into a problem…” DRIVER_IRQL_NOT_LESS_OR_EQUAL usbxhci.sys.
Trying to check for updates again or install a language package, failed with no meaningful message. Running “sfc /scannow” did not report any problems.

On the positive side, the performance was mostly reasonable for web browsing, YouTube movies in full screen, and LibreOffice. Although web pages with many flash ads did bring the hardware to its knees.

But whether these problems were purely Win10’s or specific to this hardware, does not change the bottom line: unusable.

The troubleshoot tool for windows updates reported: “Windows update components must be repaired”. But how?

Found this script “Reset Windows Update Agent”, run option 2 “Reset Windows Update Components”, restarted, no change.
Run option 5 “Scan all protected system files”, this reported that it found and repaired some corrupted files, restarted, and no change. Tried most of the other options in that script but none helped.

As last resort, I tried the Windows recovery option to reset the PC.
It took several hours for the recovery to be done.
This has finally worked. The “start” menu works, no more blue screens, windows update completed successfully and the system seems to be stable.

There was a problem with LibreOffice failing to start with an error message “Cannot create folder (invalid path):”. It turned out that LibreOffice has a problem if the Windows user name (and the file paths) were not in English. Changing the user name solved that.

So can a cheap mini PC with the specs of a mid range tablet be a desktop replacement for modest requirements? I think the answer is yes.

Update 16-Nov-2016After few months of use the system became unstable, Windows blue screen from time to time. It got worse and this PC is no longer usable after only 9 months of use.

When defining hook_theme the choice of argument names that are passed to the theme’s template is important. These argument names share a namespace with some default argument names that are added by template_preprocess. Using any of these names will conflict with the default ones and a potentially wrong argument will be accessed in the preprocessing function and template.
In this example the argument name ‘user’ is in potential conflict:

In a web site where only authenticated users have access to content and comments it may still be required to let authenticated users comment anonymously.
This small module adds the option for the administrator to allow anonymous commenting by authenticated users for specific roles on specific content types.
Where allowed, users get a choice, on the comment creation form, to post their comment anonymously.
Such comments are assigned the anonymous user id but the log will still show the creation of the comment by the authenticated user which makes it a bit less than completely anonymous and allows for some moderation. Within a trusted site membership such feature may encourage more participation with little risk of misuse.

The core search in drupal 6 adds a “Users” search tab in the search page. Although it has permissions settings for content search and for advanced search, there seems to be no built-in option to restrict access to the users search.
One way of achieving this is by overriding the access callback of the search/user URL in hook_menu_alter.
For example, the following code replaces the access callback with user_access() and its argument with ‘administer users’, so only roles with this permission get access to the users search. As a side effect the users search tab is removed if the user doesn’t have this permission. The user/autocomplete path is also handled in the same way.

Users that subscribe to such content types will not actually receive the notifications because at the time of assembling the notification message, the permissions on each specific node are tested.

This can be reproduced with the content access module, by granting view access rights for some content types and not others to a certain role and going to the user’s account page: /user/[uid]/notifications/nodetype.

There doesn’t seem to be any hook to override this and using the form alter hook seems too involved.

My work around is to add a hook call in notifications_content_page_nodetype()Continue reading →