Tuesday, October 16, 2018

Silicon Valley Code Camp 2018


This weekend I attended Silicon Valley Code Camp. Code Camp is a conference on its 12th year held in San Jose California and put on by volunteers. I’ve known about it for many years (I found the earliest email I got from them is from 2009), but this was my first year of attendance.

In this post I give quick play by play of my weekend, with summaries, impressions and/or takeaways from each of the talks I attended.

Saturday I arrived late and had no problem getting my pass as I had registered early. I arrived late to my first talk. It was about IoT with Edge. I’m very disappointed I missed as much as I did. I was able to glean how Edge devices and routers interact to communicate with the cloud. How twins of the device status are mirrored on the cloud and what role hubs perform when connection to the cloud is severed. It seems that it runs on raspberry pi, I was not aware of that. 

The second talk was on C++ server API’s. The speaker was really entertaining and explained things well. He went on a few tangents which took a lot of his time, but they were entertaining so I forgive him. However, he couldn’t finish the talk on time so a few things were skipped over. I’m really not criticizing him for this. I don’t think that not getting the full talk made my experience on Saturday any less vaLuable. More than anything this talk was more a discussion on best practices when beginning new projects.

The third talk I went to was on java and Kubernetes. This one was tough. I do not know enough about docker to have gotten as much as I’d like from this. I got a general idea of workflow, of setup, of Java through docker with Kubernetes within IntelliJ.

Next was a talk on Recursion and Dynamic programming for technical interviews. This was really just a talk. It represented recursion and dynamic programming with simplified language as opposed to any detailed implementation or code. Dynamic programming fit into the talk really smoothly. Again, it used the same simple explanation technique as used for recursion. What’s more it seemed very natural to explain DP directly after explaining recursion as he had built up the concepts in such a way that the two example problems were nearly identical.

The final talk was not technical. It was about human learning techniques. Worth the time and part of the reason I’m writing this. The speaker was really good and covered some things that hold back learning, techniques students and educators could use (like a learning journal) and some myths.

Sunday was more laid back: fewer people, less prepared speakers, for lack of a better description, less popular topics.

I started by going to an intro to mongoDB. My take from the talk was that It sounds like a great way to get away from SQL tables and a carefully planned DB before implementation aka. prototyping. 

For the rest of most of Sunday I attended a series of talks by 3 gentlemen. The series was ostensibly about creating drivers for android. That’s not what it was. It was implement Android’s Binder Inter-process communication as a linux device drivers.

The first talk was the best for anyone who went for an education on android. It covered concepts of binder which would help any Android programmer to better understand and better utilize the technology.
The second in the series was an introductory tutorial on writing kernel mods for linux and a bit on the Android Linux kernel.

The third talk was the curve ball. Where the speaker showed his implementation of Binder on an Ubuntu AWS machine. A little bit of a letdown but overall a really excellent series but for the expectations set. Now looking at the schedule I can see the signs. 

Finally a talk on interfacing with C from Lua and Ruby. in all directions: Lua to C, C to Lua, Ruby to C, and C to Ruby. It’s apparently really easy to call C libraries in Ruby. The speaker spent more time than was needed on summarizing each language. I don’t believe anyone actually attended the talk which didn’t know one of the languages and so the subject of actually interfacing seemed to not get enough attention while the majority of the talk was used to educate everyone on the properties of Lua and Ruby which weren’t necessarily relevant to interfacing with C.

Food and drink were provided in the morning, at lunch each day with occasional snacks set out, and ice cream in the afternoon on Sunday. There were raffled prizes donated by the event’s sponsors. It was well worth the money paid. In fact it was worth far more than the money paid. I’m really kicking myself for 9 years of stupidity for not attending.

- Victor F.

Wednesday, November 8, 2017

Experiments in Basing I

The release of the 8th edition rules of 40k has brought me, as it has many others, back into the terrifying depths of the Warhammer 40k hobby where time is wasted never to be seen again. Having a great looking army is a distant dream of mine and though it may take until the god emperor of mankind reveals himself to start his crusade across the stars, my Waaagh! will be ready and goddammit it will look good.

