ggoss
Joined 11 years ago
Joined 11 years ago
Posts are written in Markdown with simple formatting, templates are HTML/CSS with Jinja2 templating, and it includes support for things like automatic table-of-contents generation for posts, blog index pagination, tags, related posts (manually tagged, for now), comments (using utteranc.es and GitHub issues), and automatic image compression/scaling/caching (between builds). Eventually, I intend to add things automated 'related posts' list generation, but haven't gotten around to it yet.
[0]: https://github.com/ggoss/sitegen
Remote: No
Willing to relocate: Preferred; US only
Technologies:
• Rapid-prototyping of electro-mechanical systems
• 3D-printing (Cartesian, Delta), metalworking, woodworking, and machining (mill, lathe, etc)
• Mechanical 3D Modeling (PTC Creo, OpenSCAD)
• Electronic design & EDA (KiCAD)
• Prototyping using off-the-shelf electronic development platforms and custom hardware, and a range of sensor and actuator modalities
• Python (Numpy, Pytorch, Jupyter, Tensorflow, OpenCV)
• MATLAB
• Embedded C/C++ (primarily on Atmel and ARM microcontrollers)
• Desktop and embedded Linux (primarily on Ubuntu and Debian-based distributions like Armbian)
Résumé/CV: https://garrettgoss.com/resume.html
Blog/Portfolio: https://garrettgoss.com
Email: garrettgoss at gmail
Blog post generation from Jupyter Notebooks is definitely something that I plan to add to mine. Hopefully `nbconvert` and my Jinja2 templates get me 90% of the way there; having yours as a reference will be useful if anything really trips me up.
Taking a look at your blog post, don't forget that Bootstrap has a lot of classes built in that make prettifying things like tables really easy [1]. In Sitegen, I apply a few Bootstrap classes to all tables in the BeautifulSoup object like so:
for table in soup_body.find_all('table'):
table['class'] = 'table table-striped table-sm table-hover'
return soup_body
Refer to the `add_table_tags` function here [2] to see what I did directly.[1] https://getbootstrap.com/docs/4.3/content/tables/
[2] https://github.com/ggoss/sitegen/blob/master/sitegen/md_proc...
It's pretty cool that, despite using different languages and implementations, we converged on fairly similar outputs. That said, I may need to borrow some ideas from yours!
Next, I'd like to make improvements to navigation and article discoverability on the site; I'm not yet sure what changes I'll make to the generator to accomplish this, but I'm sure there will be some (if you have any suggestions, I'd be glad to hear them). After that, we'll see!
Thanks again for having a look!
As for Hexo, it looks like a great option, but it's written in Javascript — a language and ecosystem that I'm not terribly familiar with. While I could certainly learn it, doing so specifically to use Hexo (which I'd then need to configure, and possibly extend to my liking) adds an extra yak I'd need to shave to get started. I'm sure I could use it without learning Javascript, but troubleshooting or extending it would be more difficult, and I'd still need to adapt to the workflow it was designed around.
I was looking for a static site generator with all of the features I knew I wanted (like table of contents generation and seamless image compression/scaling), and all of the features I didn't yet know I wanted (like specified/fixed table column widths), so it needed to be easily extendable. I also wanted to get off the ground quickly, so it needed to written in a language that I was already comfortable with. Lastly, and most subjectively of all, the workflow needed to feel right.
Ultimately, it came down to the choice of (a) spending my time learning how to adapt to someone else's ideal solution, or (b) spending my time creating my own (or something like it). I chose the latter, and like you said, it was a great learning experience.
Thanks for taking the time to have a look.
This barely scratches the surface. This process, along with others that modify how DNA is folded, brings certain genes closer together (while moving others farther apart), increasing (or decreasing) the likelihood of all sorts of first, second, and third order (...) interactions between them and their products.
And we've only just begun...
My question: will the debris Musk will need to transport away from the next "beta-test" city happen to contain large quantities of lithium? Or will his current suppliers have a new source of (too-good-to-refuse) industrial machinery?
Aside from the effects that wealth can have on early education (which can't really be dealt with effectively so late in the education process anyways), this would eliminate wealth as a barrier to higher education or to continuity of higher education, and protect students from both predatory lenders and misleading marketing by universities. This would also incentivize colleges to invest more heavily into the aspects of education that actually contribute to career success (e.g. practical skills over fancier stadiums) and to rebalance the number of degrees they offer in each field to what is actually valued by society. For example, if they graduate too many people with degrees in communication, and only half get jobs and pay for the education, then maybe they offered too many communication degrees. Likewise, if every mechanical engineer graduated paid highly for their educations in the 10 years post graduation, they should consider offering more of those degrees. Interestingly, this would incentivize high-value education without any more information than level-of-payment; if, for some unknown reason, all of a university's 'basket weaving' graduates make tens of millions after graduation, then you don't need to know how they made so much money to know that you did something right in how you educated them.