Skip to content

Simple PowerShell Log Function

Just to share it somewhere with someone, following my powershell basic log function.

Function Log-Message {
    [cmdletbinding()]
    Param (
        [parameter(Mandatory=$true)] [string] $Message,
        [string] $LogLevel = "info"
    )

    $currentDate = Get-Date -Format "yyyyMMdd"
    $currentTime = Get-Date -Format "HHmmss"

    $logMessage = '{0} {1} [{2}]: {3}' -f $currentDate,$currentTime,$logLevel,$message

    $logMessage >> $logFile
}

Enjoy it.

Translate to de es fr it pt ja

`error: archzfs: signature from "ArchZFS Bot <[email protected]>" is unknown trust` and how to solve it

I ran into this error error: archzfs: signature from "ArchZFS Bot <[email protected]>" is unknown trust on multiple machines over the last days.

Since one machine was working which is also running one of my dns servers, I was searching into this direction. After a while, I switched all my machines using this one dns server without fixing the real issue. Furthermore, by just trying to refresh keys with sudo pacman-key --refresh-keys, I ran into another error: gpg: WARNING: Tor is not running.

I could solve this with a one liner:

echo "no-use-tor" >> ~/.gnupg/dirmngr.conf

Next step was finally to delete the broken key and re-import ist again.

sudo pacman-key -d DDF7DB817396A49B2A2723F7403BD972F75D9D76
sudo pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
sudo pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76

After running through all this steps, I was able to run a system update again with pacman.

Thanks to this issue report on github, this entry on redit and this entry on gnupg.org.

Translate to de es fr it pt ja

My Microsoft Windows Terminal settings with vi keybindings and zen burn

I've started playing with the Microsoft Windows Terminal.

My settings.json now contains some simple VI keybindings to easy up creating of tabs and panes. Furthermore, I am a big fan of the zenburn color scheme. You can find your settings.json in the path %userprofile%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState.

