fbpx

Thoughts and Adventures of an Engineer

Let's do something amazing...

Category: General (page 1 of 2)

A Year in Review (2018)

The first thing that comes to mind when I think of 2018 is holy crap where did it go….

It’s been a whirlwind and here’s a short list of things that it was filled with:

A dislocating shoulder, surgery to fix a dislocating shoulder, rehab (for a previously dislocating shoulder), lack of playing Ultimate (due to said shoulder), lots of coaching Ultimate (in lieu of playing it), learning how to be an Ultimate coach, failing in aspects of coaching Ultimate, situations that caused me to learn I needed to improve my empathy, small improvements in my empathy for others, uncomfortable performances (thank you Box Factory), hitting a consistent workout regiment in the gym, having a consistent partner again (I’d forgotten how great that is), trying to learn Spanish way too fast, failing at learning Spanish way too fast, playing Ultimate again (yay!), camping weekends, cottage weekends, dancing the night away, and sharing dinners with friends…

But here’s the list I said I was going to focus on this year, and how I think I did…

[5/5] Read 2-5 quality books a month

I read 74 books in 2018. The list included 49 non-fiction, 5 biographies, and 20 fiction books varying significantly in topics. The way I went about making the list was mostly through recommendations from friends and mentors, but also using some of my favourite authors reading lists.

I’d consider this a success because I reviewed every one of these books and know the impact they had on my life. Overall, there were four I rated at 2/5, eighteen at 3/5, thirty-seven at 4/5’s, and fourteen at 5/5.

[3/5] Dance Salsa/Bachata/Kizomba (1/week)

Dance is one of the most unexpected hobbies I ever thought I’d enjoy but it constantly pushes my coordination, and comfort zone in ways that I truly enjoy.

I am very comfortable with how I dance today, but I really wanted to build on this skill last year by diversifying the dances I knew well (Bachata, Kizomba) and adding in new moves/flare to my Salsa dancing.

Unfortunately, I re-injured my shoulder in Dec. 2017 and had surgery for it in April 2018 at which point I was unable to dance for 11 weeks. Turns out you kinda lift your arm above your head when you turn the lady…

That being said, I managed dance 14/41 weeks last year and I’m happy I was able to get out that much.

If there’s one thing I should try to do more of next summer is capitalizing on the great outdoor Salsa nights in Guelph and Hamilton.

[5/5] Write blog posts more often (1/month)

I adjusted this goal pretty quickly in the new year to be focussed around building my reading list.

The objective was to create consistently good content for those people who have offered to read my reviews each month.

Doing this, and through posting once a month, I was able to grow the number of people who subscribe to my book reviews by nearly 2.5x (though the total number of followers is low, this is the best I’ve ever done on this front and I’m really proud of that).

If you haven’t signed up and are interested in hearing my reviews, you should sign up here:

[4/5] Increase the amount of learning I do in my job (3h/week)

This year I transitioned out of a more day to day troubleshooting role and into a more process engineering role focused on long term projects.

I was responsible for the design and success of various shutdown projects that we are seeing the benefits from now in 2019.

I would have preferred to make this more of a routine habit for developing my skills, but it was rather scattershot and based on the projects assigned to me. This year I want to put more focus on structure.

[0/5] Play music week-daily (10 min/day)

This was a big goal for me in 2017, but it didn’t stick in 2018. That being said, I have still retained most of what I did in 2017 which is a great demonstration of how building skills through deliberate practice is how you make something stick for long periods of time.

I did play here and there, but it was only when I was feeling like it and I think it would be wrong to say I put effort into it so it gets a 0/5.

[0/5] Spend 1 hour a week learning music theory (1hr/week)

Like playing music daily, this one also fell by the wayside.

[3/5] Book a trip to South America (Mexico?) and learn conversational Spanish before I arrive

I give myself an A for effort on this one.

I planned a Trip to Mexico City and gave myself an ambitious goal of learning conversational Spanish before then. I put in a consistent effort before my trip to Mexico City, during my trip to Mexico City, and after. But it pretty much fell apart when I had shoulder surgery.

What did I achieve?
I spent a lot of time on enunciation trying to get the phonetics right and I think this has paid off long term. I can roll my R’s and can read/speak the phonemes fairly well.

I spent a lot of time practising the 1000 most common words in Spanish, and I probably nailed down about 80 of them into my long term memory which really falls short of the rest.

