8 Steps to Your Own NextCloud!

1. Go to https://cloud.techandme.se/index.php/s/whxC00V1I0l4CY8
2. Download OVA for ESXI/VM Deployment
3. Install to VM Hypervisor
4. Setup Domain to point to WAN IP via A record
5. Set Static IP to Local VM IP
6. Open 443 on Router to Local VM IP
7. Login and follow instructions, install optional addons as you wish
8. To resize, follow https://www.techandme.se/not-enough-space/

Java AOP

AspectJ Notes: Aspect Oriented Programming allows you to achieve an extra level of separation of concerns ontop of OOP methodology.

Key terms:
– Pointcut defines wherein the code a joinpoint (injection is what they should’ve called it) will occur.
– Advice defines what happens at the specific joinpoint.
– Weaving is the process of injecting the advice into the joinpoints.

Example code:

public aspect LicenseFee {

// playing with this to see if I can get this to work
// eclipse constantly checks to see if you actually are implementing the method before weaving occurs
// almost like it actively weaves before runtime, no wonder my computer is so slow running this thing
// so that means that when I go to run tests, some errors may occur but it should be okay/runnable despite the fact

pointcut test(): target(Main) &&
(call(void testSaveAccount()));

after(): test(){
System.out.println("TestSaveAccount called");
}

pointcut test2(): target(Main) &&
(call(void testOpenAccount()));

before(): test2(){
System.out.println("Derp");
}

}

Eclipse Semantics for Advice

In Car Tablet Project

A android tablet mounted into the center dash of a Honda Accord.
Not the most elegant thing but functionally it adds a lot to my day to day driving experience.

Over Christmas 2015, I picked up a $45 Android tablet with the intentions of mounting it into my 2010 Honda Accord as a media device. For now, I’ve used some black Velcro to mount it but would eventually like to explore the 3d printer realm and create a custom mount for it. I disabled many of the pre-installed applications, installed Spotify (a music subscription service), and installed a neat application called Tasker.

I used Tasker in conjunction with AutoInput which essentially mirrors any programmed key-presses by searching for the internal UI shell command. All of this can be accomplished without rooting. I purchased a USB charger for the center console power port in addition to a thin USB cable and 1/8″ cable. Luckily, my car turns off the power port automatically when the car is off, unlike some other domestic models. After about an hour of tweaking, I had a working in car entertainment device that would:

  1. On power/charging detection, would turn on the screen, open the Spotify app, wait 6 seconds, and Play music from the last specified playlist.
  2. On power/charging off, would pause Spotify, wait 3 seconds, and dim the screen. By leaving the app open, it syncs with my Wifi network when I pull into the driveway nightly.
  3. From 7am to 5:30pm, would turn the screen brightness to max setting.
  4. From 5:31pm to 6:59am, would turn the screen brightness to min setting.

A helpful guide I followed for programming Tasker is here, with the exception of the input commands, as those were taken care of by the AutoInput application. The most important thing to note is the use of wait times in Tasker, so that the device is provided with enough time to execute each operation and not ignore overlapped operation requests.

The latest development with this project, is that under extreme cold temperatures, the tablet greatly misbehaves. I need to probably program the tablet to turn off based on a weather forecast. We had a 10F low and I found that it had factory reset itself after being left in the car all night, which means that I need to reprogram it entirely. Avoiding that scenario, I will probably look for a custom recovery which would allow me to take a full image backup to keep on the Micro SD card.

The tablet I purchased can be found here. (as of Jan 2016)