<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>web on C'est la Z</title><link>https://cestlaz.github.io/cestlaz-old-hugo.github.io/categories/web/</link><description>C'est la Z (web)</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 12 Mar 2023 12:08:29 -0400</lastBuildDate><atom:link href="https://cestlaz.github.io/cestlaz-old-hugo.github.io/categories/web/rss.xml" rel="self" type="application/rss"/><item><title>Hosted websites, Continuous Integration GitHub and GitLab</title><link>https://cestlaz.github.io/cestlaz-old-hugo.github.io/post/git-ci/</link><pubDate>Sun, 12 Mar 2023 12:08:29 -0400</pubDate><guid>https://cestlaz.github.io/cestlaz-old-hugo.github.io/post/git-ci/</guid><description>&lt;p>
Back when I started hosting this blog on GitHub you had two
choices. Either you used Jekyll and GitHub would do it&amp;#39;s behind the
scene magic to convert your markdown files into your site or you did
it all on your own machine and you pushed up the finished site to be
served under GitHub pages.&lt;/p>
&lt;p>
I started with the former but moved to the later using Hugo as my site
generator soon after. This has worked for years but it&amp;#39;s gotten a
little messy. I&amp;#39;ve needed two GitHub repos - one for the source for
my blog and the other for the rendered web site and also I&amp;#39;ve had to
use Git submodules - something I never fully understood. This has
caused me troubles at times when trying to write posts from multiple
machines.&lt;/p>
&lt;p>
I thought I&amp;#39;d look this weekend to see if things have gotten better.&lt;/p>
&lt;p>
It turns out, it has. Now, you can just serve your repo as a web page
just like before but you can also set up your site using GitHub
actions.&lt;/p>
&lt;p>
GitHub actions is their facility to run some job when something
occurs. A typical setup would be to run your tests whenever code is
pushed or a pull request is merged. I taught this to my undergrads
last semester. Basically, you just set up a configuration file that
tells GitHub what to do.&lt;/p>
&lt;p>
Here&amp;#39;s the config file I used with my class for the automated testing:&lt;/p>
&lt;div class="src src-text">
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span> name: C/C++ CI
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>on:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> push:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> branches: [ &amp;#34;main&amp;#34; ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pull_request:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> branches: [ &amp;#34;main&amp;#34; ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>jobs:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> build:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> runs-on: ubuntu-latest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> steps:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - uses: actions/checkout@v3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - name: make
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> run: make
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - name: make tests
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> run: make tests
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - name: ./tests
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> run: ./tests&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;/div>
&lt;p>
GitHub spins up an Ubuntu image then builds the project and runs the
tests. I get an email with the results or I can see them on GitHub.&lt;/p>
&lt;p>
Now I can use the same facility for serving this blog. The script runs
&lt;strong>hugo&lt;/strong> instead of &lt;strong>make&lt;/strong> and &lt;strong>make tests&lt;/strong> but it&amp;#39;s the same
idea. Whenever I push a new post, GitHub rebuilds the site and serves
it all from one repo.&lt;/p>
&lt;p>
Much simpler and much cleaner. What&amp;#39;s more, when I turned on GitHub
pages and selected the &amp;#34;use GitHub actions&amp;#34; option, it suggested I use
their &amp;#34;Hugo config script&amp;#34; which worked right out of the box.&lt;/p>
&lt;p>
While I was doing this I thought I&amp;#39;d also check out GitLab. GitLab is
a GitHub competitor. I like them both but since I&amp;#39;ve had so many
friends at GitHub and GitHub education specifically I&amp;#39;ve always gone
that way. Now, my friends have all left GitHub and I can&amp;#39;t say I&amp;#39;ve
been happy with all the companies latest moves so I thought I&amp;#39;d check
out the other guys.&lt;/p>
&lt;p>
It turns out GitLab also hosts pages and has a very similar actions
based deployment mechanism. I haven&amp;#39;t switched over yet and might not
but I think I will start using it for my regular repo hosting. It
looks like a very nice alternative.&lt;/p>
&lt;p>
So, if you&amp;#39;re looking for hosting, check out GitHub and GitLab with
actions. I&amp;#39;d also say that if you&amp;#39;re teaching a class at the right
level, actions can be great to teach continuous integration and
testing. I&amp;#39;ll probably write that up when I cover it in class in a few
weeks&lt;/p>
&lt;p>
That&amp;#39;s it for now. I&amp;#39;ll try to post this. If it works, the changeover
from GitHub old style to GitHub actions went smoothly.&lt;/p></description></item><item><title>High Ed Web 2019</title><link>https://cestlaz.github.io/cestlaz-old-hugo.github.io/post/highedweb2019/</link><pubDate>Wed, 16 Oct 2019 08:34:04 -0400</pubDate><guid>https://cestlaz.github.io/cestlaz-old-hugo.github.io/post/highedweb2019/</guid><description>&lt;p>
I spent the last few days in Milwuakee at &lt;a href="https://2019.highedweb.org/">High Ed web 2019&lt;/a>, a
conference for higher education web professionals. Most attendees were
college web developers or designers along people who run web
operations at colleges and universities and related vendors. Being a
CS teacher, I was a bit of an outsider but still got a lot out of the
conference. &lt;/p>
&lt;p>
It was our first time in Milwuakee so we had to see some sights.&lt;/p>
&lt;p>
The Bronz Fonz on the riverwalk:&lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/fonz.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
Then there was &lt;a href="https://duckduckgo.com/?q=Gertie+the+duck&amp;amp;t=lm&amp;amp;atb=v181-1&amp;amp;ia=web">Gertie the duck&lt;/a>:&lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/gertie.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
And then more ducks by the river:&lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/ducks.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
Later, we had a transcendental meal at &lt;a href="http://www.oddduckrestaurant.com/">The Odd Duck&lt;/a>. &lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/oddduck.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
Apparently, Milwaukee loves their ducks.&lt;/p>
&lt;p>
We also hit the lakefront, &lt;a href="https://www.mpm.edu/">Public&lt;/a>,&lt;a href="https://mam.org/"> Art,&lt;/a> &lt;a href="http://www.chudnowmuseum.org/">Chudnow&lt;/a>, and &lt;a href="https://www.msoe.edu/grohmann-museum/">Grohmann&lt;/a> museums,
public market and few other things. &lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/artmuseum.jpg&amp;#34;
alt=&amp;#34;Art Museum on the lake&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;&amp;lt;figcaption&amp;gt;
&amp;lt;p&amp;gt;Art Museum on the lake&amp;lt;/p&amp;gt;
&amp;lt;/figcaption&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
All were cool but I&amp;#39;d say that the Grohmann was the standout - if
you&amp;#39;re in Milwaukee, make the time for it. &lt;/p>
&lt;p>
As to the conference itself I attended a few interesting sessions. One
talk was on &lt;a href="http://agilemanifesto.org">Agile&lt;/a> by &lt;a href="http://twitter.com/elfin_john">John Wililams&lt;/a> (no, not &lt;a href="https://en.wikipedia.org/wiki/John_Williams">THAT&lt;/a> John Williams). John
spoke about Agile as a mindset rather than a specific tech/development
thing and talked about how the classic comedy Airplane! was develped
as an Agile project. It made me think of how Computational Thinking
really isn&amp;#39;t &lt;a href="https://cestlaz.github.io/post/is-ct-new/">anything new&lt;/a> or how OOP design patterns were developed by
an &lt;a href="https://en.wikipedia.org/wiki/Christopher_Alexander">architect&lt;/a>. &lt;/p>
&lt;p>
Another talk by &lt;a href="http://twitter.com/svenhaas">Sven Haas&lt;/a> gave me a fresh perspective from the IT
manager&amp;#39;s point of view. We rail all the time in the CS education
forums about how hard it is to get our schools IT teams to install the
development environments and tools we want to use with our
Students. Sven reminded me that for every single request we make of
our infrastructure people, there are tons of ramification. Long
term software maintenance and versioning, security, legal
ramifications, and more. Sven also reminded me that all to often
parties, including teachers and students, talk across each other
rather than to each other - &amp;#34;I need this installed&amp;#34; rather than having
a conversation about needs and jointly developing solutions.&lt;/p>
&lt;p>
There were also a couple of more technical talks I enjoyed. &lt;/p>
&lt;p>
The conference organizers also did a great job. Kudos to the Milwuakee
convention center for having their restrooms in order:&lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/stalls.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
And for the conference team on adding the signs for further
clarification.&lt;/p>
&lt;p>
A big highlight for me was reconnecting with &lt;a href="https://twitter.com/maccabeelevine">Maccabee&lt;/a>. Mac was in my
class at Stuy way back around &amp;#39;95. We&amp;#39;ve been in touch but as his
career has took him out of NYC it&amp;#39;s been years since we&amp;#39;ve seen each
other in person. Always great to see an old friend.&lt;/p>
&lt;p>
&amp;lt;figure class=&amp;#34;z_image_center&amp;#34;&amp;gt;&amp;lt;img src=&amp;#34;/img/highwebed/mac.jpg&amp;#34; width=&amp;#34;200px&amp;#34;/&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/p>
&lt;p>
I probably won&amp;#39;t be back to High Ed Web. While it&amp;#39;s a great
conference, I&amp;#39;m not really the intended audience. When you can only go
to so many things a year due to time and money you have to call your
shots. I will say though, if you&amp;#39;re in the higher ed web space, you should really check
it out.&lt;/p></description></item></channel></rss>