Monday, March 25, 2024

HDL Challenge

It's like a game and college-level study at the same time.

Last week, I started a new series of live videos on my YouTube channel, Xcoder Videos, called "HDL Challenge." HDL is an abbreviation for "Hardware Descriptive Language," so these videos are all about designing and specifying electronic hardware in HDL.

The preceding video is the first live video of the HDL Challenge recorded on March 22, 2024. We started on Friday, but the live videos have been rescheduled to Thursday evenings at 7:00 p.m. If you view the video on YouTube, I have links in the description for various resources viewers will need to accept the challenge. (Or, you can use the links at the end of this post to find most of the same resources.)

I got the idea for these videos from a Steam program called Microhard. In Microhard, you become an electronics hardware engineer for the company (also named "Microhard"), design hardware circuits with the company's own version of HDL, and simulate your designs to verify that they work as specified by those for whom you work. Eventually, you are tasked to design a computer CPU after designing about twenty or more components.

And that's where Microhard stops. I think the program author intended to enhance the program or write another program that would take the work from this stage and go on to build a complete and functioning computer, but that idea has fallen by the wayside.

My HDL Challenge videos correct that. Since Microhard does not include a sandbox mode allowing users to build and test components other than those specified within the program, I needed to find other software to fulfill that task.

One option would be to use a program called "Digital," which allows users to design and simulate electronic components graphically rather than in HDL. Digital is a great application and will be helpful in my series of videos, but I've found a better option.

An Implication Gate
within the Digital Application

I read that Microhard was loosely based on a class by Shimon Schocken and Noam Nisan, so I looked around on the internet and found a course at Coursera.org called "Build a Modern Computer from First Principles: From Nand to Tetris" by both of those men. Looking over that class revealed that it is indeed the basis for Microhard. However, Nand to Tetris is much more involved and, therefore, more challenging than that which Microhard presents.

Mr. Schocken and Mr. Nisan make software available to design and test logic gates for students and anyone else who desires to do the same. And that software is freely available on the internet.

For example, their software includes over thirty logic gate specifications in HDL stub files that users can modify to design the parts needed to build a computer. These specifications are in text files named for the gates they are supposed to implement, ending with the "hdl" extension.

They provide one or more test files for each HDL file that can be used to test the new designs in a hardware simulator, which is also freely offered. Over sixty of these test files are in their Nand to Tetris package.

The Hardware Simulator is one of several applications they make available.

With it, users can test their designs by running scripts described above or interactively by changing inputs to a component by hand and observing how the logic gate behaves. This is just what we need for the HDL Challenge.

If you would like to accept our challenge and build your own computer in software, mark your calendar for each Thursday evening at 7:00 Central Time for the next several weeks. Completing the challenge will take about thirteen weeks or more.

Also, download the software you will need to complete the challenge. Here are links to some of the things you might want.

HDL Challenge Resources


Friday, October 13, 2023

Logos 10 Deal

Are you looking for help in your Bible study and preaching preparation? Logos is the best Bible program for Windows and Mac.  I have been using it for years. It will give preachers access to hundreds of books from commentaries, Bibles, dictionaries, lexicons, that he never could read otherwise.

The latest version is Logos 10. Prices depend on the level purchased. Be forewarned. It's pricy. But you can start with one of the starter levels for a low price, and then add to it later as you are able.

You can purchase Logos and get $100 off the purchase price by clicking on this image and making your selection.

Get Logos 10 for $100 off


Monday, October 9, 2023

A TOC for My Book on the Holy Spirit

Today I have completed the first draft of the chapter and section headings for the book I am writing on the Holy Spirit. You can see it below.

Your comments and suggestions are appreciated.

Table of Contents

Chapter 1: Introduction

1.1. A Word of Thanks

1.2. A Question about Fellowship

Chapter 2: The Source of Faith

Chapter 3: The Nature of God and Man

3.1. Nature of Man

3.1.1. Absolute Freedom of Will

3.1.2. Pure Determinism

3.1.3. Limited Free Will

3.1.4. Implications of Free Will

3.2. Nature of God

3.2.1. Attributes of God

3.2.2. Implications of God’s Attributes

Chapter 4: The Existence of God

4.1. Contrasting Views about God’s Existence

4.1.1. Monotheism

4.1.2. Deism

4.1.3. Pantheism

4.1.4. Polytheism

4.1.5. Atheism

4.2. Proof of God’s Existence

4.2.1. Philosophical Arguments for God’s Existence

4.2.2. Proper Use of Philosophical Arguments

4.2.3. Biblical Arguments for God’s Existence

4.3. Jehovah God

4.3.1. God, the Creator

4.3.2. The Only God

4.3.3. The Trinity

4.4. The Holy Spirit

4.4.1. False Views of the Holy Spirit

