Technology Tales

Adventures in consumer and enterprise technology

You searched for: cheap air tickets frontier airlines phone number 1-800-299-7264

Solving error code 8000101D in SAS

26th November 2022

Recently, I encountered the following kind of message when reading an Excel file into SAS using PROC IMPORT:

ERROR: Error opening XLSX file -> xxx-.xlsx . It is either not an Excel spreadsheet or it is damaged. Error code=8000101D
Requested Input File Is Invalid
ERROR: Import unsuccessful. See SAS Log for details.

Naturally, thoughts arise regarding the state of the Excel file when you see a message like this, but that was not the case because the file opened successfully in Excel and looked OK to me. After searching on the web, I found that it was a file permissions issue. The actual environment that I was using at the time was entimICE, and I had forgotten to set up a link that granted read access to the file. Once that was added, the problem got resolved. In other systems, checking on file system permissions is needed, even if the message seems to suggest that you are experiencing a file integrity problem.

Keeping an eye on WordPress development III

11th March 2008

If the milestone date was to be believed, WordPress 2.5 was due yesterday. However, it has yet to show and a quick look on WordPress Trac reveals why: loads of outstanding tickets relating to bugs. In fact, there seem to be more tickets associated with this than other releases. I suppose that we can expect the new release when we see it then. Interestingly, the administration screen theming references have been removed from the pre-release version so that’s a functionality for a future release and it’s not hard to see why. Otherwise, the style of the screens in the latest Subversion revision looks a bit smarter and my blog themes are not getting broken. For my online blogs, I’ll be sticking with 2.3.3 for now.

A new phone

4th February 2012

After a few years with a straightforward Nokia 1661 and a PAYG Blackberry 8520, I decided to go and upgrade from the former to an HTC Wildfire S. So far, the new phone has been good to me with only a few drawbacks. Other than working out how to insert a SIM card, the phone has been easy to use with just a few nuances to learn, such as finger pinch zooming and dealing with an onscreen keyboard as opposed to a real one.

The touchscreen interface and the 3G capability are the big changes from my Blackberry and both make web browsing so much faster too, especially with the larger screen. For instance, checking RSS feeds with Google Reader and emails is so much faster on the move with the screen being very responsive most of the time that I am using it; it does get dirty like others so either a screen cover or frequent cleaning with a camera lens cloth would be no bad thing. The onscreen keyboard remains something to which I need to grow accustomed and probably is the one area where the Blackberry continues to hold sway though turning the phone sideways and tapping it on the side to change orientation helps a lot. That makes the keys larger and, while my finger are not the thickest, there are fewer cases of hitting the wrong key. Even then, you need to get used to switching between alphabet and numeric keyboards and that applies also when you need punctuation marks like commas and so on.

Otherwise, the user interface is bright and pleasing to the eye with the typical presentation of both a clock and current weather on there. Handily, the screen is locked easily too with a press of the button at the top right of the phone. That will put a stop to inadvertent phone calls, emailing, web browsing and other things so it is to be commended. To unlock the screen, all that’s needed is to swipe the lock bar to the bottom. Any alerts are viewed in a similar way with holding down your finger on the top bar presenting an extension that can be pulled all of the way down to see what’s there.

With an icon for the Android Marketplace on the main screen, I got to adding a few apps and you can set these to update automatically too but you need to watch your phone contract’s data allowance. The one for WordPress works better than it does on my Blackberry but it seems that retweeting with UberSocial is much less good on the Android platform. For one thing, feeds for all accounts are presented on the one screen and swiping left to right is needed for replying, retweeting and other operations and that’s not working out so smoothly for me yet. Maybe I’ll try an alternative. There are others that I have downloaded too and these include one from CrossCountry Trains and that seems to be a nice offering even if it failed to find trains between Macclesfield and Edale of a Sunday morning. For those omissions, I have an alternative in place and I also have the LinkedIn app too. That seems to work well too. Usefully, it is possible to move these to the phones microSD card to avoid filling up the limited space that’s on offer. However, that isn’t to say that I will be going mad on these things.

