From 50d21de18d08132f15667a2858d525b381f61239 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Thu, 5 Nov 2020 12:37:04 +0800 Subject: [PATCH] Restructure the content and use Hugo modules now --- content/_index.adoc | 10 + content/about.adoc | 1 - content/archives.adoc | 1 - content/feeds.adoc | 36 - .../images}/compton-demo.mp4 | Bin .../images}/compton-less-demo.mp4 | Bin .../images}/dunst-delayed-screenshot-demo.mp4 | Bin .../images}/dunst-screenshot-demo.webp | Bin .../images}/gtk-arc-darker-theme-demo.webp | Bin .../images}/gtk-raleigh-theme-demo.webp | Bin .../index.adoc} | 17 +- .../index.adoc} | 6 +- .../images}/asciidoctor-sample-html.webp | Bin .../index.adoc} | 10 +- ...veloping-projects-with-free-resources.adoc | 693 ------------------ .../index.adoc | 225 ++++++ .../index.adoc} | 10 +- .../images}/i3-setup.webp | Bin .../images}/i3bar-appearance.webp | Bin .../images}/ranger-demo.mp4 | Bin .../images}/rofi-setup.webp | Bin .../images}/vim-setup.webp | Bin .../index.adoc} | 17 +- .../images}/cover.webp | Bin .../images}/hugo-theme-contentful.webp | Bin .../images/latex-lecture-layout.png | Bin 0 -> 106270 bytes .../images}/latex-lecture-layout.webp | Bin .../images}/react-docs.webp | Bin .../index.adoc} | 291 ++++---- content/projects/_index.adoc | 7 - go.mod | 9 + go.sum | 11 + 32 files changed, 436 insertions(+), 908 deletions(-) create mode 100644 content/_index.adoc delete mode 100644 content/feeds.adoc rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/compton-demo.mp4 (100%) rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/compton-less-demo.mp4 (100%) rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/dunst-delayed-screenshot-demo.mp4 (100%) rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/dunst-screenshot-demo.webp (100%) rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/gtk-arc-darker-theme-demo.webp (100%) rename content/posts/{images/a-ricing-starting-checklist => a-ricing-starting-checklist/images}/gtk-raleigh-theme-demo.webp (100%) rename content/posts/{a-ricing-starting-checklist.adoc => a-ricing-starting-checklist/index.adoc} (97%) rename content/posts/{a-site-overhaul-has-occurred.adoc => a-site-overhaul-has-occurred/index.adoc} (98%) rename content/posts/{images/blogging-with-asciidoctor-and-hugo => blogging-with-asciidoctor-and-hugo/images}/asciidoctor-sample-html.webp (100%) rename content/posts/{blogging-with-asciidoctor-and-hugo.adoc => blogging-with-asciidoctor-and-hugo/index.adoc} (98%) delete mode 100644 content/posts/developing-projects-with-free-resources.adoc create mode 100644 content/posts/developing-projects-with-free-resources/index.adoc rename content/posts/{free-resource-list.adoc => free-resource-list/index.adoc} (99%) rename content/posts/{images/the-complete-linux-turnabout => the-complete-linux-turnabout/images}/i3-setup.webp (100%) rename content/posts/{images/the-complete-linux-turnabout => the-complete-linux-turnabout/images}/i3bar-appearance.webp (100%) rename content/posts/{images/the-complete-linux-turnabout => the-complete-linux-turnabout/images}/ranger-demo.mp4 (100%) rename content/posts/{images/the-complete-linux-turnabout => the-complete-linux-turnabout/images}/rofi-setup.webp (100%) rename content/posts/{images/the-complete-linux-turnabout => the-complete-linux-turnabout/images}/vim-setup.webp (100%) rename content/posts/{the-complete-linux-turnabout.adoc => the-complete-linux-turnabout/index.adoc} (97%) rename content/posts/{images/the-importance-of-technical-writing-and-typography-in-a-software-project => what-is-effective-documentation/images}/cover.webp (100%) rename content/posts/{images/the-importance-of-technical-writing-and-typography-in-a-software-project => what-is-effective-documentation/images}/hugo-theme-contentful.webp (100%) create mode 100644 content/posts/what-is-effective-documentation/images/latex-lecture-layout.png rename content/posts/{images/the-importance-of-technical-writing-and-typography-in-a-software-project => what-is-effective-documentation/images}/latex-lecture-layout.webp (100%) rename content/posts/{images/the-importance-of-technical-writing-and-typography-in-a-software-project => what-is-effective-documentation/images}/react-docs.webp (100%) rename content/posts/{what-is-effective-documentation.adoc => what-is-effective-documentation/index.adoc} (64%) delete mode 100644 content/projects/_index.adoc create mode 100644 go.mod create mode 100644 go.sum diff --git a/content/_index.adoc b/content/_index.adoc new file mode 100644 index 0000000..6ca8dc8 --- /dev/null +++ b/content/_index.adoc @@ -0,0 +1,10 @@ +--- +title: Homepage +--- + += Homepage + +Hey there! +Welcome to my small home on the deepest corners of the internet. +Just a hobbyist programmer and a wannabe creative artisan productively wasting time on looking on other inspirations. :) + diff --git a/content/about.adoc b/content/about.adoc index 5a25b13..b9e4141 100644 --- a/content/about.adoc +++ b/content/about.adoc @@ -1,6 +1,5 @@ --- title: About -date: 2019-08-15T11:25:01+08:00 --- = About the author diff --git a/content/archives.adoc b/content/archives.adoc index 5d0ce19..7486e2e 100644 --- a/content/archives.adoc +++ b/content/archives.adoc @@ -1,6 +1,5 @@ --- title: "Archives" -date: 2019-09-02T02:14:17+08:00 type: "archive" --- diff --git a/content/feeds.adoc b/content/feeds.adoc deleted file mode 100644 index ee38740..0000000 --- a/content/feeds.adoc +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Feeds" -date: 2019-09-03T15:05:29+08:00 -type: "feed" ---- - -= Feeds -Gabriel Arazas -2019-09-03 - -Here's some of my feeds you can subscribe from: - -* **RSS**: https://foo-dogsquared.github.io/blog/index.rss -* **Atom**: https://foo-dogsquared.github.io/blog/index.atom -* **JSON**: https://foo-dogsquared.github.io/blog/index.json - -You can also be subscribed for specific sections with the -following URL: - ----- -https://foo-dogsquared.github.io/blog/$SECTION/index.$FEED ----- - -For example, this is the feed URL for my posts (pretty much this -is the only section available in my blog, for now): - -* **RSS**: https://foo-dogsquared.github.io/blog/posts/index.rss -* **Atom**: https://foo-dogsquared.github.io/blog/posts/index.atom -* **JSON**: https://foo-dogsquared.github.io/blog/posts/index.json - -// Or even in my projects, letting you know if there's any new -// project detailing comes up. - -// * **RSS**: https://foo-dogsquared.github.io/blog/projects/index.rss -// * **Atom**: https://foo-dogsquared.github.io/blog/projects/index.atom -// * **JSON**: https://foo-dogsquared.github.io/blog/projects/index.json diff --git a/content/posts/images/a-ricing-starting-checklist/compton-demo.mp4 b/content/posts/a-ricing-starting-checklist/images/compton-demo.mp4 similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/compton-demo.mp4 rename to content/posts/a-ricing-starting-checklist/images/compton-demo.mp4 diff --git a/content/posts/images/a-ricing-starting-checklist/compton-less-demo.mp4 b/content/posts/a-ricing-starting-checklist/images/compton-less-demo.mp4 similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/compton-less-demo.mp4 rename to content/posts/a-ricing-starting-checklist/images/compton-less-demo.mp4 diff --git a/content/posts/images/a-ricing-starting-checklist/dunst-delayed-screenshot-demo.mp4 b/content/posts/a-ricing-starting-checklist/images/dunst-delayed-screenshot-demo.mp4 similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/dunst-delayed-screenshot-demo.mp4 rename to content/posts/a-ricing-starting-checklist/images/dunst-delayed-screenshot-demo.mp4 diff --git a/content/posts/images/a-ricing-starting-checklist/dunst-screenshot-demo.webp b/content/posts/a-ricing-starting-checklist/images/dunst-screenshot-demo.webp similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/dunst-screenshot-demo.webp rename to content/posts/a-ricing-starting-checklist/images/dunst-screenshot-demo.webp diff --git a/content/posts/images/a-ricing-starting-checklist/gtk-arc-darker-theme-demo.webp b/content/posts/a-ricing-starting-checklist/images/gtk-arc-darker-theme-demo.webp similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/gtk-arc-darker-theme-demo.webp rename to content/posts/a-ricing-starting-checklist/images/gtk-arc-darker-theme-demo.webp diff --git a/content/posts/images/a-ricing-starting-checklist/gtk-raleigh-theme-demo.webp b/content/posts/a-ricing-starting-checklist/images/gtk-raleigh-theme-demo.webp similarity index 100% rename from content/posts/images/a-ricing-starting-checklist/gtk-raleigh-theme-demo.webp rename to content/posts/a-ricing-starting-checklist/images/gtk-raleigh-theme-demo.webp diff --git a/content/posts/a-ricing-starting-checklist.adoc b/content/posts/a-ricing-starting-checklist/index.adoc similarity index 97% rename from content/posts/a-ricing-starting-checklist.adoc rename to content/posts/a-ricing-starting-checklist/index.adoc index e0f9b93..a75456b 100644 --- a/content/posts/a-ricing-starting-checklist.adoc +++ b/content/posts/a-ricing-starting-checklist/index.adoc @@ -1,15 +1,18 @@ --- title: "A 'ricing' starting checklist" date: 2019-08-25T18:03:43+08:00 -categories: ["linux"] -tags: ["foss", "ricing", "linux"] +categories: + - How to Linux +tags: + - linux + - desktop + - ricing --- = A "ricing" starting checklist Gabriel Arazas 2019-08-19 -:imagesdir: ../images/a-ricing-starting-checklist/ I just started ricing at the start of August 2019. So I made this list of things you might want to know when @@ -183,7 +186,7 @@ For Arch Linux, it has Raleigh as the default GTK theme which looks very dated if you ask me. .GTK Raleigh theme -image::gtk-raleigh-theme-demo.webp[GTK Raleigh theme] +image::images/gtk-raleigh-theme-demo.webp[GTK Raleigh theme] For my custom configuration, I chose the https://github.com/NicoHood/arc-theme[Arc] theme along with its https://github.com/NicoHood/arc-icon-theme[icon set] simply @@ -191,7 +194,7 @@ because they're the popular choice. I also think the darker scheme is pretty cool. .GTK Arc Darker theme -image::gtk-arc-darker-theme-demo.webp[GTK Arc Darker theme] +image::images/gtk-arc-darker-theme-demo.webp[GTK Arc Darker theme] You can look for more GTK themes at https://www.gnome-look.org/[GNOME Look]. @@ -286,7 +289,7 @@ server. Simply sending a notification with `notify-send` while running Dunst in background can go a long way. .Using dunst for screenshot notifications -image::dunst-screenshot-demo.webp[Using dunst for screenshot notifications] +image::images/dunst-screenshot-demo.webp[Using dunst for screenshot notifications] I also made it to send notifications for delayed screenshots. @@ -302,7 +305,7 @@ different ways on where to store their configuration files. NOTE: Dotfiles simply means your configurations of the installed programs. Its name also came from how Linux considers a file/folder -with a period in front of the name to be hidden (i.e.: `.config`, +with a period in front of the name to be hidden (i.e., `.config`, `.vimrc`, `.bashrc`). If you would continue with no tool at all, you would most likely: diff --git a/content/posts/a-site-overhaul-has-occurred.adoc b/content/posts/a-site-overhaul-has-occurred/index.adoc similarity index 98% rename from content/posts/a-site-overhaul-has-occurred.adoc rename to content/posts/a-site-overhaul-has-occurred/index.adoc index 39f5fbf..9f09352 100644 --- a/content/posts/a-site-overhaul-has-occurred.adoc +++ b/content/posts/a-site-overhaul-has-occurred/index.adoc @@ -1,8 +1,10 @@ --- title: A site overhaul has occurred date: 2019-08-15T18:10:07+08:00 -categories: ["meta"] -tags: ["self", "meta"] + +tags: + - self + - meta --- = A site overhaul has been occurred diff --git a/content/posts/images/blogging-with-asciidoctor-and-hugo/asciidoctor-sample-html.webp b/content/posts/blogging-with-asciidoctor-and-hugo/images/asciidoctor-sample-html.webp similarity index 100% rename from content/posts/images/blogging-with-asciidoctor-and-hugo/asciidoctor-sample-html.webp rename to content/posts/blogging-with-asciidoctor-and-hugo/images/asciidoctor-sample-html.webp diff --git a/content/posts/blogging-with-asciidoctor-and-hugo.adoc b/content/posts/blogging-with-asciidoctor-and-hugo/index.adoc similarity index 98% rename from content/posts/blogging-with-asciidoctor-and-hugo.adoc rename to content/posts/blogging-with-asciidoctor-and-hugo/index.adoc index 83f0813..e5e88b2 100644 --- a/content/posts/blogging-with-asciidoctor-and-hugo.adoc +++ b/content/posts/blogging-with-asciidoctor-and-hugo/index.adoc @@ -2,17 +2,17 @@ title: "Blogging with Asciidoctor and Hugo" date: 2019-09-03T13:07:43+08:00 categories: - - guide + - Hugo tags: - - asciidoctor - - blog + - writing + - ssg + - hugo --- = Blogging with Asciidoctor and Hugo Gabriel Arazas 2019-08-27 -:imagesdir: ../images/blogging-with-asciidoctor-and-hugo/ :asciidoctor_site: https://asciidoctor.org/ Finally, I've found a great blogging workflow with Hugo and Asciidoctor. @@ -264,7 +264,7 @@ The most obvious is the HTML output of Asciidoctor with the default backend is not great and leaves a lot of things to be desired. .`
` then a `

