From 748f91e5debb4230d9e3bd4279984574700026a9 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Sat, 18 Jan 2020 22:59:15 -0800 Subject: [PATCH] The CV update. --- voussoir.net/cv/api.svg | 52 ++ voussoir.net/cv/epub.svg | 26 + voussoir.net/cv/etiquette.svg | 81 +++ voussoir.net/cv/ffmpeg.svg | 245 ++++++++ voussoir.net/cv/github.svg | 86 +++ voussoir.net/cv/hire.svg | 175 ++++++ voussoir.net/cv/html5.svg | 50 ++ voussoir.net/cv/inkscape.svg | 752 +++++++++++++++++++++++++ voussoir.net/cv/korean.svg | 44 ++ voussoir.net/cv/python.svg | 81 +++ voussoir.net/cv/sqlite.svg | 56 ++ voussoir.net/cv/subredditbirthdays.svg | 106 ++++ voussoir.net/cv/timesearch.svg | 76 +++ voussoir.net/cv/voussoirkit.svg | 120 ++++ voussoir.net/cv/ycdl.svg | 113 ++++ voussoir.net/index.html | 347 +++++++++++- 16 files changed, 2394 insertions(+), 16 deletions(-) create mode 100644 voussoir.net/cv/api.svg create mode 100644 voussoir.net/cv/epub.svg create mode 100644 voussoir.net/cv/etiquette.svg create mode 100644 voussoir.net/cv/ffmpeg.svg create mode 100644 voussoir.net/cv/github.svg create mode 100644 voussoir.net/cv/hire.svg create mode 100644 voussoir.net/cv/html5.svg create mode 100644 voussoir.net/cv/inkscape.svg create mode 100644 voussoir.net/cv/korean.svg create mode 100644 voussoir.net/cv/python.svg create mode 100644 voussoir.net/cv/sqlite.svg create mode 100644 voussoir.net/cv/subredditbirthdays.svg create mode 100644 voussoir.net/cv/timesearch.svg create mode 100644 voussoir.net/cv/voussoirkit.svg create mode 100644 voussoir.net/cv/ycdl.svg diff --git a/voussoir.net/cv/api.svg b/voussoir.net/cv/api.svg new file mode 100644 index 0000000..0081703 --- /dev/null +++ b/voussoir.net/cv/api.svg @@ -0,0 +1,52 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/voussoir.net/cv/epub.svg b/voussoir.net/cv/epub.svg new file mode 100644 index 0000000..f330974 --- /dev/null +++ b/voussoir.net/cv/epub.svg @@ -0,0 +1,26 @@ + +image/svg+xml + + + \ No newline at end of file diff --git a/voussoir.net/cv/etiquette.svg b/voussoir.net/cv/etiquette.svg new file mode 100644 index 0000000..6c09fba --- /dev/null +++ b/voussoir.net/cv/etiquette.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/voussoir.net/cv/ffmpeg.svg b/voussoir.net/cv/ffmpeg.svg new file mode 100644 index 0000000..7d43139 --- /dev/null +++ b/voussoir.net/cv/ffmpeg.svg @@ -0,0 +1,245 @@ + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/voussoir.net/cv/github.svg b/voussoir.net/cv/github.svg new file mode 100644 index 0000000..56d6b32 --- /dev/null +++ b/voussoir.net/cv/github.svg @@ -0,0 +1,86 @@ + +image/svg+xml \ No newline at end of file diff --git a/voussoir.net/cv/hire.svg b/voussoir.net/cv/hire.svg new file mode 100644 index 0000000..3164551 --- /dev/null +++ b/voussoir.net/cv/hire.svg @@ -0,0 +1,175 @@ + + + + + + + image/svg+xml + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/html5.svg b/voussoir.net/cv/html5.svg new file mode 100644 index 0000000..9332fb9 --- /dev/null +++ b/voussoir.net/cv/html5.svg @@ -0,0 +1,50 @@ + + + + + + image/svg+xml + + HTML5 Logo Badge + + + + + HTML5 Logo Badge + + + + + + + diff --git a/voussoir.net/cv/inkscape.svg b/voussoir.net/cv/inkscape.svg new file mode 100644 index 0000000..897d2ce --- /dev/null +++ b/voussoir.net/cv/inkscape.svg @@ -0,0 +1,752 @@ + + + Inkscape Logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Andy Fitzsimon + + + + + Andrew Michael Fitzsimon + + + + + Fitzsimon IT Consulting Pty Ltd + + + http://andy.fitzsimon.com.au + 2006 + + Inkscape Logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/korean.svg b/voussoir.net/cv/korean.svg new file mode 100644 index 0000000..8cf7a88 --- /dev/null +++ b/voussoir.net/cv/korean.svg @@ -0,0 +1,44 @@ + +image/svg+xml \ No newline at end of file diff --git a/voussoir.net/cv/python.svg b/voussoir.net/cv/python.svg new file mode 100644 index 0000000..b33ec7f --- /dev/null +++ b/voussoir.net/cv/python.svg @@ -0,0 +1,81 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/sqlite.svg b/voussoir.net/cv/sqlite.svg new file mode 100644 index 0000000..d4a9cb2 --- /dev/null +++ b/voussoir.net/cv/sqlite.svg @@ -0,0 +1,56 @@ + +SQLiteimage/svg+xmlSQLite \ No newline at end of file diff --git a/voussoir.net/cv/subredditbirthdays.svg b/voussoir.net/cv/subredditbirthdays.svg new file mode 100644 index 0000000..9c227b1 --- /dev/null +++ b/voussoir.net/cv/subredditbirthdays.svg @@ -0,0 +1,106 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/timesearch.svg b/voussoir.net/cv/timesearch.svg new file mode 100644 index 0000000..f564470 --- /dev/null +++ b/voussoir.net/cv/timesearch.svg @@ -0,0 +1,76 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/voussoirkit.svg b/voussoir.net/cv/voussoirkit.svg new file mode 100644 index 0000000..7cd2fc3 --- /dev/null +++ b/voussoir.net/cv/voussoirkit.svg @@ -0,0 +1,120 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/cv/ycdl.svg b/voussoir.net/cv/ycdl.svg new file mode 100644 index 0000000..842f108 --- /dev/null +++ b/voussoir.net/cv/ycdl.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/voussoir.net/index.html b/voussoir.net/index.html index 2376ec9..5488d3e 100644 --- a/voussoir.net/index.html +++ b/voussoir.net/index.html @@ -7,39 +7,354 @@ -
- Ethan Dalool - GitHub +
+
+

