Martin חיים Berlove
creator, thinker, polymath
Selected Projects and Activities
Calm Speech Project[In Progress]
Goal: Achieve a better society through better communication.
A short guide to help people learn new tools and frameworks with less hassle
A small task list app made using Ruby's Hanami framework
Decided to kill two birds with one stone and make a productivity app for myself while learning a newer framework.
Customized Vi[m] themes
Much to my surprise, I've become something of a vim adherent, enough to want my own themes to suit my preferences.
Simple Trello tasklist integration using PHP
A better way to think about the money you spend
Augments[2016]
Conceptual game made for Github Game Off 2016
Graphling[2014]
Extensible interface for demonstrating graph theory fundamentals.
Pong clone in JQM that supports touch.
Music[Ongoing]
Explorations in music creation
Teaching[Ongoing]
Video-based classes on various topics in computing
Raytracing[Ongoing]
A variety of raytraces for fun and education
Learning German language, spoken and written
Through the use of Duolingo, textbooks, online tutoring, and immersion, I hope to bring my skills up to a level for day to day communication with native speakers and to read technical papers written in German.
Summary of Experience
Recent Writing (@MartinBerlove)
Mathematics, and Pertinence to Software

Programming is often viewed in a vacuum, as the tool that makes software do what it does. This is often true both on the part of those who learn programming to get a job, and for those who employ programmers as code jockeys to “make things work.”

When this view becomes too limiting, the broad-minded approach usually next encapsulates programming’s pertinence to the business as a whole, viewing software use as an integral part of the business process.

What usually gets left in the dust are the mathematical formulations behind software, typically viewed as highly theoretical and inappropriate or unnecessary in the business context.

For some very limited contexts, this may be true. If you have extremely limited manpower, if the focus of your business is small and directed, and will remain small and directed for the foreseeable future, and has absolutely nothing to do with any kind of math, or lies in such a completely understood field that no new techniques could possibly be developed, then there may be a valid reason to ignore mathematics.

Outside of such contexts, mathematical comprehension drives success in both the short and long term.

Financials, data analysis, artificial intelligence, computer graphics and visualizations, business development, business efficiency, hardware research, materials science, mechanical engineering, transportation and the supply chain, robotics, libraries, education, medicine, language work, governing, fundraising — all these areas use software (or should use software) which is bettered by the knowledge of mathematics, can be improved by mathematics, and for which a solid understanding of mathematics will allow yet more advanced software to be developed which will advance the given field.

With that little rant out of the way, let’s take a far from comprehensive look at a few common areas of mathematics and how they pertain to software.

Discrete Mathematics

This one’s fundamental. If you want to build an algorithm, or even understand the data structures used in just about any software system, you’ll need discrete math. If you touch no other mathematics beyond algebra, this would be the one you want. Without discrete mathematics, modern software falls apart.

Calculus

Ah, calculus. The big bad slog that some people understand intuitively and others crunch away at formula by formula for years. Why does software need calculus?

At its most basic, it doesn’t. Software hasn’t run on differentials since mechanical computing, and many a “software professional” goes to market with at best a hazy concept of continuous functions.

Yet look around, and you see calculus everywhere, driving everything. It’s in . And maybe most importantly, a strong understanding of the principles found in and derived from calculus are requisite for other, more directly applicable areas of mathematics such as probability, differential equations, and combinatorics.

Differential Equations

This is a huge topic, and some of it is so esoteric that only engineers in very highly specialized fields or scientists dabbling in the mysteries of the universe will touch them with any frequency. But others are more common, useful to many trades including software. In particular, linear differential equations is used in analyzing large data sets, calculating computer graphics, teaching AI, and so much more.

Combinatorics

Combinatorics broad arena of mathematics, with a broad range of applications. Different courses of study will touch different topics here, but at its core deals with the counting and countability of certain types of structures. Understanding this subject requires a certain understanding of discrete math, general mathematical thinking skills, and potentially a few other topics, but is not necessarily “hard” the way other fields may be perceived to be.

Learning the various skills here pairs well with just about any other mathematical discipline that has ties to computing.

Graph Theory

Though often taught as its own subject (and for good reason — there’s a lot to learn), graph theory is really just a highly refined subset of discrete mathematics and algorithm studies. A graph in the world of computing is a discrete structure of connecting nodes, and is used to store connected information. Graphs are of particular interest as they possess many subtle and surprising properties that make themselves known only after significant study, yet yield themselves to typically very efficient algorithms used to gather and process information.

Graphs are pertinent to many areas of computing, including databases, machine learning, and interconnectivity (both human and artificial). For instance, a graph might be used to track the connection between to people on a social network, the location of a phone within a cell network, or the number of citations a paper has received.

Cryptography

Some might consider this an “applied” math, since its principles lie in a few different disciplines, but cryptography is a hot topic in math and is often taught as its own subject. Prime numbers are the big winner here, and they and a handful of other basic mathematical tools are employed to perform impressive feats of encryption, verification, and protection.

Cryptography typically requires putting one’s nose to the grindstone, but the benefits are enormous, especially in terms of monetary losses offset when data breaches or hacking attempts are avoided. Remember, for every awful data leak you hear about, there are a dozen failed attempts thwarted ahead of time by the ongoing efforts of people working in cryptography and related fields of study.

Probability and Statistics

