BillBohan's comments

BillBohan | 9 years ago | on: In the Air Tonight Drum Fill Simultaneously at 99.9%, 100%, and 100.1% Speed

Interesting. It sounds good at the start but becomes cacophonous shortly thereafter.

Another war story here: I used to run a 16 track mixing console with a rock band. The guitar player played with 2 different bands. He got a gig in a club one night and both bands showed up. Everybody insisted on playing.

It was OK but the less accomplished drummer insisted on playing a drum solo. I ran his drums through a delay in the range 160 - 200 mSec and mixed it back in. Every drum strike was doubled and the audience liked it. I don't think they would have been as enthusiastic if they had heard what he was actually playing.

BillBohan | 9 years ago | on: The Case for Going to Bed at 2:30AM

Just some personal observations here.

I have read that most software breakthroughs occur around 1:00 AM and have found this to be true in my personal experience.

In the military I worked in a shop which was manned 24/7. Normally the shifts were 8:00 AM - 4:00 PM, 4:00 PM - midnight, and midnight - 8:00 AM. One month they changed to two shifts, 8:00 AM - 8:00 PM and 8:00 PM - 8:00 AM. The next month they moved everybody to the other shift. I worked each of the 3 normal shifts for several months each. For me the most difficult was midnight - 8:00 AM because of the difficulty sleeping in the daytime in a noisy barracks. I found that for me the best way to cope with this was to work a shift, stay up all day, and work another shift, after which I would sleep for 12 hours.

In civilian life I worked normal 8-5 jobs and it has always been difficult for me to get to sleep and wake up early. One time I worked a normal shift, worked through the night with no interruptions, and worked the next shift. I was able to accomplish more in that time than I normally would have in two weeks.

Now that I am retired I go to sleep when I am tired and get up when I wake. There is no discernible pattern to it.

It is much easier to stay up later than it is to get to sleep earlier. The easiest way to adjust to a new sleep pattern is to stay up later, delaying sleep until it has moved to the desired time. You can move it by two to four hours a night this way. Trying to sleep earlier you can only alter your sleep cycle by about half an hour a night.

BillBohan | 9 years ago | on: 1 KB = 1024 Bytes? No, 1 KB = 1000 Bytes (2008)

My first program compiled and ran in the summer of 1967.

It was not unusual for a computer to have 4K of core memory. We all knew that it was 4096 bytes. The first computer I owned came with 4MB of memory. It was really 4194304 bytes. My current machine has 32GB of memory (34359738368 bytes).

It was the marketing people who wanted bigger numbers. Video games touted ROM sizes in bits to make them seem bigger. When hard drives got into many MB manufacturers switched to calling 1000 MB(1048576) a GB to make them seem bigger.

<opinion>

If you don't know about computers, you're not likely counting bytes. If you know about computers you should not have a problem with 1K = 1024. I don't think they should use 1000 = 1K for computer memory sizes. I'd hate to have to look for 8.589934592 GB Ram modules for replacement if one of mine fails. Microsoft didn't raise computer literacy, they lowered the bar.

In the 1960's I learned the Metric System in school and was told that soon everything would be metric. My 42" 4K UHD monitor displays 3840 x 2160. What's 4K about that?

</opinion>

BillBohan | 9 years ago | on: Did you even read the article?

I skip past articles and their comments if I know that I will not understand them, e.g. details of a language which I do not know.

Sometimes I will look at articles which are about things I have never heard of just to find out what that is. Sometimes, the article does not sufficiently explain what it is, like when they only tell about the improvements over the previous release. In these cases I try to find what it is from comments.

If an article is tl;dr sometimes I look to the comments to see whether I can get the gist in brief.

For articles within my realm of interest I will usually read the entire article, then the comments.

I usually avoid making comments on articles I have not read unless the comments provide sufficient explanation for me to add my input.

I truly appreciate the intelligence and courtesy of the comments on HN and try to bring the same to it.

BillBohan | 9 years ago | on: Bill Gates: Robots Should Pay Taxes

I saw some odd concepts in this article.

Robots are stealing jobs? Maybe they are used to replace humans in a job which they can perform better, faster, and more economically than humans, but the only robot I have seen stealing was a vending machine.

Tax the robot? Robots typically have no income. If the robot fails to pay tax would it be locked in prison where it could power down until its sentence was served? Robots typically increase the profit of the company which uses them and that company pays taxes on its profit. With the progressive tax system we have they pay tax at a higher rate. It would seem that there is already a tax on robots.