4.4.2. The Spirit’s Nature

4.4.3. The Spirit’s Work

4.4.4. The Spirit’s Indwelling

Chapter 5: The Work of the Holy Spirit

5.1. The Means of the Spirit’s Influence

5.1.1. Miraculous Influence

5.1.1.1. Explanation of Miraculous Influence

5.1.1.2. Examples of the Miraculous

5.1.1.3. Purposes of the Miraculous

5.1.1.4. A Promise of the Miraculous (Joel 2:28-32)

5.1.1.5. The End of the Miraculous

5.1.2. Moral Influence

5.1.2.1. Explanation of Moral Influence

5.1.2.2. Examples of Moral Influence

5.1.2.3. The Spirit’s Modus Operandi

5.2. Agents of the Spirit

5.2.1. The Spirit and the Prophets

5.2.2. The Spirit and Christ

5.2.3. The Spirit and the Apostles

5.2.4. The Spirit and the First Christians

5.3. Specific Works of the Spirit

5.3.1. The Baptism of the Spirit

5.3.2. The Gift of the Spirit

5.3.3. Speaking in Tongues

5.3.4. The Spiritually Minded

5.3.5. Conviction, Conversion, and Sanctification

5.3.6. The Earnest of the Spirit

5.3.7. The Seal of the Spirit

5.3.8. The New Birth

5.3.9. The Fruit of the Spirit

5.3.10. Intercession in Prayer

5.3.11. Illumination

Chapter 6: The Indwelling of God and the Word

6.1. The Temple of the Spirit

6.2. Literal or Metaphorical?

6.3. Benefits of the Indwelling

 

Saturday, October 7, 2023

New Book on the Holy Spirit

My readers may be interested that I have started to author a new book on the Holy Spirit. This book will be based on material that I gathered while teaching about the Holy Spirit for the Online Academy of Biblical Studies several years ago.

The book will primarily address the topic of the work of the Holy Spirit as described in God's word, but it will have a short section on the manner of the Spirit's indwelling as well. At this point I have the Power Point slides that I used in the class and a mind map that I have started to organize my thoughts on the subject. The whole mind map looks like this:

An image of my Holy Spirit mind map.

There is a lot of work to do before the book can be published, but I hope to have the book finished and ready for publication within about a year.

As I write each chapter of the book, I may publish some of the chapters here so readers can see what is coming once the book is completed.

Wednesday, June 29, 2022

The Abortion Debate

Last week the Supreme Court issued its decision in the Dobbs v. Jackson Women's Health Organization case ruling 6-3 that "the Constitution of the United States does not confer any right to abortion, and overruled both Roe v. Wade (1973) and Planned Parenthood v. Casey (1992). (Wikipedia) The result is seen as a victory for those who identify with the "Pro-life Movement" and a defeat for those affirming "Pro-choice."

I have been dishearted over the last few days at the level of angst displayed against the court's decision and in favor of having the freedom to take the innocent lives of the unborn. There have been multiple "Pro-choice" protests around the nation, where protesters have stopped traffic, surrounded the homes of justices, resisted arrest, engaged in disorderly conduct, and interfered with the police. To be fair, "Pro-life" counter-protesters were involved in some of these events and may be guilty of similar behavior. This is disheartening to me as well.

The division that exists in the world between the two sides will not be solved through violence or even "peaceful civil disobedience." The only way to heal the divide, and even this is unlikely to have a significant effect, is to engage in civilized discourse about the matter. It is the heart that needs to change among those on both sides. This takes persuasion exercised in kindness.

I have considered myself "Pro-life" or anti-abortion since Roe was decided in 1973 when I was only 21. After nearly 50 years, my views on the matter have been consistent. I believe a human is conceived in the womb when a human sperm fuses with a human egg and that human beings have "a right to life" unless it is forfeited by significant malfeasance.

But I know this view is not shared by all. I should not expect everyone to agree with my "Pro-life" views until they have been convinced that the unborn child is a human being that possesses the right to life. Getting to that point needs persuasion.

I have decided to write a series of articles for this blog about the abortion debate. I'll examine the science and the Bible to make my points. I'll answer questions raised by those on the other side. I hope these articles may contribute to a better understanding of the issue and convince some of the value of the life of the little ones still in their mothers' wombs.

Monday, March 20, 2017

BigBlueButton: Free Conferencing Server for Distance Learning

I have been testing BigBlueButton for a while now, considering it for use by the Online Academy of Biblical Studies to replace another solution we have been using that is getting too expensive and a bit cumbersome to use. You can get a taste of what BigBlueButton looks like and how it works by going to their demo server and testing it.

The owners state their vision as follows, "We believe that every student with a web browser should have access to a high-quality, on-line education. We intend to make that possible using BigBlueButton." The software they have produced, especially with version 1.1-beta, goes a long way to providing that "high-quality, on-line education." We at OABS are currently working on using BBB when we begin a new semester of training this coming August.