Some might consider this pair of items to be one, but either way they form a kind of holy grail of computing, permeating almost every single topic of computing. Every topic in math feeds into it, and it in turn feeds every topic. Financial analysis, biometrics, data processing, artificial intelligence — so many fields rely directly on an astute understanding of probstat.

Look no further than the nearest rookie plying a natural language processing algorithm he doesn’t understand in an attempt to build the next big-selling chatbot, and you’ll quickly see the ramifications of ignorance in this area.

You don’t need to be an expert here to make good use of such skills. A strong comprehension of the basic principles and common formulas (and what they mean) goes very far, and forms a basis for building new skills on top of it.

Software relies on probability and statistics to “make things work.” Or rather, software relies on programmers who understand how probability and statistics work.

⇣ expand ⇣⇡ collapse ⇡
ERP, Automation, and the Employee

There’s a lot of news in the ERP space these days about automation and the future of manufacturing and resource management (recently actually is more like a decade, but roll with it). Everyone sees the progress of automation, whether they view it as a beacon of hope or an omen of despair. Amazon’s automated factories and drones, robotic restaurants, and increasingly effective digital personal assistants.

If you read the articles and discussions that come out of the industry, you’ll see a little concern, and a lot of optimism. There’s no doubt that ERP will undergo a significant shift — already is, in fact — and many processes will need to change, adapt, be updated more and more often. Yet those in the know believe that automation has the power to make ERP more efficient and that the effort involved in staying on top of technology will see significant gains in the long run for individual businesses and for the industry as a whole.

The item of note that so few such articles touch on is what will happen to the employees themselves who face the paradigm shift, especially the blue-collar workers who encounter a sink-or-swim, learn-or-die environment. The company may weather the change and come out stronger, but that may not hold true for any particular employee’s career and livelihood.

Then, if you read the articles aimed at blue-collar workers themselves, you’ll find a very different tone — titles include phraseology like “Don’t Worry,” and “Automation Actually Adds Jobs.” Most articles then go on to address how the shift towards automation in manufacturing and other areas simply shifts the lines of the workforce, and how retraining is common and surprisingly simple, and how more new jobs will be created than it removes.

But of course, none of this is very comforting if you’re the one who might be displaced, if you’re the one who is dependent on the company actually choosing to retrain rather than rehire its workforce, if your livelihood depends on your ability to keep up with a quickly shifting process.

So few of the hard-hitting articles that actually come out of the ERP space itself discuss this factor — because from an organizational perspective, it’s largely irrelevant. The workforce will shift and change, the technologies will replace one another, this much is guaranteed, and it’s simply your job as a representative of a business in the ERP space to keep stride with those changes and utilize them to get ahead rather than fall behind. You may a caring human being and feel unhappy when longtime employees lose their jobs because they simply can’t keep up, but that’s how the bottom line works.

There’s no clearcut solution for how to handle automation and the displaced, or replaced, workforce. Despite all the posturing of various parties regarding what must or will certainly occur, no one really knows how it all will shake out.

It’s important — and challenging! — to keep a careful balance between concern over the state of the industry and over the ramifications for the individuals concerned. After all, technology is here to help us as individuals, and as a society. If we split that apart into functionally separate halves, we’re losing the real benefit of technology to make our lives better.

So let’s keep an open mind, and a watchful eye, as we observe the wonderful and undeniably fascinating changes that are coming not only to ERP but to so many areas of work. Open and honest communication will bring a smooth transition to a future of high technology.

⇣ expand ⇣⇡ collapse ⇡
Custom Stylesheets in the Modern Age

A good while back, custom stylesheets were a fairly common item for those who wanted to personalize their web experience. Especially when browser and system conformity were low, and visual styles on the web were the wild wild west, employing some control over your viewing experience was a great boon.

With the advent of at least some standards, both official and unofficial, there became less and less of a need for such custom user styling, and now its practically unheard of to supplant a site’s stylesheet with your own (at least, I know very few people who even realize it’s still an option in many browsers).

I’ll grant that throwing custom styles on every page you read is probably overkill in today’s age (although if you do a lot of news reading you could make a strong argument concerning adspace, content spacers, signup forms and the like), but there remains a definite use case for applying custom styling in your daily life.

Today’s design tends to use a lot of white and minimal colors, with plenty of white space and only a few design “hints” as to the flow of the content. There are a lot of benefits to this, including not distracting the user — and that’s great.

But many sites and web applications trade this minimalism at the cost of a little readability. Skimming a page for important points is no longer such a fast concern. This holds true especially in cases where the page contains a lot of scattered small pieces of information, such as with a dashboard or task manager (e.g. Mint, Jira, etc).

In such cases where decluttering is taken too far, it helps to throw a little custom CSS on top to make your browsing experience suit your needs.

Personally, I like light dividing lines as a visual cue of where one piece of content ends and another begins. I also like when columns align, so I can quickly shift between one section or another.

Applying small custom fixes like this can take as little as a handful of minutes, but applied to sites and applications that you regularly use, the benefits in saved time and frustration can be enormous.

Even if your browser doesn’t typically support custom stylesheets, there’s probably a workaround in the form of a plugin. For instance. Chrome has extensions like Stylus which make it easy to overlay your own style rules atop the pre-existing CSS for the site.

I strongly suggest taking a few minutes to think about the sites you use most often and the kind of small tweaks that might improve your reading experience. It’s amazing how much of a difference a few lines of CSS can make.

⇣ expand ⇣⇡ collapse ⇡
Recent Tweets (@MartinBerlove)