A few types of bases caught my eye, particularly those with cracked earth, so I picked up a bottle of Agrellan Earth from Citadel. Now what to do with it?
As a young Warboss I put my army on bases as soon as I glued them together. I thought that's how it was done. I soon found out that was not how one became the flashiest git on the table. So instead of tearing my army apart and having my boyz unplayable while they undergo a makeover I picked up these cheap wooden 25mm bases. I don't know how well they work on the table compared to the plastic ones, but as for putting paint on them, I like 'em fine.
I slapped on my slate and the small basing accessories that I got in some basing kit years ago (using liquid elmer's glue & super glue).
I went straight to this color, I got this idea from someone I played a game against, but he used automotive primer. Go with something like that, don't go with this paint; it sucks. It drips than a hungry squig.
I shouldn't have to say "After it dried," but for any young warbosses reading this I will say: always wait 'til a coat fully dries before moving on to the next one.
After the coat dried I put on the Agrellan Earth.
Here, I did not put a varnish on the painted wood before applying Agrellan Earth like I should have and almost sorely paid for it. A varnish will help make sure the Agrellan earth stays stuck firmly to it. Wood without varnish performed will in this manner in my experience, the paint above did not.Something flat and hard works better than a paint brush for this; I used sculpting tools. I spread it all over the flat wood portions and got it all the way to touching the base of the rocks and bits.
I did not wait long enough for it dry (around 4 hours) and I noticed some of the paint had shrunk more after I started the next step. The next step is applying a wash. I used both sepia colors they both look great. I used another red wash and went much lighter. This one is intended to be (but was not in practice) applied superficially to the surface of the paint flakes and not to run into the cracks as the sepias should. The red wash is for color variety.
The last step was dry brushing. I dry brushed gray onto the rocks and then oiled leather on everything, including the rocks. I might come back and dry brush an even lighter tan color for a dryer desert look. The oiled leather isn't very noticeable.

I am liking how they turned out and they definitely look better than what I did previously. It's not too time consuming which I like a lot. You get a great look out of a little bit of work. But my original idea was not satisfied and I may have found a way to make it as fast as this.

Here's all the photos in an album.
And here are a bunch of youtube videos I saw before trying this:
https://youtu.be/tWm38GgtGVs
https://youtu.be/iHWo8RG1NuY
https://youtu.be/P3zpcTHKS9U

Saturday, February 20, 2016

Game of Life

About eight years over due, I've finally programmed an implementation of Conway's Game of Life.


Here's my code.

Of course I had started and given up on this before. After watching the video below by Computerphile I decided to revisit it.

Saturday, November 7, 2015

REST API WEEK! App a Day 22: Reddit Images

https://github.com/victorman/RedditImagesAndroid



I'm not sure if this one is really accessing an API, technically. Though it does request subreddits in JSON in order to display thumbnails of images which doesn't require any authentication.

REST API WEEK! App a Day 21: Goodreads Authors

https://github.com/victorman/GoodreadsFavoritesAndroid



Classes Used: Service, AbstractThreadedSyncAdapter, XmlPullParser, ContentProvider, ContentResolver SQLiteOpenHelper, Handler, ContentObserver.

I've always wanted to play with the Goodreads API. So here's my first attempt. Responses are in XML only, unfortunately. This makes a request for the books (reviews) in my favorites shelf and lists the authors. Very simple in theory. I was going to do more but I ran out of time.

I finally made some templates files for a SQLite Database, but without any of the provider's URI constants. Just copy the gist code below into a file template.

Friday, November 6, 2015

REST API WEEK! App a Day 20: Facebook Likes

https://github.com/victorman/FacebookLikesAndroid



Uses Classes: FacebookSdk, LoginButton, FacebookCallback, AsyncTask, Thread, BaseAdapter, GraphRequest, JSONObject, JSONArray.

This uses the Facebook Graph API and SDK to display the first page of the user's likes.

Wednesday, November 4, 2015

REST API WEEK! App a Day 19: Weather Map

https://github.com/victorman/WeatherMapAndroid



Classes Used: ContentProvider, ContentResolver, Service, AbstractThreadedSyncAdapter, GoogleMap, Handler

I think I need to learn a lot in regards to what is possible using data that is already out there. So I'm going to make this REST API week. I'll use different API's in all of my dailies.
This one uses openweathermap.org. Using it's cities in cycle feature it grabs current temperatures for 10 cities near your current GPS location and displays the markers on the map.