I worked for a company that made automatic label applicators which would apply an adhesive label to a box coming down a conveyor. I have helped install these in manufacturing plants where the employees were extremely hostile towards us. The person who applied the label in the past was no longer needed in that position. My response to them was that in the majority of businesses where I had installed a machine, they took the people who had applied labels and started another production line, increasing their output. If their company failed to do so, it was an issue that they needed to talk to management about. I got the definite impression that they intended to sabotage the machine.

Many years ago I had the idea that it would be possible to make general purpose robots with most of the capabilities of a human. These robots could be used to build a factory which produces more robots, then a factory which produces e.g. shoes, then pants, then cars, and then mining and agricultural robots. With no labor cost involved it would be difficult or impossible to compete with them. With fewer people employed it would become increasingly difficult to find consumers for the goods produced and the manufacturer would be left no choice except to provide a basic income for all people. Those who want to rise above a basic income would need to engage in design work, developing new styles of shoe, pants, cars, etc. They would be compensated according to the demand for their particular design.

If the robots are capable of repairing themselves or other robots it would still be necessary for a human to monitor the overall operation to preclude the possibility of a malfunctioning robot "repairing" other robots to malfunction.

We are still a long way from having such general purpose robots but the use of robots is already taxed.

BillBohan | 9 years ago | on: Can I Talk to that William Fellow? He was so Helpful (2009)

I met that guy.

I was working for Tandy, repairing TRS-80 Model I circuit boards when he and his partner, Paul came to Tandy Apparatus with some engineers from Tandy R&D. They had the first masked ROMs for Level II BASIC. They put them on a board and tried it and it didn't work.

I took the board I had just repaired and went to them and told them that they were in a repair area and all of the boards were in need of repair. I offered the board I had repaired and told them that it should be able to run their ROMs.

They moved the ROMs to that board and powered it up. It came up with a MEMORY SIZE? prompt and William said to press enter. I did and it gave a READY prompt. I typed in a one-line program to print numbers and it started scrolling numbers down the screen.

William was so happy that he offered me a job at his company. He said that he had about a dozen employees. For personal reasons I was unwilling to locate outside Texas and turned down his job offer.

BillBohan | 9 years ago | on: The Best Square Root Method Algorithm

I found the method I was taught at https://en.wikipedia.org/wiki/Methods_of_computing_square_ro... under the heading Digit-by-digit calculation.

It does not appear that this matches any of the methods tested. A long time ago I implemented it in assembly for integers. It should be possible to write a floating point version but my programming experience has been in embedded systems and I never needed floating point. I would need to study floating point representation but don't have much interest.

BillBohan | 9 years ago | on: The Best Square Root Method Algorithm

I really wish this article had explained how each method works. It's going to take me some time to analyze each method to see whether any of them are the method I was taught in elementary school.

It extracts the square root to any desired precision one digit at a time and it looks a lot like long division. In binary you get one bit at a time and there is no guesswork so it goes pretty quickly.

BillBohan | 9 years ago | on: Reverse engineering the Intel 8008 ALU

I worked for Datapoint from 1975 to 1977 as a technician in board test and repair. I started out working on power supplies, later moved to mod/demod boards (for the tape drives), then to processor boards.

I only repaired a few of the old serial processors, these were boards sent in from existing customers for repair. The production boards were the TTL boards for 2200 and 5500.

The 2200 boards used a pair of 74181 ALU chips and a pair of 7489 RAM chips for the registers. They had 121 total ICs, ran at 8MHz, and instruction decoding was performed with mostly SSI chips.

The 5500 boards had 131 ICs, the ALU and registers were 74S series chips and ran at 20 MHz. Instruction decoding was done by microprogrammed ROMs. The instruction set was very similar to the Z80.

While the 8008 executed the 2200 instruction set, later chips made by Intel and Zilog changed the register numbers at Datapoint's request so as to prevent them from running Datapoint's code which represented a major investment for the company.

On Datapoint processors, a register/register load instruction was (in octal) 3 dst src. The later chips changed this to 1 dst src, with the instruction type (high 2 bits) having the high bit inverted from Datapoint.

Dst and src were similarly changed, Datapoint having A=0, B=1, ...,(HL)=7 and the later chips having A=7, B=0, ..., (HL)=6.