` for a paragraph, really? -image::asciidoctor-sample-html.webp[`

` then a `

` for a paragraph, really?] +image::images/asciidoctor-sample-html.webp[`

` then a `

` for a paragraph, really?] It's not semantic and it is unconventional. Not only that it's a pain to style it with CSS but also breaks a lot diff --git a/content/posts/developing-projects-with-free-resources.adoc b/content/posts/developing-projects-with-free-resources.adoc deleted file mode 100644 index 9e05802..0000000 --- a/content/posts/developing-projects-with-free-resources.adoc +++ /dev/null @@ -1,693 +0,0 @@ ---- -categories: ["self"] -date: 2019-04-30 12:32:40 +0800 -tags: ["projects", "foss", "software-development"] -title: Developing projects with free resources ---- - -= Developing projects with free resources -Gabriel Arazas -2019-04-30 - -In a world where technology has made it possible to inform and share -experiences with other people through multiple devices, the technology -sure came to advance at a point where the people themselves have the -resources needed to establish and maintain businesses on their garage or -bedroom. - -The same can be said with creating projects. Being a student on a -financial tightrope, it will be a fun and frustrating challenge to -create projects with only free resources and services. - -In this article, I'll share my experiences and tools I've used -throughout my side-project and self-learning development journey while -getting around paid services. - -____ -BIG UPDATE: Added a section for publishing your projects. I simply -forgot to add it which is why I felt it's complete by the time I -published this post. Apologies about that. :facepalm: -____ - - -== TL;DR version - -Here are the tools I've used usually for planning and brainstorming -software ideas: - -* https://www.draw.io/[Draw.io] -* https://www.figma.com/[Figma] -* https://quire.io/[Quire] -* just a plain pen & paper - -When a plan is up, time to make it real. Here are the tools I'm using: - -* https://git-scm.com/[Git] -* https://www.jetbrains.com/[Jetbrains IDE] -* https://code.visualstudio.com/[Visual Studio Code] -* a lot more tools as you read on - -When the project has been realized (if not dropped). These services and -platforms let you share your project for free: - -* https://github.com/[GitHub] -* https://www.netlify.com/[Netlify] -* http://heroku.com/[Heroku] - -Of course, this list is not really complete. You can see more tools that -deserve honorable mentions as you read on. - - -== Planning my projects - -Planning is a part of the process. It's an ever-important process that -prevents your software project (or any project) to be an aftermath of a -great natural disaster. It's not guaranteed for your project to go -smooth accordingly but it's better to have a plan than going straight -into the battlefield. - -[quote, Captain Cold] -There are only 4 rules you need to remember: make the plan, execute the -plan, expect the plan to go off the rails, throw away the plan. - -If the plan failed, just go through another planning phase. The action -does not apply well into a production workflow with the chaotic and -larger-scale management but it can be easily apply for personal -projects. - -Here are the tools I've used to practice my planning skills: - -=== https://quire.io/[Quire] - -Quire is an online tool for almost everything productivity-based. I mean -they got https://quire.io/features[an exhaustive list of features] from -kanban boards, simple task lists, integration to different services such -as GitHub, Google Drive, and Slack, and much more! - -The best part about all of this is that it looks minimalistic with all -of its features. It goes out of your way with all of its features to use -as you intended. You want to look at your task board for your project -and the website only shows you that. - -==== Alternatives -If Quire is not your fancy, then may I introduce you to some of the -alternatives? - -* https://trello.com/[Trello] — It's a good boi but not enough features -for me. It features a powerful board with powerful integrations but for -the most part, it limits right there and there's not much of a -difference with the core features you'll be using with Quire. -* https://www.notion.so/[Notion] — Well, this one is a solid -alternative. This is mainly a minimalistic online note-taking tool -suitable for your notes, projects, and other shenanigans but it also -features a lightweight task and issue board for your projects, a -lightweight database, and a lightweight customer relation management -(CRM) system. I mainly use this app for a quick note-taking while saving -it online but it can also go head-to-head with Quire as a productivity -tool with a different twist. - -Now if you go with Notion, may I get you with a deal? You can click -https://www.notion.so/?r=ed358a0e3f6d4e47a5db21a17beaa7dd[my referral -link] and get $10 in credits while I get 5 USD in credits. It's a -win-win situation and you'll be able to help me. - -=== https://www.draw.io/[Draw.io] - -This is my personal digital "drawing" tool (and also the tool I used to -create visual aids for this blog). It's a web-based tool that allows you -to create a wide range of visual design assets from flowcharts to not -flowcharts. Speaking of web-based, you can also download -https://about.draw.io/integrations/#integrations_offline[desktop -versions] of it and use it offline though the site itself already -features an offline web-based version of the tool. - -One of the best features of this app is that *it's free and -https://github.com/jgraph/drawio[open source]*. Being open source not -only means you can see the naked source code used to build the app but -also you can directly contribute to it. - -Another one superb feature is that *no account registration is required -to use this app*! When you open the website, you're already going -straight into the business. No briefing, no meetup, no orientation. - -From that point, you can create universally almost any diagrams from -concept maps, simple flowchart, -https://en.wikipedia.org/wiki/Unified_Modeling_Language[UML diagrams], -https://www.visual-paradigm.com/guide/data-modeling/what-is-entity-relationship-diagram/[database -relationship diagrams], mathematical expressions, or even an -illustration. It features a solid UI and a collection of features that -makes visual aids creation to be as much pleasing as possible. - -==== Alternatives -If you want to try out other similar tools for comparison, here are some -alternatives I've gathered: - -* https://www.libreoffice.org/discover/draw/[LibreOffice Draw] (or -Microsoft Visio, if you're into Windows) — LibreOffice free and -https://www.libreoffice.org/about-us/source-code/[open source] software -suite for office work. It offers a program to write documents, create -and edit spreadsheets, make presentations, manage databases, and draw -diagrams. It's a solid alternative and it has some stronger points such -as how pathfinding was handled (especially with the lines and arrows). -However, Draw.io being a web-based tool and having a solid feature list -in its arsenal is too hard to beat for me. In any case, I would still -give this a shot. -* https://inkscape.org/[Inkscape] — It's another free and open source -vector editing application that run on major desktop platforms. Despite -its stronger points on vector illustration, it still has solid support -for creating diagrams. Like LibreOffice Draw, it has more solid handling -on the pathfinding part of the shapes compared to Draw.io. However, in -order to fully use its full diagramming potential, you may have to take -more time to get used to it. I think the efforts will pay off once you -done it and in fact, you may create more expressive and powerful -diagrams with it. Take note that the program (at the time of this -writing) is not yet at its 1.0 version yet which means it still has -issues to clean out. Being a free and open source project, you can help -with the development through issues, bug reports, doc improvement, and -code contribution. - -=== https://www.figma.com/[Figma] - -If have a core feature for my planned side project, it's time to make -the idea closer to reality by making a user interface for that idea. -Here's where I brainstorm forms and layouts my idea can have as a -tangible service and it's where Figma comes in. - -Figma is another web-based program used to create GUI prototypes and -designs. It can also serve as an alternative to Draw.io as a diagramming -and illustration program but that's not the main point we will tackle. -Also take note I have little experience with using this app so feel free -to correct me on the stuff that I'll be saying here. - -Since the initial writing for this app is too long (it's really that -good), I'll be making a quick list of features and discuss them shortly -instead: - -* It is *free to use and web-based*. Though, it requires an account to -use it, it's not much of an inconvenience once you get a hold of this -app. Being a web-based tool, you can run this anywhere as long as the -machine has WebGL and a compatible web browser. -* It *features a strong user interface (UI) and user experience (UX)*. -The UI is good that -https://twitter.com/foo_dogsquared/status/1102486132648960000[I could -create my first custom-made logo with it] despite being inexperienced -with graphics design. -* It *features a collaborative mode* similar to Google Docs. With the -pain points of being in a collaborative environment, they also *feature -a version control for the sketches*. -* It *works offline* except for online functionalities such as saving -your sketches on the cloud and collaboration mode. -* Has *standard feature arsenal* such as shape tools, pen tool, gradient -tool, importing images, and linking to individual pages. It does not -stop there. They have *a -https://www.youtube.com/watch?v=k74IrUNaJVk[component system] and a -https://www.youtube.com/watch?v=b-xDRjf5B-8[powerful vector editing -tool]* that'll expand your options of smoothly creating unique-looking -assets. - -If you'll try this one, you can sign up for an account, -https://www.youtube.com/playlist?list=PLXDU_eVOJTx7QHLShNqIXL1Cgbxj7HlN4[watch -their Getting Started playlist on YouTube], and experiment ahead. - -==== Alternatives -Is Figma too complex of a tool for your use case? Here are some -alternatives you can search for: - -* https://pencil.evolus.vn/[Pencil] — A free and open source GUI -prototyping platform. Unfortunately, it's not maintained anymore and the -most recent version is from 2017 but it still offer a solid and simpler -GUI prototyping process for websites and desktop apps. -* https://www.draw.io/[Draw.io] — I already discussed this tool so I -won't give much details but you can also use this for simpler -prototyping processes. It just depends on how you would use these tools. - -=== Good ol' pen & paper - -Well all I need is a way of planning for my project. What a better way -of planning than a good ol' P&P. One of its most useful feature is that -it's quick to load! No internet connection needed! It's a universal -alternative to all the apps listed so far. The only situation you're not -able to boot this up is if you don't have the materials yourself. - -In all seriousness though, I think this is one of the most useful ones. -Physically writing is actually more memorable (to me, at least) thus -more things to remember. Besides, I don't want to stare at a digital -screen all day. - -Usually when I'm going to plan with this method, I follow through a -system I created for myself. The system is nothing fancy. It's just a -color-coded system with each colored paper shows the priority level for -each task I will make. - -If you want to try it for yourself, I'll give you my personal take on -the system: - -Now there are three types of tasks in this system: low, normal, and -essential. They're basically another way of indicating priorities on -your tasks. There's also another type of paper which is basically a -reviewer of related concepts to be integrated with the project. - -* *Green colored papers* _indicate low priority tasks_. This is usually -the easy stuff and the low-hanging fruits of the project. -* *Blue colored papers* _indicate normal priority tasks_. In the project -development process, this is usually the things that is done after the -core of the project has been completely (or mostly) developed. -* *Yellow colored papers* _indicate essential tasks_. This is usually -the core tasks and they're highly prioritized. I usually associate red -with urgency but whatever fits your boat. I think yellow is a better -choice since it stands out among the shades of blue and green. -* *White colored papers* _indicate related concepts to the project_. -This can be anything from a simple flashcard, an explainer, or a -definition. Heck, you can put a thesis in there if you really want to. -Speaking from personal experience, one of the role of this paper is to -simply make you focus into the core concepts of your project so you -couldn't easily sway and make a bunch of unrelated features and -highlights in your project straight away. Also, it's just there to -remind myself of the things I was supposed to learn. - -Take note you don't have to buy colored papers for this one. One of the -beauty of life is the freedom on how to do things and this is no -exception. You could do say, just a simple format to express the core -feature of this system which is _prioritization_. You can list out tasks -and create symbols to express different levels of priority. - - -== Creating my projects - -When you have a plan in place, you can attack it in your own pace. This -is the phase where you'll actually * get your envisioned project closer -to reality*. Since we're in the context of software, I'll talking about -the tools and experiences I was able to use and... experience. - -If you want to know the tools outside of software for some unspecified -reason, you can get a rough idea http://freebies-hunt.netlify.com/[in my -relatively recent launched website, Freebies Hunt]. As specified in its -name, all of the resources listed there are free (and some being open) -so you'll be able to have a similar toolset as mine. - -So what are the tools I used for this? Read on and find out. - -=== https://code.visualstudio.com/[Visual Studio Code] - -My go-to text editor and lightweight IDE. This tool is just phenomenal! -It's free and https://github.com/Microsoft/vscode[open source], -https://code.visualstudio.com/updates/[actively being developed], backed -up by a huge community of developers, solid UI/UX for budding -developers, https://code.visualstudio.com/docs[features an extensive -documentation in using the app], and offers hackability that extends the -app even further. - -Of course, this tool still has its -https://github.com/Microsoft/vscode/issues[issues] but with the active -development from the core maintainers and other contributors, you know -that it'll have a great future. With that said, this tool is not a -panacea for our development tool problems. The core scope of this tool -is limited outside of web development especially when compared to -comprehensive IDEs such as https://visualstudio.com/[Visual Studio] and -https://www.jetbrains.com/[Jetbrains IDE product line]. Even though it -can be extended with the user-created plugins, when compared to -first-party solutions, it's not usually enough (though there are -exceptions). - -==== Alternatives -Want to try other text editors? Here's a list of it: - -* https://atom.io/[Atom] — A free and open source text editor made by -the team at https://github.com/[GitHub] and it can be considered as the -most fitting rival with Visual Studio Code. They're both made with -https://electronjs.org/[Electron]. Both offer similar set of features -from hackability to the user interface. Atom, however, has a stronger -focus on Git integration (specifically with GitHub). Basing from -personal experience, you can already have the same level of focus on -Visual Studio Code with the -https://marketplace.visualstudio.com/search?term=git&target=VSCode&category=All%20categories&sortBy=Relevance[third-party -plugins] and improving Git integration. -* https://www.gnu.org/software/emacs/[GNU Emacs] — A family of text -editor mostly known for its extensibility but specifically were looking -at GNU Emacs which is the most popular member of the family. Compared to -other text editors we've featured so far, this text editor has a steeper -learning curve to master it especially when going from absolute zero. It -also features integration with https://www.gnu.org/software/gdb/[GDB] (a -debugger) making it into a lightweight IDE, has tons of keyboard -shortcuts, features multiple modes, and best of all, you can play tetris -with it (seriously). If you want to look further, you can take -https://www.gnu.org/software/emacs/tour/index.html[a tour of Emacs from -the GNU website] and see what more things Emacs can do. -* https://www.vim.org/[Vim] — If you're hardcore, take a look into a -text editor infamously known for its... difficulty. Anyway, I'm pretty -sure you've heard of Vim by now after seeing it being memed to death. -Vim is a text editor that utilizes the modal philosophy where it -utilizes a different mode for editing files and inserting text. Like -Emacs, it has a steep learning curve with its unconventional way of -manipulating files. It's also programmable and contains a _lot_ of -keyboard shortcuts and configuration options that you'll find -https://github.com/search?q=vimrc[a community of developers sharing -their Vim configuration files]. If you want a shallow dive into Vim, you -can use this https://hacker-tools.github.io/editors/[course lecture] -I've used. - -=== https://www.jetbrains.com/[Jetbrains IDE] - -If my project is in a larger scope or is in need for a more specialized -tool, I might use an IDE. A personal example could be making a project -with C++ and I need to learn more on using https://cmake.org/[CMake]. If -you need to develop in https://golang.org/[Go], -https://docs.microsoft.com/en-us/dotnet/csharp/[C#], or in -https://www.arduino.cc/[Arduino], there are specialized tools that are -built for that. - -My IDEs of choice are from Jetbrains, a software development company -whose product targets developers, where they offer a netful of IDEs for -different programming languages and toolsets. Their IDEs have reached a -wholesome reputation with plentiful of useful features and active -development updates. Not to mention that they can run across all major -platforms in Windows, Mac OS, and Linux which really sold me on this -one. Though the only problem is that they're proprietary but they do -offer free licenses on all of their tools -https://www.jetbrains.com/student/[for students] (which I did) and -https://www.jetbrains.com/opensource/[for developers of non-commercial -open source projects]. - -==== Alternatives -Fortunately, some of the IDEs have a free community version though it's -usually inferior compared to the proprietary versions. Though, they're -mostly enough especially in the beginning of the development. However, -if you're looking for a free and more robust IDE, you could look into -the following alternatives: - -* https://visualstudio.com/[Visual Studio] — If you're using Windows or -Mac OS, this could be a solid choice. Not only that it supports most of -the popular programming languages and toolsets but it is also _free_. -The Visual Studio installation process lets you customize your -development environment according to your need whether you want to -create cross-platform programs with C++ or want to get started on game -development with Unity or even both, why not. There's plenty of choices -you can make with this. The only gripe here is that it's not available -in Linux/BSD systems. I use this in particular when developing in -Windows since their free community edition is just too good to pass up. -* https://www.eclipse.org/eclipseide/[Eclipse] — It's basically the -cross-platform open source version of Jetbrains where their product line -of IDEs offer support on most of programming languages such as C/C++, -PHP, Java, Rust, and many others. I don't know how high of a candle they -hold today but I found it to be useful enough to get started. - -This is not an exhaustive list of IDEs for you to try (I mean three -items, really?) but I recommend to try and search if it doesn't make you -satisfied. Here, https://github.com/sindresorhus/awesome[I got you a -place to get started on your search]. - -=== https://git-scm.com/[Git] - -Well, we all have our ways in saving our stuff. One of the ways I did -(way back when I have completely no idea in programming) would be simply -saving the file and adding a `+v2+` at the end of its name. - -image::https://imgs.xkcd.com/comics/documents.png[title="My archiving skills in high school",float="right",align="center"] - -Other would use a software that can automatically create backups. -Nowadays, popular softwares for writing most likely have an auto-save -feature built into the system: https://docs.google.com/[Google Docs], -https://evernote.com/[Evernote], https://notion.so/[Notion], -https://visualstudio.com[Visual Studio], -https://code.visualstudio.com[Visual Studio Code], -https://www.jetbrains.com/[Jetbrains IDEs] – you name it, they most -likely have it. - -For solo projects, it is practical enough but if you -want to amp your version controlling skill then you can use a full-on -_version control system_ (shortened as _VCS_). I won't discuss what a -VCS here but you can take a quick overview from one of the training -videos from GitHub. - -This is where Git -(https://en.wikipedia.org/wiki/Comparison_of_version_control_software[and -its other competitors]) comes in. You can refer to -https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F[more -well-written posts about it]. - -One objective of using a version control system like Git is not only -acts as an epic save button but it also makes collaborative works to -progress smoother. This is great in cases that your project needs help -from other people aside from you. Since you're in the same page as your -other collaborators, you can go through the same process of adding -contributions to your project. - -Git is my go-to version control software. It is nice to work with and it -has ton of free services that are integrated with it. Despite it's -mostly used for software projects, it can be useful for non-software -stuff though better and more specialized solutions may exist. - -=== Other tools - -Well, here's a list of tools that deserves an honorable mention: - -* https://asciidoctor.org/[Asciidoctor] — A free and open source text -processor for https://asciidoctor.org/docs/what-is-asciidoc/[Asciidoc], -a lightweight text formatting language similar to -https://daringfireball.net/projects/markdown[Markdown]. Unlike Markdown, -the scope of Asciidoc is much higher that it enables you to create an -entire book with complete features using only the vanilla syntax of -Asciidoc. I think this is a solid alternative to Markdown with more -out-of-the-box features and it is standardized so we won't have to worry -more on using a particular Markdown flavor. I recommend to get started -with https://asciidoctor.org/docs/[the docs], there's seriously a ton of -stuff to be explored here. -* https://kile.sourceforge.io/[Kile] — My most recent tool in my belt. -It's an IDE (or rather integrated writing environment? IWE?) for writing -https://www.latex-project.org/[LaTeX] documents. I've recently made my -technical notes into LaTeX documents and it is amazing so far. I haven't -tried all of the features yet but I can see continuing to write notes -with it and find a way on how to publish them on the web painlessly. -* https://www.gnu.org/software/make/manual/make.html[Make] — A -cross-platform free and open source automation tool usually used for -software projects. If you're not familiar with it and want to try and -experiment with it, you can -https://opensource.com/article/18/8/what-how-makefile[refer to this -article] to get started. -* https://pandoc.org/[Pandoc] — A cross-platform free and open source -universal document converter for various file formats and even your own -formats. It supports major writing file formats like LaTeX, HTML, -Asciidoc, Markdown (along with other flavors), and Textile. From there, -you can convert one file from another with PDF, EPUB, and other file -formats. -* https://www.gnu.org/software/octave/[Octave] — A free and open source -computational environment made by https://www.gnu.org/[GNU Software] so -you know it's good stuff. It mostly serve as an alternative to -https://www.mathworks.com/products/matlab.html[MATLAB] for me. Speaking -of MATLAB, it's also mostly (READ: mostly) compatible with MATLAB syntax -so you don't have to do a full-on porting of the computations (if -there's any). I mostly use this just for the more complex mathematical -graphics though I may use LaTeX or maybe -http://asymptote.sourceforge.net/[Asymptote] for the later notes. -* https://tiddlywiki.com/[TiddlyWiki] — A single-file personal wiki made -in JavaScript with the one file being an HTML file. This is absolutely -one of the most fascinating projects I've ever seen out there. Not only -that it's quite cool on the programming aspect but also on the -note-taking aspect. It features a wiki that is both portable and -distributable for you and your readers. You can also customize your -TiddlyWiki at your own whim to its appearances and its function by -creating plugins. With all of those features, I think this is a perfect -platform to share my notes without much hassle. - - -== Publishing my project - -If you want your project to be available for the whole world to see, you -have available free options that lets you do that. Starting with... - -=== https://github.com/[GitHub] - -When you want to share your project with the world for everyone to see, -you need a server to do that. Fortunately, there are free services that -does exactly that. Enter GitHub. - -Majority of you readers might have heard of this before. After all, it -is _one of the largest and most popular development platform_ out there -for the software industry. It's also _the_ leading development platform -for open source software. It is where the big kids of the tech industry -hang out: Microsoft, Google, Linux Foundation, you name it. - -Couple of that with the number of developers signed up, being the -de-facto platform for the open source community, and the nature of open -source, the network value is just too good to not ignore it especially -if you're looking for a first step through the door of the industry. - -GitHub offer practically free unlimited public and private repo (with -limited collaborators) for your projects. Whether you want to show off -your projects or to keep your projects safe in the cloud, GitHub has you -covered. Being a software development platform, it has a variety of -features to aid software development: - -* Issue tracking that is open for other people with GitHub accounts. -* An easy-to-use interface for forking, code review, and merge conflicts -management. -* Organizations can be created and invite other people to join and grant -them level of access for your projects. Whether you want non-members to -have a read-only access or can contribute alongside is a decision you -can make. -* GitHub also has a https://github.com/marketplace[marketplace of -different services] making a part of your development process to go much -smoother. -* Offers a social place for code snippets called -https://gist.github.com[GitHub Gists]. -* Built-in tools for reporting and monitoring your projects. -* https://education.github.com/pack/[Grants aid for students to get -started on their software development journey] which further makes -GitHub more of a de-facto platform not only for seasoned developers but -also for newcomers. - -Anyways, if you're looking for an alternative to GitHub, here's some -other Git-based web hosting sites: - -* https://gitlab.com/[GitLab] is probably the closest competitor to -GitHub. It offers pretty much everything GitHub has (except for the -student pack) but it has some other tricks GitHub doesn't have: -** Offers true unlimited public and private repos with unlimited -collaborators so you can make your projects truly private here. -** Has built-in CI/CD tools making GitLab an out-of-the-box suitable -platform for DevOps development. -** Can be self-hosted (meaning you can run GitLab locally in your own -machine). -* https://bitbucket.org/[Bitbucket] is another competitor to GitHub. Its -core feature set is quite similar to GitLab: having built-in CI/CD -tools, can be self-hosted, and has a ton of built-in integration with -other services such as Trello and Slack. - -=== http://heroku.com/[Heroku] - -If you're looking to deploy your dynamic web app, look no further to -Heroku. Heroku offers an infrastructure as a service that is made sure -to be as easy as possible and it is sure easy in my experience so far. - -Heroku just needs a Git repo from GitHub, GitLab, Bitbucket, and other -platforms and you're mostly done. Just tweak the app further, store your -secret credentials, enable related services for your app, and your app -will set ablaze live on the web. - -Alternatives: - -* https://glitch.com/[Glitch] — One of the coolest alternative to -Heroku. It's another app deployment platform but with the sense of -community mixed in. It lets you remix other people's app as well as you -let them remix your app (if you choose). This is a nice platform for -your hobby projects though it https://glitch.com/help/languages/[only -supports Node.js for now (as of this writing)]. -* https://zeit.co/now[Now] An app deployment service from Zeit. It -offers a platform to deploy your web apps though you have to integrate -it with your app instead of just placing your app and letting it run. -Like Heroku, it also offers a generous free tier that is mostly enough -for managing multiple hobby projects. -* http://firebase.google.com/[Firebase] — An infrastructure-as-a-service -(IaaS) later acquired by Google. It offers a generous free tier services -if you're starting out but later it gets expensive as your project made -through the limit. The only downside when using this is you have to -integrate your app and may use some proprietary solutions along with it. -* https://repl.it/[Repl.it] — Possibly one of the best alternatives to -Heroku. Similar to Glitch, it's an online IDE that -https://repl.it/site/languages[supports a lot of languages] and it got -https://repl.it/discord[a community of hackers behind it]. It's a pretty -cool tool especially for hobby projects and such. It is also open for -other users in the Repl.it community, being able to fork your projects. - -=== https://www.netlify.com/[Netlify] - -If you want to publish your static website, no need to deploy it with -Heroku since it'll just add to your monthly quota. -https://www.netlify.com/[Netlify] is one of the perfect platforms for -that. - -Like Heroku, Netlify is a platform that aims to make web app deployment -as easy as possible. Just create an account, login to Netlify, integrate -your Git repo, and give configurations for deployment then celebrate! - -It offers out-of-the-box integration with common web workflow like task -runners and Git repos and -https://www.netlify.com/products/build/[automates them through a work -pipeline], doing all the dev-ops work for you. It's pretty fantastic -especially if you're working solo. - -Of course, https://www.netlify.com/pricing/[Netlify offers a generous -free tier] limiting your account up to 100GB bandwidth for your list of -deployed projects. For me, that is more than enough. - -Of course, tons of alternatives are available but here's the following -that topped the list for me: - -* https://surge.sh/[Surge] — One of the more popular static site -deployment tool. It's simply a deployment tool available in the command -line. Also provides out-of-the-box integration with common workflows. -* https://pages.github.com/[GitHub Pages] — If you're mainly a -https://gitlab.com[GitLab] user, -https://docs.gitlab.com/ee/user/project/pages/[GitLab also offers a -similar service]. It's the free static web hosting service offered in -GitHub. You can set some configurations for your static website such as -the branch specified to hold your site's files. You could also create a -quick landing page for your repo with it. -* https://zeit.co/now[Now] — One of the more advanced alternative. It's -a platform for static and dynamic sites. Available as a command line -tool, the platform also offers a https://zeit.co/pricing[generous free -tier]. - -With all of those above, you're practically set for life in your web -development learning journey. It's pretty amazing that we get these -stuff for FREE, mind you. Now go ahead and ship some apps. - -=== Other tools - -Well, here's some honorable mentions: - -* https://travis-ci.org/[Travis CI] — A continuous -integration/continuous deployment (CI/CD) service that integrates very -well with GitHub which is the reason why I list it here. If you're not -familiar with CI/CD systems yet, you can view -https://www.youtube.com/watch?v=ymPOI4gWQFY&list=PL0zVEGEvSaeFFy32i5A4041qSTbYqtKqv[this -video series by @mpjme from FunFunFunction] to get you started. The -video series assumes that you're familiar with programming workflows (in -which you're most likely to be since you're reading my posts right now). -* Your own automation script. — In some cases or reason, you'll have to -craft the deployment script yourself. You might write one of these since -you don't want to rely on a CI/CD service or just want to deploy it -yourself. -* Your own backend, maybe? — If it's powerful enough, I guess you could -but I recommend more to pass that responsibility to the companies that -offer dedicated servers. Unless your project _revolves around deploying -your own backend_, I don't see much reason to deploy it with your own. - - -== Conclusion - -There's my general workflow in its glory using only with (mostly) free -and open source technologies. There's a lot more things to keep an eye -on especially if you're looking for a specific set of technologies or -needs. If you're looking for more open content, I can point you to the -following: - -* https://github.com/sindresorhus/awesome[`+awesome+`] — A list of -resource list of various technologies and topics from software -development, music, research, to game development. You should be able to -get a start of your search of open content from there. -* https://freebies-hunt.netlify.com/[Freebies Hunt] — I've created this -website as a way of introducing you to free and open content, in -general. It contains free resources for programming, music, design, and -other interests I have. Quite similar to `+awesome+` but it stripped -down to my preferred resources. Of course, for the spirit of open -content (and software), everything on this website is open source from -the https://github.com/foo-dogsquared/freebies-hunt[website] and the -https://github.com/foo-dogsquared/freebies-hunt-api/[API] I've built. - -One of the most beneficial things on free and open content today is that -they're easily accessible as they're easily created. Not only that it -does help on making the technology to easily create interest on the -public but also to create progress by everyone. - -Though with the said nature of open content, there are problems that are -bound to be manifested such as the large amount of open content that can -be completely overwhelming to newcomers up to the quality of the open -content seeing as it can be made by everyone. - -Overall, I don't think it can be a problem as long as there are leading -bodies that govern and direct the advancement of the technology or the -domain it operates with. (Of course there are problems bound with it as -well but that's how life works, solving problem inherently creates -another problem.) - diff --git a/content/posts/developing-projects-with-free-resources/index.adoc b/content/posts/developing-projects-with-free-resources/index.adoc new file mode 100644 index 0000000..b911bf4 --- /dev/null +++ b/content/posts/developing-projects-with-free-resources/index.adoc @@ -0,0 +1,225 @@ +--- +date: 2019-04-30 12:32:40 +0800 +title: Developing projects with free resources + +categories: + - How not to procastinate +tags: + - projects + - development +--- + += Developing projects with free resources +Gabriel Arazas +2019-04-30 + +:toc: + + +In a world where technology has made it possible to inform and share experiences with other people through multiple devices, the technology sure came to advance at a point where the people themselves have the resources needed to establish and maintain businesses on their garage or bedroom. + +The same can be said with creating projects. +Being a student on a financial tightrope, it will be a fun and frustrating challenge to create projects with only free resources and services. + +In this article, I'll share my experiences and tools I've used throughout my side-project and self-learning development journey while getting around paid services. + + + + +== Planning my projects + +Planning is a part of the process. +It's an ever-important process that prevents your software project (or any project) to be an aftermath of a great natural disaster. +It's not guaranteed for your project to go smooth accordingly but it's better to have a plan than going straight into the battlefield. + +[quote, Captain Cold] +There are only 4 rules you need to remember: make the plan, execute the +plan, expect the plan to go off the rails, throw away the plan. + +If the plan failed, just go through another planning phase. +The action does not apply well into a production workflow with the chaotic and larger-scale management but it can be easily apply for personal projects. + +Here are the tools I've used to practice my planning skills: + + +=== https://quire.io/[Quire] + +Quire is an online tool for almost everything productivity-based. I mean +they got https://quire.io/features[an exhaustive list of features] from +kanban boards, simple task lists, integration to different services such +as GitHub, Google Drive, and Slack, and much more! + +The best part about all of this is that it looks minimalistic with all +of its features. It goes out of your way with all of its features to use +as you intended. You want to look at your task board for your project +and the website only shows you that. + + +=== https://inkscape.org/[Inkscape] + +Inkscape is a vector graphics tool and a free and open source software (FOSS) in similar veins of https://www.adobe.com/products/illustrator.html[Adobe Illustrator]. +It's a neat tool suited for a variety of basic tasks related for vector graphics: icon art, visual aids, and even https://wiki.inkscape.org/wiki/index.php/LaTeX[mathematical equations]. +I find Inkscape more approachable than Illustrator, further enhanced by its welcoming community. + +It also offers extensiblity through plugins and gathered a community of designers and developers that extend Inkscape for their own needs (and maybe yours). +I've mainly used Inkscape for creating diagrams and visual aids (and a little bit of vector art for practice). +Though, using Inkscape for diagramming can be tricky and unintuitive so I recommend https://app.diagrams.net/[diagrams.net] (formerly known as draw.io). + + + + +=== Good ol' pen & paper + +Well, all I need is a way of planning for my project. +Cite a better way of planning than a good ol' P&P. +One of its most useful feature is that it's quick to load! +No internet connection needed! +It's a universal alternative to all the apps listed so far. +The only situation you're not able to boot this up is if you don't have the materials yourself. + +In all seriousness though, I think this is one of the most useful ones. +Physically writing is actually more memorable (to me, at least) thus more things to remember. +Besides, I don't want to stare at a digital screen all day. + +Usually when I'm going to plan with this method, I follow through a system I created for myself. +The system is nothing fancy, it's a simple priority task queue where I categorized whether the task is a low-hanging fruit, an afterthought, or a requirement. +You could represent this with symbols, colored papers, or birds. + + + + +== Creating my projects + +When you have a plan in place, you can attack it in your own pace. + +The following list is only for software projects but I recently launched https://freebies-hunt.netlify.app/[a website that lists all of the free resources and tools] I've used for a variety of tasks. + + +=== https://code.visualstudio.com/[Visual Studio Code] + +My go-to text editor and lightweight IDE. +This tool is just phenomenal! +It's free and https://github.com/Microsoft/vscode[open source], https://code.visualstudio.com/updates/[actively being developed], backed up by a huge community of developers, solid UI/UX for budding developers, https://code.visualstudio.com/docs[features an extensive documentation], and offers hackability that extends the app even further. + +With that said, this tool is not a panacea for our development tool problems. +The core scope is on web development when you look at the feature set: JavaScript and TypeScript support, built-in https://www.emmet.io/[Emmet] plugin, and built-in HTML and CSS support. +Thankfully, Visual Studio Code has accumulated an ecosystem of quality plugins over the past years so things like adding support for a certain language like Rust, C++, or Java can be acquired. +Along with some helpful utilities like https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop[LaTeX workflow], https://marketplace.visualstudio.com/items?itemName=vscodevim.vim[Vim emulation], and https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig[EditorConfig]. + + +=== https://git-scm.com/[Git] + +Well, we all have our ways in saving our stuff. +A certain XKCD comic said it best how I used to do it. + +image::https://imgs.xkcd.com/comics/documents.png[title="My archiving skills in high school"] + +Other would use a software that can automatically create backups. +For solo projects, it is practical enough but if you want to amp your version controlling skill then you can use a full-on **version control system** (VCS). +One objective of using a version control system like Git is not only acts as an epic save button but it also makes collaborative works to progress smoother. + +Git is my go-to version control software. +It is nice to work with and it has ton of free services that are integrated with it. +Despite it's mostly used for software projects, it can be useful for non-software stuff though better and more specialized solutions may exist. + + + + +== Publishing my project + +If you want your project to be available for the whole world to see, you have available free options that lets you do that. + + +=== https://github.com/[GitHub] + +When you want to share your project with the world for everyone to see, you need a platform to do that. +One of the popular options for that is GitHub (which requires using Git but it's ubitiquous nowadays). + +GitHub offer practically free unlimited public and private repo (with limited collaborators) for your projects. +Whether you want to show off your projects or to keep your projects safe in the cloud, GitHub has you covered. + +Being a software development platform, it has a variety of features to aid software development such as issue tracking, code reviews, automation with https://github.com/features/actions[GitHub Actions], and built-in project management tools. + +If you're looking for an alternative to GitHub, here's some other Git-based web hosting sites: + +* https://gitlab.com/[GitLab] is probably the closest competitor to GitHub sporting a similar set of features. +What's more, you can spin your own GitLab instance in case you want your own Git platform. + +* https://bitbucket.org/[Bitbucket] is another competitor to GitHub. +Its core feature set is quite similar to GitLab: having built-in CI/CD tools, can be self-hosted, and has a ton of built-in integration with other services such as Trello and Slack. + + +=== http://heroku.com/[Heroku] + +If you're looking to deploy your dynamic web app, look no further to Heroku. +Heroku offers an infrastructure as a service that is made sure to be as easy as possible and it is sure easy in my experience so far. + +Heroku just needs a Git repo and you're mostly done. +Just tweak the app further, store your secret credentials, enable related services for your app, and your app will set ablaze live (or crash) on the web. + +If you're looking for other hosts that support multiple languages and setup, have a look at the following list. + +* https://glitch.com/[Glitch] — One of the coolest alternative to Heroku. +It's another app deployment platform but with the sense of community mixed in. +However, it's not suitable for production deployment. + +* https://zeit.co/now[Now] is an app deployment service from Zeit. +It offers a platform to deploy your web apps though you have to integrate it with your app instead of just placing your app and letting it run. +Like Heroku, it also offers a generous free tier that is mostly enough for managing multiple hobby projects. + +* http://firebase.google.com/[Firebase] offers a generous free tier which can take a while before reaching the limit if you're deploying a few personal dev projects. + +* https://repl.it/[Repl.it] — Possibly one of the best alternatives to Heroku. +Similar to Glitch, it's an online IDE that https://repl.it/site/languages[supports a lot of languages] and it got +https://repl.it/discord[a community of hackers behind it]. +It's a pretty cool tool especially for hobby projects, personal demos, and such. + + +=== https://www.netlify.com/[Netlify] + +If you want to publish your static website, no need to deploy it with Heroku since it'll just add to your monthly quota. +https://www.netlify.com/[Netlify] is one of the perfect platforms for that. + +Like Heroku, Netlify is a platform that aims to make web app deployment as easy as possible. +Just create an account, login to Netlify, integrate your Git repo, and give configurations for deployment then celebrate! + +It offers out-of-the-box integration with common web workflow like task runners and Git repos and https://www.netlify.com/products/build/[automates them through a work pipeline], doing all the work for you. +It's pretty fantastic especially if you're working solo. + +Of course, https://www.netlify.com/pricing/[Netlify offers a generous free tier] limiting your account up to 100GB bandwidth for your list of +deployed projects. +For me, that is more than enough. + +Of course, tons of alternatives are available but here's the following that topped the list for me: + +* https://surge.sh/[Surge] — One of the more popular static site +deployment tool. It's simply a deployment tool available in the command +line. Also provides out-of-the-box integration with common workflows. + +* https://pages.github.com/[GitHub Pages] offers similarly generous resources for your static apps. +If you're mainly a https://gitlab.com[GitLab] user, https://docs.gitlab.com/ee/user/project/pages/[GitLab also offers a similar service]. + +* https://zeit.co/now[Now] is still one of them. + +With all of those above, you're practically set for life in your webdevelopment learning journey. +It's pretty amazing that we get these stuff for FREE, mind you. + + + + +== Conclusion + +There's my general workflow in its glory using only with (mostly) free and open source technologies. +There's a lot more things to keep an eye on especially if you're looking for a specific set of technologies or needs. +If you're looking for more open content, I can point you to the following: + +* https://github.com/sindresorhus/awesome[`awesome`] — A list of +resource list of various technologies and topics from software +development, music, research, to game development. You should be able to +get a start of your search of open content from there. + +* It's a shameless plug but https://freebies-hunt.netlify.com/[Freebies Hunt] is a personally curated list of free resources that I've used for a variety of tasks including music production, 3D modelling, and art. + +One of the most beneficial things on free and open content today is that they're easily accessible as they're easily created. +Not only that it does help on making the technology to easily create interest on the public but also to create progress by everyone. + diff --git a/content/posts/free-resource-list.adoc b/content/posts/free-resource-list/index.adoc similarity index 99% rename from content/posts/free-resource-list.adoc rename to content/posts/free-resource-list/index.adoc index 5da1b85..f64113e 100644 --- a/content/posts/free-resource-list.adoc +++ b/content/posts/free-resource-list/index.adoc @@ -1,8 +1,12 @@ --- title: A freebie's resource list (mostly related to programming) date: 2018-05-01 09:25:57 +0800 -categories: [foss] -tags: [foss, freebies] + +categories: + - Freebies +tags: + - bookmarks + - freebies --- = A freebie's resource list (mostly related to programming) @@ -80,7 +84,7 @@ project-based curriculum for web development * https://www.ixl.com/[IXL] — an educational resource and learning site on K-12 curriculum * https://khanacademy.org[Khan Academy] — *(recommended)*; there are -also other topics outside of programming (i.e. mathematics, physics) +also other topics outside of programming (i.e., mathematics, physics) * https://learnxinyminutes.com[Learn X in Y Minutes] — a community-created repository of summaries for you to learn the X programming languages diff --git a/content/posts/images/the-complete-linux-turnabout/i3-setup.webp b/content/posts/the-complete-linux-turnabout/images/i3-setup.webp similarity index 100% rename from content/posts/images/the-complete-linux-turnabout/i3-setup.webp rename to content/posts/the-complete-linux-turnabout/images/i3-setup.webp diff --git a/content/posts/images/the-complete-linux-turnabout/i3bar-appearance.webp b/content/posts/the-complete-linux-turnabout/images/i3bar-appearance.webp similarity index 100% rename from content/posts/images/the-complete-linux-turnabout/i3bar-appearance.webp rename to content/posts/the-complete-linux-turnabout/images/i3bar-appearance.webp diff --git a/content/posts/images/the-complete-linux-turnabout/ranger-demo.mp4 b/content/posts/the-complete-linux-turnabout/images/ranger-demo.mp4 similarity index 100% rename from content/posts/images/the-complete-linux-turnabout/ranger-demo.mp4 rename to content/posts/the-complete-linux-turnabout/images/ranger-demo.mp4 diff --git a/content/posts/images/the-complete-linux-turnabout/rofi-setup.webp b/content/posts/the-complete-linux-turnabout/images/rofi-setup.webp similarity index 100% rename from content/posts/images/the-complete-linux-turnabout/rofi-setup.webp rename to content/posts/the-complete-linux-turnabout/images/rofi-setup.webp diff --git a/content/posts/images/the-complete-linux-turnabout/vim-setup.webp b/content/posts/the-complete-linux-turnabout/images/vim-setup.webp similarity index 100% rename from content/posts/images/the-complete-linux-turnabout/vim-setup.webp rename to content/posts/the-complete-linux-turnabout/images/vim-setup.webp diff --git a/content/posts/the-complete-linux-turnabout.adoc b/content/posts/the-complete-linux-turnabout/index.adoc similarity index 97% rename from content/posts/the-complete-linux-turnabout.adoc rename to content/posts/the-complete-linux-turnabout/index.adoc index be7a468..1beda22 100644 --- a/content/posts/the-complete-linux-turnabout.adoc +++ b/content/posts/the-complete-linux-turnabout/index.adoc @@ -1,15 +1,18 @@ --- title: "The complete Linux turnabout" date: 2019-08-20T20:50:18+08:00 -categories: ["linux"] -tags: ["linux", "foss"] +categories: + - How to Linux +tags: + - linux + - desktop + - ricing --- = The complete Linux turnabout Gabriel Arazas 2019-08-20 -:imagesdir: ../images/the-complete-linux-turnabout/ Ever since I found some good stuff at Linux, I wiped out my hard drive completely, exclusively install a Linux-based @@ -67,7 +70,7 @@ It was easy to adapt to it since I'm completely used to using programs that live in a command line interface like https://www.vim.org/[Vim]. .My i3 setup -image::i3-setup.webp[My i3 setup] +image::images/i3-setup.webp[My i3 setup] i3 also offers a level of https://i3wm.org/docs/userguide.html[configuration] that could make you a bit more efficient. @@ -112,7 +115,7 @@ It's quite usable with rofi's sidebar mode where you can find windows, desktop e binaries, and even SSH configs. .Customized rofi menu -image::rofi-setup.webp[Customized rofi menu] +image::images/rofi-setup.webp[Customized rofi menu] You can find https://github.com/foo-dogsquared/dotfiles/tree/master/rofi[my rofi config on my GitHub repo]. @@ -199,7 +202,7 @@ file browser. status bar. It's pretty cool looking. .Fullscreen Vim setup -image::vim-setup.webp[Fullscreen Vim setup] +image::images/vim-setup.webp[Fullscreen Vim setup] If you want to take a deeper look or just want to see the full config, https://github.com/foo-dogsquared/dotfiles/tree/master/vim[you can see it in my dotfiles repo]. @@ -269,7 +272,7 @@ screenshot tool, keybinding tool, and a replacement for my status bar (which I didn't by the end of the day). That's when I discovered https://www.reddit.com/r/unixporn/[`/r/unixporn`], -a subreddit for showing off your *Nix (i.e.: Linux, MacOS) configurations and setup. +a subreddit for showing off your *Nix (i.e., Linux, MacOS) configurations and setup. It's also a community for "ricing", an act of adding the visual spices to your setup. I recommend to check it out if you're looking for a starting point. They're pretty friendly for first timers, too. diff --git a/content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/cover.webp b/content/posts/what-is-effective-documentation/images/cover.webp similarity index 100% rename from content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/cover.webp rename to content/posts/what-is-effective-documentation/images/cover.webp diff --git a/content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/hugo-theme-contentful.webp b/content/posts/what-is-effective-documentation/images/hugo-theme-contentful.webp similarity index 100% rename from content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/hugo-theme-contentful.webp rename to content/posts/what-is-effective-documentation/images/hugo-theme-contentful.webp diff --git a/content/posts/what-is-effective-documentation/images/latex-lecture-layout.png b/content/posts/what-is-effective-documentation/images/latex-lecture-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..714db2cb170043ea8a65cda95e21a2249d876e9b GIT binary patch literal 106270 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 UylzaMt?*~^#HlV>@6TKJFMt=zKmY&$ literal 0 HcmV?d00001 diff --git a/content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/latex-lecture-layout.webp b/content/posts/what-is-effective-documentation/images/latex-lecture-layout.webp similarity index 100% rename from content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/latex-lecture-layout.webp rename to content/posts/what-is-effective-documentation/images/latex-lecture-layout.webp diff --git a/content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/react-docs.webp b/content/posts/what-is-effective-documentation/images/react-docs.webp similarity index 100% rename from content/posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/react-docs.webp rename to content/posts/what-is-effective-documentation/images/react-docs.webp diff --git a/content/posts/what-is-effective-documentation.adoc b/content/posts/what-is-effective-documentation/index.adoc similarity index 64% rename from content/posts/what-is-effective-documentation.adoc rename to content/posts/what-is-effective-documentation/index.adoc index 84e237e..cf4398b 100644 --- a/content/posts/what-is-effective-documentation.adoc +++ b/content/posts/what-is-effective-documentation/index.adoc @@ -4,265 +4,264 @@ date: 2019-09-28T20:29:58+08:00 cover: posts/images/the-importance-of-technical-writing-and-typography-in-a-software-project/cover.webp categories: - - software + - Documentation tags: - writing - - documentation + - documentation --- -= What is effective documentation += What is effective documentation Gabriel Arazas 2019-09-19 -:imagesdir: ../images/the-importance-of-technical-writing-and-typography-in-a-software-project/ -I'm beginning to be more oriented on technical writing. -In fact, I'm starting to consider to take on technical writing as a career. -So I ask myself related to the very thing that makes me appreciate technical writing: documentation. -That question is "What is effective documentation?" +I'm beginning to be more oriented on technical writing. +In fact, I'm starting to consider to take on technical writing as a career. +So I ask myself related to the very thing that makes me appreciate technical writing: documentation. +That question is "What is effective documentation?" -As I remember from https://www.youtube.com/watch?v=BAJ8F7yQz64[a presentation], there's this quote that rings very well. +As I remember from https://www.youtube.com/watch?v=BAJ8F7yQz64[a presentation], there's this quote that rings very well. [quote, Dan Allen, Antora: Documentation Sites for Software Teams] -Documentation is the “curb appeal” of your software. +Documentation is the “curb appeal” of your software. -Despite the saying, it applies to all types of projects. -It is the "curb appeal" of your project. +Despite the saying, it applies to all types of projects. +It is the "curb appeal" of your project. -Let's take a shallow dive on the deep ocean of documentation and inspect what I think mainly builds it: technical writing and typography. +Let's take a shallow dive on the deep ocean of documentation and inspect what I think mainly builds it: technical writing and typography. -== Importance of technical writing +== Importance of technical writing -Technical writing is an often-overlooked process for open source programs. -This is reflected in https://opensourcesurvey.org/2017/[GitHub's 2017 survey on open source] (which is the latest version as of 2019-09-20) where incomplete and/or confusing documentation is the biggest hurdle. +Technical writing is an often-overlooked process for open source programs. +This is reflected in https://opensourcesurvey.org/2017/[GitHub's 2017 survey on open source] (which is the latest version as of 2019-09-20) where incomplete and/or confusing documentation is the biggest hurdle. -What's common among successful software projects like https://asciidoctor.org/[Asciidoctor], https://reactjs.org/[React], https://www.python.org/[Python], https://laravel.com/[Laravel], https://www.mozilla.org/en-US/firefox/[Firefox], https://www.latex-project.org/[LaTeX], https://www.google.com/chrome/browser/index.html[Chrome], and https://www.archlinux.org/[Arch Linux] is the accessible and thorough documentation that describes enough details for the new and the seasoned users. +What's common among successful software projects like https://asciidoctor.org/[Asciidoctor], https://reactjs.org/[React], https://www.python.org/[Python], https://laravel.com/[Laravel], https://www.mozilla.org/en-US/firefox/[Firefox], https://www.latex-project.org/[LaTeX], https://www.google.com/chrome/browser/index.html[Chrome], and https://www.archlinux.org/[Arch Linux] is the accessible and thorough documentation that describes enough details for the new and the seasoned users. -As such, one of the leading importance of technical writing is **communication**. -Without the work of technical writing means no communication. -Non-existent communication means no incentive to look for your project. -It's that simple. +As such, one of the leading importance of technical writing is **communication**. +Without the work of technical writing means no communication. +Non-existent communication means no incentive to look for your project. +It's that simple. -The documentation is where the first impression lies for your potential users. -Despite the saying of judging the book by its cover, the documentation can reflect the quality of the project. -Having non-existent or bad documentation gives the impression that your project is bad no matter how well-crafted or optimized your code. +The documentation is where the first impression lies for your potential users. +Despite the saying of judging the book by its cover, the documentation can reflect the quality of the project. +Having non-existent or bad documentation gives the impression that your project is bad no matter how well-crafted or optimized your code. -The documentation is also where the lasting impression goes for the veterans and potential contributors. -If the users see the project docs is working as intended and well-maintained then it's more likely for them to participate and contribute through bug issues and code improvements. +The documentation is also where the lasting impression goes for the veterans and potential contributors. +If the users see the project docs is working as intended and well-maintained then it's more likely for them to participate and contribute through bug issues and code improvements. -If you're learning another framework or a tool, odds are you would first visit the startup guide from their homepage. -If you want to know more specific about the tool, you would dive further into their detailed sections. +If you're learning another framework or a tool, odds are you would first visit the startup guide from their homepage. +If you want to know more specific about the tool, you would dive further into their detailed sections. -If you want to get a shot at making your project to be recognized, give the documentation a priority. +If you want to get a shot at making your project to be recognized, give the documentation a priority. -Like what I previously mentioned, this doesn't only apply to software projects but to all types of products whether it's a power tool, a phone, a calculator, or a book. +Like what I previously mentioned, this doesn't only apply to software projects but to all types of products whether it's a power tool, a phone, a calculator, or a book. -* If you're opening up a package of your shiny new power tool, odds are you would need to get your hands on a manual. -* If you've just received your new phone, you would find the user manual first to get started. -* If you want to know all of the capabilities of your calculator, you might want to view the manual. -* If you newly start with a referential book, you would explore first the preface or the introduction where it introduces the structure of each section. +* If you're opening up a package of your shiny new power tool, odds are you would need to get your hands on a manual. +* If you've just received your new phone, you would find the user manual first to get started. +* If you want to know all of the capabilities of your calculator, you might want to view the manual. +* If you newly start with a referential book, you would explore first the preface or the introduction where it introduces the structure of each section. -As you imagine, the use and importance of technical writing is everywhere. +As you imagine, the use and importance of technical writing is everywhere. -Though, be wary that there is a flip side on technical writing. -When there's communication, there's miscommunication. -It can be blamed to various things but the point is having outdated or incorrect documentation can also give a bad impression. -Worse is that it might be better to have no documentation at all. +Though, be wary that there is a flip side on technical writing. +When there's communication, there's miscommunication. +It can be blamed to various things but the point is having outdated or incorrect documentation can also give a bad impression. +Worse is that it might be better to have no documentation at all. -== Importance of typography +== Importance of typography -How about typography? -It seems like it's a specific requirement for a software project but it can be important in making your content legible. -No one in their right mind would read the content no matter how well-written if it's badly formatted. +How about typography? +It seems like it's a specific requirement for a software project but it can be important in making your content legible. +No one in their right mind would read the content no matter how well-written if it's badly formatted. -Typography can boost the "curb appeal" further by adding greenery to your project. -It makes all the more pleasing to the eyes. +Typography can boost the "curb appeal" further by adding greenery to your project. +It makes all the more pleasing to the eyes. -Typography also dictates how long will the user stay reading. -A badly formatted book will surely receive shorter retention than a badly written one. -It's a bonus if the reader will also get a laugh out of the badly written one. +Typography also dictates how long will the user stay reading. +A badly formatted book will surely receive shorter retention than a badly written one. +It's a bonus if the reader will also get a laugh out of the badly written one. -== Inspecting other projects +== Inspecting other projects -They say that success and advancements stand on the shoulder of giants. -Let's inspect how other software projects did their thing. +They say that success and advancements stand on the shoulder of giants. +Let's inspect how other software projects did their thing. -Think about most of the software you've used and remember your experience navigating the documentation. -The million-dollar question is what's common between the documentations of popular projects and what good practices can we get from them. +Think about most of the software you've used and remember your experience navigating the documentation. +The million-dollar question is what's common between the documentations of popular projects and what good practices can we get from them. -To get us in the same page, here's the list of software I reflected and inspected: +To get us in the same page, here's the list of software I reflected and inspected: -* https://www.archlinux.org/[Arch Linux] -* https://asciidoctor.org/[Asciidoctor] -* http://luatex.org/[LuaTeX] -* https://www.ctan.org/pkg/latexmk/[Latexmk] -* https://www.python.org/[Python] -* https://reactjs.org/[ReactJS] +* https://www.archlinux.org/[Arch Linux] +* https://asciidoctor.org/[Asciidoctor] +* http://luatex.org/[LuaTeX] +* https://www.ctan.org/pkg/latexmk/[Latexmk] +* https://www.python.org/[Python] +* https://reactjs.org/[ReactJS] -Anyhow, I try to answer the million-dollar question. -I put the answers in two lists: one for the content and one for the typography. +Anyhow, I try to answer the million-dollar question. +I put the answers in two lists: one for the content and one for the typography. -=== Common attributes of documentation content +=== Common attributes of documentation content -Here's what I gathered for reflecting the experience reading through the content. -I've also observed how they organize their content and lead their users into the different parts of the program. +Here's what I gathered for reflecting the experience reading through the content. +I've also observed how they organize their content and lead their users into the different parts of the program. -* They provide examples. -* They don't repeat information a lot and gives the appropriate link instead. -* They organize the documents commonly by required level of expertise and general concepts. -* Most of them (if not all) provide generalized explanations and a detailed version. -* Not everything is documented compared to looking at the source, if available (e.g. https://www.python.org/[Python]). +* They provide examples. +* They don't repeat information a lot and gives the appropriate link instead. +* They organize the documents commonly by required level of expertise and general concepts. +* Most of them (if not all) provide generalized explanations and a detailed version. +* Not everything is documented compared to looking at the source, if available (e.g., https://www.python.org/[Python]). -=== Typographic best practices +=== Typographic best practices -Here's one for navigating through the documentation and observing the typography. +Here's one for navigating through the documentation and observing the typography. -* Optimal characters per line are at least 50 to 80. -* Base font size is at least 16px. -* Font size and spacing of headers of various levels are distinct. -* Consistent use of brand colors (if there's any). -* Use monospace font for code listings. +* Optimal characters per line are at least 50 to 80. +* Base font size is at least 16px. +* Font size and spacing of headers of various levels are distinct. +* Consistent use of brand colors (if there's any). +* Use monospace font for code listings. -Regarding the best example, I think https://reactjs.org/docs/[React] does this the best both in documentation content and typographic practices. -Go on, take a gander on it. +Regarding the best example, I think https://reactjs.org/docs/[React] does this the best both in documentation content and typographic practices. +Go on, take a gander on it. -.ReactJS documentation -image::react-docs.webp[ReactJS docs] +.ReactJS documentation +image::images/react-docs.webp[ReactJS docs] -== How I practice these? +== How I practice these? -I won't detail much on how to practice technical writing or apply typographic practices since I'm not a professional. -Instead, I'm describing how I apply the two skills. +I won't detail much on how to practice technical writing or apply typographic practices since I'm not a professional. +Instead, I'm describing how I apply the two skills. -=== Plan the document early on the project +=== Plan the document early on the project -To create good documentation, you must take the time to plan the document. -Ask yourself what is the ideal document structure for your users, what information do they need to know, and other questions that reflect the value of efficient documentation. +To create good documentation, you must take the time to plan the document. +Ask yourself what is the ideal document structure for your users, what information do they need to know, and other questions that reflect the value of efficient documentation. -Even for a small project, making effort to plan is heavily appreciated. +Even for a small project, making effort to plan is heavily appreciated. -In my case, I created a document structure for my project. -Create a README and the `docs/` folder for assets (e.g. images, videos). -I also created a standard template for my README: the abstract, purpose, getting started guide, details, and the license. -You can see more of the details in my https://github.com/foo-dogsquared/personal-style-guides/blob/master/src/projects.adoc[project template documentation]. +In my case, I created a document structure for my project. +Create a README and the `docs/` folder for assets (e.g., images, videos). +I also created a standard template for my README: the abstract, purpose, getting started guide, details, and the license. +You can see more of the details in my https://github.com/foo-dogsquared/personal-style-guides/blob/master/src/projects.adoc[project template documentation]. -=== Document only the big things +=== Document only the big things -By that, I mean prioritize documenting the high-level details like the architecture, data design, implementations, and abstractions. -You don't have to document your whole codebase (and you shouldn't). -Leave out the very specific details and only draw the big picture. +By that, I mean prioritize documenting the high-level details like the architecture, data design, implementations, and abstractions. +You don't have to document your whole codebase (and you shouldn't). +Leave out the very specific details and only draw the big picture. -When you did document the whole thing from its nooks and crannies, you give rise to another problem of constantly switching gears for updating your code and the documentation. -It's a nasty experience that you might as well not document it in the first place. +When you did document the whole thing from its nooks and crannies, you give rise to another problem of constantly switching gears for updating your code and the documentation. +It's a nasty experience that you might as well not document it in the first place. === Create a minimal design that focuses on readability -For practicing typography, you can create a minimalistic design that focuses on content form. +For practicing typography, you can create a minimalistic design that focuses on content form. -In my case, I recently started to refer to https://practicaltypography.com/[some] https://zellwk.com/blog/why-vertical-rhythms/[related] https://www.paulolyslager.com/optimal-text-layout-line-length/[resources] and quickly created a https://github.com/foo-dogsquared/hugo-theme-contentful[Hugo theme that focuses on it]. +In my case, I recently started to refer to https://practicaltypography.com/[some] https://zellwk.com/blog/why-vertical-rhythms/[related] https://www.paulolyslager.com/optimal-text-layout-line-length/[resources] and quickly created a https://github.com/foo-dogsquared/hugo-theme-contentful[Hugo theme that focuses on it]. .Here's the resulting Hugo theme - Contentful -image::hugo-theme-contentful.webp[.Hugo theme Contentful] +image::images/hugo-theme-contentful.webp[.Hugo theme Contentful] -You could also start by redesigning some of your previous stuff. +You could also start by redesigning some of your previous stuff. -I've started to reconfigure my LaTeX templates and it is certainly more readable than before. +I've started to reconfigure my LaTeX templates and it is certainly more readable than before. footnote:[My LaTeX templates can be found at https://github.com/foo-dogsquared/latex-templates/[my GitHub account].] .My current LaTeX lecture layout -image::latex-lecture-layout.webp[alt="My current LaTeX lecture layout", width=450] +image::images/latex-lecture-layout.webp[alt="My current LaTeX lecture layout", width=450] -It has improved spacing between paragraphs and non-textblocks, larger font sizes for mathematical texts, and improved font combinations. +It has improved spacing between paragraphs and non-textblocks, larger font sizes for mathematical texts, and improved font combinations. footnote:[If you're curious about the font combination, it uses https://github.com/adobe-fonts/source-serif-pro[Source Serif Pro] for roman (normal), https://github.com/adobe-fonts/source-sans-pro[Source Sans Pro] for sans, and https://github.com/tonsky/FiraCode[Fira Code] for monospace.] === Create a style guide or a set of guidelines -Style guides are used to keep certain aspects of a project to be consistent. -Certain examples exist on styling your code, general writing, academic writing, citations, design, technical writing, and many others. +Style guides are used to keep certain aspects of a project to be consistent. +Certain examples exist on styling your code, general writing, academic writing, citations, design, technical writing, and many others. footnote:[You can see examples of them at my https://github.com/foo-dogsquared/personal-style-guides[personal style guides README].] -However, all (if not most) style guides are suited for the organization's purposes. -If you aren't able to find a suitable one, just create one. -It doesn't have to cover every possible case since it is specifically created for your own (or your team). -You can steal ideas from multiple style guides, cherry-pick the best of them, and combine it to suit your specific needs. +However, all (if not most) style guides are suited for the organization's purposes. +If you aren't able to find a suitable one, just create one. +It doesn't have to cover every possible case since it is specifically created for your own (or your team). +You can steal ideas from multiple style guides, cherry-pick the best of them, and combine it to suit your specific needs. -In my case, I created a writing style guide that generally applies to all of my writing and typography works. -I eventually dedicated https://github.com/foo-dogsquared/personal-style-guides[a repo for my guide styles] to easily refer to it in the future. +In my case, I created a writing style guide that generally applies to all of my writing and typography works. +I eventually dedicated https://github.com/foo-dogsquared/personal-style-guides[a repo for my guide styles] to easily refer to it in the future. -== Conclusion +== Conclusion -The documentation is a powerful tool for projects. -They serve as an introduction and make the "curb appeal" for your project. -Practicing technical writing can amp up your communication skills which can mean the make-or-break moment for your project. +The documentation is a powerful tool for projects. +They serve as an introduction and make the "curb appeal" for your project. +Practicing technical writing can amp up your communication skills which can mean the make-or-break moment for your project. -In any case, technical writing must also be presentable. -Your documentation may have all of the content they need to know but nobody is going to read good content with bad form. -Typography can help you out in making your content legible and easy to read. -Applying related typography practices can make cruising through the documentation a pleasant experience. +In any case, technical writing must also be presentable. +Your documentation may have all of the content they need to know but nobody is going to read good content with bad form. +Typography can help you out in making your content legible and easy to read. +Applying related typography practices can make cruising through the documentation a pleasant experience. -Giving some time for technical writing and typography can surely boost the impression of your project. -It also adds the bonus of future-proofing your project for yourself and for others. +Giving some time for technical writing and typography can surely boost the impression of your project. +It also adds the bonus of future-proofing your project for yourself and for others. -== Further looking +== Further looking -=== Books +=== Books https://openoregon.pressbooks.pub/aboutwriting/[_About Writing: A Guide_ by "Open Oregon Press"]:: -An open textbook that describes the process of writing for different papers. -It also gives tips on writing a sufficient body of text that can apply for various papers like academic and research papers. +An open textbook that describes the process of writing for different papers. +It also gives tips on writing a sufficient body of text that can apply for various papers like academic and research papers. -https://practicaltypography.com/[_Practical Typography_ by "Matthew Butterick"]:: -A pay-as-you-want online book that introduces you to typography with practical lessons and descriptions. -I fully recommend this book if you want to learn more about how to make your content presentable. +https://practicaltypography.com/[_Practical Typography_ by "Matthew Butterick"]:: +A pay-as-you-want online book that introduces you to typography with practical lessons and descriptions. +I fully recommend this book if you want to learn more about how to make your content presentable. https://openoregon.pressbooks.pub/technicalwriting/[_Technical Writing_ by "Open Oregon Press"]:: -Another open textbook from the https://openoregon.pressbooks.pub/[Open Oregon Press] that specifically tackles technical writing of various formats from emails, cover letters, and résumé. -This covers the basics you need to get started on practicing efficient technical writing. +Another open textbook from the https://openoregon.pressbooks.pub/[Open Oregon Press] that specifically tackles technical writing of various formats from emails, cover letters, and résumé. +This covers the basics you need to get started on practicing efficient technical writing. -=== Tools +=== Tools -https://asciidoctor.org/[Asciidoctor]:: -An Asciidoc-based toolchain for publishing documents into various output formats. -It also expanded upon the original http://asciidoc.org/[Asciidoc] markup language with additional text formatting features. -It's what I mainly use for writing documentation for my projects. +https://asciidoctor.org/[Asciidoctor]:: +An Asciidoc-based toolchain for publishing documents into various output formats. +It also expanded upon the original http://asciidoc.org/[Asciidoc] markup language with additional text formatting features. +It's what I mainly use for writing documentation for my projects. -=== Web +=== Web -https://github.com/noffle/art-of-readme[_Art of README_ by "noffle"]:: -It's a GitHub repo detailing on READMEs from what they are to what makes them good. +https://github.com/noffle/art-of-readme[_Art of README_ by "noffle"]:: +It's a GitHub repo detailing on READMEs from what they are to what makes them good. -https://www.instructionalsolutions.com/blog/become-a-technical-writer[_How to Become a Technical Writer: A Beginner’s Guide_ by "Tom DuPuis"]:: -An overview for absolute beginners for those who are looking into technical writing. -Tackles various topics that you should know first and foremost. +https://www.instructionalsolutions.com/blog/become-a-technical-writer[_How to Become a Technical Writer: A Beginner’s Guide_ by "Tom DuPuis"]:: +An overview for absolute beginners for those who are looking into technical writing. +Tackles various topics that you should know first and foremost. -https://www.writethedocs.org/[Write the Docs]:: -A global community of people who cares about writing documentation. -They provide good resources for getting started with technical writing on the website. +https://www.writethedocs.org/[Write the Docs]:: +A global community of people who cares about writing documentation. +They provide good resources for getting started with technical writing on the website. diff --git a/content/projects/_index.adoc b/content/projects/_index.adoc deleted file mode 100644 index 6e28d13..0000000 --- a/content/projects/_index.adoc +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Projects" ---- - -Here's where I discuss my projects in detail from its -overview, design, implementations, and notes I took while -creating the project. diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ee79e01 --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module github.com/foo-dogsquared/blog + +go 1.15 + +require ( + github.com/foo-dogsquared/hugo-theme-more-contentful v0.1.2 // indirect + github.com/foo-dogsquared/hugo-web-feeds v0.0.1 // indirect + github.com/simple-icons/simple-icons v0.0.0-20201025110046-413f781fd706 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..59f37c9 --- /dev/null +++ b/go.sum @@ -0,0 +1,11 @@ +github.com/foo-dogsquared/hugo-mod-simple-icons v0.0.0-20201026173406-633714bb359d/go.mod h1:IqgEwYyo2L3mFR2RoelZZ3Ncwph7QTssrZ3deCaE0us= +github.com/foo-dogsquared/hugo-theme-contentful v1.2.1-0.20201030114530-c0a2488a58fb/go.mod h1:BL7L5CENEhUx+miRRaOZ9SVC92j9MAMztirBWtTpiPc= +github.com/foo-dogsquared/hugo-theme-more-contentful v0.1.1 h1:34Ey7ysM769d8Lf2hOrTLSL5v7JpGnQyhk5NglRAP+4= +github.com/foo-dogsquared/hugo-theme-more-contentful v0.1.1/go.mod h1:rt3VJjkzt/dXRcVk8wNacnyDQfy9DwOYI45FAu4I9mw= +github.com/foo-dogsquared/hugo-theme-more-contentful v0.1.2 h1:liGphVux817iNxviDkdBLTzMXj9qkNENkNR7kUXG09A= +github.com/foo-dogsquared/hugo-theme-more-contentful v0.1.2/go.mod h1:rt3VJjkzt/dXRcVk8wNacnyDQfy9DwOYI45FAu4I9mw= +github.com/foo-dogsquared/hugo-web-feeds v0.0.1 h1:miuJMx2Plw+4TBGctI2CgWXilddEHFnKNDQ9kLNti3w= +github.com/foo-dogsquared/hugo-web-feeds v0.0.1/go.mod h1:0WxK3+xNIj/Wpk2kkUW0p6Uqmr/OZjPsRtQDCMazNmI= +github.com/refactoringui/heroicons v0.4.2/go.mod h1:82HsLWQga7MkEl5aK8TctxPPIBlXrsyWcVTB57uipuk= +github.com/simple-icons/simple-icons v0.0.0-20201025110046-413f781fd706 h1:dXop39uj0JjYZqKfD2t8URe2CcmafSMnnX2ReK2/0J8= +github.com/simple-icons/simple-icons v0.0.0-20201025110046-413f781fd706/go.mod h1:oOgUUt8yVYOso/wEBi2ojfZP2MU/xxiNccIpaE+jCvE=