Developer Journal

This is the developer log for devel.tech.

Common terms

term

definition

based

library of common code / framework shared across devel.tech and other websites.

rST, reST

reStructuredText.

role

reStructuredText interpreted Text Role

This is used to create specialized objects in the text that can be navigated internally and have specialized output.

Example reStructuredText:

:wikipedia:`Python (programming language)`

Example output:

Python (programming language)

November 2017

November 22nd, 2017

  • Support for tables on tablet devices

November 21st, 2017

November 19th, 2017

  • based learned command to prefetch favicons

  • checking for favicons on documents now builds a query to get results faster

November 18th, 2017

  • Internal: Support for favicon downloading

  • Internal: refactor based.applications to based.app

  • Move cross-reference node/transforms to based.app.references

November 17th, 2017

  • More efforts to improve resiliency of rST fixture imports

    • assure creation dates, modified dates, and slug titles stick if manually specified

    • reduce complexity of code for loading m2m relations into models

  • Reduce complexity of visit_title in Writer

  • Move filtering / search logic to models

  • Fix filtering logic to include all ancestors, instead of just root taxonomy, for available filters.

November 16th, 2017

  • rST Fixtures learned to import time of day

  • Refactor text extraction and their tests into separate modules

  • Split metadata processors into a pipeline, configurable via settings

  • Refactor reStructuredText post and page publishers

  • Internal: adjust linting setting for single quotes

November 15th, 2017

  • Improvements to the resilience of fixture loading

November 14th, 2017

  • Internal: refactor rST fixture system

    • rename rst.growth -> rst.fixtures

    • rename growth/ to fixtures/

  • Improve ad injection to append to end of section, fix issue where ads could show up inside admonitions

  • Add table of common terms to changes

  • New role, :file: , supports files and directories, examples:

    • :file:`/root/` -> /root/

    • :file:`$HOME/vim/` -> $HOME/vim/

    • :file:`./vimrc` -> ./vimrc

    • :file:`./path/to/file` -> ./path/to/file

    • :file:`./path/to/directory/` -> ./path/to/directory/

  • New role: :exe: , for applications that are executable

    • :exe:`./node_modules/.bin/webpack` -> ./node_modules/.bin/webpack

    • :exe:`/usr/bin/vim` -> /usr/bin/vim

  • New role: :manifest: , for artifacts and configurations:

    • :manifest:`package.json` -> package.json

November 13th, 2017

  • Upgrade bulma to 0.6.1

  • 301 Permanent redirect missing and mismatched slug_title's to the correct slug.

  • UX: Center align login form / sign up form

  • UX: Remove "remember me" from login form

  • UX: Use sans-serif font for :kbd:

November 12th, 2017

  • Refactor ad injection

    • Inject ads at end of sections

    • Large posts: Only show ads if they content inside the section is ample enough

    • Small posts: If post isn't a minimum length, don't inject any ad

November 11th, 2017

  • Tweak styling in table of contents:

    • bold sections being scrolled into, instead of changing bg

    • minor css3 transition when bolding active item

    • lessen padding to o allow more space for text / nested sections

  • Internal: Refactor filtering / facet engine

November 9th, 2017

  • Change pink highlight color to orange