Of course, any phone should be good at making and taking phones and the Wildfire seems to be doing well on this score too. Firstly, contacts were read from the SIM but they can be transferred from an old phone using Bluetooth connections too. Sound is good and loud though you need to be on a call to adjust the speaker volume with the rocker button on the side of the phone. Otherwise, that just changes the volume of the ring tone. Without any adjustments, the phone seems to vibrate and ring at the same time though that may be something that I get to changing in time. The pings emitted when new text messages, emails or tweets fall into the same category.

If there’s any downside to this phone, it has to be battery life. Unlike others that I have had, this is a phone that needs charging every night at the very least. Maybe that’s the price of having a nice bright responsive screen but it would be no harm if it lasted longer. Others have found the same thing and reported as much on the web though some have having worse experiences than others. There are some hints regarding how to conserve battery life but they include such things as switching off 3G or data capabilities and neither appeal to me; after all, I might as well use my old Nokia if this is all that can be offered. Instead, I am wondering if acquiring a spare battery might be no bad idea because that’s what I do for my Pentax DSLR (note in passing: I haven’t got to using the phone’s own camera but recent wintry weather had me tempted by the idea, especially with the likes of Twitpic and YFrog out there.). Taking things further, others have mentioned getting a larger capacity replacement but that sounds more risky.

All in all, first impressions of the HTC Wildfire are good ones. Over time, I should find out more about the ins and outs of the gadget. After all, it is a mini-computer with its own operating system and other software. Since I continue to learn more and more about PC’s everyday, the same should be the case here too.

A new phone

7th August 2009

Nokia 1661

For someone with an more than passing interest in technology, it may come as a surprise to you to learn that mobile telephony isn’t one of my strong points at all. That’s all the more marked when you cast your eye back over the developments in mobile telephone technology in recent years. Admittedly, until I subscribed to RSS feeds from the likes of TechRadar, the computing side of the area didn’t pass my way very much at all. That act has has alerted me to the now unmissable fact that mobile phones have become portable small computers, regardless of whether it is an offering from Apple or not. After the last few years, no one can say that things haven’t got really interesting.

In contrast to all the excitement, I only got my first phone in 2000 and stuck with it since and that was despite its scuffs and scratches along with its battery life troubles. Part of the reason for this is a certain blindness induced by having the thing on a monthly contract. As that is not sufficient to hide away the option of buying a phone on its own, then there’s the whole pay as you go arena too. The level of choice is such that packages such as those mentioned gain more prominence and potentially stop things in their tracks but I surmounted the perceived obstacles to buy a Nokia 1661 online from the Carphone Warehouse and collect it from the nearest store. The new replacement for my old Motorola is nothing flashy. Other phones may have nice stuff like an on-board camera or web access but I went down the route of sticking with basic functionality, albeit in a modern package with a colour screen. Still, for around £35, I got something that adds niceties like an alarm clock and a radio to the more bread and butter operations like making and taking phone calls and text messaging. Pay as you go may have got me the phone for less but I didn’t need a new phone number since I planned to slot in my old SIM card anyway; incidentally, the latter operation was a doddle once I got my brain into gear.

Now that I have replaced my mobile handset like I would for my land-line phone, I am left wondering why I dallied over the task for as long as I have. It may be that the combination of massive choice and a myriad of packages that didn’t appeal to me stalled things. With an increased awareness of the technology and options like buying a SIM card on its own, I can buy with a little more confidence now. Those fancier phones may tempt but I’ll be treating them as a nice to have rather than essential purchases. Saying all of this, the old handset isn’t going into the bin just yet though. It may be worn and worthless but its tri-band capabilities (I cannot vouch for the Nokia on this front) may make it a useful back up for international travel. The upgrade has given me added confidence for trying again when needs must but there is no rush and that probability of my developing an enthusiasm for fancy handsets is no higher.

Moving a website from shared hosting to a virtual private server

24th November 2018

