Please note: This site is in an active redesign. Some things might be a little off 🧐

EH

classes

Hi Paul, Thanks for your interesting look at how Jesus’ kingdom is an example of encapsulation. As you were talking about the Kingdom being hidden it made me think about how we become saved and yet, our true salvation is delayed until Jesus’ second coming. It reminds me of both encapsulation and asynchronous behavior. I know we haven’t started discussing asynchronous functions yet, but it’s a powerful function that allows the caller to keep doing other things while they wait for a response to a function. It helps prevent blocking the user interface while long running functions might need to happen. It got me thinking about how we get eternal life and how we don’t get to know much about it. As I mentioned in my initial thread post, salvation is a black box and a perfect example of encapsulation in that all we can do is use a getter to understand who Jesus is and what He has done for us, as well as a setter function to commit our lives to Jesus’ purpose. But salvation is kind of like a long-running function in that our response is delayed. We know we used the “setter” but we don’t really see a tangible response until we die or Jesus returns. However we aren’t just supposed to sit and wait for the response. Instead, of a normal synchronous function that might block the main thread of our lives, God designed it asynchronously so that while we wait for Jesus return on a background thread, we can continue going about our lives on earth. In fact, we don’t just choose meaningless tasks either. Matthew 28:18-20 is a method call to us, that we shouldn’t just sit around but that while we wait for the asynchronous callback of our salvation, we should share the Gospel and make disciples.
Hi Justin, What a great example, using Moses parting the Red Sea as a demonstration of encapsulation. I think miracles are one of the best forms that reflect encapsulation. As you talked about that I thought about miracles throughout the Bible and how Jesus himself performed a lot of miracles. Jesus was God, but when He walked the earth, He embraced his humanity. That means Jesus didn’t heal people through His own power as God, He healed people through the Father’s power as God the same way that Moses and all the prophets did miracles. So I was thinking about if a co-worker and I started talking about Jesus’ miracles and how the happened. In John 9:6 Jesus spits in the dirt, makes mud and spreads it across a blind man’s eyes. He is healed when he washes the mud off his eyes. In John 4:46-53 Jesus heals a boy far away just by telling the father “Go, your son will live”. Normally people might think it is unlikely that Jesus healed people in this way. But I thought if I was talking to a co-worker, this would be easily explained in terms of encapsulation. Jesus didn’t want people to think healing people was like magic, like you say something specific and wave your hand. So Jesus used the concept of encapsulation to hide the details of healing. Instead, He engaged with each person differently, but privately He communicated with God the Father and requested the healing. God the Father and Jesus communicated through prayer. Which is much like a public interface to a class. Jesus can use “setters and getters” to communicate with God the Father. We can do the same thing. So if prayer is like setters and getters, why are all our prayers not always answered? Because like any good engineer, God has set up conditions inside the “setter” of prayer to ensure that only prayers that align with His will are acted upon or “set”. The healings were never about the actions Jesus took, it was about the relationship and communication with God the Father, the same way that our objects in Java work because of communication between each other.

God's Use of Encapsulation

(This post was written for an assignment in my CSIS 312 class at Liberty University. I was assigned to write about how the Bible shows examples of the programming concept: Encapsulation)

Encapsulation is a programming concept that refers to the ability to hide information about how a section of code works, instead requiring the person using the code to only have to know what information to provide and what results to expect. “Implementation details can be hidden within the objects themselves. This information hiding, as we’ll see, is crucial to good software engineering” (Deitel & Deitel, 2018, p. 12).

A great example of encapsulation in the Bible is Salvation. As Christians we only have to know what Jesus did: that He died on the cross for our sins, and rose to life defeating sin and death (1 Cor 15:3-4). If we believe that and put our trust in Jesus for salvation, He will save us. How does this work? We don’t understand the entirety of it. We understand some things, that death came for everyone through Adam’s sin and yet is offset as resurrection comes to everyone through Jesus’s righteous death (1 Cor 15:21-22).

