Setting Up Calendar and Contact Sync On Debian

2019-08-16

Why set this up when its free? On iPhone it locks you into Apple products while on Android, Google is using that data to analyze you and create a profile of you for itself and advertisers to target you. Your contact list and calendar both contain valuable information about you that shouldn't be trusted with 3rd parties that don't have your best interests in mind.

Onto the technical side, CalDav handles calendar sync and CalDav handles contact sync. Baikal is chosen since it handles CalDav and CardDav. You need at least Apache and php installed. The instructions say php 5.5, but you shouldn't use that since the php 5 series is no longer supported. Php 7.3 installed from Debian repository worked for me. Download the current Baikal release from github and unpack in the web server directory. You'll need to be root to work in the server directory. Change owner of baikal/html to the web user, www-data on Debian. Next, edit the apache vhost in the apache config directory, /etc/apache2/sites-enabled/000-default.conf, following the install instructions. It sets up rewrite rules and directory access that it needs. If you have other programs running on port 80(web apps use 80 by default) keep the document root as /var/www/html and change the rewrite rules to RewriteRule /.well-known/carddav baikal/html/dav.php [R,L] RewriteRule /.well-known/caldav baikal/html/dav.php [R,L]. Save the file and restart apache to apply your changes. Your CalDav and CardDav server is ready to go, the web interface is available at servername/baikal/html/. This is running SQlite as the database, if you have many users you will likely run into issues and should setup mysql as the database.

You'll need to setup your clients to use the server, I use the DAV5x app on Android and the tbsync add on for Thunderbird. I'll cover client setup in another post.


Update Lenovo TS140 BIOS On Debian

2019-06-09

Step by Step Instructions with Lessons Learned:

  1. Download CentOS Live image with DE and install on thumbdrive
  2. Boot into CentOS
  3. Download Lenovo BIOS utility
  4. Install kernel-devel, kernel-headers and Lenovo BIOS Utility
  5. Reboot
  6. Run Lenovo BIOS Utility
    • Should reboot into BIOS and show progress bar
    • If you reboot and nothing happens, reboot using button on machine then rerun BIOS
      utility. Recommend waiting before doing this since rebooting during a BIOS update will brick your computer.
  7. Boot into your OS and check that BIOS and cpu microcode updated
  8. Consider installing cpu microcode through your distro if newer is available, this requires non-free enabled in Debian

You can also you the non-gui CentOS version, but you'll need to have the BIOS utility downloaded beforehand since Lynx failed to open the page for me.

Why not update using Debian?
The BIOS utility wouldn't run in Debian, likely because of the 4.19 kernel. RHEL 7 is an officially supported OS for the program so CentOS 7 is the logical choice since CentOS is basically a free rebrand of RHEL.


Website Source Posted

2019-06-02

After cleaning up the souce, I've posted it to github. Django defaults to storing its secret_key in the settings file which is an issue when using git. I split the secret_key into an untracked file and rotated the key so I can post the source without any issues. I reused most of the previous static site but, added Django to use the built in admin interface so I can easily add posts. The javascript map has been setup so it doesn't load until asked for by the user to speed up page load time by up to 18 seconds. This improves user experience and SEO with little work.


Website Rewrite

2019-04-18

The website has been rewritten into a web app using the Django framework, Jinja2 templates and the Django ORM. This will make adding posts and projects far easier since I don't have to write html anymore. It will also create possibilities for creating interactive experiences.


Low Volume Production With 3D Printing

2019-01-13

I bought a Prusa i3 MK3 3D printer to do some prototyping and low volume production. After doing some rapid prototyping, I came up with a product for organizing dewalt batteries. The polished dual iteration is pictured below.

image

The product was designed using parametric models in FreeCAD, stress calcs and costing with python, sliced with Slic3r PE, ran with Printrun or Octoprint all on a Debian desktop. Production went smooth until the printer became increasingly erratic on the first layer. Overall, 3D printing could be a viable production method if you can get hobby pricing AND reliability. Reliability still needs work.

A full report on the design can be found in my mechanical portfolio.