This year has seen some optimisation being applied to my web presences guided by the results of GTMetrix scans. It was then that I realised how slow things were, so server loads were reduced. Anything that slowed response times, such as WordPress plugins, got removed. Usage of Matomo also was curtailed in favour of Google Analytics while HTML, CSS and JS minification followed. What had yet to happen was a search for a faster server. Now, another website has been moved onto a virtual private server (VPS) to see how that would go.

Speed was not the only consideration since security was a factor too. After all, a VPS is more locked away from other users than a folder on a shared server. There also is the added sense of control, so Let’s Encrypt SSL certificates can be added using the Electronic Frontier Foundation’s Certbot. That avoids the expense of using an SSL certificate provided through my shared hosting provider and a successful transition for my travel website may mean that this one undergoes the same move.

For the VPS, I chose Ubuntu 18.04 as its operating system, and it came with the LAMP stack already in place. Have offload development websites, the mix of Apache, MySQL and PHP is more familiar to me than anything using Nginx or Python. It also means that .htaccess files become more useful than they were on my previous Nginx-based platform. Having full access to the operating system using SSH helps too and should mean that I have fewer calls on technical support since I can do more for myself. Any extra tinkering should not affect others either, since this type of setup is well known to me and having an offline counterpart means that anything riskier is tried there beforehand.

Naturally, there were niggles to overcome with the move. The first to fix was to make the MySQL instance accept calls from outside the server so that I could migrate data there from elsewhere, and I even got my shared hosting setup to start using the new database to see what performance boost it might give. To make all this happen, I first found the location of the relevant my.cnf configuration file using the following command:

find / -name my.cnf

Once I had the right file, I commented out the following line that it contained and restarted the database service afterwards using another command to stop the appearance of any error 111 messages:

bind-address 127.0.0.1
service mysql restart

After that, things worked as required and I moved onto another matter: uploading the requisite files. That meant installing an FTP server, so I chose proftpd since I knew that well from previous tinkering. Once that was in place, file transfer commenced.

When that was done, I could do some testing to see if I had an active web server that loaded the website. Along the way, I also instated some Apache modules like mod-rewrite using the a2enmod command, restarting Apache each time I enabled another module.

Then, I discovered that Textpattern needed php-7.2-xml installed, so the following command was executed to do this:

apt install php7.2-xml

Then, the following line was uncommented in the correct php.ini configuration file that I found using the same method as that described already for the my.cnf configuration and that was followed by yet another Apache restart:

extension=php_xmlrpc.dll

Addressing the above issues yielded enough success for me to change the IP address in my Cloudflare dashboard so it pointed at the VPS and not the shared server. The changeover happened seamlessly without having to await DNS updates as once would have been the case. It had the added advantage of making both WordPress and Textpattern work fully.

With everything working to my satisfaction, I then followed the instructions on Certbot to set up my new Let’s Encrypt SSL certificate. Aside from a tweak to a configuration file and another Apache restart, the process was more automated than I had expected, so I was ready to embark on some fine-tuning to embed the new security arrangements. That meant updating .htaccess files and Textpattern has its own, so the following addition was needed there:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

This complemented what was already in the main .htaccess file and WordPress allows you to include http(s) in the address it uses, so that was another task completed. The general .htaccess only needed the following lines to be added:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.assortedexplorations.com/$1 [R,L]

What all these achieve is to redirect insecure connections to secure ones for every visitor to the website. After that, internal hyperlinks without https needed updating along with any forms so that a padlock sign could be shown for all pages.

With the main work completed, it was time to sort out a lingering niggle regarding the appearance of an FTP login page every time a WordPress installation or update was requested. The main solution was to make the web server account the owner of the files and directories, but the following line was added to wp-config.php as part of the fix even if it probably is not necessary:

define('FS_METHOD', 'direct');

There also was the non-operation of WP Cron and that was addressed using WP-CLI and a script from Bjorn Johansen. To make double sure of its effectiveness, the following was added to wp-config.php to turn off the usual WP-Cron behaviour:

define('DISABLE_WP_CRON', true);

