• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. Advice for a soon to be college graduate

      I am going to be graduating with a BA in Economics in May, and I am overwhelmed, like most people, with all the stuff that I am now responsible for. I was mostly wondering what advice you wish you...

      I am going to be graduating with a BA in Economics in May, and I am overwhelmed, like most people, with all the stuff that I am now responsible for. I was mostly wondering what advice you wish you heard when you were 22.

      10 votes
    2. In one hour the Orlando Magic will play their most important match since 2012

      For those of you not following the NBA too closely you might not be aware but tonight the Magic play the Heat. For about the past month or so the two teams have been battling out for the final...

      For those of you not following the NBA too closely you might not be aware but tonight the Magic play the Heat. For about the past month or so the two teams have been battling out for the final seed in the Eastern Conference Playoffs. I'll re-cap why this is so important for the Magic since they're the team I support and maybe some Heat fans can hit back with a reply for why it's so important to them.

      1. In the 2011-2012 season the Magic entered a dark period called the "Dwightmare" where their best player who had led them to an NBA final Dwight Howard began stirring up drama within the organisation. Dwight was traded in the offseason to the Lakers giving serious deja vu of Shaq's time in Orlando. Since 2012 the Magic have consistently been cursed to mediocrity and missing the playoffs.

      2. Magic star Nikola Vucevic (a player acquired from the Dwight trade) has been constantly underrated and disrespected by people around the NBA. After 7 seasons Vuc has finally made the All Star team and has led this team to exceed the expectations set at the beginning of the season. It is also important to note that Vuc has not made the playoffs either since 2012 when he was playing with the 76ers.

      3. The Magic are 0.5 games behind the Heat, whoever wins this match will take the 8th seed from the other and likely bring a lot of motivation and momentum into their next games therefore being more likely to make the playoffs.

      There's many more storylines to this match than I've put in here but I feel that this gets the main gist of why it's so important to fans of the Magic.

      11 votes
    3. What have you been watching/reading this week? (Anime/Manga)

      What have you been watching and reading this week? You don't need to give us a whole essay if you don't want to, but please write something! Feel free to talk about something you saw that was...

      What have you been watching and reading this week? You don't need to give us a whole essay if you don't want to, but please write something! Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its pages on Anilist, MAL, or any other database you use!

      9 votes
    4. Make Emacs write (part of) your git commit messages

      I was fed up with the chores of writing consistent git commit messages, so a while ago I started developing a hook in Emacs which I used with Magit (actually git-commit-mode) which uses some crude...

      I was fed up with the chores of writing consistent git commit messages, so a while ago I started developing a hook in Emacs which I used with Magit (actually git-commit-mode) which uses some crude heuristics to fill out the COMMIT_EDITMSG buffer for me. Here is what it does (| stands for the cursor):

      • If only a single file modified, insert <filename>: |

        • If can figure out function name, insert <filename> (<functionname>): |
      • If only a single file added, insert Add <filename>|

      • If a TODO added to Readme.org, insert ; TODO <headline>|

      • If a TODO was DONE, insert ; DONE <headline>|

      • If the files are Readme.org and Readme.org_archive, and no new TODO's were added anywhere, insert ; Archive DONE|

      • If the file is .gitignore, insert ; Ignore |

      • If the file is TAGS, insert ; Update TAGS|

      I extend this when I find new cases where I repeatedly do the same thing. The code is below. It's probably a good idea to use it as a starting point and personalise it because this reflects how I like to write my commit messages (and I like pretending how they do it over at Emacs git repo). It is sloppy and probably buggy, but I don't think it can be destructive.

      Final note: I can't figure out how to set this up so that after this takes effect, the buffer is marked as modified. I want to flip the modified bit so that in some cases I can just hit C-c C-c and go. But I need to modify the buffer somehow to commit in some cases (I just type C-o to open a new line in those cases). Here is the function:

      (defun gk-git-commit-mode-hook ()
        "Set up git commit buffer."
        ;; If a single file is modified, prefix the message w/ it.
        (let ((modified-re "^#	modified:")
              (new-re "^#	new file:")
              (issue-re "^[+\\- ]\\*+ \\(TODO\\|DONE\\) ")
              current-defun filename addp onlyp issuep)
          (save-excursion
            (with-current-buffer "COMMIT_EDITMSG"
              (goto-char (point-min))
              (re-search-forward "^# Changes to be committed:" nil t)
              (forward-line)
              (beginning-of-line)
              (cond ((looking-at modified-re)
                     (re-search-forward ":   " nil t)
                     (setf filename (thing-at-point 'filename t)))
                    ((looking-at new-re)
                     (re-search-forward ":   " nil t)
                     (setf filename (thing-at-point 'filename t)
                           addp t)))
              (setq onlyp (progn
                            (forward-line)
                            (not (or (looking-at modified-re)
                                     (looking-at new-re)))))
              (when (and onlyp (equal filename "Readme.org"))
                (goto-char (point-min))
                (when-let* ((pos (re-search-forward issue-re nil t)))
                  (setq issuep (progn
                                 (re-search-backward "\\*" nil t)
                                 (buffer-substring (1+ (point))
                                                   (line-end-position))))))
              ;; Try to set ‘current-defun’.
              (when onlyp
                (save-excursion
                  (goto-char (point-min))
                  ;; Error if not found, means verbose diffs
                  ;; not enabled.
                  (re-search-forward "^diff --git")
                  (goto-char (line-beginning-position))
                  (let ((str (buffer-substring (point) (point-max)))
                        (default-directory (expand-file-name "..")))
                    (with-temp-buffer
                      (insert str)
                      (diff-mode)
                      (goto-char (point-min))
                      (setq current-defun (diff-current-defun))))))))
          (if onlyp
              (cond
               ((and issuep (not addp))
                (goto-char (point-min))
                (insert ";" issuep))
               ((equal filename "TAGS")
                (goto-char (point-min))
                (insert "; Update TAGS"))
               ((equal filename ".gitignore")
                (goto-char (point-min))
                (insert "; Ignore "))
               (filename
                (goto-char (point-min))
                (if addp
                    (insert "Add " filename)
                  (insert
                   filename
                   (if (and current-defun)
                       (format " (%s)" current-defun)
                     "")
                   ": "))))
            (when (and (equal filename "Readme.org")
                       (save-excursion
                         (goto-char (point-min))
                         (re-search-forward (concat modified-re " +Readme.org_archive")
                                            nil t))
                       (save-excursion
                         (goto-char (point-min))
                         (re-search-forward "\\-\\*+ DONE" nil t))
                       (not
                        (save-excursion
                          (goto-char (point-min))
                          (re-search-forward "\\+\\*[\\+\\-] TODO" nil t))))
              (goto-char (point-min))
              (insert "; Archive DONE")))))
      
      (add-hook 'git-commit-mode-hook #'gk-git-commit-mode-hook)
      

      Hope you find it useful.

      12 votes
    5. Change the e-mail address.

      Is it possible to change the e-mail address my Tildes account is using? Asking this since I have switched from GMail to ProtonMail and want to move all my accounts over to ProtonMail as well.

      8 votes
    6. State of WebRTC outside of major browsers

      I've been trying to set up a reliable lightweight solution for high quality, low-latency webcam (v4l2) streaming from Linux server to browsers, allowing for small (1-5) number of concurrent...

      I've been trying to set up a reliable lightweight solution for high quality, low-latency webcam (v4l2) streaming from Linux server to browsers, allowing for small (1-5) number of concurrent viewers.

      The obvious choice here is WebRTC, which when used through browser APIs, works wonderfully. It has low latency and automatic quality adjustment depending on network performance.
      I also checked out RTSP and RTMP, which are not supported without browser plugins. Next candidates were DASH and HLS, but while they provide high quality, they also have high latency.
      For a while I used MPEG1 streaming through Websockets (using jsmpeg library), which worked and had low latency, but the video quality was bad.

      Back to WebRTC - It seems like reliable, lightweight and maintained projects are really hard to find. So far I've found a few WebRTC media servers, but they're overkill for my use case:

      • Janus
      • MediaSoup
      • Kurento (unmaintained)

      I also tried implementing this functionality using low level Gstreamer elements in Python using PyGObject, but that's proving to be rather complicated with a ton of extremely low level implementation details.

      If anyone has tried doing something similar, I'd really like to hear what (if any) problems you had and if you found any sane solutions. Next thing on my list is using headless Chromium in combination with Puppeteer, but I'd really prefer more lightweight solutions.

      9 votes
    7. How much actual work do you do in a day?

      After watching Office Space for the first time a few weeks ago, I was struck by the scene where Peter is talking about his average working day, and it got me to wondering about how much actual...

      After watching Office Space for the first time a few weeks ago, I was struck by the scene where Peter is talking about his average working day, and it got me to wondering about how much actual work I do at my job. I'm pretty sure that even on a good day, I put in less than 2 hours of actual graft. The rest is just mindless internetting, chatting with my colleagues, and wishing I was elsewhere.
      So I'm curious how much work other people actually do in a day, and how you pass the time when you're not doing anything at all?

      30 votes
    8. Mental health support / discussion thread.

      it's apparently been awhile since we had a proper one of these on tildes (we've had a few mental health related topics but nothing direct like this), and seeing as the site has grown a bit (to say...

      it's apparently been awhile since we had a proper one of these on tildes (we've had a few mental health related topics but nothing direct like this), and seeing as the site has grown a bit (to say the least) since the last one there's probably some utility in a new one of these. share your experiences/whatever you've found helps/etc. i think this is pretty straightforward.

      20 votes