What didn’t I achieve?
I’m still very far from conversations. I don’t do well with building phrases yet, and I struggle with listening/comprehension.

Why?
Well looking back I didn’t build the habit, I just built the goal and was working towards the goal. I think this is often why people fail with language goals because they forget process. You need to do this consistently for long periods of time.

[5/5] Maintain a minimum of 3 times per week at the gym (to keep my body injury free)

This year was fought with some really challenging physio and rehab for my shoulder. I had surgery April 9th, and leading up to it I tried to build up some muscle, and then I had a period of 9 weeks where I wasn’t able to really train. It wasn’t until about May that I was in the gym for my physio and then I started to really see improvement in my shoulder strength and range of motion.

This year I worked out 148 times in total. Over the course of the year, I went to the gym 3 times or more 30 weeks total. My longest streak for 3x/week was 13 weeks straight. To top it off, after May there wasn’t a single week that I didn’t go to the gym at least once.

This has been a tough year for me on the physical front because I didn’t play any sports until September, and had to rely on the gym as my main mode of fitness.


What I plan to do in 2019:

  1. Maintain my fitness habits – gym 3x/week minimum
  2. Return to Nationals level Ultimate Frisbee as a player
  3. Take an intro/intermediate Bachata class
  4. Spend 4 hours per day at work focussed on value-based projects
  5. Continue to learn Spanish. Build a process in January, and use it to learn as much as possible before my trip to Colombia in April
  6. Read a paperback book every day (daily)
  7. Think about a business idea/product/invention every day and log it in an idea journal (1/day)
  8. Maintain my reading habit – (2/5 quality books per month)
  9. Write monthly emails my reading list, focusing on quality
  10. Write 4 articles and share them (1/quarter)

A Year in Review (2017)

A summary of things I have accomplished, failed at, and plan to do (or try again) this year.

What I planned to do in 2017 and how I did:

  1. [5/5] Playing piano for 10 minutes a day every weekday
    By far, the most successful project I had this year
    – For the first 6 months, I didn’t play with sheet music just composed
    – Recorded all of my piano sessions
    – By year end I had composed two full songs and many more short pieces
    – Second half of the year I started improvising on top of songs I learned many years ago
  2. [0/5] Learn either Spanish or French to be able to have a conversation in a coffee shop
    Stopped this goal after a few months of shotty focus
    – I wasn’t particularly passionate or driven to achieve this
    – I didn’t establish a good routine
    – Note to Self… Next time book a trip to that part of the world to give it a real incentive/deadline.
  3. [3/5] Set up my investments properly
    It took until December to do this but I did it!
    – Set up automatic deposits into a TFSA sheltered index fund robo investor
    – Started actively seeking out companies to invest in and build my own portfolio with a small side amount of cash
    – Currently seeking a fiduciary to manage my RRSP – if you know a good one shoot me a message!
  4. [4/5] Read/listen to 1-3 books per month (focus on quality, not quantity)
    This year was loaded with some of the best books I’ve ever read!
    – I read at least one book per month (thanks Audible subscription!)
    – Best Non-Fiction: The Denial of Death (Ernest Becker)
    – Best Fiction: The Book of Negroes (Lawrence Hill)
    – Read Numerous Times: The Alchemist (Paulo Cuello)
    Check out the master reading list for more
  5. [1/5] Establish meditation as a daily practice
    Turned this into something I used when stressed as opposed to a daily ritual
    – This is definitely an activity that benefits from practice
    – Had positive outcomes from the mediation I did experiment with
    – Used mostly as a deliberate action to take time and breath during times of stress
  6. [4/5] Seek side income/new business ideas
    Shut down non-profitable projects (UTP), rebranded site into new web development company
    – After nearly 2 years of trying to build a community that provided articles/courses for young engineers, I decided to shut down the project
    – Why close it down? First, I felt ethically wrong about the whole premise of maybe making money off of it. Second, it was a terrible market segment to try and target.
    – Now I use the site/business to provide web services (design/analytics integration/SEO) for small businesses.
    I even managed to get some clients at the tail end of this year!
  7. [5/5] Travel on my own for 2 weeks
    Went to Dublin, Munich, Paris, and London
    – Made some new friends along the way (shout out to Gemma, Oz, Kyle, Steph, Mathieu, Elliot and the rest of Natasha’s house). You’re all always welcome to crash at my place in Canada!
    – Snapped some great photos (without my dSLR…)
    Also managed to take a trip to L.A., Vancouver, Ohio, Ottawa, Quebec, and New Jersey
  8. [4/5] Focus on two pillars at a time (Work/Friends/Health/Partner) to really find improvement in those parts of my life
    What I learned, it’s not easy to succeed in more than 2 of these at a time
    – I kept friends as a constant focus for the past year (1 or 2)
    – I made being in committed long term relationships a low priority this year (3 or 4)
    – Depending on the point of the year Work and Friends or Health and Friends were my primary focus

