Last year I took some time to solve the 2020 Advent of Code problems. Most of the problems were easy - the second part of each problem usually being slightly harder. I needed a couple of hints to get me through a couple of the problems when I felt I was missing a piece of the puzzle but I only did that twice - for problems 13b and 22b. However, for problem 19b I refused to cheat and pushed through until I got to the solution.
Simple Productivity Algorithm on a Daily Scale
An abstract method of scheduling work throughout the day.
There are attributes that you may possess that could be considered virtues that transcend the familiar ethical virtues, in that they will make you more successful in any venture regardless of its ethical motivations or outcomes.
Strength is the most obvious. A strong person has the power to perform a good or evil act with more magnitude than a weak person. And if they set upon a venture, their likelihood to succeed will be predicated on a certain threshold of strength.
There are other less obvious virtues. (Jump to list)
Everyone is somewhat familiar with the Freudian concepts of id/ego/super-ego and how the unconscious and concious minds interact to a degree. Changing your mind is the most common manifestation of an interaction between these three agents - Action in motion (id) as part of a prior decision that is currently being played out (ego) is interrupted when an impetus makes us question the choice and decide on another through our understandings and values (super-ego).
Our minds are not this simple, nor in-fact, constructed in this fashion, however none-the-less the model is a useful one for considering what is occurring conceptually as we go about our lives.
A question to be pondered is - at what conceptual level to we affect the changes that we are looking to make, and why do we even want to make them? This differs from the id/ego model due to its analysis of the concious influence of layers in contrast to more of a theory of mind.
It’s no longer a secret - I’m leaving Silverpond.
I recently came across a truly amazing collection of letters and notes surrounding the formation of the Autodesk company, who are most well-known for developing the AutoCAD drafting software.
This struck me as a treasure-trove, since AutoCAD actually provided the strange inspiration that launched my software-development career more than 10 years ago. It is therefore fascinating to me to hear detailed stories relating to the company’s inception which until now I had no insight into.
On Saturday I helped run a one-day Haskell workshop for the members of the Melbourne Alt .Net user-group. This idea had actually been in the works for close to two-years but since I’d put on a Haskell workshop at Compose :: Melbourne at the end of last-year, it was a no-brainer to repurpose the material and finally get this event done.
Organising and running this event was a pretty smooth exercise overall, with the only real work required being a gathering of volunteers to help assist, the tweaking of the materials, and obviously running the workshop on the day. The venue was graciously provided by SEEK and we ran the workshop in their lunch/presentation area with the crowd of roughly 50 fitting comfortably in a relaxed atmosphere.
Seeaich - "Skyline"
The Compose :: Melbourne 2016 committee has reconvened to make a decision on weather to run the event again in 2017. Everything is looking quite favorable for a continuation of last-year’s inaugural Melbourne-based functional-programming conference. However, something that we had promised we would do (and as part of the preamble to running the event this year) was a review of last-year’s event. The review had been continually delayed for the obvious reason - we were all exhausted from running Compose :: Melbourne in 2016 and there was no pressing need to do it. Well, now that the motions of a new event have begun it seems like a good time to put a little retrospective into order.
I thought that rather than try to do this as a collaborative piece of work, instead I could write up my thoughts in a blog-post, and if the other members of the committee want to remark on their experiences too then they can do the same, or at least suggest amendments to this post.
Something counter-intuitive occurs when you take someone versed in sales and in development and ask them to do both on a project. There are two forces at play that are very productive if they can be resolved - narrative forces, and the scientific forces. Sales tells a lead a story where the lead is the main character. This doesn’t focus on the obstacles to engineering the details that the story entails by design. Sales is about driving desire. Of course, the pitch must be achievable at least in part otherwise reputation will suffer, but the constraints of the story need not be made explicit to the lead. Development on the other hand focuses almost entirely on uncovering the constraints of the solutions described. The tension between vision and realisation can be a very productive driving force for a business, but only when managed carefully. The division of roles aids in this management in ways that are very difficult to manifest in a single person.
I have a little program that I implement with various streaming frameworks in order to test out their capabilities with a range of orthogonal requirements. I call this program “Uniqhash”.
Enumeration can serve as an invaluable intuition pump.
Often you will come across a gem of an idea, this seems to have merit on its own and deserve exploration. For example, you may observe that good musicians have a certain set of personality traits. It’s worth expanding on and testing this idea. There may be something to it. It’s a valuable piece of knowledge to spread, however, there’s much more to be gained from ideas such as this with the application of a little abstraction.
On Thursday 8th, September 2016 I gave a talk on Powercor’s data-science platform at the AGL-Office Melbourne Data-Science Meetup. The talk briefly covered how the architecture of the platform was conceived and how the platform was implemented. Below is an excerpt from my talk to give some insight into building a platform that can handle the rigour of data modelling and analysis.
Constant interruptions kill productivity, but the take away from this should not be to become a hermit. Hermits may be very productive but they lose touch with the rest of the world. When they emerge with their hermetic results, they find that humanity has moved on. That their results interest nobody, that other people have already produced better results, and worst of all, that they have lost the friends that they used to have who would have listened to them regardless of these other downfalls.
It’s not a new idea that simply by spending a large amount of time with someone you gain influence on their behavior, if not their ideas. I’m sure you’ve seen this in your daily lives. You’ve ended up spending a lot of time with an acquaintence whose ideas you don’t have a high degree of respect for, however, you find yourself acquiesing to their requests simply through the pressures of proximity.
Where I think something new may be gleaned on this subject is by taking this concrete notion into the abstract. When the entity being influenced is more nebulous than a person and the proximity in question is not simply physical. So, we have two places to start: Subject and Proximity.
Here’s another dumb idea of mine:
Create a proxy that turns ascii-casts into streaming WebM video.
This will allow you to embed your ascii-casts in sites that only support video or gif embedding!
Extreme opinions on nuanced topics are a-dime-a-dozen. It’s easy to ignore the fact that there are many diverse views on these kinds of subjects and focus only on your own opinion. Another common reaction is to create extreme caricatures of other opinions on the topic of your interest.
When you come up with an interesting hypothesis:
- Look at the field where it applies.
- Look at what assumptions the hypothesis breaks.
- Enumerate all possible hypotheses that emerge from those broken assumptions.
- Look at why your hypothesis is the best of these options.
- Why not test the other ones too?
I’ve started a new meetup: “Melbourne Silver-Screen”.
It’s an open movie-night hosted at Silverpond.
There are lots of movie-nights, so what makes this one unique?
In the post Action, Perception and Theory of Mind, I laid out a few ideas about discussing actions, observations, perceptions, theory of mind, and how they relate to interpersonal and inter-group dynamics. The text was kept quite abstract, but now I would like to use a few concrete examples in order to show how to take advantage of these new concepts.
Here we use the same Two-Body Problem from the other post, but instead of nameless parties, I use human names. Instead of abstract actions, I use concrete actions, and instead of amorphous bodies, I use companies. This scenario is going to be studied from a “Value” perspective.
What is a great violin?
A great violin has a great build, great sound, great heritage and a great history, but is a great violin what makes a great violinist so remarkable? Why does Joshua Bell own the Gibson Stradivarius? Is it because he needs it to play his signature great performances?
Signalling is the conveyance of information outside of the direct in-band communication channel.
Example: Candidate at an interview for JPL went to Harvard.
This signals that they may have some grit, connections, a good demeanor and interesting traits.
Of course, this signal could be misleading, but this isn’t meant to conclude the investigation of what the signal implies. It’s just an early step in the process.
Now the cooler the signalling attribute, the stronger the signal, right?
The concept of modern stardom hits like a rock to the back of the head. Shock, haze and a red-fade to concussion.
What is a star?
A star is silent. Old. Fading. It rises in perpetuity, but can only be seen in the quiet dark. It is easily drowned out.
A star has one strength. Its purity. The sound of a star would be a single high harmonic note on a violin that emerges as the orchestral ruckus dims.
If you want to practice mindfulness, then give page-turning a go. Ask your musician friends if they would like you to page-turn for them during a practice session. It’s not hard to get the hang of, but it demands very high concentration none-the-less.
Quora - “The Best Answer to Any Question” serves as a Q&A site that intends to capture the Expert Answer market outside of the domain of Stack-Exchange. Meaning, questions that are more subjective, or about experience, and that do not have a difinitive answer.
This sounds great, so what’s wrong with Quora?
Fantasizing is often looked down on
- As distinct from day-dreaming
- Attributed to mania
… but, You can remedy some of these issues.
Following on from Weaponizing Haskell - Part One, which left us on a stable footing with regards to Continuous Integration, but mired in the marshes of Elastic Beanstalk deployment woes… We now have a running EB deployment!
This post will detail what it looks like and what was involved in getting here.
I’ve really like the idea of Categories. They boil down one of the most essential aspects of programming - “composition” - into a concrete interface, and with their laws, give rise to logically intuitive behaviour. Categories start out extremely simply, with only two laws, and two operations, but the subject quickly becomes highly theoretical through many ideas about sub-categories, transformations between categories, isomorphic behaviors, etc. Still, just using the basics is very satisfying!
While categories may be intellectually stimulating, there was a question asked recently that I thought I would be able to easily answer, but the more I thought about it, the more I was stumped…
“How can a Category instance in my program save me from writing at least a little code?”
So I’ve got a soap dispenser…
This is a set of notes summarizing the trials and tribulations involved in getting a small Haskell application building, running, and scaling in the cloud on a budget!
The outcome is that the app still isn’t running, but we are on the bring of having it running on AWS through Elastic Beanstalk. Stay tuned for Part-Two, where I’ll speak in more detail about the final step, and guide you down the happy-path towards building and running your own Haskell services in the cloud…
Social media is fun - We love sharing our thoughts with our friends, and looking at what our friends are thinking about too, but social-media has the power to be more than just an ephemeral stream of current thoughts and events. And that power is being vastly underutilised by existing networks.
All that’s required to change this is better search…
I started writing this post in an attempt to capture certain ideas about how value is projected, and how those projections can be misconstrued. Halfway there I began to realize that I was instead creating a kind of embedded language for discussing the perceptions of actions in general. This post will, therefore, focus on the idea of action perception, with some examples. I will soon write another post to get back to the original topic viewed with the help of the ideas discussed here.
Let’s talk a little about the title.
Most of the interactions in our day-to-day lives are just that - actions. These actions occur between people, groups, objects, or are self-inflicted. We mostly limit our conversations about these actions to remarks about their circumstances, and the details involved in their construction and execution. However, if a tree falls in a forest, and it is not perceived, does it still make a sound? It is important to keep in mind the contexts and interpretations of the perceptions of actions that occur.
This is the start of a new post series titled “What’s in my Tabs?”
In it, I go through each of my open browser tabs and explain why its there. In the future I won’t repeat tabs that have been previously discussed unless their presence has a new significance. I’m also hoping that this will help me clear out old tabs that I’ve never got around to reading, and give me a higher-level understanding of the tabs that I have open.
Without Further Ado…
Another trait, it took me a while to notice. I noticed the following facts about people who work with the door open or the door closed. I notice that if you have the door to your office closed, you get more work done today and tomorrow, and you are more productive than most. But 10 years later somehow you don’t know quite know what problems are worth working on; all the hard work you do is sort of tangential in importance.
I wrote a couple of comment responses and have preserved them here.
The standup is a mainstay of modern agile development teams.
It evolved as an attempt to keep meetings short and regular:
- We want to facilitate communication
- Meetings attempt to do this, but are unstructured, and go on too long
- If we stand when we have a meeting, peoples legs will get sore, and the meeting will have to be kept short
- Stand-up meetings still go on too long, and lack structure, but now our legs are sore too
The thrust of enhancing communication is to ensure that everyone knows what other members of the team are up to, and what the current focus is. This ritual is often paired with Kanban style card walls so that tasks and progress can be represented symbolically and made visible. This can be beneficial, but doesn’t necessarily have to be part of stand-up itself.
I work as a consultant on projects that are going through their prototyping/early-development phases. Part of this process is to choose an architecture that will solve the clients current problems, but is flexible enough to accommodate scope changes in the future. Building out the architecture involves choosing technology to fulfil facets of the architecture, but this in turn shapes the architecture as no technology will fit perfectly and certain technologies will approximately solve multiple needs.
The result is a rapidly changing tech-stack. This is confusing and leads to the situation where nobody is across what the vision is for the architecture anymore, and since that’s the case, they will add to the chaos by choosing technology that has merit, but would be better off being replaced by an existing piece of the stack that would suit the task. Or conversely if their choice is superior, maybe the currently technology in the stack should be replaced.
I write a lot of convenience scripts day-to-day. These usually take the form of a visualisation, text-processing, html-generation, you get the idea. In the past I would usually have the convenience script also perform the action that I fundamentally wanted to achieve. For example, I wrote a small python script to plot two columns of CSV input and then display them to me called plot-columns.py.
This is a place for ideas, reactions, etc.
I’m still putting the look-and-feel of the blog together, so expect the structure and style of the site to change frequently for the next while. I’m also brain-dumping a lot of ideas since I haven’t used a blog in a while, so if the editing quality is rough, expect the posts to be retroactively improved in the future.