BillBohan | 9 years ago | on: Ask HN: AI more of Math or CS?

A math major is for people who just love math. I think you would be happier as a CS major. You should take as much math as you reasonably can because much of it will help in CS.

BillBohan | 9 years ago | on: The Gray-1, a homebrew CPU exclusively composed of memory

An interesting project. I did see one error in his description of how a register works. What he describes is the operation of a latch. A register does not change outputs when the clock goes low. It only changes on the rising edge of the clock. See the datasheets for 74373 vs 74374 to see the difference.

BillBohan | 9 years ago | on: Ask HN: How do I go about open sourcing a project?

I'm no expert on this and have not yet done it but from what I've seen people used to create a project on SourceForge until it fell into disfavor and now they are putting it on GitHub.

I also have a project which I would like to open source and have been debating where I should put it. It is a processor design so I also have the option of putting it on OpenCores.

I would be interested in hearing recommendations about where I should put it.

BillBohan | 9 years ago | on: Ask HN: Is it front-end, frontend or front end?

Yes.

Any of those should be acceptable. Your meaning will be understood. The rules of grammar have been relaxed greatly from what they were 50 years ago, especially with grammar "correction" software which wants to change my "I ate an apple." to "I ate and apple."

I would avoid frontend as it takes a bit longer to parse. It makes perfect sense to me for someone to write:

I am working on the front end of this process and need to hire some front-end developers.

BillBohan | 9 years ago | on: Ask HN: Am I right to be angry about the interview process?

If a company wants me to write code, they need to pay me for it.

I came across a similar situation where a prospective employer sent me the requirements for a complex routine and gave me 7 days to return functioning and commented code. My estimate was that it would take me 2 days to do it, so it would probably have taken 6 days.

I can envision an unscrupulous business model whereby you do the top level design and break it into routines, advertise for a programing position, and send the specifications for a routine to each applicant. You reject each applicant after they have submitted their code, take the best implementation of each routine, pack it all together and now you have a product.

I don't know that that's what they were doing but nobody will do it to me. I hope that's not what happened to you.

You may call me cynical but I've been around enough that I come by it honestly.

BillBohan | 9 years ago | on: Programming purgatory

Many years ago I read an article which concluded that people who went to school because they wanted to learn about computers were likely to fail. Those who went to school because they wanted to learn to use a computer to do something (make music) (draw pictures) (control a process) (anything) were more likely to succeed.

To be a successful programmer you need to know two things. You need to know how to program. You need to know the subject your program is about, whether it be accounting, process control, graphics, or any other subject.

I started my computer education in 1962 when I bought the book, "Thinking Machines" by Irving Adler. I have worked with computers most of my life (I'm retired now) and the complexity of what there is to know has grown exponentially and shows no sign of relenting. You will not be able to learn all there is to know about computers. Don't feel bad. Nobody knows that much. This is what leads to "impostor syndrome", the feeling that you are unqualified for the position you were hired for.

leonp92 is correct in saying side projects are the way to go. Start with simple applications. Write something which is useful to you or something which is fun. The satisfaction of seeing your effort pay off will fuel your passion.

BillBohan | 9 years ago | on: “Monads,” huh? Bro, have you even read Leibniz?

I know what a monad is from Leibniz.

I know what a monad is in APL. (APL is the second computer language I learned, following Fortran IV.)

I know that "Monads come out of the sky and they stand there." from Yes.

dictionary.com tells me that monad is

1. Biology.

any simple, single-celled organism.

any of various small, flagellate, colorless ameboids with one to three flagella, especially of the genus Monas.

2. Chemistry.

an element, atom, or group having a valence of one. Compare dyad (def 3), triad (def 2a).

3. Philosophy.

(in the metaphysics of Leibniz) an unextended, indivisible, and indestructible entity that is the basic or ultimate constituent of the universe and a microcosm of it.

(in the philosophy of Giordano Bruno) a basic and irreducible metaphysical unit that is spatially and psychically individuated.

any basic metaphysical entity, especially having an autonomous life.

4. a single unit or entity.

I liked this article. It was well-written and easy to understand. I thought I might have learned something about a stumbling block which I encounter every time I try to learn what FP is about.

coolsunglasses then says that the article is all wrong but gives very little information about what FP monads really are.

> It's a useful pattern that can be reified in a sufficiently expressive type system.

Is that not usually called a template?

All of my programs were functional. If they didn't function, I would not have been paid.

page 2