What I plan to do this year (as of January 2018):

  1. Read 2-5 quality books a month. See out books from other people.
  2. Dance Salsa/Bachata/Kizomba weekly
  3. Write blog posts more often (1 per month on something I find interesting)
  4. Increase the amount of learning I do in my job every week (set aside two 3 hour blocks per week to learn about a new element of process engineering)
  5. Play music every week day (10 min minimum)
  6. Spend 1 hour a week learning music theory and applying it that week to the practice sessions
  7. Book a trip to South America (Mexico?) and learn conversational Spanish before I arrive
  8. Maintain a minimum of 3 times per week at the gym (to keep my body injury free)

The Search for Intelligence

Can you create a generally intelligent machine?

We have shared this earth with millions of living organisms and creatures and it’s amazing how we can look into the past by studying these creatures.

It’s interesting to look at our organic history to understand how we developed into the curious creatures we are. Humans are very complex, and in the search to emulate our own intelligence with machines we have been able to make significant progress on some very challenging problems.

Some examples:
Beat humans at their own games? (Alpha Go).
Jervis our intelligent personal assistant?(Braina).

Most artificial intelligence (AI) software struggles with taking its skill sets and applying it to new novel problems and succeeding. This is a serious challenge and one approach is emulating the brain.

Do we need to go to emulate every cell in the brain to achieve this?

I’m not entirely convinced,
I think the final solution will have very similar systems and pathways as the human brain but I think the path to get there needs to be less deterministic.

When we’re trying to create Artificial General Intelligence (AGI) we are trying to achieve something similar to what humans can do.  It is very challenging to create something that can solve problems based on previous experience, respond to changes in the environment and has the capability to solve novel problems.

It’s absolutely crazy that nature has created it all on its own and it will not be an easy challenge for the best human minds to overcome either.

I believe when we focus on goal oriented programming we limit the solutions and strip evolution from our AGI programs.

A popular segment in AGI is to emulate the entire human brain. I don’t think this approach will be successful, but I do believe it’s a valuable project.

One of the challenges of tackling complex problems like this is measuring progress. It’s much easier to measure progress when you can be specific in your goals.

Science moves much faster when this is implicit in the project. By emulating the human brain we can track the performance of the systems against human counterparts.

However, this approach also has a lot of technological barriers.
In order for this to be successful, we must also break through the point where processors can complete as many calculations per second as the human brain.

If nothing else comes out of this approach we will at least have powerful models/systems for use in new applications and broadening our understanding of how the enigma of the brain actually works.

There is one approach that I believe has the opportunity to be successful in creating AGI – creating a software that is capable of real evolution.

If we break down components of a cell into fundamental properties there’s are few which stand out in my mind.

Cell membranes act as a container for which the living system can be contained.It needs to be permeable to the outside environment in order to build in complexity, but also impermeable enough that it doesn’t suddenly lose its capability to protect the living system.

DNA acts as the blueprint for the underlying systems.
However, the capability to store information is not enough – you need to be able to execute this information to create/sustain the systems in place. This is very close to the idea of a source code and compiler in programming.

The source code is the DNA and the compiler is the cells ability to follow the instructions in the DNA

A modern example of a system that I believe is capable of evolution is the Internet.

It grows and responds to the systems existing within it – the underlying hardware that keeps it living, the integration of new programming languages like java, the transition from IPV4 to IPV6, the diversion from web pages to applications.

All of these things shape the internet, while there are many things that are living and changing within it – websites like Google, Reddit, and Youtube, or apps like Instagram, Snapchat and Tinder continually modifying the environmental stimuli.

I’d argue if we could keep it running for millions of years, the internet would evolve into something that resembles or merges with human intelligence.

But if you’re going to take a more active approach to creating AGI where would you start?