Intriguingly, WP-CLI offers a long list of possible commands that are worth investigating. A few have been examined, but more await attention.

Before those, I still need to get my new VPS to send emails. So far, sendmail has been installed, the hostname changed from localhost and the server restarted. More investigations are needed, but what I have not is faster than what was there before, so the effort has been rewarded already.

A new laptop

7th January 2008

Having had it on my wish list for a few years, I finally succumbed to temptation and purchased a laptop in the PC World sale, a Toshiba Equium A200-1VO in fact. I reserved it on the web and popped into the nearest store a few hours later. However, while the reservation system worked, the collection did not go as smooth as I had hoped; it appears that the store where I went was not as well staffed as I would have liked, so I needed to wait before I was served. Finding the right part of the store was another issue. Nevertheless, service was efficient once the wait was over, and I left with the said laptop, a half-price copy of Norton 360 and a network cable.

The laptop comes with an Intel Pentium Dual-Core CPU, 2 GB of RAM and a 120 GB hard drive. The size of the hard drive may not set the world alight and neither, I suspect, will the Intel graphics adapter. Speaking of graphics, the glossy screen might not be to everyone’s taste, but its 1280×800 maximum resolution is definitely respectable. Windows Vista Home Premium is the included operating system, and a 90-day trial of Norton Internet Security comes too; I’ll wait for that to expire before adding in Norton 360. While I am not rushing to add software, the Home and Student version of Office 2007 has made its way on there.

As regards performance, the machine so far has done what I have asked of without any bother. Even so, battery life is far from extensive, with a maximum of ninety minutes. For long stints away from a power socket, an extra battery might be in order, and there is an offer show on the box in which the device came. That would add to the weight, though; at around 2.5 kg, it isn’t something that I would go carrying on a weekend backpacking trip. Despite those limitations, it will get some enough use for me to see how things proceed from here.

Toshiba Equium A200-1VO

Cheaper retail Vista?

2nd February 2007

Brain Livingston has described an intriguing way to go using the retail Upgrade editions of Vista to do a fresh installation without having either Windows 2000 or XP installed in the latest edition (free – there is a paid version, but I veer away from information overload) of the Windows Secrets email newsletter: install it twice! After the first time around, it cannot be activated because there is no previous version of Windows installed, yet it is possible to do a Vista to Vista “upgrade”, the second installation, and that can be activated. While it is strange behaviour, I suppose that it placates those who think that the full retail packages are far too expensive. They even think that in the U.S.; but “rip off” Britain is getting a lot worse deal because we are not seeing the benefits of the low dollar at all. If all was right, we should be getting Vista at half of the price that we are paying for it. It’s enough to drive you to going the OEM option or not upgrading at all, especially since XP will be supported until 2011 (I have seen 2014 mentioned in some places). Livingston will cover the whole OEM discussion in the next edition of Windows Secrets, and I, for one, will be very interested to see what he has to say.

Pondering travel device consolidation using an Apple iPad Pro 12.9″

18th September 2016

It was a change of job in 2010 that got me interested in using devices with internet connectivity on the go. Until then, the attraction of smartphones had not been strong, but I got myself a Blackberry on a pay as you go contract, but the entry device was painfully slow, and the connectivity was 2G. It was a very sluggish start.

It was supplemented by an Asus Eee PC that I connected to the internet using broadband dongles and a Wi-Fi hub. This cumbersome arrangement did not work well on short journeys and the variability of mobile network reception even meant that longer journeys were not all that successful either. Usage in hotels and guest houses though went better and that has meant that the miniature laptop came with me on many a journey.

In time, I moved away from broadband dongles to using smartphones as Wi-Fi hubs and that largely is how I work with laptops and tablets away from home unless there is hotel Wi-Fi available. Even trips overseas have seen me operate in much the same manner.

One feature is that we seem to carry quite a number of different gadgets with us at a time, which can cause inconvenience when going through airport security since they want to screen each device separately. When you are carrying a laptop, a tablet, a phone and a camera, it does take time to organise yourself, and you can meet impatient staff, as I found recently when returning from Oslo. Since checking in whatever you can as hold luggage helps to get around at least some of the nuisance, it also might be time for the use of better machinery to cut down on having to screen everything separately.

