Hiking down that mountain

One of the most interesting things I’ve done in my life was scale Mount Fuji during my honeymoon. I didn’t find the way up, in the dark, with hundreds of other people to be that painful, and the satisfaction of seeing the sunrise from the top was definitely something to be commended. However, the most difficult part of the climb wasn’t on the way up… It was on the way down.

As a metaphor for business and life, this really does match my experience. Usually the climb up is never as hard as the climb down.

In optimization theory, there is a concept of local optima (both minimums and maximums). A way to visualize maximums is like a mountain range where you are trying to get to the top of the highest mountain, you can reach a peak and look around and realize that you are as high as you can possibly get but still be surrounded by much higher mountains. Frustratingly, determining if you are at a local maximum or a global maximum is actually a quite difficult problem (and there is no fast solution for doing it for any algorithm.)

In many cases, it is actually closer to reaching the top of a mountain and seeing only clouds and fog around you. You think you may be able to glimpse the next mountain over but you aren’t quite sure and, really, won’t be sure until you hike down that mountain and try the next one over.

Business and capitalism (and arguably life) is always an attempt to optimize usages of minimal resources to achieve the biggest outcome. In the course of this, you can sometimes find yourself scaling incredibly difficult mountains thinking, “Hey, if I do this right I’ll make it to the highest one this time.” The unfortunate thing is, when you get there and realize that either you don’t have the resources to go higher (a very common problem) or the top wasn’t has high as you thought it was, you need to climb back down.

Just like Mount Fuji.

Hiking down a mountain is strange, you can see the bottom, you see what you are heading towards, and usually it’s not where you really want to be if you want to be at a maximum. You slip, and sometimes even fall. It hurts… a lot. I have more than a few bruises from falling on the climb down.

You want to get it over with, but the faster you go the more mistakes you make. The slower you go, the more you have to put up with going down when you want to go up.

It sucks… Hard.

But you sometimes need to do that to get out of that local maximum and aim for higher heights.

Sometimes you just need to hike down that mountain you got yourself stuck on. It’s not failure, it’s just part of the journey.

KJR

Science Haikus

Schrodinger’s “dead” cat
To itself it is alive
to us it is both.

Quantum Observation
Destroys the state it is in
Makes it classical

Biological
you don’t want to hear it said
along with “hazard”

science is reading
but less reading and more
writing and writing

Don’t do grad studies
unless you want to be told
How much wrong you are

Qubits encrypted
are very secure but need
to also have bits too

immix planned hardware platform support list

Goal for platforms for immix Release -1.0 to support.

Big powerful fun servers!

  • Windows 2008R2 Server and up (WAMP and possibly WIMP) Already requests for this. We are definitely willing to do it with AMP, but nervous about doing it IMP and most definitely can’t do a fully .NET version without some more funding.
  • Ubuntu LAMP (current dev version works 100% including a deb package)
  • CentOS LAMP (Will build RPM for this) This should be as easy as Ubuntu, really.
  • Not sure if I’m going to bother trying to get other Linux Distros. Any suggestions on this front?
  • Mac OS X server , Not sure how hard this will be, but I can see having the ability to install it locally to work with to be wise. As well as use it as a “node” immix to send information to a central server.
  • IBMi Server (Will build SAVF for this) As well as create a new IBMi useful documentation repository I think. There is a lot of missing or diverse docs online that this could be immensely helpful on. Especially as I learn more about it. Personally, I like this since this gives an enterprise way to get immix right onto accounting and major operational machines without too big of an issue. Biggest problem we have right now on this is mongodb is used for some advanced features. Debating having it not available on IBMi, but looking at CouchDB and other alternatives to make this work better. If we get this running, there will be automatically a major accounting package that will be incorporated into immix, so that’s pretty spiffy.
  • Raspberry PI (This one is obvious, especially with the secure channels between immices working so well. This makes it easy to network a ton of separate devices without having to go the hub and spoke method.) When this is done, I hope to have basic modules in place so you can use it control heating, track baby movements, etc. The usual.

When Release-1.0 is out, this should be a solid list of supported hardware. Improvements will be impressive as we push 1.1 out, since it includes a fully operational live chat environment.

Future goals for immix clients (not server end)

Raspberry Pi

Raspberry Pi (Photo credit: tkramm)

  • Full Android, iPhone / iPad web support for back end. This is already in place in in the dev path, and we simply need to push it live after Release-1.0
  • iPhone native app, this will allow you to connect to all of your immix servers and collate them in a general stream, as well as push items from your phone back to the servers, if you want to.
  • Possibility of having immix clients have same functionality as servers with the ability to interact with each other without the need for a central server.

Should be interesting in the next few months. Especially as Steve Godin gets the formal documentation and knowledge base in place. I really am hoping to be able to get a few more external developers playing around with this and interacting with the API. As well, the code base should get documented enough to open up the possibility of having 2.0 built on a different structural code base (not PHP). We’ll see though.

Plus, there’s the whole opening it up eventually for other people to log into the central immix and play around. However, that’s more of a for fun internet of things idea than anything else.

Lots going on, lots to report.

Kelly John Rose.

Enhanced by Zemanta

Believe in your work.