Some of the features available with BBB are the following:
  • Student polling - If a teacher has uploaded a presentation, including slides that show a list of options, BBB will view that as a possible poll and present a button to the teacher to start a survey based on the list. If he clicks the button, buttons will appear a the bottom of each student's browser for each of the options in the list. Clicking one of those buttons registers his selection within the poll. The teacher can, at any time, dismiss the poll or publish the poll for the students to see the results.
  • Multimedia presentations:
    • Uploaded documents for use as slides to be presented to the students.
    • Whiteboard controls work within slide presentations but offer a set of controls for annotating slides (or blank pages) on the fly.
    • Desktop sharing replaces the instructor's video so students can see what the instructor is doing on his computer. The instructor must have the latest version of Java installed on his computer to share his desktop, but students need no additional software to view the results.
  • Webcam support. Both students and instructors can share screen cams simultaneously, though the instructor can disable this to prevent distractions during a presentation or overloading users' bandwidths.
  • WebRTC audio for high-quality, low-latency audio among users using HTML5 enabled browsers (Chrome and Firefox). Other browsers, however, will use Flash-based audio controls automatically.
  • Record and playback of sessions. When used within Moodle with the BigBlueButtonBN plugin, recorded sessions automatically appear under the session join button after sessions have ended and the recordings have been processed by BBB.
  • Text chat interactions between students and instructors through public and private chat channels.
Getting BBB up and running is really relatively easy. The whole process can be done within less than an hour, including the build-out of a Ubuntu 16.04 server. For the server, simply boot to a CD containing the installation media for Ubuntu Server 16.04 and build a minimal system. Don't install extra software during the build except for the default system utilities and OpenSSH if you plan to administer the server remotely. (A recommended option.)

Once the server build is complete, you will need to log on and modify your interfaces file at "/etc/network/interfaces" with appropriate values to make the server available on your network. (This is only necessary for servers with static IP addresses. If the server is a development server on a subnet with DHCP, you may not need to do this.)

The build-out instructions for BBB are available here:


The instructions are very complete and easy to follow for the technically savvy. Others might find them a little daunting, but most should be able to work out the details to get the server up and running just by carefully following the steps which are outlined.

These instructions have been updated since the last time I used them, but I was able to build out a BBB server in about 30 minutes. I'll go through the new instructions soon to see what has been added, but I don't think the changes should harm new users. If you have some problems with the build, there is a good troubleshooting section at the end of the page to help identify where things might have gone wrong.

One of the impressive things that I find with BBB is the level of detail and quality of its documentation. It has been a long time since I have seen technical documentation as complete and as valuable as the documentation provided for BBB, whether one looks at commercial or other open-source software. Fred Dixon and his team have done great work with this software.

Furthermore, their free support within their forums is excellent for a free service. The BBB team has a passion for the software and making it work for everyone. They genuinely want to know when things go wrong so it can be fixed. I've seen them interact with technically-savvy users, those who can't find the control key on their computers, and a few somewhat belligerent users. In every case, they have handled users professionally with just the proper interactions to keep discussions from blowing up and constantly help those who need help. Very unusual for free software support.

BBB doesn't include software for scheduling and managing conferences like other conferencing solutions (but see the addendum below), but it integrates well into LMS systems like Moodle. For Moodle, BBB has provided plugins to enable accessing BBB sessions from within Moodle. Once installed, an administrator or instructor can easily add BBB sessions for his classes for his students to join live or review on-demand after the sessions have ended.

In my judgment, BBB is the most accessible conferencing system to set up and use among the various open-source offerings out there now and possibly better than most commercial services, at least for DLS purposes. Educators looking to employ Internet conferencing in their offerings would do well to look into the features and capabilities of BigBlueButton.

Addendum


Fred Dixon reminded me of an add-on product recently been released by the BBB team. He writes, "We recently did provide a lightweight front-end called GreenLight for managing conferences (no scheduling yet)  in GreenLight. See https://groups.google.com/forum/#!msg/bigbluebutton-dev/qTEZfgp1gIs/BneJoQ5BBAAJ. We intend to build upon this framework in the coming months (and improve it based on feedback from others)."

I failed to mention GreenLight, although I knew of it and have used it. It currently provides the ability to authenticate users using OAuth technology for users with Twitter or a Google account. At this point, if you can log in with either account, you can create a meeting that includes recording capability and then control the recording during the session. Other users can join the meeting, whether they have logged in or not, but they cannot turn the recording on or off.

Eventually, for GreenLight to be viable, the concept of a role will need to be added to maintain greater control over who can log in, who can do what after they have logged in, and what-not. However, GreenLight is a good step toward making BigBlueButton a complete conferencing system.