November 8th, 2017

  • Overhaul code-highlighting

    • Inline code snippets (e.g. {{this}} ) are now processed through pygments, just like code blocks.

      {# this is a "code block" #}
      
    • CSS for highlighting code has been normalized, removing any ambiguity between code blocks and inline code

    • Automatic detection of inline code snippets via pygment's guess_lexer, in addition to improved detection of jinja-style template languages, reStructuredText, and shell commands

    • Support for TOML code blocks

    • Retire highlight.js. Improves performance by lowering JS/CSS file size.

November 7th, 2017

  • Port webpack configuration into based. This makes reusing common components from based easier down the road.

  • Make :hn: icon orange: example

November 6th, 2017

  • Internal: pluarlize taxonomy-related relationships

  • New feature: related posts

  • Roles learned to emphasize text, example:

    :leanpub:`*The Tao of tmux* <the-tao-of-tmux>` -> The Tao of tmux

  • New role: :url: . It behaves like a normal docutils link but allows emphasis and strong formatting. Examples:

    • :url:`https://google.com` -> https://google.com

    • :url:`link <https://google.com>` -> link

    • :url:`*emphasized* <https://google.com>` -> emphasized

    • :url:`**strong** <https://google.com>` -> strong

November 5th, 2017

  • Results from Amazon :amzn: roles are stored in the database and checked for before calling Amazon product API

  • Internal: Refactor view logic to move reStructuredText publishing into the view. This prevents duplicate renders.

  • Internal: Refactor reStructuredText to publish from a doctree and decouple function to publish doctree from source. This allows direct usage of a function to extract ToC/sidebar from doctree. This prevents additional duplicate renderings.

  • Internal: Improve role loading mechanism

    • Better detection of function/class style roles

    • Make all roles local

  • Move ad injections out of Writer and into a pure transform that's applied when publishing html

  • Performance: utilize @cached_property memoization in views to avoid redundance method calls

  • Remove redundant db requests when pulling metadata

  • Internal: Pulling post abstract information (for metadata, and protentially previews in the future) is now done via doctree

  • Internal: split up post views into edit/detail/list

November 4th, 2017

  • Internal: Increase accuracy of intersphinx cross-reference resolution in cases where the same target is specified.

  • Internal: Roles are now specific in settings as import strings. This makes roles optional for any website using the based library.

  • Removing some unused docutils-related css

  • Convert some doctuils-related CSS to SCSS

  • Beginning on work to make remote roles, such as Amazon, more resilient:

    • Better error handling. If API connection with amazon fails, inline the error instead of crashing the page rendering.

November 3rd, 2017

November 2nd, 2017

  • Ensure directory-based projects get timezone information

  • Filtering by taxonomy now shows the topic, programming language, or platform in the URL

  • Fix issues where filters would sometimes return duplicates

  • Internal: Move slugification / lower-case special words to import_string statements in settings. This keeps devel.tech-specific code out of based.

  • :kbd: role learned tp split sequential keys, example:

    :kbd:`leader,a` -> leadera

  • New role: :amzn: , examples:

  • New role: :hn: , examples:

  • New role: :leanpub: , example:

November 1st, 2017

  • UX: Move icons to the left of links (used to be on right)

  • New docutils role: :gh: , examples:

  • New wikipedia role: :wikipedia: , example:

  • New pypi role: :pypi: , example:

  • New ReadTheDocs.org role: :rtd: , examples:

  • New role: :kbd: , example:

    • :kbd:`esc` -> esc

October 2017

October 31st, 2017

  • Posts learned to link to other posts via their slug_id. This paves the way for resilient interlinking between articles.

  • Consolidate jobs and cv applications back into based

October 30th, 2017

  • Improved error pages

October 29th, 2017

  • Split JS devDependencies into based

  • Template simplifications for sister website

October 27th, 2017

  • Improvements to resilience of ToC menu javascript. Fix issue where scrollbar would show prematurely.

  • Internal: Refactor posts to use pages centrally, this sets the way to make templating / editing for multiple pages smoother

  • Fix titles pages

October 26th, 2017

  • Internal: Decouple reST transforms and directives to be configurable via django settings / class string imports

  • Split up RST transforms into separate files

  • Split up meta view mixins to separate files to avoid race condition

  • Refactor based base template to work on a sister website also using based

  • Port jquery, smooth-scroll, and ScrollMagic to based

  • Split up highlighting and ToC scroll navigation into separate bundles

  • Implement based base template and update page on HSKFlashCards

October 25th, 2017

  • Internal: Remove unused context processors

  • Internal: Spruce up templatetags, move over tags to based

  • Internal: Move over bulma and rst templates to based

  • Improvements to ToC menus when refreshing at bottom of pages

  • Fix: green coloring on buttons / notifications was lime

  • Internal: conslidate sidebar layouts so we always use the one that shows up well on mobile.

October 24th, 2017

  • Internal: More sprucing up of template tags

  • Pagination at bottom of multi-page articles

  • Improve reliability of scrolling menus when at bottom of page

  • Start linting JS airbnb style

October 23rd, 2017

  • Table of contents learned to handle multiple pages

October 22nd, 2017

  • Posts learned to have multiple pages

October 21st, 2017

  • Update codemirror to 5.31.0

  • Move default position of ads lower in content

October 19-20th, 2017

  • Internal: consolidation of RST libraries

    • Improvements to RST data imports

    • Initial work on preparing multi-page posts

October 18th, 2017

  • Internal: Improvements to intersphinx importing

October 17th, 2017

  • Internal: Rename "nodes" to "posts" to avoid conflict with django template nodes and docutils nodes

  • More internal refactoring to use intersphinx links / references without sphinx

  • Consolidate "Features" to use same components as other posts

October 16th, 2017

  • Improvements to cross-site documentation referencing speed

  • Improvements to rendering RST pages (caching)

  • Improvements to cross-site linking parsing and display

October 15th, 2017

  • Non-sphinx pages learned to process and use intersphinx cross-references.

October 14th, 2017

  • Improved support for subtitles

  • Fixed issue where ads would be injected in changelog

  • Fix issue where roles weren't added correctly to docutils

  • Smarter ad suggestions

  • Overhaul reStructuredText tags

October 13th, 2017

  • Remove unused sections (news, ask, jobs) for now until backends are done.

  • Internal: Move to fabric3 + fabtools fork

  • Internal: Upgrade back to python 3

  • Internal: Improvements to reStructuredText ad injector

October 12th, 2017

  • Internal: Migrate to Pipenv

  • Internal: Deployment script updates for migrating

  • Internal: Deployment script update for flushing redis

  • Internal: Site fixtures learned how to import directories. This will be used in future content shared in open source repositories.

October 10th, 2017

  • Update bulma to 0.6.0

October 9th, 2017

  • Fix mobile/tablet view menu color

  • Internal: More decoupling of based framework form templates and SASS.

October 8th, 2017

  • Pages powered by reStructuredText learned to toggle ads off

  • Updated open source page with sphinxcontrib-websupport contributions

  • Internal: Split off based into separate repo

  • Internal: More organization of fabric files

October 7th, 2017

  • Internal: Fabric scripts for deploying on Ubuntu servers

September 2017

September 27th, 2017

  • Internal: Continued on job index features HackerNews jobs

September 26th, 2017

  • Internal: Initial work on jobs section and database

September 25th, 2017

  • Internal: Initial GEOS support

September 24th, 2017

  • Internal: Automated install of geographic entities (borders, cities, regions, countries) for use in job index / ads.

September 23rd, 2017

September 22nd, 2017

  • Fix issue with extra line above text when importing posts

September 19th, 2017

  • Update bulma to 0.5.3

September 18th, 2017

  • Split out CSS/JS between based and devel.tech

  • Only load JS for highlighting / scrolling when required

  • Handle special cases when capitalizing titles

September 17th, 2017

  • Refactor of front-end CSS/JS into based project

September 16th, 2017

  • Performance: Shrink front-end JS by 66%

  • Redesign email address change page

  • Internal: mammoth refactor of reuseable of reuseable components into new package

September 15th, 2017

  • Internal: switch from npm to yarn

  • Internal: Refactor UX assets

  • Internal: Simplifications to deployment process

September 14th, 2017

  • Fixes for dropdown menu on touch sizes

  • Fixes for hero height in bulma 0.5.2

  • Re-wire in CodeMirror

  • Styling for CodeMirror when focused

September 11th, 2017

  • Upgrade bulma to 0.5.2

September 9th, 2017

  • (backend) Intersphinx pages on sphinx pages are now db-driven

September 7th, 2017

  • Improved copying of shell snippets. You can now select shell statements without copying the prompt.

  • Added syntax highlighting for inline code statements

September 6th, 2017

  • Feature pages now show roaming table of contents (a long time in the making)

September 1st, 2017

  • Improved support for content without sidears

  • Performance: Improvements for static file serving

  • External links on docutils-powered pages now show icon next to them

August 2017

August 31st, 2017

  • Performance: Minify CSS

August 24th, 2017

  • Major refactor underneath the hood to make way for "threads", our comment / answer system.

August 22nd, 2017

  • Initial improved search and filtering

    • You can now filter through the available topic, platform, and programming language of currently indexed content.

  • Open source contributions to django-filter

August 21st, 2017

  • New section: Snippets

  • Hide ToC on content pages where they are empty empty

August 18th, 2017

  • Fix initial height of scrolling table of contents

  • Experiment with colored BG on desktop resolutions

August 16th, 2017

  • CSS fixes for tab colors on main listing pages

August 11th, 2017

August 10th, 2017

  • Additional tweaks for sticky navigation sidebars

  • Add sticky table of contents to site changes

  • Smooth scrolling for internal navigation links

August 9th, 2017

  • More effort to slim down CSS footprint to make the site experience faster

  • UX improvements to node content pages

  • Add ToC to content pages on right sidebar (works with mobile)

  • Section titles now show an link icon on mouseover + link to internal reference

  • Content ToC's learned to scroll and activate upon reaching sections (scrollspy)

August 8th, 2017

  • UX tweaks to features listing, content listings

  • More SEO tweaks (structured data)

August 7th, 2017

  • Adjustments for future compatibility with AMP-powered pages.

  • Styling adjustments for list items

  • Update bulma from 0.5.0 to 0.5.1

August 6th, 2017

  • Support for twitter cards and open graph

  • Friendlier URLs for content

  • OpenGraph support

  • Sitemap

August 5th, 2017

  • Add content-type/app colorings to labels

  • Fix redirects upon editing / deleting content

  • Fixes for docutils scss

August 4th, 2017

  • Internal changes to initial seed data import system

  • Internal changes to URL system

  • Users can now delete their own posts

  • Lights on! Site index now has a list of content

  • More! User profiles now list content

August 3rd, 2017

  • Add styling for select boxes

  • Fix author submission tag

  • Enhancements for slugs in titles and labels, e.g. C++ will slugify as cpp

August 2nd, 2017

  • Redo classification system

    • Remove subjects

    • Add Platform (OS), Programming Language, and Topic

      These were picked because they are the three main diagnostic classifiers of technical issues.

  • Remove attachments (for now)

  • Internal tweaks to javascript packaging

August 1st, 2017

  • Internal updates for data imports

    This is something you won't see directly, but it will power the initial writings I plan to put on this website. All content will be organic and drawn up by me to assure the highest quality.

    To begin, we've created our firsts tips.

July 2017

July 31st, 2017

  • Update date format on node pages

July 30th, 2017

  • Tweaks to profile sidebar

  • Tweaks to docutils-related CSS

July 29th, 2017

  • Improvements to JS/CSS generation

  • Improvements to CDN (Use Amazon S3)

  • Upgrade bulma 0.4.4 -> 0.5.0

July 27th, 2017

  • Open source: improvements to django-activeurl

  • UX improvements for change password, forgot passowrd, login, and sign up page

July 26th, 2017

  • Convert rest of website to use bulma

  • CSS flexbox fix to keep footer at bottom

  • Re-organize footer layout

  • Remove remaining bootstrap4 pages

  • Rename Philosophy -> Values

  • Internal update to color schemes

July 25th, 2017

  • Fix bug where CSS wouldn't be available on Question pages

  • Fix bug where ?next= url would duplicate on login/signup pages

  • Clean up internal docutils Table of Contents code

  • Add Privacy Policy and Terms of Service

July 24th, 2017

  • Begin theming forms for new site style

  • Fixes for top navigation colors on active links

  • Notifications with site style

  • New update page for open source contributions

July 23rd, 2017

  • Begin rework of site design framework from Bootstrap 4 Alpha 6 -> Bulma.

    See also: Tweet about site redesign

    • Beginning converting updates pages

    • Top navigation styling

July 22nd, 2017

  • Internal improvements to allow table of contents in sidebars for pages using reStructuredText

July 20th, 2017

  • Redesign app-specific sublinks to be on their own line in the footer

July 19th, 2017

  • Dropdown hover/active colors now match theme

  • Dropdown items now have icons

  • User profile link moved to dropdown

  • Theme password change page

  • Add notifications users add and change things

July 18th, 2017

  • Updates to sign in form

  • Add page for changing email and password

  • Internal improvements for error monitoring

July 17th, 2017

  • Page titles should work for all content types

July 16th, 2017

  • Don't show usernames for author-less posts.

July 15th, 2017

  • Use section-based schemes on nodes (used to be subject-based)

  • Prohibit invalid usernames

July 14th, 2017

  • Site colors now change upon section instead of subject

  • Add colors to icon on active sections

  • Make default site color blue

  • Get email working on sign up

July 12th, 2017

  • The values page now uses reStructuredText.

  • Added a role to cite reverse django url's via docutils roles.

  • Start consolidating color-related SASS into maps

July 11th, 2017

July 9th, 2017

  • Initial changelog