During the development of the InfoTouch, for more than a year, possibly two, the device would randomly die for no apparent reason. Sometimes it would die once a day, other times weeks would pass without a problem. On some rare occasions it would die while someone was using it, but more often it would die while sleeping, or while charging. So, the problem seemed to be completely random, and no matter how hard we tried we could not find a sequence of steps that would reproduce it.
2015-10-21
The Mother of All Bugs
During the development of the InfoTouch, for more than a year, possibly two, the device would randomly die for no apparent reason. Sometimes it would die once a day, other times weeks would pass without a problem. On some rare occasions it would die while someone was using it, but more often it would die while sleeping, or while charging. So, the problem seemed to be completely random, and no matter how hard we tried we could not find a sequence of steps that would reproduce it.
2015-10-18
Computer telephony in C++ with MFC
The hardware had special filters on it to recognize the DTMF digits, probably because the CPU was thought of as too wimpy to do it by itself. I experimented writing WAV-file processing filters on my own, and discovered that it took less than 10% of CPU time per phone line to run such filters in software, so it could certainly be done, but then again there existed systems out there in configurations of 30 or even 100 lines per computer, and of course the CPU was not enough in these cases. We only worked with configurations of four lines per computer, but still, since the filters were made available by the hardware, I made use of them for the work project, and I only re-invented the wheel at home, for fun.
My employer at that time managed to secure a number of computer telephony contracts for a couple of big clients; he gave me a rough description of what the projects were supposed to do, and he had my coworkers slide pizza under my office door for as long as it took me to complete them. He probably charged his clients the equivalent of a dozen programmers for this, and it was all done by me. The only external help that went into these projects was messages recorded by a professional at a recording studio.
What follows is some screenshots of the telephony application that I created to run these projects, in Microsoft Visual C++ using MFC and the Dialogic Telephony API.
![]() |
All applets waiting to start. Click to enlarge. |
Crossword Puzzle Compiler
Techniques demonstrated:
- Solving an intractable problem using a scoring heuristic
- Super-indexing data structures for ultra-fast domain-specific queries
Summary (just gimme the TL;DR)
You give it a crossword grid, and a long list of words, and it finds ways to mesh words into the grid so as to form a complete crossword puzzle. The final working version was done in 2003 using C# version 1.2 with a minimalistic UI in WinForms.
2015-10-04
Portfolio
I added a page where I list posts on this blog that can collectively serve as my portfolio.
It can be found here:
Michael Belivanakis - Portfolio
2015-09-25
Is my mentor's concern for code quality excessive?
This question was asked on Programmers SE on Jun 12, 2015. I answered it, but after a few days the question was closed as primarily opinion-based and then deleted, along with all answers. Since I now have sufficient reputation to view deleted questions, I was able to find it, so I am posting the question and my answer here for posterity.
The Question:
Is my mentor's concern for code quality excessive? [closed]
Score: 75 (79 upvotes, 4 downvotes) Favorites: 28
To tell you a little about myself: I'm a newbie programmer working internships and learning a lot from experienced programmers. I can't believe I used to think I was good in college.
The one I'm doing right now is pretty great due to the amount of time and resources that the company is putting into helping and mentoring me and another intern. I'm learning a whole lot and for the first time, I feel like I get close to being competent.
The only "problem" are the massive code quality concerns of one of my mentors. It's to the point that anything takes a whole lot of time because I have to find the best way to do it or else it's a waste of time. It also feels like my creativity doesn't matter because there is only one right way to do everything. I don't mind any of this at all but I wonder, and this is mainly what I'm asking, if it's normal in the industry.
Also, when I get assigned a little feature and this guy reviews my code, he actually reviews the whole codebase I'm working on, pointing out loads of mistakes, most of them from before I was even hired. I have spent this whole week fixing code (that worked) written by their full-time programmers, even some things that are best practice according to other mentors.
Tags: [javascript] [web-development] [programming-practices] [object-oriented-design
asked Jun 11 2015 at 18:51 by CyborgFish
2015-09-14
Why Oracle Sucks
Is it compatible at the SQL syntax level?No way to find out other than to try it. So, let's try it.
2015-07-28
Woohoo! One more of my "Programmers SE" answers has received a score of -5 !
Here is the question:
programmers.stackexchange.com: Does it make sense to use “ys” instead of “ies” in identifiers to ease find-and-replace functionality?
2015-07-26
How to: Completely disable "Aero" in Windows 7
So, are you sticking with Windows 7 but want to disable Aero in order to enjoy considerable gains in performance, memory, power consumption, and GPU temperature? Here is how:
- Open up "Services".
- Locate the service "Desktop Window Manager Session Manager".
- Disable it and stop it.
2015-07-25
How to: Disable the administrative shares in Windows
1. Run the Registry Editor and go to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\LanmanServer\Parameters2. Create a new DWORD, name it AutoShareWks, and leave the default value of 0.
3. Reboot Windows.
This will disable things like C$ and ADMIN$.
I am not sure how to also delete print$ and IPC$. ("net share ipc$ /delete" appears to work temporarily, but the share automagically re-appears after the next reboot.)
How to: Enable the Administrator account in Windows
1. Open up an elevated command prompt. (If you do not know what this is, you should not be even thinking of enabling the Administrator account.)
2. Type the following command:
net user administrator /active:yes