Month: January 2020

Timeline – Biden, Burisma, and the Prosecutors General

I’m trying to follow the logic of Biden corruptly using his influence to squash an investigation into a company that employed his son on its board.

Zlochevsky, former Minister of Ecology and Natural Resources, is the majority shareholder in Burisma and may have gotten gas extraction licenses because of Zlochevsky’s former position. In 2012, Ukrainian Prosecutor General Viktor Pshonka began investigating Zlochevsky for possible corruption, money laundering, and tax evasion from 2010–2012. The British Serious Fraud Office investigates Zlochevsky for a possible money laundering scheme too. On 16 April 2014, the British blocked accounts held by Burisma’s majority shareholder for holding 23 million in possibly ill-gotten assets. They sent a letter to the Ukraine requesting documents for their investigation.

21 April 2014, Biden visits the Ukraine and promises aid to help the country avoid relying on Russia for petrol – aid which might have been used to increase domestic fuel extraction and benefited companies holding extraction licenses (i.e. Biden is committing funds that might farther enrich Zlochevsky). Burisma announced Hunter Biden joining the board on 12 May 2014.

07 June 2014, Poroshenko took office as the President of Ukraine; Prosecutor General Vitaly Yarema was confirmed on 19 June 2014. Yarema opens an investigation into Burisma on 05 Aug 2014 for ‘unlawful enrichment’. 14 October 2014, anti-corruption laws are enacted in the Ukraine. In February, George Kent says he met with a deputy prosecutor from Yarema’s office and, in an action coordinated with the US Justice Department, spoke against having the case shut down. In December 2014, the American government is pushing Ukraine to help the British with their investigation. The British unblock Zlochevsky’s accounts on 21 January 2015 because of insufficient evidence to substantiate the claim. They weren’t getting help from the Ukrainians.

10 Feb 2015, Viktor Shokin replaces Yarema a Prosecutor General. But I’ve not seen any reports of Shokin picking up the Burisma investigation. Everything I’ve read says he had essentially left the case mothballed. In late 2015, Biden and the US government are still speaking out about possible corruption and specifically call out officials who failed to assist with the British investigation into Zlochevsky. Biden made a speech in the Ukrainian Parliament about rooting out corruption in the country and threatens to withhold a billion dollars in loan guarantees unless Poroshenko fires Shokin.

03 April 2016, Shokin is fired by Parliament for the slow pace of investigations and corruption allegations. 12 May 2016, Yuriy Lutsenko was appointed as Prosecutor General. And 13 May 2016 the US agrees to a billion dollar loan guarantee. Lutsenko is the one who investigated Burisma. A Burisma statement says the case was dropped in Sept of 2016. Burisma pays a couple million in taxes and fines in Sept of 2016.

The claim isn’t that Biden got Shokin, a guy who was investigating Burisma, fired. OK, yeah, that is the claim … but was there an investigation?! Kasko, Shokin’s deputy, says the office did nothing to pursue the investigation throughout 2015.

If not, the crux of this claim is that Joe Biden had some knowledge that the investigation was going to resume? Maybe the idea is Biden knew the popular sentiment in the Ukraine was to get a tougher prosecutor and used American money to ensure “you need to fire the Prosecutor General and appoint someone who will really root out corruption” was “you need a guy who roots out corruption and knows that company where my son sits on the board is totally on the up-and-up, so there’s no need to get back into investigating them”. Or “get this mothballed case opened and do as little harm to the company where my son sits on the board”. But that’s a lot different than saying he pressured the Ukrainians to fire a prosecutor who was about to bust his son (or the company paying his son).

Hopefully this will get cleared up in the Senate Impeachment proceedings. Because a much as I know the Democrats don’t want Biden testifying … I expect Trump’s defense to spend a lot of time promoting what exactly they claim Biden did wrong.

Extracting Waste Stream Collection Dates for the Netherlands

Yeah … mostly saving this for the regex search with a start and end flag that spans newlines because I don’t really need to know the date they collect each waste stream in the Netherlands. Although it’s cool that they’ve got five different waste streams to collect.

import requests
import re

strBaseURL = 'https://afvalkalender.waalre.nl/adres/<some component of your address in the Netherlands>' 
iTimeout = 600 
strHeader = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}

# Start and end flags for waste stream collection schedule content
START = '<ul id="ophaaldata" class="line">' 
END = '</ul>' 