I’d start with a neat little type of program called a Quine.

Quines are self-replicating programs.

One key distinction between a Quine and a cell is that a basic Quine replicates its source code exactly where as a cell has many more opportunities for genetic variation – i.e. meiosis, mitosis.

What happens if you induce variation into the replication of the source code of a quine?

Well, you probably end up with a lot of Quines which cannot survive because the variation leads to code that can’t be compiled. However, every so often you should create a variation that is executed by the compiler and can differentiate offspring in competitive advantage. If these Quines continue to succeed in the world of the software program there can exist new genotypes and phenotypes in the population.

This is where the programming gets extremely difficult.

You basically need to create a way for the Quine to rewrite it’s code in proper syntax, and that allows for itself to make mistakes and not crash the entire cell, just that module.

I imagine you can try to replace replacement functions and source code randomly, but this amount of variation feels like the source code is not rigid enough to protect the underlying homoeostasis of the program. There have to be some guiding principles.

Think of a unique module in the source code as an amino acid that needs to be in a certain pH to fold properly. If you don’t give it that environmental restriction it’s not going to be very efficient at folding the same way every time. Remove a regulated pH and all of a sudden there is too much variation in the universe to fold your proteins the same way each time.

I’ve only found one author who has explored a similar perspective of using Quines in AI. Kory Becker experimented with a hilariously titled programming language called BrainFuck. Check out these articles at the bottom of the page if you want to learn more about his approach.

Controlling the Environment:

I firmly believe that you need the right balance of order and disorder in a cell to make it sustain life.

If the entire system falls heavy on chaos and disorder you don’t get structure and functionality. For example, in the early universe when the temperatures were too hot, too many collisions and energy in the system to see life as we know it exists. There needed to be a substantial amount of cooling, and structure of the universe before the concept of macro-molecules could take form.

Alternatively, a system with too little chaos/disorder isn’t dynamic enough incorporate change. If you put a glass of water in a box it will not suddenly boil unless something in the system around induces that change.

This is one reason why it’s so challenging to write software that can do this. You’d need a way of adjusting the randomness in the environment until you got it just right; without out this balance, I don’t see how evolution can be sustainable.

Culture

While I was researching for this article I spent some time with a friend who’s completing her PhD in Behavioural Neuroscience. One of the ideas she proposed was the importance of culture in the evolution of humans and her belief it would be a necessary requirement for creating AGI.

It wasn’t until cells could store DNA that they were able to create copies of themselves and have consistent genetic diversity across different organisms. Something similar happened as cells evolved into animals with brains capable of comprehension, memory, and communication.

As the animals developed the ability to tell stories they also inherently created the opportunity for generations of information to be passed along. How to create fire, how to make the best tools to hunt, where is the safest cave, which berries are poisonous.

These are all examples of how culture facilitated the transfer of information which influenced the future. I have no idea where I would even start to try and induce/replicate this in a software system.

Development

When you look at mammals it’s interesting to note that we all go through phases of a development – conception, prenatal development, until eventually, we start building our model of the world based on the environmental stimulus and the blueprint we inherited from our parents.

I’m curious if this is a natural requirement to build sustainable intelligent systems.

Every living animal on the earth would support this clause, but then again we all originated from the same starting point.

Maybe non-biological systems can occur without this phase.

Sex and Replication

Cells started by replicating in kind, then with the ability of genetic variation, and as this continued to evolve in animals the organs, tissues, brains all had to be replicated within the system of replicating cells.

As the evolution continued the ability to replicate entire human systems developed and sex became an underlying requirement for continuing human life. I’m not sure what form this would take as you start attempting to solve this problem in software.

My first guess is that this has to happen naturally and can’t be forced by writing code that already has a method to do it; it has to have meshed into the inner workings of each system that it affects.

Want to read the next article?
I’ll let you now when it’s out:



Links and References:

Papers:

Artificial General Intelligence: Concept, State of the Art, and Future Prospects
– Daniel Eth, Juan-Carlos Foust, Brandon Whale
DOI: 10.2478/jagi-2014-0001

The Prospects of Whole Brain Emulation within the next Half- Century
– Ben Goertzel
DOI: 10.2478/jagi-2013-0008

Will We Hit a Wall? Forecasting Bottlenecks to Whole Brain Emulation Development
– Jeff Alstott
DOI: 10.2478/jagi-2013-0009

Web:

Older posts