Ethan Dalool

+
+
+
does Python
+
+
+
(and a dozen different disciplines)
+
+
+ + + +

Projects

+
+
+

Etiquette

+
+

Etiquette is a tag-based file organization system with a web interface, built with Flask and SQLite3. Tag-based systems solve problems that a traditional folder hierarchy can't: which folder should a file go in if it equally belongs in both? and how do I make my files searchable without littering the filenames themselves with keywords?

+

Etiquette is unique because the tags themselves are hierarchical. By tagging one of your vacation photos with the family.parents.dad tag, it will automatically appear in searches for family.parents and family as well. A traditional folder system, here called albums, is available to bundle files that always belong together without creating a bespoke tag to represent that bundle. Regardless, the files on disk are never modified.

+

https://github.com/voussoir/etiquette

+
+ +
+
+
+

Timesearch

+
+

Timesearch is a package of tools for archiving data from reddit.com. Subreddits, user posts, comments, CSS files, and community wiki files can be downloaded and easily updated.

+

Originally, it used the timestamp query parameter of reddit's elasticsearch, but since that feature's removal Timesearch instead queries the third-party pushshift.io database for preliminary data, then queries reddit for updated information about each item.

+

https://github.com/voussoir/timesearch

+ +
+
+
+
+

Voussoirkit

+
+

The voussoirkit library contains code that I have found useful to include in my other projects. Everything from bytestring that converts integer numbers of bytes into "3.145 MiB" strings, to pathclass and spinal which provides object-oriented file and directory operations and copy routines. Some modules boost cross-compatibility by smoothing over differences between Windows and Unix. This way I can easily deploy new features and bug fixes to all my programs.

+

https://github.com/voussoir/voussoirkit

+
+ +
+
+
+
+

YCDL

+
+

YoutubeChannelDownloader was born out of a dissatisfaction with YouTube's own interface for keeping track of which videos I have already watched, as well as a desire to integrate with youtube-dl. YCDL makes it easy for me to watch through a channel's catalog of videos, picking which ones I'd like to download while ignoring the others. Plus, as it creates an offline database, it will retain metadata about videos even after they are removed or deleted from the original YouTube channel.

+

https://github.com/voussoir/YoutubeChannelDownloader +

+ +
+
+
+
+

Epubfile & Sigilplugins

+
+

