The midpoint blog post.

This week my team discovered that a problem with the authentication platform on our mobile app was actually not a problem after all. Yes, after my many hours pulling out my own eyebrows (a colloquial term for “working hard”), it turns out they were failing to compile the newest version of the code. Oh sweet relief, oh bitter pang of wasted energy.
Also, this week, I put together the midpoint report. Well I only got it started, and wanted to give someone else the opportunity to do the right up, and they made some edits, yes, but it was unpolished. So I revised that, split it into the correct file structure, made the formatting more consistent, and expanded the content so it was more thorough. I got the sign off from everyone and turned it in. OK.
This week, I’m going to the dentist to fix a chipped tooth. Between starting a new job and writing blog posts and standup discussions, I didn’t find time to make an appointment until the week after the “incident” with the fork, but finally my dentist had time to get me in, so I’ll take a half day Friday.
The “infotainment” system in my car was stuck in a bootloop. According to the dealership, during the 1hr I was listening to HD radio during the past 6 months, NPR, this is really what they told me- NPR sent a pixel over the HD radio signal which fried the CMU. OK. If the part was available, they repair would cost $1500. OK… It was a software issue, but they refuse to provide the patch for free. Ook…The same thing happened in Boston to a different model of Mazda and they extended the warranty, but for mine? No mercy. Ok. To Ebay we go, and if I have to find a way to update the CMU software myself, so-be-it! I held off in the past because I was afraid of bricking the CMU. Oops.
This week I’ll have to record a video demonstrating my contribution to our team’s app. I’ll give you a sneak preview, 70% of everything – planning, designing, code. Despite cajoling and urging and prodding, I’ve discovered you can’t herd cats. Maybe the saying should be, when life gives you cats, grind them up into meat and make hamburgers, but I have to work with this guys for the rest of the quarter.
My point being – this is my midpoint blog post – A reflection of my experience as an overworked and strung out final term college student and full time employee. Is it polished, cohesive, with a formal beginning middle and end? Probably not.

I was once told a story about a PhD fine art program. The instructor gave the class the assignment to create a work of art that demonstrated Life. The top grade in the class was a student who walked to the front of the class, took a bite out of an apple, set it on the instructor’s desk, and walked out.

*sips coffee aggressively*

Tell, don’t show.

It was a long and winding road: a circuitous path: a roundabout way: we took the scenic route deciding which framework to use to develop our cross-platform crowd sourced fitness app. We, in this instance, being myself and the folks that I was randomly paired with to work on our final Capstone project for graduating from the OSU Computer Science Post Baccalaureate program. And although we did our due diligence and performed a spike to determine the best fitting framework for our requirements, we have none the less run into the first limitation of our chosen framework. Let me walk you through our decision process.

Initially, I performed a spike comparing the different cross platform development frameworks, React Native, with the three flavors of Ionic, with Xamarin. It was discovered that Facebook owned React Native would not be the ideal solution, since it required multiple code bases – one for each platform. It was considered that the higher performance payoff, by virtue of natively compile executables, was not an enticing enough boon to take on that additional effort in this course where time may or may not be of the essence. So, despite these reasons and having high satisfaction from developers who adopt it, we decided to disqualify React.

We next considered Microsoft’s, Xamarin, which fulfilled our single codebase requirements. Xamarin provides a simple testing environment, and many job opportunities for its practitioners. However, unlike React and Ionic, Xamarin requires knowledge of C# and .NET, neither of which have been discussed or alluded to in this program. Even though my introductory classes were taught in C/C++, and the transition wouldn’t have been as painful for my Python prone partners, it was decided the learning curve was too steep for this class. Even though Xamarin products tend to have high performance due to their, like React Native’s, natively compiled executables, we decided to forgo Xamarin was disqualified for a hybrid solution.

Of our three considered platforms, this left us with only Ionic left to consider. If only it were that simple. Ionic itself can be paired with 3 different javascript frameworks. Angular, React, and Vue. Angular being the most robust, full featured, and flexible of the bunch, and Vue, on the other end of the spectrum, being much easier to use, but allowing for less functionality. Believing our app would not require too many advanced features, and knowing that we would be crunched for time, we first elected to use Ionic + Vue. After further discussion and research, we realized that React and Angular might be more difficult to learn, but in the end would provide better experience and help develop more marketable skills. So we decided react was the way to, naively assuming it would support all of the features advertised in Ionic’s UI library. Woe upon us all.

In fact, Ionic + React does not support Ionic’s basic navigation system. This was our original strategy for displaying different types of challenges in our fitness app. So we made a hard pivot toward using Modals, but this presents other challenges with dynamically populating lists, as Ionic Modals expect functions to be passed. How will it be resolved? Well, that we will that will be the adventure of coming weeks.

Infinite Time Warp.