// This file was initially generated by Windows Terminal 1.0.1401.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.
// located in: `%userprofile%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState`

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    // "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "defaultProfile": "{00000000-0000-0000-ba54-000000000002}",

    // You can add more global application settings here.
    // To learn more about global settings, visit https://aka.ms/terminal-global-settings

    // If enabled, selections are automatically copied to your clipboard.
    "copyOnSelect": false,

    // If enabled, formatted data is also copied to your clipboard
    "copyFormatting": false,

    // A profile specifies a command to execute paired with information about how it should look and feel.
    // Each one of them will appear in the 'New Tab' dropdown,
    //   and can be invoked from the commandline with `wt.exe -p xxx`
    // To learn more about profiles, visit https://aka.ms/terminal-profile-settings
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "colorScheme" : "Zenburn"
        },
        "list":
        [
        // BO: Taken from: https://stackoverflow.com/questions/56839307/adding-git-bash-to-the-new-windows-terminal#
            {
                "guid": "{00000000-0000-0000-ba54-000000000002}",
                "acrylicOpacity" : 0.75,
                "closeOnExit" : true,
                //if you have installed windows git globally for all users
                "commandline" : "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l",
                //if you have installed windows git only for one user
                // "commandline" : "\"%LOCALAPPDATA%\\Programs\\Git\\bin\\bash.exe\" -i -l",
                "cursorColor" : "#FFFFFF",
                "cursorShape" : "bar",
                "fontFace" : "Consolas",
                "fontSize" : 10,
                "historySize" : 9001,
                "icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico",
                "name" : "Bash",
                "padding" : "0, 0, 0, 0",
                "snapOnInput" : true,
                "startingDirectory" : "%USERPROFILE%",
                "useAcrylic" : true
            },
        // BO: Taken from: https://stackoverflow.com/questions/56839307/adding-git-bash-to-the-new-windows-terminal#
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command Prompt",
                "commandline": "cmd.exe",
                "hidden": false
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell",
                "source": "Windows.Terminal.PowershellCore"
            },
            {
                "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
                "hidden": false,
                "name": "Debian",
                "source": "Windows.Terminal.Wsl"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            }
        ]
    },
    // Add custom color schemes to this array.
    // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
    "schemes": [
        // @see: https://github.com/agkozak/windows-terminal-zenburn
        {
            "background" : "#3A3A3A",
            "black" : "#1E2320",
            "blue" : "#506070",
            "brightBlack" : "#709080",
            "brightBlue" : "#94BFF3",
            "brightCyan" : "#93E0E3",
            "brightGreen" : "#C3BF9F",
            "brightPurple" : "#EC93D3",
            "brightRed" : "#DCA3A3",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#F0DFAF",
            "cyan" : "#8CD0D3",
            "foreground" : "#DCDCCC",
            "green" : "#60B48A",
            "name" : "Zenburn",
            "purple" : "#DC8CC3",
            "red" : "#D78787",
            "white" : "#DCDCCC",
            "yellow" : "#DFAF8F"
        },
        {
            "background" : "#1C1C1C",
            "black" : "#1E2320",
            "blue" : "#506070",
            "brightBlack" : "#709080",
            "brightBlue" : "#94BFF3",
            "brightCyan" : "#93E0E3",
            "brightGreen" : "#C3BF9F",
            "brightPurple" : "#EC93D3",
            "brightRed" : "#DCA3A3",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#F0DFAF",
            "cyan" : "#8CD0D3",
            "foreground" : "#DCDCCC",
            "green" : "#60B48A",
            "name" : "High-Contrast Zenburn",
            "purple" : "#DC8CC3",
            "red" : "#D78787",
            "white" : "#DCDCCC",
            "yellow" : "#DFAF8F"
        }
    ],
    // Add custom keybindings to this array.
    // To unbind a key combination from your defaults.json, set the command to "unbound".
    // To learn more about keybindings, visit https://aka.ms/terminal-keybindings
    "keybindings":
    [
        // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
        // These two lines additionally bind them to Ctrl+C and Ctrl+V.
        // To learn more about selection, visit https://aka.ms/terminal-selection
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
        { "command": "paste", "keys": "ctrl+v" },

        // Press Ctrl+Shift+F to open the search box
        { "command": "find", "keys": "ctrl+shift+f" },

        // Press Alt+Shift+D to open a new pane.
        // - "split": "auto" makes this pane open in the direction that provides the most surface area.
        // - "splitMode": "duplicate" makes the new pane use the focused pane's profile.
        // To learn more about panes, visit https://aka.ms/terminal-panes
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" },

        // Close Tab
        {"command" : "closeTab", "keys" : "ctrl+w"},
        // Open New Tab
        {"command":"newTab", "keys": "ctrl+t"},

        // Open new pane
        { "command": { "action": "splitPane", "splitMode": "duplicate", "split": "vertical" }, "keys": "alt+ctrl+l" },
        { "command": { "action": "splitPane", "splitMode": "duplicate", "split": "horizontal" }, "keys": "alt+ctrl+j" },
        { "command": { "action": "splitPane", "splitMode": "duplicate", "split": "auto" }, "keys": "alt+ctrl+ " },

        // Move around the panes
        { "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+j" },
        { "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+h" },
        { "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+l" },
        { "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+k" },

        // Resize panes
        { "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+j" },
        { "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+h" },
        { "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+l" },
        { "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+k" }
    ]
}
Translate to de es fr it pt ja

Microsoft Powershells output is not local system language independet or - why "query user" sometimes returns USERNAME and BENUTZERNAME

I am working in an enviroment where some systems have a locale (or how microsoft is calling it "culture") of "en-US" or "de-DE".

Today I had to debug a script that is not outputting something. After a while, I've figured out that the result of query user /server:<server> is returning objects with different properties.

If the current locale is en-US, the property USERNAME exists. If the current locale is de-DE, the property BENUTZERNAME exists.

This is pretty sad since I could not find a way to set the culture within my powershell script to en-US.

What I've tried and what did not worked.

