Unix command line: How to output to command line and file at the same time

Published 2017-11-22, 12:34

Use:

foo | tee output.file

https://stackoverflow.com/questions/418896/how-to-redirect-output-to-a-file-and-stdout/418899#418899

Send tabs/URLs between desktop and iOS device

Published 2017-10-18, 15:26

Yay, with Firefox iOS it is finally possible to send tabs and URLs between desktop and iOS devices, in both directions.

iOS to Desktop

From Firefox for iOS to desktop computer, the functionality has its own button in the „tab options menu“ and a great explanation in the knowledge base.

What isn’t mentioned there is that Firefox for iOS also adds a „Send Tab“ share extension to iOS that is accessible from normal Safari. You can use it to send any open tab from Safari to your Firefox Desktop installations. You get a OS notification and the tab is automatically opened in the background when the information is received after a few seconds.

Desktop to iOS

In the other direction, from desktop computer to smartphone, you can use the „Send Tab to device“ extension to add a new Option „Send Page to Device“ to the right click menu of websites and tabs. Using it sends the URL to Firefox for iOS were it also opens a tab.

Only thing missing here is a push notification that also tells you that there is data waiting for you when Firefox iOS is not already open and a simpler way to get the URL from Firefox iOS to Safari – right now one has to manually copy the URL over.

Disable Windows Defender real time protection with a Desktop Shortcut

Published 2017-10-05, 17:31

I love how Microsoft made third party anti virus protection obsolete with Defender – it just works.

Unfortunately sometimes I need to disable (and later enable again) it’s real time protection feature because it slows down processes I know are secure – for example Gradle builds in Android Studio.

It normally takes 7 clicks to enable or disable Defender real time protection: Systray -> double click on icon -> „Virus & threat protection“ -> „Virus & threat protection settings“ -> Toggle „Real-time protection“ -> User Account Control „Yes“.

Fortunately there is a way to automate this in Powershell:

Set-MpPreference -DisableRealtimeMonitoring $true

Which means we can also create a desktop shortcut (Right click on Desktop -> New -> Shortcut):

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:/disable.ps1"

(„C:/disable.ps1“ is the file where I put the first code snippet)

In the properties you have to click „Advanced“ to activate „Run as Administrator“ so it can actually be executed.

Then to give it a nice icon, click „Change Icon“ in the shortcut properties and „open“ the icons from „%systemroot%\system32\imageres.dll“. There you’ll find a nice dark red Defender like „badge“ icon with a white x:

The real time protection feature will turn itself back on after some time. Alternatively you could replace „$true“ with „$false“ in a copy of that script to have a shortcut to enable it again. Or spend some time to figure out how to actually „toggle“ in on and off with the same shortcut by somehow doing this in the Powershell script. (Let me know if you do!)

Source: Script via StackOverflow answer by ‚djsmiley2k‘ to my question and icons file for the shortcut

Website Performance, Code, Images and SEO Testing Tools

Published 2017-09-29, 12:48

There are loads of web site and page analyzer tools out there that look at them under performance, quality, image compression, code or SEO aspects. Many are just (thinly veiled) lead generation tools that don’t really tell the true story, but some are actually useful. As I need them again and again, I collected them here:

More on the marketing-y, rarely even questionable side, but sometimes still interesting to look at:

About StackOverflow

Published 2017-09-22, 16:35

I tried to post a few questions on StackOverflow in the last days which at times was a very negative experience: I was downvoted, got negative comments and of course got my questions closed as „offtopic“.

I am not the only one with that problem:

  1. https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575d
  2. https://movingfulcrum.com/stackoverflow-modding-itself-out-of-existence/
    • https://news.ycombinator.com/item?id=9869886

Why do I write this down now? So I don’t start googling for exactly these posts and experiences the next time I am in this position, but can just go to this post, read some of these rants and accept it.

Then I can go back and see that maybe someone actually did provide a great comment or answer. Sometimes that still happens.

Rewriting history in Git

Published 2017-09-20, 21:00

Once again I was confused about rewriting history in Git:

As I am not a git power user – I use a GUI, SourceTree of GitKraken – for the more complicated commands and features, my mind tends to just „crash“ now and then and forget what they are and how they work.

A bit later I had it figured out again:

During these 15 minutes I googled around and found some nice explanations I now want to conserve for future reference:

And an additional nice thing to know and use when playing around with those:

Move (clone and close) Github issues to a different repository

Published 2017-08-04, 11:45

If you have any projects on Github that span multiple repositories you know the pain when someone creates a valid issue, but uses the wrong repo to do so. Of course you could tell them to „Create another issue in the correct repo and gtfo“ but that a) wouldn’t be very nice and b) is a quite a lot of work and c) probably wouldn’t have the intended effect to grow your Github community.

So you need a way to move issues betweens repos.

Github doesn’t support this out of the box, but of course some other people jumped in and created things that do. Here is an overview of my research on this:

How to develop iOS 10.3.x apps in Xcode 8.2.x

Published 2017-07-10, 18:44

If you work on an older version of Mac OS, for example because Apple decided your Macbook is to old to upgrade to a recent version, you might be stuck with Xcode 8.2.x to develop and test your iOS apps. Unfortunately this can lead to this nice error message if you made the mistake to upgrade your iPhone to iOS 10.3:

Could not locate device support files
This iPhone 6s is running iOS 10.3.1 (14E304), which may not be supported by this version of Xcode.

This is because the old Xcode doesn’t get these „device support files“ via updates any more. Luckily the internet is here to rescue you.

  1. Download https://www.dropbox.com/s/i1f7q8w3vgr2ozl/10.3%20%2814E269%29.zip?dl=0 and extract it
  2. Click on „Finder“ in MAC OS
  3. Click on „Go to Folder“
  4. Paste this path:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  5. Paste your extracted „10.3 (14E269)“ directory to that place.
  6. Quit Xcode and restart it (and maybe the whole Mac).
  7. You can now run your projects successfully on your real device again.

Adapted from source: https://gist.github.com/steipete/d9b44d8e9f341e81414e86d7ff8fb62d#gistcomment-2041802

Overview of the trakt.tv API Concepts and Endpoints

Published 2017-07-03, 17:24

trakt.tv offers a very comprehensive API with an amazing documentation. But thorough as it is – and the technical details like authentication, data formats, parameters etc. are really, really well covered – it can also feel a bit overwhelming when you jump in and want to get a first overview, or are only looking for some specific data or type of data.

As I just did exactly that, I went through the whole documentation and extracted the most relevant information. The order of this article, especially the API endpoints, follows the official API documentation. I only added some more headlines to group the endpoints in a better way:

Concepts

The API only defines some terms in „Terminology“, but there is a lot more to understand what there is and how it is all connected:

Use the checkboxes next to the terms to deactivate them in the list below. You can also set if they only should be deactivated or completely hidden.

Emojis Legend

These Emojis are used in the official documentation to indicate what functionality is offered by or needed for an endpoint.

Data Endpoints

These return the nitty-gritty of Trakt: Lots of data about shows and movies and all the things related to them:

User Endoints

If it matters which user is logged in via OAuth, these endpoints are collected here:

Master Data Endpoints

These endpoints offer mostly static data that should be retrieved once and then be cached for further use:

And that’s it! All essential API endpoints of the trakt.tv API, groupd by type and explained a bit more.

Google Spreadsheet: Output current date (statically)

Published 2017-06-30, 13:03

Imagine you have a Google Spreadsheet with a „last active“ column where you e.g. log the date when you last worked on the line item. You don’t want to have to type the date every time you change something as a) typing is cumbersome and b) you don’t even know the current date anyway.

Normally there is a default keyboard shortcut for that in Google Spreadsheets:

Insert time: Ctrl + Shift + ;

Unfortunately this doesn’t really work with a German keyboard (in Windows 10 with English OS language). In Chrome you can replace the Semicolon with Ü, but in Firefox this doesn’t work and I found no way to trigger this shortcut 🙁

Two solutions:

  1. Create a field with formula `=TODAY()`, maybe in the second row of the headline of the table. (Unfortunately this value will be recalculated on every change – so you can’t just use THAT everywhere to get the date – this value will change.) Now you can just Ctrl + C to copy that value and then Ctrl + Shift + V to output its value (and not copy the formula) to the target cell.
  2. Add a „Date“ validation to your column. Now you can double click the cell to get a nice calendar tooltip thingie where you can just click on the date you want.

To be honest 1) doesn’t really solve b), but you can leave the formula from 1) in the subheader for that anyway and just use 2) use this instead of the value pasting from 1).

19 queries. 0,108 seconds.