page = requests.get(strBaseURL, timeout=iTimeout, headers=strHeader)
strContent = page.content
strContent = strContent.decode("utf-8")

result = re.search('{}(.*?){}'.format(START, END), strContent, re.DOTALL)
strCollectionDateSource = result.group(1)

resultWasteStreamData = re.findall('<li>(.*?)</li>', strCollectionDateSource, re.DOTALL)
for strWasteStreamRecord in resultWasteStreamData:
    listWasteStreamRecord = strWasteStreamRecord.split("\n")
    strDate = listWasteStreamRecord[3]
    strWasteType = listWasteStreamRecord[4]
    print("On {}, they collect {}".format(strDate.strip().replace('<i class="date">','').replace('</i>',''), strWasteType.strip().replace('<i>','').replace('</i>','')))

Create 2 With a Pi

Scott has a friend who is linking a Pi up to a Create 2 — using the Ubiquity Pi image. Unfortunately, it doesn’t seem to communicate with the robot. Tx but to Rx. There are a few issues in the create_autonomy and libcreate repos that report the same issue and have subsequently merged in a fix. But the Ubiquity image is from June 2019 … which pre-dates the fix. I’ve run through the process of installing ROS and create_autonomy on a base Ubuntu. Thought I’d save the process for later 🙂

 

# Get Ubuntu 16.4 environment to match what Ubiquity Robotics is using … obviously, this would all be run on the Pi instead
docker run -dit –name UbuntuSandbox ubuntu:xenial

# Shell into running container
docker exec -it UbuntuSandbox bash

# Update software catalog
apt-get update

# Install Prerequisities
apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake git libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev vim python-pip python-rosdep wget unzip

# Create a directory for this project
mkdir /roomba
cd /roomba

# Install ROS
apt-get install lsb-release
sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’
apt-key adv –keyserver hkp://ha.pool.sks-keyservers.net:80 –recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
apt-get update
apt-get upgrade
apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
mkdir /roomba/ros
cd /roomba/ros
rosdep init
rosdep update
mkdir -p /roomba/ros_catkin_ws
cd /roomba/ros_catkin_ws
rosinstall_generator ros_comm –rosdistro kinetic –deps –wet-only –tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-ros_comm-wet.rosinstall

mkdir -p /roomba/ros_catkin_ws/external_src
cd /roomba/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make
make install

cd /roomba/ros_catkin_ws
rosdep install -y –from-paths src –ignore-src –rosdistro kinetic -r

./src/catkin/bin/catkin_make_isolated –install -DCMAKE_BUILD_TYPE=Release –install-space /opt/ros/kinetic

# Source in the ROS bash setup stuff
source /opt/ros/kinetic/setup.bash

# Build libcreate
git clone https://github.com/AutonomyLab/libcreate.git
cd libcreate
mkdir build
cd build
cmake ..
make

# Build create_autonomy
apt-get install python-rosdep python-catkin-tools
mkdir -p /roomba/create_ws/src
cd /roomba/create_ws
catkin init
cd /roomba/create_ws/src
git clone https://github.com/AutonomyLab/create_autonomy.git

cd /roomba/create_ws
rosdep update
rosdep install –from-paths src -i

# Setup so CMake will find our libcreate when we build create_autonomy
mv /opt/ros/kinetic/lib/libcreate.so /opt/ros/kinetic/lib/libcreate.so.orig
cp /roomba/libcreate/build/libcreate.so /opt/ros/kinetic/lib/libcreate.so

# Continue building create_autonomy
catkin build

# Source in the autonomy bash environment
source /roomba/create_ws/devel/setup.bash

# Create config yaml
vi /roomba/config.yaml
## File content:
# Create config YAML
# The device path for the robot
dev: “/dev/ttyUSB0”

# Baud rate. Passing this parameter overwrites the inferred value based on the robot_model
baud: 115200

# Base frame ID
base_frame: “base_footprint”

# Odometry frame ID
odom_frame: “odom”

# Time (s) without receiving a velocity command before stopping the robot
latch_cmd_duration: 0.2

# Internal loop update rate (Hz)
loop_hz: 10.0

# Whether to publish the transform between odom_frame and base_frame
publish_tf: true
## End file content

# Run it
roslaunch ca_driver create_2.launch config:=/roomba/config.yaml desc:=false

# Logs at ~/.ros/log/latest