[System.Threading.Thread]::CurrentThread.CurrentCulture = "de-DE";
[System.Threading.Thread]::CurrentThread.CurrentUICulture = "de-DE";
[cultureinfo]::currentculture = 'de-DE';
[cultureinfo]::CurrentUICulture = 'de-DE';
Set-Culture de-DE

How did I solved it? I've added an or condition to support both properties, which is sad.

Where-Object { ($_.USERNAME -like "*$userNameToFilterAgainstOrNull*") -or ($_.BENUTZERNAME -like "*$userNameToFilterAgainstOrNull*") }

Good luck!

Translate to de es fr it pt ja

Manage your windows installed software with chocolatey and backup your collection by using this little manager

While working more and more with windows, I wanted the freedom of having a centralized packagemanager under the hood to ease up "keeping software up to date" or manage installed software in general.

Right now, I ended up using chocolatey.

After using it and building up my "finest selection" of installed software, I wanted to backup this collection.

I found the needed powershell commands pretty fast. Since I am a lazy person, I wanted to even ease up this by just having two scripts doing all the "heavy work" for backing up and restore this software collection.

After 30 minutes of work, I was able to release version one of my chocolatey manager.

This is a simple wrapper to backup and restore packages maintained by chocolatey.

The "restore.sh" will install chocolatey if not installed. The "backup.sh" will create a local file containing the currently installed packages.

Hope I can put you too more into the lazy area with this.

Cheers, artodeto

Translate to de es fr it pt ja

How to set a proxy for Signal-Desktop on Windows

If you want to use signal behind a cooperate proxy, you have to write a little bat script to set some proxy variables in the environment before starting signal. Copy and paste the following code into a file like set_proxy_and_start_signal.bat.

:: ####
:: # Sets http and https proxy variables and starts signal.
:: ####
:: # @see: https://github.com/signalapp/Signal-Desktop/issues/1430#issuecomment-397229333
:: # @since: 2020-02-14
:: # @author: stev leibelt <[email protected]>
:: ####

set HTTP_PROXY=<your proxy>
set HTTPS_PROXY=%HTTP_PROXY%
start %LOCALAPPDATA%\Programs\signal-desktop\Signal.exe

If you want to know more here is the thread for this issue.

Translate to de es fr it pt ja

How to upgrade nextcloud from gui to next major version

So, nextcloud version 15.0.x is out already and whenever you are logging into your next cloud with your administrator account, you still get this "you are on the latest version" message.

Further more, you just got a update to version 14.0.x while waiting for version 15.0.x.

To fix this, all you have to do is to switch from the channel "stable" to "beta". After a page reload, you should see a version 15.0.x available. Do the upgrade and do not forget to switch back to the stable channel.

Translate to de es fr it pt ja

Zend Framework Kickstart or quick start script available

I was so bored setting up a zend framework application after another that I've created a simple script.

Sharing is caring, so you can find it on github with the lovely repository name phpzendframework_kickstarter.

This repository provides you two scripts to quickly create a new application from scratch (like a breeze and blazing fast within seconds ;-)).

git clone https://github.com/bazzline/php_zend_framework_kickstarter
bash php_zend_framework_kickstarter/create_application /path/to/the/application

See it working and that is it. All mandatory parts are a bash.

Translate to de es fr it pt ja

teamviewer 13 requires a desktop environment or login with lightdm etc, with startx it won't work

I stumbled upon the following quote while trying to figure out why teamview is failing silently.

WARNING!

teamviewer 13 requires a desktop environment or login with lightdm etc, with startx it won't work, the staff of teamviewer confirmed, startx feature won't come in this year, it seems reverting back to teamviewer 12 is the only option for startx folks.

source

The teamviewer people are pretty in the we don't give a fuck mood. So you either have to install bloat-ware on your pc or stick to an older version of teamviewer.

Translate to de es fr it pt ja
Categories: coding
Defined tags for this entry: ,
Vote for articles fresher than 7 days!
[0] 2170 hits

JDownloader and spontaneous core dump

JDownloader was working properly and than you just get core dumps all over again? Best try, upgrade your Java Runtime Environment.

sudo archlinux-java status
sudo pacman -S jre9-openjdk
sudo archlinux-java set jre9-openjdk
#if not needed anymore
sudo pacman -R jre8-openjdk