When you come away after an embarrassing episode, as I once did, the attractions of consolidating devices start to become plain. In fact, most probably could get with having just their phone. It is when you take activities like photography more seriously than the gadget count increases. After all, the main reason a laptop comes on trips beyond Britain and Ireland at all is to back up photos from my camera in case an SD card fails.

Apple iPad Pro 12.9″

Parking that thought for a while, let’s go back to March this year when temptation overcame what should have been a period of personal restraint. The result was that a 32 GB 12.9″ Apple iPad Pro came into my possession along with an Apple Pencil and a Logitech CREATE Backlit Keyboard Case. It should have done so, but the size of the screen did not strike me until I got it home from the Apple Store. That was one of the main attractions because maps can be shown with a greater field of view in a variety of apps, a big selling point for a hiker with a liking for maps, who wants more than what is on offer from Apple, Google or even Bing. The precision of the Pencil is another boon that makes surfing the website so much easier and the solid connection between the case and the iPad means that keyboard usage is less fiddly than it would if it used Bluetooth. Having tried them with the BBC iPlayer app, I can confirm that the sound from the speakers is better than any other mobile device that I have used.

Already, it has come with me on trips around England and Scotland. These weekend trips saw me leave the Asus Eee PC stay at home when it normally might have come with me, and taking just a single device along with a camera or two had its uses too. While the screen is large for reading on a train, I find that it works just as well so long as you have enough space. Otherwise, combining use of a suite of apps with recourse to the web does much of the information seeking needed while on a trip away, which meant that I was not found wanting. Battery life is good too, which helps.

Those trips allowed for a little light hotel room blog post editing too and the iPad Pro did what was needed, though the ergonomics of reaching for the screen with the Pencil meant that my arm was held aloft more than was ideal. Another thing that raised questions in my mind is the appearance of word suggestions at the bottom of the screen as if this were a mobile phone, given that I wondered if these were more of a hindrance than a help given that I just fancied typing and not pointing at the screen to complete words. Though copying and pasting works too, I have found the screen-based version a little clunky. Thus, I must see if the keyboard one works just as well, though the keyboard set up is typical of a Mac and that affects word selection. You need to use the OPTION key in the keyboard shortcut that you use for this and not COMMAND or CONTROL as you might do on a PC.

Transcend JetDrive Go 300

Even with these eccentricities, I was left wondering if it had any utility when it came to backing up photos from digital cameras, and there is an SD card adapter that makes this possible. A failure of foresight on my part meant that the 32 GB capacity now is an obvious limitation, but I think I might have hit on a possible solution that does not need to upload to an iCloud account. It involves clearing off the photos onto a 128 GB Transcend JetDrive Go 300 so they do not clog up the iPad Pro’s storage. That the device has both Lightning and USB connectivity means that you can plug it into a laptop or desktop PC afterwards too. If that were to work as I would hope, then the laptop/tablet combination that I have been using for all overseas trips could be replaced to allow a weight reduction as well as cutting the hassle at airport security.

Trips to Ireland still may see my sticking with a tried and tested combination though because I often have needed to do some printing while over there. While I have been able to print a test document from an iPad Mini on my home network-connected printer, not every model supports this and that for NFC or Air Print is not universal either. If this were not an obstacle, apps like Pages, Numbers and Keynote could have their uses for business-related work and there are web-based offerings from Google, Microsoft and others too.

In conclusion, I have found that my iPad Pro does so much of what I need on a trip away that retiring the laptop/tablet combination for most of these is not as outrageous as it once would have seemed. In some ways, iOS has a way to go yet, before it could take over from macOS, yet it remains in development so it will be interesting to see what happens next. All the while, hybrid devices running Windows 10 are becoming more pervasive, so that might provide Apple with the encouragement that it needs.

Do I still need serial numbers?

19th November 2007