The core of what we have to know is just what we have to provide and what results to expect: We have to believe in God and that Jesus, His son, came and died for our sins to restore our relationship with God. We know that happens because God has provided the explanation (or in programming terms, interface) for us through the Bible. However, the exact details of how Jesus’ death on the cross for us reverses the sins of each of us is never truly understood and explained. The Bible uses metaphors to explain to us what is happening (that we are justified, that we are adopted) but it never explains how it happens. This is the essence of encapsulation when it comes to programming.

A second form of encapsulation in the Bible is the battle at Jericho. In Joshua 6, God tells Joshua to have the Israelites circle Jericho one time a day for six days and on the seventh day to circle it seven times and to shout and blow the trumpets (Josh 1-5). This is the input: circling Jericho and blowing trumpets. The output: The city of Jericho’s walls will collapse and the Israelites will be able to take the entire city.

God doesn’t explain how the city’s walls will collapse or what circling the city has to do with it. That is all God’s business. All that the Israelites have to worry about is doing what God said, and watching as they get the results that God promised. In this sense, Jericho is a perfect example of God using encapsulation.

📖 Read pg. 604-645 of Java How to Program, Late Objects (Day 28 of 100)
📖 Read pg. 517-563 of Java How to Program, Late Objects (Day 24 of 100)
📖 Read pg. 361-406 of Java How to Program, Late Objects (Day 23 of 100)
📖 Read pg. 327-360 of Java How to Program, Late Objects (Day 21 of 100)

Workplace Monitoring and the Christian

Employee monitoring in the workplace is a challenging issue. There are arguments on both sides for and against it. Most employees assume they can just use the internet as they would at home. However, whereas the employee owns everything at their home, everything at their office is the property of the company (Dale & Lewis, 2016, p. 279).

In America, where freedom is a right, it is often assumed that freedom is allowed anywhere and everywhere. This freedom does not, in fact, extend to private property such as the property owned by a business. Because of this conflict, in a 2005 survey, 26% of employers “had fired workers for misuse of the Internet” (Dale & Lewis, 2016, p. 279).

It makes sense that a company should be able to avoid misuse of their equipment and property, however it is also important for employees to be able to rest and recuperate throughout the day (Dale & Lewis, 2016, p. 279).

When it comes to the Christian’s use of technology, two questions must be asked. The first is how should a Christian employer handle the technology used in their business. Ephesians 6:9 says “And masters, treat your slaves the same way, without threatening them, because you know that both their Master and yours is in heaven” (CSB). This same principle can be used for employers and employees. The statement “treat your slaves the same way” refers to the verses before where the slave is told to serve their master with sincerity, and a good attitude, because what the slave does they will receive back from the Lord. This means that employers should show consider the same things when thinking about their employees. This means, if and when an employer does monitor employee use of technology, it should be done with sincerity and grace.

Finally, the question is how a Christian employee should behave. In Luke 16:10, it says “Whoever is faithful in very little is also faithful in much, and whoever is unrighteous in very little is also unrighteous in much” (CSB). This means, that as much as is possible, an employee should use the time and equipment provided by their employer for company work. The great thing about that is when a Christian employee adopts this principle, it doesn’t really matter if the employer tracks their technology usage because they will be living “above reproach” (Colossians 1:22).

References

Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.

Gaming as an Addiction

Playing video games can have both positive and negative influences on the people that play video games. Some benefits of playing video games include increased hand-eye coordination as the player has to link finger and hand movements with what they are seeing on the screen, and increased mental dexterity.

Some negative aspects of playing video games are that time spent on video games can quickly get out of hand, potentially interfering with more productive activities such as work, school and other social or learning activities.

Addiction can take form in many different ways, alcohol, gambling, sex, and of course, gaming. “Gaming addiction exhibits the same symptoms as other impulse-control disorders” (Dale & Lewis, 2017, p. 494). Some indications that you are addicted to gaming is usual addictive behaviors: lying, lack of attention, sleep issues, etc. Video games are seen to be highly addictive among men, based on the satisfaction hormones that are active during game play (Dale & Lewis, 2017, p. 495).

