- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
243 lines
21 KiB
Plaintext
243 lines
21 KiB
Plaintext
Episode: 1370
|
|
Title: HPR1370: Blogging With Octopress
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1370/hpr1370.mp3
|
|
Transcribed: 2025-10-18 00:22:02
|
|
|
|
---
|
|
|
|
You
|
|
Hi, my name is Tony Palais and this is my first contribution to Hacker Public Radio.
|
|
Today I want to talk to you about Octopress and advocate the use of static site generators
|
|
to help you create websites and build the HTML necessary to do anything from build your
|
|
blog to create a product catalog or portfolio website.
|
|
I, for a long time, have run a small blog called I Learn Things.com where I post a, where
|
|
I have posted a series of tutorial screencasts with hopes of teaching people valuable business
|
|
skills, specifically how to use free and open-source software such as Libra Office, Open Office,
|
|
those type of things.
|
|
Because in my work, I have found that a lot of people really lack some of these very basic
|
|
word processing and office software type skills and the beauty is that there's a, there
|
|
are a number of free programs out there and free educational material, which you as a
|
|
prospective employee can learn in order to empower yourself, be able to get a good or
|
|
higher paying job and improve your situation in life.
|
|
So it's something I've been very passionate about in providing this free education and
|
|
I had built my web blog on one of the most common platforms, which is WordPress and for
|
|
a long time I was very satisfied with the results.
|
|
But maybe a year ago or so, I received a notice from Google saying that my site had been
|
|
de-listed for possible malicious activity and this kind of sent me into panic because
|
|
I don't have the resources or anything to continually monitor my website to make sure
|
|
everything's running fine.
|
|
And I was panicking because I thought someone had hacked it, maybe taken over my website
|
|
and then who knows what.
|
|
So I began the process of investigation.
|
|
I took the site offline.
|
|
I compared the actual code that was on the site with backups that I had had through a
|
|
series of dips to try to figure out what had changed and what had caused Google to de-list
|
|
my site and market as malicious.
|
|
In the end, I couldn't really ever figure out what the issue was.
|
|
The closest explanation I had was that there was a link or an image link, which I had posted
|
|
from the SoCal Linux Expo advertising my attendance at scale and that image had been taken
|
|
down from their website so it was pointing to a blank image and I think that might have
|
|
been what caused Google to de-list my site or market as malicious.
|
|
But I have no confirmation of that and when you're investigating these things, there's
|
|
no sure way or I find it can be incredibly difficult to determine exactly what the issue
|
|
may be because there are just so many variables.
|
|
In the end, I was able to get Google to list my site again and it seemed that I resolved
|
|
all the issues but really, I was kind of disappointed in WordPress itself because I know WordPress
|
|
is vulnerable to a lot of issues.
|
|
You have to continuously ensure that you maintain this website or not the website but the
|
|
content management system WordPress itself as a system.
|
|
You have to constantly update it because it is a big target to be exploited.
|
|
Now, web has benefited greatly from dynamic languages such as PHP, Pearl, Ruby and Python
|
|
to create websites that are rich and engaging and allow us to have conversations online.
|
|
When the web first came out, I remember back to those days, it was very much a one-way
|
|
conversation.
|
|
It was a way for us to just post information online and kind of didact and expel what was
|
|
on our mind and have other people read it but it was very uncommon for these other people,
|
|
these millions of people online to actually interact with these web pages.
|
|
That's really what the big revolution of what's called 2.0 brought is this sort of interactivity.
|
|
This emphasis on conversation and interaction and where our users are invested in the content
|
|
itself that is created on these websites.
|
|
These sorts of websites would not have been possible without these dynamic languages but
|
|
at the same time these languages brought in a lot of security issues that you now have
|
|
to worry about if you're building a website in PHP or Ruby or Pearl or any of those other
|
|
languages because it allows potentially or malicious people to potentially alter the contents
|
|
of your website to make it your website do things that you don't want them to do.
|
|
One way to eliminate many of these risks is to make your website static in other words make
|
|
it so nothing can change on the website and though you're still vulnerable to exploits
|
|
in the security of the underlying operating system or the security of your web server itself
|
|
that serving up these pages, you do eliminate a lot of the potential avenues of attack by
|
|
providing only static HTML pages.
|
|
Now of course you're saying well aren't we just returning to a time when we're just
|
|
posting information online and we're not allowing our users or our viewers or web page viewers
|
|
to interact with the content that we have listed on the website and yeah I mean to a large
|
|
extent yes you know we are but we're doing that on purpose and for a great number of websites
|
|
it's really all that is needed you know blogs the purpose of blog is many times for us
|
|
to express ourselves ideas document what we've been through document things that we have
|
|
learned and that takes primacy over the actual interaction with our viewers and that's
|
|
not to say that interactions is completely eliminated if we resort to static websites
|
|
because most modern web browsers do allow JavaScript and you can simulate a degree of interactivity
|
|
using JavaScript as a tool.
|
|
So when I made the decision to change my WordPress blog to a static website my biggest concern
|
|
was this would my users be able to interact they feel vested in the actual website and
|
|
the content that I was providing and you know normally this is done through allowing users
|
|
or viewers to enter comments and interact with you in that format but I found that there
|
|
was a service software as a service called discuss which you could embed into your website
|
|
which would allow you to provide comments even though your website itself was static and
|
|
unchanging and it did that by by allowing you to embed a piece of JavaScript which would
|
|
communicate to a third party server and of course these comments would then be stored in this
|
|
third party server so the disadvantage was that I didn't manage these comments and they weren't
|
|
really mine they were on this third party server but the advantage was that it's one less thing
|
|
that I had to worry about in terms of managing my site so then I set out once I figured out okay
|
|
well this this problem is solved I don't have to worry about not being able to provide comments
|
|
or some form of interaction with my users I said about trying to find what would be the best way
|
|
to generate a static HTML website and there are a number of static HTML site generators out there
|
|
pretty much any programming language you can think of has one and probably the most common the
|
|
most popular one is one called jekyll which was pioneered by github github of course is an online
|
|
community centered around github and project and development they offer open source projects the
|
|
ability to host their code for free and they use jekyll to create their what they call github pages
|
|
which are basically project pages or websites that are hosted on github that can be specific to a
|
|
single user or project itself I looked at that and jekyll is great but it's very bare bones
|
|
it it basically all it does is give you a series of scripts that help you automate it but you're
|
|
still building a website essentially from scratch and though there's a lot of power in jekyll
|
|
there is a little bit of a time commitment necessary in order to get it up and running
|
|
and design the way that you want the second project that I look at looked at was the jekyll
|
|
bootstrap which which basically took jekyll and added some scripts to configure some of the very
|
|
basic stuff that you would need out of the box such as themes and basic deploying scripts and
|
|
those kind of things but jekyll bootstrap fell out of favor or didn't fall out of favor but
|
|
but it was the the originator of that project moved on to other projects and so it's kind of
|
|
fallen by the wayside and replaced by other more currently maintained projects I also took a
|
|
look at pelican which was a python version essentially of jekyll and I like that one a lot because
|
|
a python comes by default in a lot of linux operating systems and I use linux as my own operating
|
|
system so I didn't have to really install too many other dependencies but still I found better
|
|
options and then there was a hpr episode number one two zero three on templer which is pearl based
|
|
another good example of a static site generator but again I'm not I'm not an expert on pearl I do
|
|
I do know ruby quite well and I know a little bit of python so I felt a lot more comfortable in
|
|
those languages and the nice thing about a static site generator if you know these languages you
|
|
can really customize it to your needs so you can really take it and run with it and and the idea
|
|
of these site static site generators is that you write code to basically create these sites for you
|
|
and really simplify the process of in my case of creating my blog creating new blog posts updating
|
|
the rss feed embedding the videos the pictures and so on and so forth so finally the one I
|
|
settled on was a tool called octopress and it's available at octopress.org and the reason I settled
|
|
on this particular one is that one it's it's based on jekyll which is again one of the most
|
|
popular static site generators and but on top of that it it adds a number of really useful tools
|
|
that I really enjoyed it was based on ruby and ruby's a language that I'm very comfortable in and
|
|
if you're not familiar with ruby or never programmed in ruby it's something I highly recommend
|
|
getting into it's a very expressive programming language it's available pretty much in any
|
|
operating system and it's very easy to read and you know the the adage basically goes that ruby
|
|
was designed for programmer happiness so if you're a programmer and you like or even if you're not
|
|
a programmer if you do any programming and you like to be happy why not give ruby a try now
|
|
it's kind of cliche to say that but in truth that that has been my experience I'm not really a
|
|
professional programmer but I do enjoy programming and solving problems using programming tools such as
|
|
the ruby language so ruby as the programming language for octopress and really allows for very
|
|
expressive scripts and very easy to modify templating system octopress also uses sass which stands for
|
|
syntactically awesome style sheets which is essentially I guess it's a pre-processor for CSS in other
|
|
words it lets you write code that looks very similar to CSS code but gives you a few additional
|
|
options which are not available in CSS including the use of variables so if you have for example colors
|
|
that you wanted to find for your particular website you can define variables for these colors
|
|
and if you ever down the line need to change the colors instead of changing every instance where
|
|
particular color appears in your CSS file you just change the instance where you declare the variable
|
|
and what sass does is compile these files into regular CSS so this sass if you've never used it
|
|
to build websites it's really a tremendous tool octopress comes with sass and uses it by default
|
|
if it's not something you've used it for it it might take a little use getting used to to actually
|
|
harness the power of sass but the nice thing about sass is if you don't know sass or you don't know
|
|
the sass syntax you can just write CSS and it will still work hey there's nothing more that you have
|
|
to learn in order to use it but if you do spend the time to learn sass you will be rewarded it
|
|
also uses twitter bootstrap as the basic template of the system and twitter bootstrap is a HTML 5 template
|
|
essentially used quite commonly in modern websites and what it offers is a very modern very beautiful
|
|
very simple design that is scalable across a wide wide variety of different screen resolutions and
|
|
the reason that's important is because as devices we we kind of have huge variety of different
|
|
resolutions we have cell phones and we have monitors we have write data displays or high resolution
|
|
monitors so you never know what what the devices are that they're going to be viewing your website on
|
|
and what what twitter bootstrap one of the things I really like about it in addition to that it looks
|
|
very appealing is that it really works well across a multitude of different screen sizes so
|
|
I can look at my website on my mobile phone or I can look at my desktop and I will still have a good
|
|
experience browsing my website. octopus also came with an HTML 5 video plugin which meant it was very
|
|
easy to integrate HTML 5 video and I ended up customizing this part for my particular needs but
|
|
but because I my blog was a screen casting blog where I posted videos it was this is one thing
|
|
that was very important to me. I ended up by default the octopus video plugin uses just MP4
|
|
x264 files basically and if your browser is not compatible in playing these it'll display a
|
|
flash video and I wanted a few more options so I ended up changing the code for mine and to also
|
|
enable aug videos and web m videos in the HTML 5 format so if you visit the site depending on the
|
|
browser that you have it'll go through and try to find one version of the video that will play
|
|
correctly in your web browser so that where I didn't have to rely on flash or a youtube or
|
|
anything like that to have my videos displayed and then finally one of the big selling points for
|
|
me in using octopus was that deployment scripts that it comes with it's so incredibly easy to
|
|
write your blog post and it's just a two letter command in the terminal to deploy it and make it
|
|
live all right so now that you have an idea of of really the beauty of a static site generator
|
|
I'm gonna give you some of the requirements I'm not gonna list all the or read the code out loud
|
|
because it can get very boring but I will have a list of commands in the show notes that you can
|
|
then follow to get your blog or website published using octopus in order to set up your environment
|
|
you're gonna have to have a few tools installed on your computer your octopus depends on get
|
|
and get is the version control system used quite extensively in the open source community because
|
|
of its flexibility and the nice thing about using get to distribute octopus is that really it's
|
|
compatible in almost any environment so all you're doing when you're installing octopus on your
|
|
computer is really cloning the repository of octopus and it creates a folder that you can then use
|
|
to change the files to publish your own website it also requires Ruby like I said before
|
|
now I know in the open source Linux community Ruby is not quite as common as some other similar
|
|
programming language such as Python but if you've never given Ruby a try I would highly recommend it
|
|
to learn the very basics it shouldn't take too long I will try to include some resources in the
|
|
show notes that you can use to get your feet wet with Ruby but even if you don't feel like spending
|
|
the time learning Ruby you can still use octopus because really what you're using when you're using
|
|
octopus is just its text editor and a few commands on the command line so you need Ruby installed
|
|
now installing Ruby can have its own problems particularly because octopus requires Ruby 1.9.3
|
|
and a lot of systems including the Ubuntu LTS 12.04 I don't believe come with a version that's
|
|
1.9.3 or later so in order to get around these issues there are a number of tools in the Ruby
|
|
community that were developed that allow you to install localized versions of Ruby and quickly
|
|
switch between the system one and the local one or have several versions of in a local system so
|
|
you can have different projects each with which a different version of Ruby and the one that I
|
|
recommend is RBM also there there's another one that's quite popular called RBM and you can use
|
|
tools to download any version of Ruby that you want locally compiled on your computer and it
|
|
essentially saves it on your home folder so that you can then use that version instead of the
|
|
system installed one now Ruby is a requirement only on your local computer you don't have to worry
|
|
about having Ruby installed in your web server or wherever you're going to deploy this website
|
|
eventually because it is just a static HTML website all you really need is a web server but in order
|
|
to generate these static HTML pages you do need Ruby installed on your local computer or whatever
|
|
computer you're going to use to create your blog posts and use octopress so once you have Ruby installed
|
|
and you have get installed you'll also need a tech center now there's a million tech centers out
|
|
there you know the two big ones of course being VIM and EMAX and really it doesn't matter which
|
|
one or which tech center you use as long as it can edit plain text files so pretty much anything
|
|
can do that you know I personally use EMAX because I've grown to love it and I have my whole
|
|
configuration set up but really it doesn't matter all you need is basic tech center you don't need
|
|
to learn a Dreamweaver or front page or any of those silly tools and that's one thing that I really
|
|
like about octopress is that if you have any knowledge on HTML you can still use it you don't
|
|
really have to learn a whole new system other than a few commands on the command line everything
|
|
that you know about HTML still applies if you know a little bit of Ruby you can really take full
|
|
advantage of octopress by creating your own scripts by customizing what's available but really
|
|
with a little basic HTML knowledge and a knowledge of few commands on the command line that's all
|
|
you really need to get started so the commands on the command line are very simple the ones that
|
|
you're going to need to create a new blog post are a one called rake new underscore post that'll
|
|
create the blog post for you and the blog posts are just basically text files and you would type in
|
|
the markdown format so you don't even have to type HTML into your blog post you would just type
|
|
plain text as you would do any any document and it will integrate that when the site gets generated
|
|
into the HTML so in order to generate this HTML you would type into the command line rake
|
|
generate and it would take all the source files and generate the static HTML for you then you can
|
|
just take these static HTML pages and upload them into your server but to make that even easier
|
|
octopress comes with a command called rake deploy which will take your default configuration
|
|
or the default configuration is through our sync and sync them up with your server
|
|
the nice thing about octopress too is that it integrates with github pages so if you're looking for
|
|
a web host provider and would like to try out something free maybe you want to test octopress to see
|
|
if it is the solution for you you can create a github account or associate it with a repository
|
|
that you have on github and use octopress to publish your website to the github repository there is
|
|
a setup script that will let you walk you through the process of doing this and there are two
|
|
commands that you need to know one is rake set underscore root underscore deer which will set your
|
|
root directory for your website now of course normally it is the root directory that is the root
|
|
of your website but but in order to deploy it as a you'd have project page you need to set a new
|
|
root directory that's not the root of your website then the next step would be to type in rake
|
|
space setup underscore github underscore pages which will walk you through the process
|
|
of setting up your github page and then deploy it automatically and for free those are the basics
|
|
of using octopress and I know there's a lot more detail which you can find out in the documentation
|
|
hopefully you understand why it's been important to me to use a static site generator to generate
|
|
my blog and really the workflow is so simple that once you try this you'll never want to use anything
|
|
else really all right so that's it for me if you have any feedback please feel free to contact me
|
|
i can be reached on google plus with the username tony polias that's t-o-n-y-p-e-l-a-e-z
|
|
or by email at tony at polias.me
|
|
you have been listening to hiker public radio and hiker public radio does already
|
|
we are a community podcast network that releases shows every weekday Monday through Friday
|
|
today's show like all our shows was contributed by a hbr listener like yourself
|
|
if you ever consider recording a podcast then visit our website to find out how easy it really is
|
|
hiker public radio was founded by the digital dog pound and the economic and the computer club
|
|
hbr is funded by the binary revolution at binref.com all binref projects are crowd-responsive
|
|
by linear pages from shared hosting to custom private clouds go to lunar pages.com for all your
|
|
hosting needs unless otherwise stasis today's show is released under a creative commons
|
|
attribution share a life free does our lives
|