You need to update the $PATH variable. Either you restart your system or you open a new terminal to start JDownloader from their. All should work fine now.

Translate to de es fr it pt ja

Categories: os
Defined tags for this entry: , ,
Vote for articles fresher than 7 days!
Derzeitige Beurteilung: 1 of 5, 21 Stimme(n) 1521 hits

quick one, output the license for each composer.json project within a root path

A quick one since I have to alligne all my open source packages to theSPDX License List. To list all available licenses from my root path, I've quickly written this one liner.

find . -maxdepth 2 -name composer.json -type f -exec grep -i -H license {} \;

Boy, to write this one liner without having a look to one man-page took me ... well, ages.

Translate to de es fr it pt ja

Categories: coding
Defined tags for this entry: , , ,
Vote for articles fresher than 7 days!
Derzeitige Beurteilung: 1 of 5, 3 Stimme(n) 6786 hits

Ocramius ProxyManager or the great library that does the heavy lazy loading lifting for you

Within the next few lines, I will show you how you can use the proxy manager and how low the setup fee is compared to self written code.

The setup fee

Give is, that you have installed the ProxyManager with Composer. Than, create a script like the following (I will name it foo.php because I like it ;-)).

<?php
/**
 * @author stev leibelt <[email protected]>
 * @since 2017-12-12
 */

require_once __DIR__ . '/vendor/autoload.php';

use ProxyManager\Factory\LazyLoadingValueHolderFactory;
use ProxyManager\Configuration;

$configuration = new Configuration();
$configuration->setProxiesTargetDir(
    __DIR__ . '/../cache'
);

spl_autoload_register(
    $configuration->getProxyAutoloader()
);

class A
{
    /** @var mixed */
    private $foo;

    public function __construct(
        $foo
    ) {
        echo __METHOD__ . PHP_EOL;
        echo 'Something will take very long.' . PHP_EOL;
        sleep(5);
        $this->foo = $foo;
        echo 'Done.' . PHP_EOL;
    }

    public function __call($name, $arguments)
    {
        echo __METHOD__ . sprintf(
            'name: >>%s<<, list of arguments: >>%s<<.',
            $name,
            implode(
                ',',
                $arguments
            )
        ) . PHP_EOL;
    }

    public function foo()
    {
        echo $this->foo . PHP_EOL;
    }
}

class B extends A
{
    /** @var mixed */
    private $constructorFoo;

    /** @var bool */
    private $isNotInstantiated;

    public function __construct(
        $foo
    ) {
        echo __METHOD__ . PHP_EOL;
        echo 'Superfast.' . PHP_EOL;
        $this->constructorFoo       = $foo;
        $this->isNotInstantiated    = true;
        echo 'Done.' . PHP_EOL;
    }

    public function __call($name, $arguments)
    {
        $this->instantiateIfNeeded();

        parent::__call($name, $arguments); // TODO: Change the autogenerated stub
    }

    public function foo()
    {
        $this->instantiateIfNeeded();

        parent::foo(); // TODO: Change the autogenerated stub
    }

    private function instantiateIfNeeded()
    {
        if ($this->isNotInstantiated) {
            parent::__construct(
                $this->constructorFoo
            );

            $this->isNotInstantiated = false;
        }
    }
}

echo ':: Construct A' . PHP_EOL;
$a = new A('a');
echo ':: Construct B' . PHP_EOL;
$b = new B('b');
echo ':: Construct C' . PHP_EOL;
$factory = new LazyLoadingValueHolderFactory(
    $configuration
);
$c = $factory->createProxy(
    A::class,
    function (&amp; $wrappedObject, $proxy, $method, $parameters, &amp; $initializer) {
        $wrappedObject = new A('c'); // instantiation logic here
        $initializer   = null; // turning off further lazy initialization
    }
);

echo ':: Begin A' . PHP_EOL;
$a->foo();
$a->bar('foo', 'bar', 'baz');
echo ':: End A' . PHP_EOL;