One big thing I’ve realized as my life has shifted so dramatically in the last few weeks is that you must believe in what you are doing. You need to believe in your work.

Now, there are two ways to approach this. One is sane, it has respect for family, friends, and general reality. It is the type where if the job needs to be done, and you are the person you needs to do it (or above the person who needs to do it) then you need to take the responsibility to get it done.

Remember, your friends and family need you to do your job as much as the organization you work for needs to have it done. If you can’t do it, for any reason, then you need to go look for another job you can do to support those that matter most. Unless, of course, you are one of those lucky sons-of-guns that wins the lottery either at life or the literal lottery.

It’s a funny thing, because many work/business/self-help books say you need to work in a job that you love. I think that’s just a twisted way of saying, you need to work in a job that you can provide the level and quality of work necessary to provide real ROI. If you are happy in the job you are in, you are more likely to put in the 100% of the hours that you work producing a fantastic output and giving back to the team what they need to move forward.

If you are miserable about the work, you are likely not only not giving 100%, but you are also costing the team in moral issues.

One way to be considerably less miserable is to believe in your work. Everyone who works with me I can see real possibilities beyond simply hammering out another form, or building a bureaucracy.

Believe in your work. Believe it will matter if you work hard enough at it.

If you can’t do that… well… don’t be an entrepreneur or work for a startup. 😛

KJR

Enhanced by Zemanta

Programming languages + Petty battles

Arguing about programming languages feels to me at times like arguing about human languages. In many circumstances you need to choose one that is required and move beyond any idiosyncratic silliness that arises when it’s not “your favourite language.”

Honest, I love Lisp, you can do some pretty awesome stuff in it. But you also really don’t want to program Mediawiki in it or WordPress. At least, I don’t know of a good way to do that cleanly.

I don’t mind PHP and really don’t understand the PHP hatred I see all the time. PHP gives you a lot of leeway to build pretty good software which if you are wise is fairly maintainable. Facebook, WordPress, Mediawiki are all built on this solid framework.

I quite enjoy C and C++, but I never really see an opportunity to build a large project on it. It has so much power to do things rapidly when you do it right. Having developed encryption breaking code in it, code that sorted through hundreds of thousands of stock records rapidly, and even starting on a piece of software that worked as a foundation for producing certain types of websites rapidly. Yet, the time it takes to code correctly, combined with the rush-rush-rush nature of our society has made the cost per program for C code to be well above the going rate these days.

Ruby… Well, I have other issues with Ruby beyond the code, more the community. But I digress.

CL (RPG/400) honestly I used to love, tried to dive into again recently and realized I had forgotten almost all of it. Which will be a bit of a pain since I’m trying to redevelop a system to work within a Zend Framework (combined with immix) to integrate Medium to Large account systems in an effective manner with a web GUI. Hopefully that love will come back, but in the days of Google lookups for all of the other languages, CL still requires me digging through the massive tomes.

In the end though, the funnest part is seeing it all come together.

Nothing beats a Quantum Code Compiler for an NMR machine actually being used to spin atoms, or a decrypter breaking a system while it is still negotiating the keys, or even better, a mutual fund analysis tool giving pretty good predictions on ROI for the following year.

Just seeing production. That’s what matters.

if you want to go argue about programming languages go back to the elementary school yard and argue it there. The adults need to do real work.

KJR

Enhanced by Zemanta

Just a little unintended give

I’ve learned over the past 5 years, business is a funny thing. It’s sort of like piloting a boat without any real certainty of where the final port will end up being. You aim for ports that you know of; either from journeys others have taken, or from rumours of lands unexplored. The part where it ceases to be like piloting a boat is that you aren’t at open sea, you aren’t able to predict the weather, and to be honest, you can’t see the stars nor have GPS.

One person I’ve spoken to said, “it’s like tap-dancing.” You have to keep the beat and just keep on going, light footed, skipping past all of the issues, and not letting a stumble break your step.

That could be true too, but the problem is it’s like tap-dancing, where the music may suddenly turn into a polka or a samba at any time.

What I’m finding is it is, for better or worse, a martial art. You can learn from the masters and work your way up, and yes, some people have a natural knack for it. You start by learning the rules and the strictest throws and punches, being judged exclusively for how exact you perform them. However, as you go up the ranks you learn that being strict and rigid is a darned good way to break your arm. Following the specific steps you’ve learned is a good way to get thrown to the mat pretty quickly. Why? Because those are the specific steps everyone has learned.

What you realize is that it takes a little unintended give, sometimes.

Some people call it pivoting, but to me that implies a bit too much forethought. The decisions you make are too quick and too responsive to be simply a pivot. Spending a lot of time on a decision is a good way to waste money or, to use the martial arts analogy, quickly be thrown out of the ring.

We’ve probably all heard the “Kung Fu” slogan that you want to be like a reed, able to bend in the wind, not a stick which snaps. We also probably think we’ve taken it to heart in various areas of our lives. Probably true for the ones you can think of. Similarly. most people forget that a reed also had some rigidity, otherwise it cannot stand at all.

It’s not being a wet spaghetti, it’s a little unintended give.

Sometimes it sucks, but at the end of the day, it seems to be the best way to survive, grow and move forward.

A broken reed dies in the pond.

KJR

Enhanced by Zemanta