My spot of bad luck with Windows in August highlighted the importance of hanging on to serial numbers for software that I had purchased over the internet and downloaded. Though I could get at the ones that I needed, they were retained in a motley mix of text files and emails; one even was rediscovered by pottering back to the website of the purveyor. While the security of the installation files themselves was another matter of some concern, I was rather more organised in that regard. Both of these are things that need checking before Windows falls to pieces on you and needs to be reinstalled. Of course, human nature, being what it is, means that we often find ourselves picking up the pieces after a calamity has struck when a spot of planning would have made things that bit easier.

Linux does make life easier on this front: commercial applications are anything but the dominant force that they are in the world of Windows. That means that serial numbers are few and far between, and I only need the one for VMware Workstation. The mention of VMware brings me to my retention of Windows, so knowing where serial numbers are located remains a good idea. Even so, I cloned my Windows VM so that any Windows restoration following a destructive crash should be a quicker affair. Now that I am a Linux user, Windows crashes should not encroach as much on my home computing any more and Linux should be more stable anyway…

Finding the number of observations in a SAS dataset

16th May 2007

There are a number of ways of finding out the number of observations (also known as records or rows) in a SAS data set and, while they are documented in a number of different places, I have decided to collect them together in one place. At the very least, it means that I can find them again.

First up is the most basic and least efficient method: read the whole data set and increment a counter to pick up its last value. The END option allows you to find the last value of count without recourse to FIRST.x/LAST.x logic.

data _null_;
set test end=eof;
count+1;
if eof then call symput(”nobs”,count);
run;

The next option is a more succinct SQL variation on the same idea. The colon prefix denotes a macro variable whose value is to be assigned in the SELECT statement; there should be no surprise as to what the COUNT(*) does…

proc sql noprint;
select count(*) into :nobs from test;
quit;

Continuing the SQL theme, accessing the dictionary tables is another route to the same end and has the advantage of needing to access the actual data set in question. You may have an efficiency saving when you are testing large datasets, but you are still reading some data here.

proc sql noprint;
select nobs into :nobs from dictionary.tables where libname=”WORK” and memname=”TEST”;
quit;

The most efficient way to do the trick is just to access the data set header. Here’s the data step way to do it:

data _null_;
if 0 then set test nobs=nobs;
call symputx(”nobs”,nobs);
stop;
run;

The IF/STOP logic stops the data set read in its tracks so that only the header is accessed, saving the time otherwise used to read the data from the data set. Using the SYMPUTX routine avoids the need to explicitly code a numeric to character transformation; it’s a SAS 9 feature, though.

I’ll finish with the most succinct and efficient way of all: the use of macro and SCL functions. It’s my preferred option, and you don’t need a SAS/AF licence to do it, either.

%let dsid=%sysfunc(open(work.test,in));
%let nobs=%sysfunc(attrn(&dsid,nobs));
%if &dsid > 0 %then %let rc=%sysfunc(close(&dsid));

The first line opens the data set, and the last one closes it; this is needed because you are not using data step or SCL and could leave a data set open, causing problems later. The second line is what captures the number of observations from the header of the data set using the SCL ATTRN function called by %SYSFUNC.

  • The content, images, and materials on this website are protected by copyright law and may not be reproduced, distributed, transmitted, displayed, or published in any form without the prior written permission of the copyright holder. All trademarks, logos, and brand names mentioned on this website are the property of their respective owners. Unauthorised use or duplication of these materials may violate copyright, trademark and other applicable laws, and could result in criminal or civil penalties.

  • All comments on this website are moderated and should contribute meaningfully to the discussion. We welcome diverse viewpoints expressed respectfully, but reserve the right to remove any comments containing hate speech, profanity, personal attacks, spam, promotional content or other inappropriate material without notice. Please note that comment moderation may take up to 24 hours, and that repeatedly violating these guidelines may result in being banned from future participation.

  • By submitting a comment, you grant us the right to publish and edit it as needed, whilst retaining your ownership of the content. Your email address will never be published or shared, though it is required for moderation purposes.