I use the wonderful program Sigil to edit epub files. Sigil has a python plugin system for which I have written a few modules. But, since the plugins can only operate on one book at a time while it is open in Sigil, I needed something a little different to edit epub files en masse.

+

Epubfile is a simple library for automatically processing epubs. It comes with a number of builtin routines for what I do most often: merging multiple epubs into a single file, normalizing the internal file structure, and renaming the cover image file to leverage CBXShell so I get thumbnails in Windows Explorer.

+

https://github.com/voussoir/epubfile

+

https://github.com/voussoir/sigilplugins

+
+ +
+
+ +
+
+

Reddit bots

+
+

This repository is in archive status now and is rarely updated. From 2014 to 2016 I learned Python, SQL, and HTTP by writing bots for reddit and contributing to PRAW, the Python Reddit API Wrapper. I took requests on /r/RequestABot and produced dozens of easily modifiable bots. The tasks ranged from "allow users to only make one post per day" to "allow moderators to write a post now and schedule it to appear later". With almost 400 stars now it is my most successful repository, though the code quality is not up to the same standards I have today.

+

https://github.com/voussoir/reddit

+
+ +
+
+ + + +

Tech interests

+ +
+
+

Python

+
+

Python has been my language of choice since I began learning it in 2014. In addition to the projects already mentioned here, I have an entire repository dedicated to scripts / utilities that I use from the command line, and I have an even greater number of unpublished scripts for personal or bespoke use. I do file management, HTTP, image processing, task automation, and more.

+
+ +
+
+ +
+
+

HTML/CSS/JS

+
+
If you want to view paradise
Simply press F12 and view it
+

This page, like the those in Etiquette and YCDL, was written entirely by hand and without the use of any jQuery, Angular, React, etc. HTML5, CSS3, and especially CSS Grid, have brought many quality of life features to the native experience. With some concessions, and the fact that I don't need to target non-modern browsers, I feel that my grasp of the core systems is better than that of someone who relies on a framework from day one.

+
+ +
+
+ +
+
+

SQLite

+
+

Some people tease SQLite for not being as big and featureful as something like MySQL, but I for one think it's one of the greatest gifts to the database ecosystem. Thanks to its fast and easy deployment plus cross-platform compatibility, sqlite databases tend to be the best choice for storing structured data. SQLite3 has been my go-to database since 2014 and hasn't failed me yet. Absolutely a staple for my projects listed here.

+
+ +
+
+ +
+
+

HTTP API Design & Use

+
+

During my development of Etiquette, I have continuously aimed to make the API as accessible and automateable as possible. Getting a peek behind the scenes is as easy as adding .json to the URL. I owe much of my early learning to my work with the reddit API, and since then I've regularly automated web interactions and scraped web data with Python and requests. For sites without an actual API to speak of, I'm pretty good at reverse engineering from the Network panel and javascript source. Try me.

+
+ +
+
+ +
+
+

Graphics

+
+

By now you've noticed that this page is overflowing with beautiful artwork... some of which is even mine! I enjoy using the free vector editor Inkscape to create logos and icons for my projects, with the occasional program to auto-generate vector files.

+

During my time working at the Cal Poly Pomona Learning Resource Center, I became very familiar with Google Slides to create attractive and innovative ways of sharing study tips with students.

+
+ +
+
+ +
+
+

Digital media & FFmpeg

+
+

I use FFmpeg practically on a daily basis to manage, convert, and analyze my media files. Although my educational background is in software development, my dream job would be something in digital media preservation, film & book scanning, archival, metadata management, etc. If you've got something going on in that field, let me know!

+
+ +
+
+ + + +

Other interests

+ +
+
+

한국어

+
+

2018년 10월부터 한국어를 공부하고 있습니다. 한국 영화를 많이 봤더니 어떤 아시아 언어를 배우면 한국어를 배우겠다고 결정했습니다. 진행이 조금 느리지만 일정하게 개선하고 있습니다. 매일매일 Anki를 쓰고 한국 전래동화 읽습니다. 다음 몇 년 이내 한국에 방문하면 좋겠습니다.

+
+ +
+
+ + + +

Contact

+ +
+
+

Hire

+
+

If you like what you see here, and you've got something that you need an EXPERT to tackle, send an email to hire@voussoir.net.

+
+ +
+
+ +
+
+

GitHub

+
+

Is this redundant by now? Yes, I think so.

+

https://github.com/voussoir

+
+ +
+
+ + - - -