When considering how a Christian should deal with technology, there are two principles that can be considered. The first focuses on the Christian as an individual. In 1 Corinthians 6, Paul explains to the church in Corinth that for a Christian, while “Everything is permissible”, “not everything is beneficial” (1 Cor 6:12 CSB). In essence, just because a Christian can do something, doesn’t mean they should do something. Paul encourages the Christian to “not be mastered by anything” (1 Cor 6:12 CSB). This means if a Christian is at the risk of becoming addicted to video games, while video games are permissible a Christian that is susceptible to addiction should be careful and exercise caution when considering playing video games.

The other concept is when considering other Christians. In the book of Romans, Paul explains that when considering their actions a Christian should always consider how their actions affect their fellow Christians. “Therefore, let us no longer judge one another. Instead decide never to put a stumbling block or pitfall in the way of your brother or sister” (Rom 14:13 CSB). This means if playing video games might cause issues for a fellow Christian then they should reconsider playing video games.

This means if the Christian does not have addictive tendencies toward video games and no other fellow Christians in their lives would be negatively affected by their playing of video games, then it is a fun activity that can be engaged with caution.

References

Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.

Hi Cory, You talked about some of the disadvantages in using social media. You specifically listed the fact that “some people post way too much information about themselves.” This is very true and can have unintended consequences in addition to the examples you listed. For example, in an article on the guardian, several millennials describe reasons they have quit using social media. Celan Beausoleil, a social worker from California, explained that “A lot of my job is I willingly listen to people’s lives all day every day, and it started to feel so overwhelming to go on social media and see every single detail of everybody’s life” (Brait, 2016). Other reasons that millennials used for stopping use of social media was that they felt like they spent too much time on social media and that they wondered what they could enjoy if they spent that time doing something else. Another issue being that when people’s romantic relationships end, the emotional hardship is added to because they have to decide if they should change profile photos or change their relationship status. It can add a lot of baggage to a time that is already hard enough as it is (Brait, 2016). Besides that, another downfall of sharing so much information on social media is that the companies never delete your information. Which means, for better or worse, your life choices and decisions of photos, activities and notes that you choose to post are stored in their archives forever.

References

Brait, E. (2016, March 17). ’Everyone could know what I was doing’: the millennials not using social media. Retrieved from https://www.theguardian.com/us-news/2016/feb/01/millennials-not-on-social-media-twitter-facebook-instagram.

Article Review: The Five Most In-Demand Coding Languages

Article Reviewed: Kauflin, J. (2017, May 12). The Five Most In-Demand Coding Languages. Retrieved from https://www.forbes.com/sites/jeffkauflin/2017/05/12/the-five-most-in-demand-coding-languages/

Article Objectives:

· To analyze current hiring trends of programming languages and determine the easiest programming languages to get hired in.

· To suggest the top five programming languages that a programmer should learn.

· To list a couple honorable mention programming languages that just barely didn’t make the list.

· To provide a basic overview and explanation about the top five programming languages

· To show top programming trends in different cities across the United States.

Article Summary:

A programming school called Coding Dojo, researched and analyzed job postings on a variety of websites and search engines. They even did internal research with instructional staff that knows the programming market well. Using a combination of all of these data sources, they produced a list of the five most in-demand programming languages.

The top language (Python) is a common programming language useful for writing small utility-based programs and especially for use among data scientists and other analysts. It was the top programming language in Los Angeles, Chicago, Dallas, San Jose, Washington D.C., Boston, Atlanta, and Seattle.

The second language, is Java. Java is also a widely used programming language that can be used for a variety of tasks. It was actually the most in-demand language in Philadelphia, and was the second strongest in the remaining 10 metropolitan areas giving it a very strong job demand.

The third in-demand language is JavaScript. JavaScript is primarily used to alter how websites look and function. JavaScript, is in fact, used by 90% of web pages according to the Coding Dojo report. JavaScript is the top programming language in New York and Houston, second in Philadelphia, ranking in third place in the other 8 metropolitan cities.

The fourth and fifth languages are C (a language created and used heavily by Microsoft) and PHP. C was in fourth or fifth place in each of the 11 cities except San Jose, where Swift (Apple’s programming language) has a stronger hold. Swift and Ruby on Rails were honorable mentions, showing up in fourth or fifth place in a couple of cities each but not enough cities to make it on the top five languages in demand across the nation.