echo ':: Begin B' . PHP_EOL;
$b->foo();
$b->bar('foo', 'bar', 'baz');
echo ':: End B' . PHP_EOL;

echo ':: Begin C' . PHP_EOL;
$c->foo();
$c->bar('foo', 'bar', 'baz');
echo ':: End C' . PHP_EOL;

And finally, execute it (clear && php foo.php).

What have we done - the explanation of the script

First, we are creating a class "A" that does some complicated stuff. Than, we are trying to implement our own lazy loading logic by creating a class "B". Afterwards we are instantiating A, B and A with the proxy manager. Finally, we are calling two methods for each instantiation.

When you execute the script, you quickly will figure out that the instantiation of $a is taking as long as expected while $b and $c are almost instantly there. At the end $b and $c will react the same.

Why should you use the proxy manager if you can archive the same stuff with "just some lines of code"? Because the proxy manager reduced your maintenance coast. If "A" would change, you would have need to extend or change "B" as well (e.g. A gets another method) while you don't have to touch any piece of code when using the proxy manager. Secondly, proxy manager is well tested and used. If you find an issue, you can fix it since the code is open source and do something good for the world - because sharing is caring.

Translate to de es fr it pt ja

Categories: coding
Defined tags for this entry: , , ,
Vote for articles fresher than 7 days!
Derzeitige Beurteilung: 2 of 5, 2 Stimme(n) 2121 hits

Firefox 56 to 57, my changed list of essential extensions to gain back freedom on the broken internet

Well, after ages and lots of donated money to the extension developer (yes, I do an you should do the same!), mozilla made fundamental changes in ther way how to extend their browser. Because of that, I need to update my collection of extensions.

Firefox 57? Thats the browser where you have to open "about:config", search for "pocket" and set the value to false for "extension.pocket.enabled" and "browser.toolbarbuttons.introduced.pocket-button". You also have to disable all the spam on your blank start page (new tab). And of course, disable and remove all cliqz related shit.

Here is my new list working with firefox 57. Lets see how well things are working out. The mozilla extension search results are as bad as google search results today.

  • AdBlocker for YouTube
  • HTTPSEverywhere
  • Open With
  • Tree Style Tab
  • Tree Style Tab Mouse Wheel
  • uBlock Origin
  • uMatrix
  • Disconnect
  • Vim Vixen or Tridactyl
  • Empty Cache Button
  • Tab Suspender
  • Quick Accept-Language Switcher
  • User-Agent Switcher
  • I don't care about cookies
  • Cookie AutoDelete

For the log, here is my old list working in firefox 56.

  • BarTab Lite
  • AdBlocker for YouTube
  • HTTPSEverywhere
  • Open With
  • Tree Style Tab
  • uBlock Origin
  • uMatrix
  • Disconnect
  • Cache Status
  • checkCompatibility
  • Firebug
  • Flashblock
  • HttpRequester
  • Locale Switcher
  • NoScript
  • Privacy Settings
  • Random Agent Spoofer
  • RequestPolicy
  • Selenium IDE Button
  • Self-Destructing Cookies
  • Session Manager
  • YouTube and Audio Downloader
  • Pentadactyl
    Translate to de es fr it pt ja

aur/teamviewer 12.0.85001 is not starting anymore on an arch linux system

Just had the "joy" to figure out that teamviewer is not starting anymore on my arch linux.

I restarted the deamon and also launched teamviewer from the command line.

Init...
CheckCPU: SSE2 support: yes
XRandRWait: No value set. Using default.
XRandRWait: Started by user.
Checking setup...
Launching TeamViewer ...
Launching TeamViewer GUI ...

And at "Launching TeamViewer GUI ..." that was it, no entries in an error log or the journal, nothing. After having a look into the aur package log, it quickly turned out to be a solvable problem.

wget https://archive.archlinux.org/packages/l/lib32-freetype2/lib32-freetype2-2.8-2-x86_64.pkg.tar.xz
sudo pacman -U lib32-freetype2-2.8-2-x86_64.pkg.tar.xz 

Looks like teamviewer decided to use an old and deprecated version of freetype2 within his bugfix release.

