New stack: BCHS

BSD, C, Httpd (Apache), SQLite

So, a few days ago I was introduced to a new (to me) development stack called BCHS (Beaches).

After checking out some documentation on the stack I found it to be interesting and may be a challenge if I ever get around to creating one. Which I probably won’t because there are more efficient options when it comes to devlopment languages, web servers and databases. (ie FEMP)

I do find the parts of the documentation where they mention it’s not for hipsters hilarious. Hipsters dislike memory management. Comical. Just as comical as some would argue using a BCHS stack for real work.

In all seriousness I was first introduced to programming from learning the Apple LOGO commands at age 12. Then from there it was BASIC then HTML then Visual Basic 6 then C then C++ then Java then PHP (and various other scripting platforms)

When I look back at it, I really liked C and C++. I even took the time to write a couple simple programs using them. Mostly C though. C is great, but I think php offers a more rapid development model and a shallow learning curve. C would be used for video/image processing perhaps more intensive instructions. Not to mention it is more scalable than just php alone. I might actually consider it if I had more time on my hands to rewrite my FEMP stack into a FHMC stack (Nginx doesn’t support CGI). We’ll see what I come up with…

What I’ve been working on

In late August of 2016 I was offered a new position with another company and my life has been exponentially better. My wife and I also had our first child, Liam. He’s the only thing I care about anymore. If you are a parent, you know what I mean.

I have been exposed to some new technologies and therefore I am trying to learn as much as I can about their power. So far, I’ve been able to build, from the ground up, FreeNAS, Pfsense, Araknis, and Meraki solutions.

My favorite stack is FEMP (FreeBSD, NGINX, MySQL, PHP). Rock solid 🙂

In other news…my Surface Pro 3 is now running Manjaro Linux (my new favorite distro based on Arch Linux). So far so good. I originally had Fedora 26, but there were some Wifi bugs.

So, that’s pretty much it. I’ll just pick up where I left off on this site and keep on keeping on. Thanks.

Pop Technology

In today’s technology world we have a lot of hardware and software to choose from. The latest and greatest of everything comes at a price, but how much do you really need that new smartphone or software? We must be mindful of the ultimate use case for everything and how it will actually help us get things done. Many of us are overcome with so much joy at the sight of shiny new hardware or software that we actually forget why we need it in the first place. I’m not saying I don’t like the latest and greatest tech, but I also think about whether or not use justifies the cost.

Article on Data

Read This Keep in mind that there are people already collecting and examining data from social networking sites in order to study human behavior. If there is not then there should be. This is acceptable until that information is used to exploit our weaknesses as an individual, group or nation. On Google wireless situation: Think of your network as an extension of your physical home. Just because you don’t lock the doors doesn’t mean it’s right for people to just come on in. However, if you don’t lock your doors, you’re asking for it.

Software Implementation

We are now in the process of implementing a large scale document management system for a construction company. This is an experience that shows the value of good training and documentation as well as setting expectations. The software has been installed and is functioning and now comes the training of the users. We are the reseller of the software not the actual developers, so we base our knowledge on what we’ve learned from installation, use, certifications and documentation provided by the developer.

When training the customers we need to be experts and provide effective recommendations on how to use the software based on the customer’s business needs. Fit the software in the business processes wherever possible for optimal integration. In order to do this we need good resources to educate ourselves on the details of the product. The integration will fail (or not be as effective as it could be) without this knowledge. Your customer will have questions that may get too detailed for your knowledge. Answering these questions with guesses or knee-jerk reactions is dangerous and at that point you are no longer the expert in the customer’s eyes. To prevent this from happening the best thing to do is table the questions you aren’t sure about for a later date until you can do more research.

Documentation for the product is very important as it can provide you and your customer for a base on best practices and detailed information on the functionality the system provides. In our case, the documentation was written by the developer. At this point, it would be beneficial to have documentation up to date when the product is released, not during or after the release of the product. This will eliminate confusion in the future. It is also important that before your reseller can sell the product they need to receive certification for sales and service. If these certifications are not available…wait to release the product. It is far better to have the reseller trained and certified on the product before the implementation cycle begins. This will ensure the developer has passed on key knowledge to the reseller in order to not only sell the product effectively, but to support it as well.

Setting customer expectations in the beginning is important no matter what. Set the rules of the game in the beginning. No one likes changing the rules in the middle of the game. Large scale implementations such as the one we are working on now can be complex and confusing. The thing to practice most is communication. Communicate your responsibilities and requirements to all parties and visa versa. This way everyone knows their role and what they need to accomplish in order to achieve a successful rollout.

Measuring Performance

Performance reviews are a great tool when used correctly. In theory, performance reviews measure levels of performance in certain areas the company deems appropriate for their company and/or position in the company. When a person doesn’t meet certain goals or performance levels trying to achieve these goals he/she is then denied the reward (if any) had they been performing at higher levels. Performance reviews are always a good tool for both the employee and the employer. Employers should really consider using them to improve performance levels across the organization. Employees should use them to evaluate whether or not they are doing well in their current position. The review will highlight areas where you need to improve and where you stand currently. Knowing this is important to maintain levels of performance in your job function. How can you be sure you are performing to your standards and the standards set by your company? Answer: you can’t unless you understand what areas of performance your company measures. With performance reviews, the employee knows where they stand and can make adjustments to improve or move on. The same goes for the company. Let’s evaluate this in an analogy: Machines.

When NASA launches a rocket they collect all sorts of data from the engine to the environment surrounding the rocket itself. This data is then examined and used to make adjustments to the rocket to increase its performance on the next launch. Like any machine a rocket can be tweeked in order to get maximum performance. In order to accomplish its mission, NASA knows the rocket must meet or exceed certain performance levels in various categories. Once the rocket has been altered it is put to the test again, measured, then tweeked. Measure, tweek, measure. One could do the same thing for people in order to enhance their performance. As people are your most valuable asset in an organization you want them functioning to spec or beyond. You accomplish this by setting your metrics, your rewards/incentives and taking measurements and making adjustments.

Like NASA, companies also have missions. Most of the time performance metrics are based on the mission. If not, the company risks measuring the wrong metric and effectively losing sight of the performance it needs to accomplish its mission. It’s in both parties best interest to know what performance metrics are measured and what reward (if any) will be given if the employee meets the performance levels. With proper metrics and realistic goals an organization can get the best performance. Like the rocket people need to be tweeked sometimes.