Article Results:

· Python, Java and JavaScript are by far the top-used languages, each one sharing 1st, 2nd and 3rd position among different cities.

· Comparing C adoption versus Swift/iOS adoption, it is apparent that Microsoft technologies are still heavily relied upon across the nation (except in Apple’s hometown of San Jose).

· PHP and Ruby on Rails can be considered “second tier” programming languages as they don’t appear in every city and when they do appear they are in fifth place. However, they seem to be useful alternatives.

· JavaScript is used on the majority of web pages, so while Python and Java might be used in general offline programs, if you want to work on web pages, JavaScript is a safe bet.

· Ultimately, knowing top programming languages will help you get a job, but if you want a job with a specific company, it is important to know what they need. Capital One, Lockheed Martin, and Bloomberg are all looking for different programming languages.

Article Critique:

I feel that the analysis of the top-five programming languages nation-wide and then including the top languages per city is very useful approach. I know as a software engineer wondering recently what languages I should invest some more time in to, this article was very useful. I had no idea how popular Python was in the job market.

I think more context would have been useful around each programming languages’ uses. For example, they did a good job mentioning Python being used by a lot of data scientists. However, for Java they just said that it was “a versatile language”, whereas I think it would be useful to mention that Java tends to be heavily used in government and educational areas. They do mention that JavaScript is used on a lot of webpages, but there was no reference to Node.js which allows JavaScript to run as a web server.

Listing some of the companies hiring different programming languages was useful. Being able to see the difference between location, companies and programming languages helps to understand what is being used, and where. I do think they could have included more companies.

PHP was barely mentioned, I think there could have been more context. For example, PHP is the language that powers most of the content management systems across the internet as it is the language that builds both Wordpress and Drupal CMS software. This is also important because many government and educational insitutations are slowly shifting from Java-based backends to PHP-based Drupal. I experienced this first-hand listening to several talks at Drupal conferences as well as helping that transition while working with USAID.

I think it would have be useful to add some numbers for scale. JavaScript is only the third most popular programming language but how many jobs are available in JavaScript? Swift doesn’t make the national list but does make the list in New York, Philadelphia, San Jose, and Seattle. How many jobs are available can take Swift from a language to ignore to a language to learn.

Article Questions:

· How many jobs do each of these programming languages offer on average?

· I would have enjoyed seeing some more popular companies listed under what programming languages they were recently hiring.

· I’m curious how this has changed over time. For example: if Java has changed from the 1st to the 2nd position in the last couple years would be helpful to know. Or if JavaScript has joined the top 5 list recently or has been stuck around 3rd for awhile.

· Related to the above question, I’m curious how volitial this lsit is. By comparing data over time, it would be interesting to know if the job market changes a lot or if they are pretty stable long term.

Article Review: How Computing will Change amid Challenges to Moore's Law

Article Reviewed:

Papermaster, M. (2017, April 13). How computing will change amid challenges to moore’s law. Retrieved from https://techcrunch.com/2017/04/13/how-computing-will-change-amid-challenges-to-moores-law/

Article Objectives:

  • To explain the current pace of speed improvements in developing CPUs.

  • Discussing current increased demands in computing power.

  • The difference between processing power in the cloud versus processing power in the local machine.

  • Addressing how to increase productivity in programming for local machine processing.

  • Addressing how to increase physical processing within the local machine

Article Summary:

In Papermaster’s How Computing will Change amid Challenges to Moore’s Law (2017)he discusses the challenges between the slowing of Moore’s Law and the increasing demand for local processing power in machines. Moore’s Law is the hypothesis that every two years technological advancements will enable CPUs to double in speed. Papermaster’s assertion is that this speed has begun to slow down leading to the need to find other ways to continue the same pace of technological innovation.

The first idea is that processing needs could be moved to the cloud rather than on local machines. But much of the innovation happening is in areas like self-driving cars, drones, robotics, augmented reality (AR) and virtual reality (VR). Papermaster includes an example of The Royal College of Medicine using VR and AR to create disruptive applications in the surgical area. Ultimately, cloud processing can’t be relied upon with those innovative areas because of the need for real-time data processing.

