I don't know if hope is a feeling, but I'm hoping Christians recognize they should not "approve of those who practice" (Romans 1:32) homosexuality, murder, and the other sins listed in Romans 1, and that the Democratic platform explicitly approves of the practice of homosexuality and murder.
I'm hoping Christians realize that when the Democratic platform says "Abortion is an intensely personal decision between a woman, her family, her doctor, and her clergy; there is no place for politicians or government to get in the way," it contradicts Exodus 21:23, which says the man who kills a baby in the womb has committed murder, and so should die at the hand of the government, "life for life."
In context, that passage reads,
22 "When men strive together and hit a pregnant woman, so that her children come out, but there is no harm, the one who hit her shall surely be fined, as the woman's husband shall impose on him, and he shall pay as the judges determine. 23 But if there is harm, then you shall pay life for life, 24 eye for eye, tooth for tooth, hand for hand, foot for foot, 25 burn for burn, wound for wound, stripe for stripe.
I wrote the following for a friend in 2008, so some of this info is out of date now.
I've been thinking about how best to introduce you to the world of web development. I'll describe three main things--the path I've taken to learn web development, the general structure of software, and practical recommendations for where to start.
1. My path
The general path I've followed in learning web development is below. All items but the ones marked with an X remain essential for my work today, so could be useful for you to learn. Of course there are many other unmentioned ways to go about this, and it's good to use the latest books & online materials to your advantage. You can Google for the keywords below for more info.
2004 Learn Python Learn (centralized) version control - Concurrent Versioning System (CVS), then Subversion (SVN) Use TikiWiki for my site (a content management system - CMS) - X
2005-2006 Use Joomla (a CMS) for my site & others Write Joomla components in PHP - X Write custom AJAX/DHTML
The path I've taken follows the advances made in web technology over the last 10-15 years (static pages to dynamic database-backed sites to CMSes & rapid web application frameworks), the general hierarchy you might follow to learn web technologies (from basic to more advanced), and the last things in the list are of special value if you need to know (or use) the latest and best technology.
2. The general structure of software - MVC
It seems to me the best way to introduce you to how a website works is to conceive of the website as if it is a software program or application, which in a sense it is, and group the necessary technologies according to how they function within the program. One of the best basic paradigms for understanding and organizing a program today is the "Model, View, Controller" paradigm, or MVC. The Model is where you store your data -- the database. The View is the part of the program that presents the data visually to you, the user. The Controller is where you put your programming logic ("business logic") that decides what data to get from the Model (the database) and present to the user through the View, or what to do with information the user sends into the program through the View (often the Controller will write user-submitted data to the database.) The technologies centrally involved in a website follow this pattern. To give you a little background, first I'll list some of the things you could put into a website and distinguish which things belong more to the server and which belong more to your particular site:
Server Web server hardware - rent space on a host like WebFaction.com for $0-$10/month Web server software - serves the site's pages to your site's visitors - on Linux servers it's normally Apache; on Windows it's IIS (Internet Information Services) Database software - MySQL, Postgres, MS SQL Server Server-side programming language - Perl, PHP, ASP, ASP.net, Java, Python, Ruby, etc. Domain name - publicly-accessible address for your site's server - register for $20/year with a registrar like GoDaddy.com
Second, you need to understand how all these things are tied together. They work together as a "stack" of technologies--the "server" parts are foundational for the "website" parts, and the content of your site travels through the stack either from the server to the user, or from the user to the server. Here's the most common open-source "stack" out there--often called "LAMP" for "Linux, Apache, MySQL, PHP/Perl/Python."
This stack is available on most web hosts, and can be set up on your home computer (via XAMPP) to learn PHP& MySQL or to make your programming go faster. If you don't want to write in a server-side programming language yet, you can create static HTML pages and test them on your home computer without installing/running web server software (Apache). Just double-click on the HTML file and you can view your site.
There are other stacks. Some are older and generally more complex, using languages whose syntax is verbose, hence time-consuming and error-prone:
- C or Perl used to be used as server-side languages - Zope for the server, Python for the server-side language (simple), Plone for the CMS (complex), Zope Page Templates for the view (complex) - Tomcat for the server & Java for the server-side language
Some are newer, and generally simpler and better. PHP is easy to learn, and would serve you well, but it's significantly easier to program in Python & Ruby. Ruby On Rails is a new stack that has popularized newer & better technologies and makes them easy to use. Right now I'm using a similar stack called TurboGears when I can.
TurboGears Model - MySQL (or one of several other database backends it supports) Controller - Python, CherryPy web server View - XHTML templates, CSS, AJAX toolkits, widgets
3. Where to start
So, I'd recommend you do the following:
Let me know if you'd like me to give you more info or set up more examples on any of the above and I'll be glad to do so. If you want me to create a website for you, send me a list of the content & features you will want to have in the site, and I'll write a contract proposal you can modify or accept as the contract.
I wrote the following for another friend around 2010. It also is somewhat out of date now that applications are moving away from the three-tier architecture where the model and controller, and even the view generation code, runs on the server, to a two-tier architecture where nearly all the code except the database runs on the client.
Designer-friendly view/layout templates
Django is another Python rapid web application framework, and it was popularized with the story that it enabled its users to quickly modify the appearance of a busy news website (I think in Lawrence, KS). One key way it (and all rapid web application frameworks) made that possible was by organizing the code into a model (which interacts with the database), controllers (which move data from the page to the database or from the database to the page), and views/templates (which present the data in HTML which is then consumed by the web browser.) This is called the "MVC" (model-view-controller) design pattern. Rather than changing all three kinds of code to change the look of the page, as would be necessary with spaghetti code, often all that is necessary for quick layout changes is for a web designer who may be a non-programmer to modify an HTML view/template file.
Invest in newer, but popular and proven, programming languages and methods
So, though much of this may be new to you, I'd highly recommend avoiding investing in the older languages (Perl, PHP, ASP), or older methods (code not organized according to the MVC (or other similar) pattern(s)). It's true that web application frameworks move in and out of popularity quickly (say every 3-5 years?), yet because they encourage organizing code well, it is easier to migrate your code from an old framework to a new one piece by piece when it's organized well according to the MVC pattern. OSQA, for instance, is written in Django. Other software you may consider may be written in PHP or ASP. It can still be wise to pick software written in the older languages, because programming languages never really die--you'll be able to find Perl, PHP and ASP programmers for the next 20 years--but the newer languages Python and Ruby are overtaking the older ones in productivity and so popularity, and so may prove to be a better investment in the end. PHP and ASP web hosts are ubiquitous and cheap, and Python and Ruby web hosts (I use WebFaction, which used to be called Python-Hosting, and have found its tools and support to excel beyond other hosts I've used) are less common, but tend to be more technically competent because they are on the leading edge of developing technologies, and more of their staff and clients tend to be programmers building new software.
With this background, I'll mention why I chose TurboGears rather than Ruby on Rails, Django, CakePHP (in PHP), etc. Ruby is younger than Python, and has had some security problems in its language interpreter, and in 2006 had a less complete set of programming libraries to draw on to do specialized programming tasks. Python had a very complete set of libraries included by default (they say Python comes "batteries included.") Python and Ruby's syntax is simpler, cleaner, briefer, and more like plain English than PHP or ASP. ASP costs money to use because it's owned by Microsoft. Django is monolithic--you use only the Django model library, controller library, and view/template library. TurboGears breaks all functionality into swappable libraries--you can use whatever library you want, but TurboGears recommends a certain set of popular, sane and easy defaults. Because of a fundamental design problem in one of TurboGears' libraries named Pylons (which governs the controller code) that prevented Pylons from being developed further without breaking code that depends on older versions of Pylons, much of TurboGears' community/mindshare is migrating to using a new framework named Pyramid, which mostly plays the same role Pylons played (governing controller code; Pyramid is developed by the Pylons developers as the intentional replacement for Pylons), but also recommends using most of the same libraries used in TurboGears (SQLAlchemy for the model, and Genshi or Mako for the view templates) because they are among the most popular libraries in the Python world for those purposes, so it should be easier to migrate my code from TurboGears to Pyramid than it would be to move from Django to Pyramid.
Programmers' debates over which language or method is best are sometimes described as similar to wars over religion, with the implication that both are matters of preference wrongly turned into matters of life-or-death importance. I don't care what tool a person uses, but I have to choose tools to use myself. I mention the above to you so you can have some wisdom as you go into evaluating in what languages and methods a programmer may recommend you invest, and hopefully make a judgment about whether the investment is wise over the short and long term.
I wrote the following in 2012, so it's up-to-date for now!
I formed the Caney Python User Group (CaneyPUGgies) to teach other people web programming, and make long-term contacts in this area beyond Caney. The CaneyPUGgies website describes how to get started learning with CaneyPUGgies, the tools we ARE using, and the programming languages and libraries we WERE using:
We need to update the CaneyPUGgies website to reflect the languages and libraries we are using now.
Is the doctrine of Sola Fide biblical? Yes, despite the objections Roman Catholics raise against it. A lady asked me this today, and my response is below. She wrote,
I am struggling to understand Sola Fide and am hoping you can help me in my attempt to gain a better understanding of it. I am clear on the "dictionary" definition of Sola Fide
I must ask whether you really are clear on the definition, because there is not only one definition of Sola Fide; instead, there are at least two! Do you mean by "Sola Fide" that we are a) saved by faith alone, or b) justified by faith alone? A common problem in this discussion is that the Reformed definition of Sola Fide is not the same as the Lutheran definition of Sola Fide, and this causes people to misunderstand each other--sometimes Catholics wrongly assume the Reformed hold the Lutheran definition, and sometimes those who are otherwise Reformed actually do hold the Lutheran definition.
The Lutheran definition sometimes says that we are saved (rather than only justified) by faith alone when it equates "justification" with the whole of "salvation," because it holds that after faith, all other benefits of salvation flow from justification, so the order of salvation is faith, justification, union with Christ, adoption, sanctification. For example, Luther evidenced this mistake when he said "Works are necessary for salvation but they do not cause salvation; for faith alone gives life." (Ewald M. Plass, "What Luther says," page 1509, quoted at http://en.wikipedia.org/wiki/Sola_fide#cite_ref-21.) Luther was right to imply that our works do not cause justification (in the sense of a contributing or efficient cause), but wrong to say our works do not cause salvation (as a material or constitutive cause). Further, if as Luther said, "Works are necessary for salvation" as a (as Richard Gaffin helpfully put it in a lecture when I was in seminary) "necessary attendant circumstance" of justification, they are a cause even of justification itself, because a necessary attendant circumstance is rightly termed a "necessary cause." The failure to specify which forms of causality are excluded by the word "alone" remains even in Reformed theologians as capable as Michael Horton, as this review of Horton's Systematic Theology by Richard Gaffin demonstrates: http://opc.org/os.html?article_id=141 (titled “Covenant and Salvation,” published in Ordained Servant, March 2009.)1
The Reformed definition of Sola Fide is that we are justified by faith alone, where "alone" means "not on the ground of our own meritorious works." In other words, the Reformed definition specifies the scope of the meaning of "alone" so that the causality denied by the word "alone" is only the causality involved in the nature of a meritorious ground for justification. This sense is evident throughout the Westminster Confession's (ch. 11.1, 2: http://opc.org/wcf.html#Chapter_11) and Larger Catechism's discussion of justification (http://opc.org/lc.html). In contrast to the Lutheran definition, the Reformed definition of Sola Fide does not deny, but affirms, that in addition to faith and justification, sanctification and repentance are also "saving graces" (Westminster Larger Catechism 75, 76), so while justification is "received by faith alone" (Westminster Larger Catechism 70), salvation is not by faith alone.
Underlying both the Reformed and Lutheran definitions of Sola Fide is a deeper concern to deny that the ultimate origin of man's salvation is in any way found in man himself, and the doctrine of Sola Fide is intended to protect against this error of autosoterism in the details of the doctrine of justification. The Roman Catholic view that God's grace infused into man resulting in good works forms, or allows those works to form, a meritorious ground of forensic justification and the material cause of infused justification ("justice"), despite its attempt to ground God's grace in God alone, nevertheless is in the final analysis a form of autosoterism, because due to its dependence on Aristotle's view that lower forms (entities that are "hylomorphic" or form/matter composites) are not pure form/actuality, such infused grace is not purely from God, but is also from man.
but where my confusion lies might be best captured in the following questions:
1. Is sola fide an essential element of the gospel?
Yes. Galatians 1:6-9 and 2:16 make this clear:
Gal. 1:6-9 "6 I am astonished that you are so quickly deserting him who called you in the grace of Christ and are turning to a different gospel- 7 not that there is another one, but there are some who trouble you and want to distort the gospel of Christ. 8 But even if we or an angel from heaven should preach to you a gospel contrary to the one we preached to you, let him be accursed. 9 As we have said before, so now I say again: If anyone is preaching to you a gospel contrary to the one you received, let him be accursed."
Gal. 2:16 "yet we know that a person is not justified by works of the law but through faith in Jesus Christ, so we also have believed in Christ Jesus, in order to be justified by faith in Christ and not by works of the law, because by works of the law no one will be justified."
The word "by" in "not justified by works of the law" in Gal. 2:16 is the Greek word ek, which commonly means "out of," naturally indicating here a legal basis or ground, rather than the Greek word dia, which commonly means "through" or "because of," which would more naturally indicate an instrumental or material cause. The word "through" in "but through faith in Jesus Christ" is the Greek word dia, which naturally indicates the function of a receptive instrument (not 1) a creative instrument, because in this context, faith is first “in Christ” the Savior, so implies an ultimate dependence on Christ’s power and agency rather than a creative power inherent within faith itself, and not 2) a meritorious ground, because diaindicates an instrument rather than a ground). So it is proper to limit the scope of the word "sola" or "alone" to deny that good works are a meritorious ground of justification, and to affirm that faith is the "alone instrument" (Westminster Confession of Faith 11.2) by which God's legal declaration imputing Christ's righteous standing to us is received by a believer in justification.
So Paul says the doctrine that one can be "justified by the works of the law" (Gal. 2:16) is "not" (Gal. 2:16) the "gospel" (Gal. 1:6-9), but is a "distortion" (Gal. 1:7) "contrary" (Gal. 1:8, 9) to the gospel, and results in its followers being "accursed" (Gal. 1:8, 9) by God. Correlatively, Paul says the true gospel is that justification is received by faith alone--by faith as the "alone instrument" by which justification is received.
2. If anyone rejects sola fide (and knows what they are saying) then have they rejected the gospel?
Yes. If they don't actually believe in Christ as their only Savior (and so also, at least implicitly, in Christ's righteousness alone as the ground of their justification) at some point in their beliefs, they are not saved. Yet people can be, and are, inconsistent in their beliefs, and in their profession. They may reject sola fide knowingly at one point in their beliefs, yet because they truly receive and rest on Christ's righteousness alone for justification at another point in their beliefs, they are in fact believing the true gospel, and truly believing in Christ as their Savior, and so are saved.
3. Can Acts 15:5 be used as a passage that could teach that those that knowingly reject sola fide still be believers?
Yes, they may have been believers while, inconsistent with their true saving faith, they rejected sola fide, but no, they only continue to demonstrate themselves to be believers if they are willing to be corrected when they are shown that rejection of sola fide (understood to mean justification is received by faith alone, and is not on the legal ground of meritorious good works) was an error. The individuals in Acts 15:5 were in fact in error, seeking to "put God to the test" (v. 10), as the final decision of the Council of Jerusalem later in that chapter (vv. 28, 29) demonstrates--the Council did not require the Gentiles to be circumcised as a meritorious ground, or even a necessary attendant circumstance, of justification, and salvation. Acts 16:3 teaches that Gentiles are permitted to be circumcised out of kind deference to Jews who are "weak in faith" (Rom. 14:1), but Gal. 5:2-6 teaches that it is wrong to consider circumcision a meritorious ground for justification.
If you could help me by answering these questions I believe that it would benefit me greatly and I would very much appreciate it.
I do hope this has helped you, and welcome further questions if I can be of further help.
I don't leave my faith behind in the marketplace, and neither should you. "Faith without works is dead." (James 2:26) What is work without faith? Pagan.
The quote regarding judge Kane and the Newland case below is interesting in connection with the current discussion of Reformed two kingdom theology and the differences between Sabbath worship and 6-day work. I expect the legal arguments against the Newland family/Hercules Industries cannot hold up in court. From http://www.frc.org/washingtonupdate/kane-no-crutch-for-obamacare,
"In keeping with the President's support of the narrow freedom of worship, versus the freedom of religion, the government's attorneys argued that men and women who enter the marketplace must leave their faith behind. 'As a for-profit, secular employer, Hercules cannot engage in an exercise of religion.'"
I believe this indicates not that US law is generally opposed to biblical morality, but that there is a real battle in our society between citizens pushing an agenda of secularism and citizens seeking to practice biblical morality. The solution Kane is following is correct--within its rights as a family-owned business, despite its unbiblical Roman Catholic opposition to all contraception, it is practicing biblical morality by refusing to pay for abortions, by refusing to pay for those parts of ObamaCare, and is doing so in accord with its own articles of incorporation, which wisely were written with the prescience to protect the company and strengthen its position in just this sort of situation.
Business owners, are you taking similar steps now to practice Christianity in your business? Or are you capitulating to a murderous secularism, and paying for abortion?
Yes, I'm stirring the pot today, and of course, willing to be corrected where I'm wrong.
Tim Black Pastor, Caney Orthodox Presbyterian Church Owner and Web Developer, Always Reformed Web Development. I prefer to hire Reformed Christian subcontractors, unapologetically!
For those who have time to read an autobiography, or an hour to listen to a recording, you may find it interesting to learn about my grandfather at http://mahaffynet.net/?page_id=53. His autobiography covers his years as a country boy in Kansas, a B-25 pilot in WWII, and college & seminary student, then a pilot and pastor then regional home home missionary at large in the OPC. The hour long recording is of him telling the story of how he was shot down in WWII, told in a way similar to how he has told it many times as a means of presenting the gospel.
I have found his accounts interesting for a number of reasons. He is a very careful man, so I was surprised at the risks he took when flying, though they were few in number, and his adventurous spirit throughout. He is a very godly man, so I cherish his personal, and deeply Reformed and presbyterian, testimony which he makes explicit at points throughout. He makes a number of sober assessments of his actions in hindsight which are useful for younger men like myself to consider. And his understated humor is a delight.
Grandpa's pastor John Mahaffy writes,
On this Veterans' Day I am particularly thankful for the service of a man who was my pastor when I was a teenager, the Rev. Glenn T. Black. He has given sacrificially to serve both his country and his Lord, without confusing the two or mixing priorities. Many of you have read his "Four Full Years" or listened to his "My Longest Day." If not, you might find it appropriate today to click here and do so. He would be the first to tell you that he was only one of many. However, it is important that we do not forget him or others.