21 May 2024
Since Google decided to shut down the excellent free G Suite that I used for years I had to find an alternative. Google Workspace is ridiculously priced for a family domain and unfortunately Microsoft has also removed the option for personalized email addresses in Outlook.com / O365 Family.
After sifting through numerous other alternatives I settled on Apple’s Custom Email Domain with iCloud Mail, pretty easy choice in the end since it’s a lot of bang for the buck and easy to setup.
The only little snag I ran into was setting up the mail account in my Outlook Mobile (Android). Setting it up as an iCloud provider was easy but then it automatically used my @icloud.com address and no option to change that to my custom address but after numerous tries I finally found the correct configuration via IMAP.
Apple ID App-specific Password
First you need to setup an app-specific password at appleid.com as described here.
Outlook Mobile Configuration
Email Address: daniel@example.com
Display Name: Daniel Wikar
Description:
IMAP Host Name: imap.mail.me.com
Port: 993
Security Type: SSL/TLS
IMAP Username: <your-account>@icloud.com
IMAP Password: <your-app-specific-password>
SMTP Host Name: smtp.mail.me.com
Port: 587
Security Type: StartTls
SMTP Username: <your-account>@icloud.com
SMTP Password: <your-app-specific-password>
Using StartTls as the Security Type for SMTP was the key in getting it to work.
Also confirmed to be working with the excellent K-9 Mail and should work with any third-party client supporting SSL/TLS + StartTls.
15 Jul 2022
One of the main reasons I wanted to get netboot.xyz up and running was to simplify installation of various linux machines and more specifically Flatcar Container Linux which have really caught my interest as a minimal, immutable and always up-to-date container host.
Kinvolk, the company behind Flatcar, was also acquired by Microsoft recently which piqued my curiosity even more.
I wrote up this little step-by-step bare metal installation guide and to be able to follow this method you would need to have a spare Linux instance with Docker. I used my OpenWRT router once again but you could also use WSL2 on Windows, a Raspberry Pi with Docker or whatever you prefer.
1. Create password
Using your existing Linux/Docker instance create a password hash to be used in the config.yaml for Flatcar.
docker run --rm --interactive --tty fscm/mkpasswd --method=SHA-512 --rounds=4096 yourpassword
https://www.flatcar.org/docs/latest/provisioning/cl-config/examples/#generating-a-password-hash
2. Create config.yaml (Container Linux Config)
I created a directory /home/daniel/ignition
and this minimal config.yaml
.
In the password_hash
section paste the hash from 1. I also added a static IP (additional comment under 6) and made my user a member of the sudo group.
passwd:
users:
- name: daniel
password_hash: "$6$rounds=4096$this_is_where_you_paste_your_really_long_password_hash"
groups: ["sudo"]
networkd:
units:
- name: enp0s25.network
contents: |
[Match]
Name=enp0s25
[Network]
DNS=1.1.1.1
Address=192.168.100.252/24
Gateway=192.168.100.1
https://www.flatcar.org/docs/latest/provisioning/cl-config/examples/
https://www.flatcar.org/docs/latest/provisioning/config-transpiler/configuration/
3. Transpile config.yaml into ignition.json
cat config.yaml | docker run --rm -i ghcr.io/flatcar-linux/ct:latest > ignition.json
https://flatcar-linux.org/docs/latest/provisioning/config-transpiler/
4. Setup local webserver
Setup a local webserver to host the ignition.json file and serve this during the Flatcar installation. I decided to share the directory /home/daniel/ignition
using port 7080 in order to not conflict with an existing webserver.
docker run --name nginx-ignition -v /home/daniel/ignition:/usr/share/nginx/html:ro -p 7080:80 -d nginx
5. Local installation
Everything is now prepared and we’re ready to boot into a live version of Flatcar either via ISO or PXE on the target machine.
Using netboot.xyz you can pass the ignition.json already during first boot but since we’re going to do a local installation we can skip this step.
Once booted you will automatically be logged into a shell on the console without prompting for a password.
Now it’s time to transfer the ignition.json file locally using the webserver from 4.
wget http://192.168.1.1:7080/ignition.json
If you are unsure of your disk setup you can check this with…
And you then perform the installation by running…
sudo flatcar-install -d /dev/sda -i ignition.json
6. Network configuration (Optional)
During my first installation I specified the wrong interface name (should have been Name=enp0s25
) in the config.yaml
and I haven’t figured out how the automatic naming works so on my second try I ran…
To list all active network devices…
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0 1500 0 0 0 0 7 0 0 0 BMU
enp0s25 1500 58858 0 420 0 26959 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
Then I modified config.yaml
with the correct interface and transpiled again through step 3 before installing 5.
Done
Now you should be able to ssh into your freshly installed Flatcar Container Linux instance.
Full documentation is found here.
Good luck!
12 Jul 2022
There are numerous ways to get netboot.xyz running as a PXE server together with OpenWRT but this is the simplest (and only) way I got it to work 😊
Inspired by this forum post but I couldn’t get it to boot straight from http so instead I did the following.
1. Created a tfpt-directory in the root of OpenWRT
2. Downloaded netboot.xyz.kpxe and netboot.xyz.efi locally
cd /tftp
curl http://boot.netboot.xyz/ipxe/netboot.xyz.kpxe -o netboot.xyz.kpxe
curl http://boot.netboot.xyz/ipxe/netboot.xyz.efi -o netboot.xyz.efi
3. Modified /etc/dnsmasq.conf to act as TFTP server
Add this block to the end of the file.
####################################
# TFTP Server custom configuration #
####################################
enable-tftp
tftp-root=/tftp
dhcp-boot=netboot.xyz.efi
/etc/init.d/dnsmasq restart
(Couldn’t get the BIOS/EFI identification to work so I manually switched between netboot.xyz.kpxe and netboot.xyz.efi)
4. Finally a crucial but hard to find configuration change for OpenWRT
Disable the LAN interface to announce itself as a Local IPv6 DNS server
which in turn somehow conflicted with the iPXE DNS lookup (even though booted in IPv4 mode).
Available through the OpenWRT interface. Network -> Interfaces, LAN -> Edit, DHCP Server ->
IPv6 Settings. Untick this box if ticked.
Identified through this thread.
Done
Good luck!
24 Nov 2018
Creative and critical thinking are key factors in both creating and sustaining success.
During my career I have come across two different groups of people, as always there’s really a spectra between the two but to be able to clearly describe the distinguishable differences I’ll focus on the extremes; Thinkers and Repeaters
So what’s the characteristics of a Thinker? They think for themselves, have a mind of their own and have the ability to create new creative/critical thoughts out of thin air based on their own experience and competence. Nothing is taken for granted and they don’t trust blindly, everything has to be proven and evaluated. They welcome external input for inspiration, challengement or enlightenment - but this is something they consciously evaluate to validate, oppose or reshape their own thoughts.
“Knowledge has to be improved, challenged, and increased constantly, or it vanishes.” - Peter F. Drucker
The Repeaters on the other hand can seem and sound very initiated, they can be charismatic and well-spoken but the actual words coming out of their mouths are based not on thoughts of their own but rather the words of other Thinkers or Repeaters. They depend on other people to do the thinking for them to repeat and present as their own, be it colleagues, subordinates, consultants or other external parties with or without agendas of their own.
Repeaters have a hard time (often unknowingly) separating right from wrong, A from B, facts from opinions, helpful thoughts from hidden agendas, etc.
Repeaters repeating the words of other Repeaters often end up in a ‘whispering game’ where the actual initial thought from a Thinker is lost or messed up along the way.
The lack of true understanding can even make the Repeaters’ claims end up in a complete jumbled mess where the ‘thought’ in one sentence is opposed already in the next (again unknowingly).
Sometimes it’s easy and sometimes it’s really hard to distinguish a Repeater from a Thinker. There are professional and clever Repeaters who have built their whole career in being experts at repeating other’s thoughts as their own and doing it really well.
For some nuance it’s hard to be a Thinker in every single domain but there are clearly severe drawbacks in being a Repeater within your main profession, both for yourself and for the actual Thinkers around you.
So, are you a Thinker or a Repeater? How about your manager? Your colleagues?
Crossposted @ LinkedIn
11 Jun 2018
Edit: This has also been confirmed working in Excel 2019 / 2021 / Office 365.
Ever since the release of Excel 2016 a compatible SQL Server Data Mining Add-in has been missing. There has been numerous requests for Microsoft to release an official update but so far this hasn’t happened.
Having Excel 2013 and Excel 2016 installed side-by-side has been used as a workaround to get the Excel 2013 DM Add-In semi-working also for Excel 2016. The following registry hack is allowing the otherwise blocked installation to proceed for Excel 2016 without the need for an actual Excel 2013 installation.
-
Download Microsoft® SQL Server® 2012 SP4 Data Mining Add-ins for Microsoft® Office® (Latest official version)
-
Insert the following entry in the Windows registry (.reg file here but use at your own risk)
-
Proceed with installation which now shouldn’t complain about missing Excel 2010/2013