Papermaster argues that with the integration of software and hardware engineering, we can overcome the loses from the slowing of Moore’s Law. He argues that if we build specialized accelerators using both CPU and GPU processors, using innovative techniques such as 3D die stacking and stacked memory, and integrate these devices because of the smaller size of the processing units these focused hardware devices can be used through open-source frameworks in order to take advantage of many distinct functions.

He calls this new technique the Moore’s Law Plus, and he argues that by combining the on-going CPU speed increases with the innovative integration of hardware and software that we can maintain the same acceleration of technological progression.

Article Results:

  • Moore’s Law is no longer valid as a two year cycle, it takes longer to move processor size and speed forward.

  • Cloud computing is not responsive enough or fail-safe enough to provide the computational power needed in certain settings.

  • Key innovative areas that are demanding more processing power are AR and VR interfaces, as well as self-driving cars, drones, and robotics.

  • In order to continue at the same technological pace, businesses will need to use both software and hardware integration by pushing both areas into new directions.

  • There is a danger of this making software development more difficult, it is important to keep software programming effort as a key factor when making these integration decisions.

Article Critique:

I think that Papermaster’s article, How Computing will Change amid Challenges to Moore’s Law was well written and takes an interesting look into what life after Moore’s Law looks like. He doesn’t make much of an argument for the slowing of Moore’s Law and just states it as a fact. I do think that could have been better analyzed. However, the assertion is correct.

Intel’s famous “tick-tock” development process was originally designed around Moore’s Law where the first year was the tick (process) and the second year was the tock (architecture). By the third year, technology would have improved and they would be on to a new process. However, due to the slowing of Moore’s Law, Intel has had to develop a new development process that allows them to release new processors even when they haven’t been able to make physical changes every two years like the used to (Bright, 2016).

The recognition of cloud computing but the rationale on why it is not enough for certain areas of technology such as self-driving cars, AR or VR was helpful. I found it interesting that the solution was not in one discipline but was actually cross-displine by melding both software and hardware innovation.

Some proof of Papermaster’s assertions can be found in Apple’s new iPhone 8 and iPhone X. In order to power the AR of the new iPhones as well as capitalize on battery life Apple built 6 cores into it’s System on Chip (SoC) A11 Bionic. It has two power efficient cores for general use that allows the iPhone to have great battery life as it is used normally. It also has four high performance cores that allow for heavy duty multithreading when dealing with intensive tasks such as AR. The A11 Bionic SoC also contains a motion co-processor that off-loads all the motion tracking data away from the generic processors into a processor designed for dealing with motion data (Altavilla, 2017).

I think that Papermaster’s article was a through analysis of the challenges that businesses are facing as Moore’s Law is slowly become less and less true. There are some areas that could have been expounded upon by providing proof of Moore’s Law slowing or some concrete examples of how the software and hardware integration can lead innovation at the same pace. However, the premise and conclusion were still true.

Supporting References

Altavilla, D. (2017, September 13). Apple A11 Bionic Processor Silicon Prowess may be the new iPhones’ Most Impressive Feature. Retrieved from https://www.forbes.com/sites/davealtavilla/2017/09/13/apple-a11-bionic-processor-silicon-prowess-may-be-the-new-iphones-most-impressive-feature/ - 2cf7358c5f82

Bright, P. (2016, March 23). Intel retires “tick-tock” development model, extending the life of each process.. Retrieved from https://arstechnica.com/information-technology/2016/03/intel-retires-tick-tock-development-model-extending-the-life-of-each-process/

Please note, the post below is a school assignment that required that I write a post with a contrary view of the thread which meant I had to defend software piracy, which is something that I DO NOT support or condone. This is purely an academic exercise.