Day 7. Time is crawling. I’m secretly writing this blog post behind my desk at work. If I can believe my officemates, this could be a fireable offense. Exaggeration? Maybe. I’ve heard some frustration this week, expressed in technicolor language. So, some people are tense, for some reason.

All in all, it’s not as bad as I was afraid it could have been. I think administrating a single application might drive me crazy sooner than I hoped, but I may have an out. Surprisingly, a few job opportunities popped up – secrecy is paramount – I have an interview for a systems support position with the University of Hawaii and the others are entry SE roles at Amazon. If somehow I get offers for both positions it’ll be a difficult decision, but I’ll cross that bridge when I get there. Speaking of crossing bridges….

Shown here: A tortoise.
Zeno explained his original paradox in terms of a race between Achilles, the greatest of Greek warriors, and a tortoise.
Moise Nicu |  Attribution-Share Alike 4.0 International

Zeno’s Achilles-Tortoise paradox (the guy loved his paradoxes) can be illustrated as follows: you are standing at one end of a bridge and traverse halfway, and as you continue in this manner, traversing half of the remaining distance, you never reach the other side, even after making an infinite number of traversals. According to Aristotle’s axiom “That which is in locomotion must arrive at the half-way stage before it arrives at the goal.” How then can an individual cross an infinity of half-way points regardless of their size? An infinite number of 0.5mm is still infinite length, after all.

Well obviously, bridges are crossable, hence the paradox: It is possible cross an infinite number of non-zero length subsections in a finite amount of time. That’s a fun thought experiment, but when we bring physical reality into the mix, a flaw is obvious: At a certain point, the length of the half-way traversal will be smaller than Planck length which seems to be a physical impossibility in this universe. So, there’s a finite limit to smallness, and it turns out Zeno’s paradox is not actually a paradox in the physical universe, but in the metaphysical….

Zeno extrapolated this theory into an argumentative technique dubbed the Vicious Infinite Regress. Again, pushing the bridge analogy to its limits, a bridge can be thought of as a relationship between two ideal points A and B, but each point has its own relationship with the bridge. And that relationship has its own relationships with the already existing relationships, and on and on, ad nauseum.

According to the VIR, no two ideas can actually be related because there are an infinite number of relationships separating the original ideas.

Maybe this paradox can be resolved by accepting there’s a finite limit to the granularity of knowledge. Heisenberg would probably agree.

Anyway, I’ve escaped detection and time to get back to the grind. I’ve finally reached the half-way point of my workday. Only an infinity more to go.

MelchoirAzaTothMets501Sopoforic | Creative Commons Attribution-Share Alike 3.0 Unported 

New Job Old Habits

I started a new job yesterday. I’m working as a SharePoint Analyst for a system of local healthcare clinics. It’s alright. I’ve worked in IT a long time, and I’m coming from Systems so being focused on one product is going to be…new. I’m still trying to get a feel for the vibe of the place, but my first impression is, people feel like they are under a lot of pressure from the ELT and just aren’t all that happy.

I’ve been reticent about developer roles for the same reasons – Variety is the spice of life. Donkey-eyed coding binges are, I don’t know, the mayonnaise of life or something: Fine in moderation, but bad for your heart. Literally, congestive heart failure is a workplace hazard that is not addressed enough. There are also “rumors” about companies not respecting developer’s work-life balance, and worse, expecting them to buy in wholehearted to the company “family,” which just so happens to be a cult like loyalty to an uncaring corporate entity. Free pizza Fridays though! Ugh.

I know there are good jobs out there – I’ve had many in the past and this current one isn’t so bad – but I think employer’s need to recognize that the relationship between employer and employee is an actual relationship with give and take. It really needs to work for both parties’ interests. It would be a shame for them to lose good employees over some arbitrary executive flex or yacht lust.

Anyway, I’ll keep doing what I do, day to day, in a way that works for me, and it if it doesn’t work for the Org, I’ll stay long enough to make an impact and then go on my merry way. Maybe I’ll move to Hawaii.

I guess this one’s a little easier to write than Emergence, but it’s so, so boring…

Emergence – Obscurity or Complexity?

John Conway’s Game of Life is an algorithmic model for cellular automata and provides a leading example of emergent behavior. In two-dimensions, each cell in a given matrix is considered either alive or dead. Wikipedia succinctly states the rules that dictate the activity of this population of living cells.

  • Any live cell with two or three live neighbors survives.
  • Any dead cell with three live neighbors becomes a live cell.
  • All other live cells die in the next generation. Similarly, all other dead cells stay dead.

As these rules are cyclically applied, populations of cells grow, traverse their 2-dimensional world, and die in complex patterns that bely the simplicity of the rules. The apparent “organic” lifecycle of these cellular automaton can be explained in the terms of emergence. The concept of emergence has been invoked in all sorts of disciplines, from meteorology, to statistics, biology, physics and of course, computer science. We’ll take a look at a couple more examples to try and understand this nebulous concept.

