Matthias Schoettle

Software Developer

Move directory from one repository to another, preserving history

I just moved one directory within a Git repository to a directory within another repository including its history. For example:

repositoryA/
.........../directoryToKeep
.........../otherDirectory
.........../someFile.ext

repositoryB/
.........../someStuff

The goal is to move directoryToKeep into repositoryB with its history, i.e., all commits that affect directory1. If instead, you want to create a repository just for the contents of directoryToKeep, just skip the last step of the preparation of the source repository.

If you have files tracked by git-lfs, please note the update at the bottom first.

Continue reading

How to drag music and videos onto iPhone/iPad using iTunes

On an iPad I previously simply dragged some videos on to the device in iTunes to copy them onto it. For some reason this did not work for my iPhone when I tried to do the same. You can of course add the media to the iTunes library and select to sync it on to the device that way. But if you don’t want to manage your media through iTunes that’s cumbersome.

To be able to do this without using the iTunes library, the option “Manually manage music and videos” needs to be enabled. You can find it on the Summary page if your device under the Options section at the bottom. be able to simply drag media files from the Finder to your device in iTunes. Click Apply after and now it should work.

Deploying Angular application on Apache server

If you need to deploy an Angular application on a server running Apache, and are making use of routing for navigation, you can’t just upload the built application onto the server and be done with it. As soon as you navigate to another path, the Apache server will try to look for that resource on the server and most likely will give you an 404 Not Found error.

You need to rewrite all the URLs to the index.html so that the Angular application can take care of it. Your server needs to support mod_rewrite for that. If that is the case, you can upload a file .htaccess with the following content to your directory where the Angular application resides in.

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/assets/(.+)$
RewriteRule ^(.+)$ index.html?path=$1 [L]

This will rewrite all requests to the index.html file and append any extra path to it. Unless, the request is for an existing file or directory on the server, then it will not rewrite it. This is necessary for the additional resources that will need to be loaded, such as CSS and JS files and images.

In order to get the necessary feedback when a resource is requested that does not exist, the third condition excludes to rewrite any request located inside the assets folder.

Digging into the Firefox UI for the tab close button

Oops … last year a new Firefox version broke the “close button on tab hover” tweak and I mentioned I will write a separate blog post on how I found out why and how to fix it. Life happened, but fortunately I wrote down bullet points about what I did.

It seems that with Firefox 54 something in the UI changed which broke the functionality. Fortunately, it wasn’t the removal of the ability to customize the UI using userChrome.css. In order to find out why the CSS selector didn’t work anymore, it was necessary to see how a tab was structured in XUL.

A while ago I used DOM Inspector. The current Firefox version then was 57, but it didn’t allow legacy extensions anymore. So I went back to the last 54.x version, which allowed the installation of this “legacy” extension. Unfortunately, I could not open its UI. I did however find the extension InspectorWidget. It has a nifty shortcut to open the inspector for the desired element right away. Hold Ctrl+Shift while clicking on the desired UI element.

Using the inspector I found out that there was a new CSS rule that set display: none for certain elements, one of them being the close button for tabs. To find out the initial/default value I used the computed rules, which showed -moz-box. This allowed to add display: -moz-box !important to the rule for hovered tabs to make it work again.

While it doesn’t seem possible to inspect the UI anymore with Firefox Quantum due to the introduction of WebExtensions, the CSS rules still work. However, it is unsure whether these kind of UI customizations will stay. There seemed to be plans to remove it., but perhaps they realized how many users are using this to tweak their UI since extensions are not allowed to do it anymore. This bug report to collect usage of userChrome.css supports this theory.

AirDrop on macOS working unreliably

AirDrop is quite convenient to send files to a colleague or another device without having to send an email or uploading it somewhere. At some point (I forgot with which exact OSX version), AirDrop was updated and required Bluetooth. Since then, it often occurs that the device I want to share a file with does not appear. However, there is this option to “Search for older Macs”. In the past, I’ve only used it to send files to a Mac running an older OSX version.

However, as it turns out, even for newer macOS versions, if this is done on both devices, it works much better and the device appears almost immediately.

iOS: How to fix/change Voicemail number

Recently, a friends voice mail “button” did not work anymore. Upon calling the voice mail, an audio error message appeared saying that the voice mail is not available or cannot be reached (something like that).

Unfortunately, Apple does not want you to just change the associated voice mail phone number that is called when tapping on “Voicemail”.

Fortunately, there is a shortcut:

  1. Go to the phone’s keypad
  2. Dial *#5005*86# and “call it”
  3. A phone number will appear, which is the one currently associated with the voice mail.  Write this down just in case.
  4. Now, call *5005*86*<insertPhoneNumber># and replace the placeholder with your phone number, starting with the country code (1 in this case for North America). For example, 14381234567.
  5. The voice mail button should now work.

This approach worked on the TELUS network (using Koodo). If it doesn’t work for you, revert the phone number to the one written down in step 3 and contact your provider.

Source: planken.org

« Older posts

© 2019 Matthias Schoettle

Theme by Anders NorenUp ↑