Hi Bobby, Thank you for your thoughts on software piracy. You had some interesting points both on legal and moral grounds, but there were a couple things I thought I might respond to. First, you mentioned that a Christian shouldn’t use unauthorized software because it is considered stealing and that the Ten Commandments forbid theft. This however, is under the assumption that a Christian is living under The Law rather than by grace. I would argue that a Christian is free from the law, and thus the idea of stealing software, an already abstract concept is not a sin. Second, you argue that software piracy is limiting jobs as you mention that “lowering software piracy by just 10 percentage points during the next four years would create nearly 500,000 new jobs and put $140 billion into ailing economies” (Dale & Lewis, 2016, p. 191). I would argue that plenty of businesses don’t hire more employees when they get more money and the lack of software piracy doesn’t necessarily mean there would be more jobs but just that the owners of these software companies would make more money. Considering the fact that the majority of software piracy is for over-priced software by large companies like Microsoft and Adobe, the likelihood of jobs actually being affected is fairly low. Finally, I think it is important to reflect on the fact that software is abstract. Most people that pirate software either don’t have the means to purchase it or wouldn’t purchase it, even if they didn’t pirate it. In this case, software piracy isn’t affecting anyone except it allows the person who pirates the software to be able to use something to better their life that they wouldn’t have had access to before that. Thanks for your time, Eddie

References Dale, N. & Lewis, J. (2016). Computer Science Illuminated, 6th Edition. Burlington: Jones & Bartlett Learning.

The Christian's Union with Christ

The idea of the “union with Christ” is used all throughout the New Testament when talking about salvation. In fact, without the ideas behind our union with Christ as believer, we would literally not have salvation. It is both the foundation in which the Christian view of salvation is built on and the key differentiator between Christianity and other world religions.

The concept of a believer’s union with Christ refers both to a positional definition and an experiential definition. Positionally, when God looks down at us He doesn’t see the times we’ve messed up or the sins we’ve committed. We God looks down at a Christian believer, He sees the the acts that Jesus did and the life that Jesus lived. Because of this, that means positionally before God we get to take the place that Jesus gets. Experientially, God has come down to earth and He lives inside of every Christian believer. We don’t just cognitively know of God, we know God through our experiences with Him. Through the Holy Spirit living within believers, God begins the process of Sanctification within our lives leading us through a long process to becoming more and more like Jesus.

Without the union of Christ, the entire Christian doctrine of Salvation would fall apart. This is because the concept of our union with Christ is embedded in 4 crucial aspects of our salvation: eternally, historically, presently and eschatologically. Eternally, God chose us in Christ. Historically, God sees us as united with Christ in His life, death and resurrection. Presently, our salvation and the gift of the Holy Spirit inside of us is only because we are united with Christ. Eschatologically, when a believer dies they are “with Christ” and will rule with Christ (Rev 3:21).

Sin and Culture

When looking at society today, it becomes obvious that “sin is an all-but-extinct term in the American vocabulary.”[^1] The concept of sin today is interrelated to the view of humanity. Within culture in America today, common thought is that humans are ultimately good at heart[^2] and if you could remove the negative external influences, you could have a utopian-like society.

Another reason that the concept of sin has diminished from the public is the common understanding of moral responsibility. “We live in an age that strives to ease or eradicate moral and spiritual culpability”[^3] It used to be that most understand that there was a common base for morality, while God’s nature might be debated, there was an agreed upon understanding in the public that people ought to measure up to moral standards like the Ten Commandments. However, in the Post-modern movement in society, people have shifted from believing in external morality to internal morality. That is, rather than morality being defined for them based on a religion or God, that morality is defined based on what feels right to them.[^4]

Thus, when morality becomes subjective based on the meta-narrative that feels right to each individual, there can be no common understanding of right and wrong, thus the diminishment of the concept of sin from the public square. As sin is defined as “failure to measure up to God’s standards,”[^5] so if there is no agreed upon God or standards, how can there be an agreed upon sin?

[^1]: Daniel Akin, ed., A Theology for the Church (Nashville, TN: B&H Publishing Group, 2014), Kindle, Location 14412 [^2]: Ibid., Location 14434 [^3]: Ibid., Location 14417 [^4]: Al Truesdale, With Cords of Love: A Wesleyan Response to Religious Pluralism (Kansas City, MO: Beacon Hill Press, 2006), Kindle, Location 1088 [^5]: Daniel Akin, ed., A Theology for the Church (Nashville, TN: B&H Publishing Group, 2014), Kindle, Location 14430