Raphael Augusto / Simulation of Life on the Surface of a Trefoil Knot / CC BY-SA 4.0

The Boids algorithm, developed by Craig Reynolds, is another example of a computational model that displays emergent behavior. Reynold’s algorithm simulates murmuration, the flight behavior of large flocks of birds by simulating a set of simple rules for how each individual boid relates to its neighbors.

  • Separation: Each boid avoids getting too close to its neighbors.
  • Alignment: Each boid moves toward the average heading of its neighbors.
  • Cohesion: Each boid moves toward the average position of its neighbors.

Once again, complex and mesmerizing patterns emerge from a set of simple reactionary rules.

Walter Baxter / A murmuration of starlings at Gretna / CC BY-SA 2.0

Further examples are the formation of rolling sand dunes caused by shifting winds, complex and branching geomorphic drainages formed by the ebb and flow of water, the formation of increasingly complex biomolecules from simple buildings blocks, and from those biomolecules, perhaps even the biogenesis of life, as investigated in the class Miller-Urey experiment. The complex behavior of ants

Other complex phenomenon, such as the formation of intricate ice crystals of snowflakes, are considered emergent behavior. The initial starting shape of the crystal seed, subtle changes in temperature and humidity, and even friction from surrounding materials have an effect on the ice crystal shape. But we can also understand the crystalline structure of these patterns on an atomic level using techniques such as x-ray powder diffraction (XRD). We understand the phenomenon that will cause a water molecule to bond to its neighbors under different conditions, and ultimately would be able to predict the shape of snowflakes with knowledge of their starting state, the set of rules that dictate the interaction of the molecules, and the inputs of each cycle. At this point, the behavior of the system becomes predictable, and if it’s predictable, can it really be considered emergent?

Perhaps it’s a question of scale. Each of the minutia can be understood as discrete pressures, but from the macroscopic view, it appears the crystalline fractal patterns of arise from some unfathomably complex set of interactions. In this view, to claim a system has emergent behavior is really a statement on a current lack of understanding.

Alexey Kljatov / CC BY-SA 4.0

But is it really feasible to understand all the complexity that goes into forming a single snowflake? Maybe it’s not just that we don’t understand emergent behaviors. Maybe it’s not possible for them to be understood. Whether it’s because we have no way of accurately measuring countless inputs, or the rational mind is simply incapable of understanding the innumerable factors that can affect an open system, or the systems are so complex that it’s physically impossible to resolve these solutions on a universal time scale, we might never be able to accurately predict emergent behavior.

Maybe emergent behaviors are the NP-Hard systems of the human universe, existing in a realm beyond the reaches of the rational mind.

On the other hand, maybe emergence has nothing to do with whether a system can be understood. After all, emergent patterns, presumably, exist outside of perception. Perhaps emergence is best understood not in terms of computational complexity, but in relation to entropy, as an intrinsic feature of the universe.

Ultimately, we can think of emergence as the behavior of a system that is more complex than its individual parts. Even simple emergent behaviors may become part of a larger pattern, feeding into a cascade of ever increasing complexity with no comprehensible end.

See Also: Smithsonian Magazine – The Origins of Life


Welcome to the world, and good luck!

Contrary to the blog writing edict, “Keep it light,” do not! What’s far more important, rewarding, interesting, and impactful is “Keep it honest.” The world has enough yoga centric boho blogs full of gluten free chocolate chip cookie recipes and puppy pics. That’s all good and well, but what the world needs more of is direct, honest, and respectful communication. How can we every understand each other if we hide our opinions behind a pale veneer of effervescent banality?

When I was hired into my previous position, the university was having all students and employees attend seminars on “non-violent communication.” A lot of that guidance was helpful: listen actively, respond respectfully, and communicate your own ideas with clarity and awareness. However, there was a large emphasis on avoiding conflict, which on the surface sounds like a lofty and well-intentioned goal. Fast forward five years, and the number one complaint among the staff was the passive aggressive attitude that had taken root in the organization. People were afraid to communicate directly. Anything that could be taken as a criticism was amplified and escalated to HR. In short, there was a critical breakdown in communication which had a negative impact on the operation of the organization, as well as the wellbeing of the employees and students.

With the world in disarray, racism thriving, and political rifts growing, it’s far more important to communicate honestly than to “keep things light.” There will be strife, there will be headaches, there may even be bruised egos and hurt feelings, but we should celebrate those differences and embrace the struggle. Like the hammer striking the iron, this is how we forge new solutions to the world’s most difficult problems.

As Carl Jung said in his 1938 book Philosophy and Religion, “Everyone carries a shadow, and the less it is embodied in the individual’s conscious life, the blacker and denser it is.”

See Also: The Institute for Conflict: https://www.instituteforconflict.com/