Translate to de es fr it pt ja

MySQL and a known bug since 2003 about the auto_increment value

We detected a bug that is known since 2003.

The value of an auto increment column is set back to zero when you are having an empty table and restarting the MySQL DBMS. We run into this issue by using the auto increment value as a history id into a second table.

How can you work around this issue?

The easiest way is to order by id descending on the second table or to setup a "start up" shell script that calculates and sets the auto increment value.

Translate to de es fr it pt ja

Debian 8 owncloud client signature verification NO_PUBKEY 4ABE1AC7557BEFF9

You have a Debian 8 installation and get an error like the following when you want to install or update the owncloud client?

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4ABE1AC7557BEFF9

W: Failed to fetch http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/Release  

W: Some index files failed to download. They have been ignored, or old ones used instead.

Execute the following command and try it again.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4ABE1AC7557BEFF9
Translate to de es fr it pt ja

disable automatic selected "Allow comments to this entry" for each entry in serendipity (s9y) blog system

For real, I was searching for this option for a year now and couldn't find an answer in a readme.

By disabling users in an other setup and restricting other users right, I found the magic checkbox I was searching for. Following the clickpath: Settings->Users->Edit User->Default settings for new entries->Allow comments to this entry Choose the radio button "no" and everything is working as expected :-).

Translate to de es fr it pt ja

Categories: others
Defined tags for this entry: ,
Vote for articles fresher than 7 days!
[0] 9769 hits

How to upgrade the bios of a lenovo x250 on linux (and other not windows systems)

So, you want to update the bios of your lenovo x250 by downloading this iso from that page?

Read this readme. But also read the following lines. Lenovo missed "just some little facts".

First of all, I was not able to dump that iso to an usb stick by using dd. Secondly and most importatn, you have to go in your bios setup and change your boot up way from "legacy" to "uefi". After you have done that, your burned optical disk will boot up and you can finally upgrade your bios.

Translate to de es fr it pt ja

Categories: os
Defined tags for this entry: , , ,
Vote for articles fresher than 7 days!
[0] 5794 hits

Wie wird man Terrorist? Durch HTTPS und Tails

[...]
The charge sheet includes one count of preparation of terrorism "by researching an encryption programme, developing an encrypted version of his blog site, and publishing the instructions around the use of [the] programme on his blog site."
[...]

HTTPS

Tails

Translate to de es fr it pt ja

simple bash function to prefix any given command with sudo if needed

The title of this entry tells it all. I've create a simple bash function to prefix any given command expression with sudo if needed. If needed means, if you are not root. It is totally simple but to be true, it took me time to use my bash skills to write it. Imagine you now how to draw a cloud, the sun, a tree and a house and once you figure out how to concatenate all of that elements to draw a picture for your parents ;-).

if [[ $# -lt 1 ]];
then
    echo "Invalid number of arguments provided"
    echo "${FUNCNAME[0]} <command to execute>"
    return 1
fi

if [[ $(whoami) == "root" ]];
then
    [email protected]
else
    sudo [email protected]
fi

Looks like Chuck Norris is using github right now. Github is down, otherwise I would add a link to the fitting repository commit. Github is back online, here is the promised link to the commit.

Translate to de es fr it pt ja

serendipity command line update released

I am happy to announce the initial and 1.0.0 of the serendipity command line update script. It is designed to do the boring work of updating against the latest release. The workflow is dead simple.

  • fetch latest version
  • check if latest version is installed
  • make a backup of the existing installation
  • update

Enjoy using it. If you find an error, feel free to open an issue or a pull request.

Translate to de es fr it pt ja

Vim 8.0 released

This the first major Vim release in ten years. There are interesting new features, many small improvements and lots of bug fixes.

Among the new features are:
- Asynchronous I/O support, channels, JSON
- Jobs
- Timers
- Partials, Lambdas and Closures
- Packages
- New style testing
- Viminfo merged by timestamp
- GTK+ 3 support
- MS-Windows DirectX support
[...]

Quelle

Translate to de es fr it pt ja