Updates: June 10, 2016

June 10, 2016 at 10:55 am (Art, Java, memory palace, Programming, Rant, Thinking) (, , , , , , , , , , , , )


I’ve been working on a number of different things as well as thinking about my next steps and goals for the year. Here is a point-form list of some of the projects and endeavors I’ve been spending effort on in the past couple weeks:

  • I set up a home Linux server. I wanted a local, private Git repository as well as a machine to host some automated processes and apps. Things have been working out very well on this front. It’s been a great learning experience on top of it as well as I haven’t really used Linux in a decade or more. I installed a desktop version of Ubuntu, but I’ve been sticking to using the terminal as much as possible to expand my sphere of knowledge.
  • I’ve been working on my coding skills and algorithm knowledge. I always have some sort of coding project on the go, but recently I’ve been so focused on my front-end skills that I’ve let my core skills droop a bit. To get back up to par, I’ve been solving a lot of coding problems in Java as well as figuring out some algorithms that I haven’t touched in a while. I decided to start basic with heaps and heapsort, then moved on to KMP string matching, and now I am working on suffix tries/trees. I’m going at a slow pace with this though so I can not only code solutions, but also store them in my mind palace.

   Preparing an algorithm for long-term mind palace storage pretty much consists of tearing the algorithm down to its basic elements in your mind and trying to make a story out of it. For example, I’ve decided to store the KMP string matching algorithm in a kitchen in one of my mind-rooms, so I compared the process to making spaghetti. Comparing noodles of different length was the basis of the story. I also had to work in the generation of the prefix table for the search pattern. For this, I’ve been toying around with adding some sort of “sauce” to the story to indicate the comparisons of the prefix to suffix for each length of the pattern noodle.

   I think that I’m finally starting to outgrow the hub room I’ve been using for my computer science mind palace. It was a good index for classes of algorithms so I could always see what tools were at my disposal, but it’s getting too cluttered now.

  • I’ve also been doing a lot of general-purpose reading. I visited the library not long ago and “accidentally” walked away with between 10-15 books. Some of these were painting-related so I could learn some new techniques and composition skills, but I also picked up some interesting biology books. One of these is a book on viruses (the non-computer version). I’ve been learning a lot about how they operate as well as how they’re being used/manipulated today. Bacteriophages are being produced to one day replace antibiotics, and I find the whole thing fascinating (phages are a type of virus that goes after bacteria instead of humans).
  • In addition to practicing my coding/problem solving skills, I’ve also been working on learning and using some new technologies; at least new to me. I’ve been fiddling with the Play framework, which is a web platform. I wasn’t really impressed with it at the start as you have to use a self-hosted web app just to create a project structure, but beyond that it seems really nifty. My next area of interest within this framework is the Ebean integration, which allows for a fun way to connect objects to databases without having to write scripts and stored procedures. There are also some features to allow syncing a database to ElasticSearch automatically, which will be fun.
  • The Android platform is another area I am learning about lately. I’ve set up my development environment and I’ve been learning about the SDK for creating apps. It seems like there are a lot of different approaches to building Android apps, especially as the SDK has been evolving. It has made things a little awkward to get started (as there are many references on the internet to doing things the “old” ways), but I think I’m past that hurdle now. My only real problem now is that I haven’t been spending enough time on this project.
Advertisements

Permalink Leave a Comment

Progress Update: May 24, 2016

May 24, 2016 at 6:39 pm (Computer Science, Java, Programming, python, Rant) (, , , , , , , )


I know I’ve recently posted about a few of my upcoming goals, but since then I’ve fiddled with a number of things since then and have some updates on my progress.

  • Python Learning. Thanks to a suggestion on the Halihax Slack channel, I picked up a pretty decent IDE for my Python projects (PyCharm). Unfortunately, I learned the hard way that Windows is not the ideal platform for using Python. I wanted to work with a packaged called “sklearn” that I saw during a Google I/O session on machine learning, but it depends on SciPy; a package for scientific calculations. Unfortunately SciPy has some dependencies that do not install cleanly on Windows (LaPack and BLAS are a couple examples). I was really looking forward to toying with the code snippet from the presentation, and I’m sure there are plenty of equivalent libraries I could try out, but the fiddling process wore on me.
  • Android Learning. I’ve been learning about making apps on the Android platform. There was a fair amount of setup and configuration for getting the IDE to work as well as setting up the right emulators to run code on. The annoyances were further compounded by the fact that I don’t want anything installed on my C drive. I use a smaller SSD drive for my C, and then put everything else on another drive; it allows my OS to run lightning fast and lets me get going faster. This guide ended up being really useful in moving the hefty emulators and other odds & ends to my storage drive: http://www.littlecpu.com/android-studio-c-drive.

  I’m in a pretty good “hacking” state right now on this front after some effort. I’m learning about the UI-data model binding within Android page components as well as other architecture aspects. The architecture is fairly straightforward (activities, services, etc) but there seem to be a lot of conventions and gotchas.

  • Java Experiments. I’m also back experimenting with Java as well. I’ve been using Derby (JavaDB) as an embedded database, and it’s pretty simple so far. I had toyed with MapDB a bit, but I’d like something a bit better supported so I can use Hibernate with it to avoid having to do my own schemas. I’ve also been using ElasticSearch in parallel. It’s kind of it’s own document-based database, but without the reliability – it’s usually used in conjunction with a real database and you just sync the data in batches so that Elastic can index the data to make it searchable. These components are all pretty straightforward, but I want to build a decent non-trivial demo project. I was also considering using Akka for the concurrency management to control the batch operations to ES.

Permalink Leave a Comment