9 votes

What programming/technical projects have you been working on?

This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?

7 comments

  1. [2]
    Apos
    Link
    I've been working some more on my shapes library, I added rectangles to the API snip. I managed to do some really nice anti-aliasing so it looks really smooth. I've also reached a pretty big...

    I've been working some more on my shapes library, I added rectangles to the API snip. I managed to do some really nice anti-aliasing so it looks really smooth.


    I've also reached a pretty big milestone for my map editor. It's designed as an ingame map editor so that I can modify my maps while the game is running. I coded it as it's own project so that I can reuse it for my many projects.

    I can work on infinite maps, have different logic for any item types. For example, some objects generate a sort of nav mesh for pathfinding snip1, snip2. I got a dynamic grid for snapping objects snip3. Undo redo works too.

    Main thing to do now is to work on the interface. I'm working on a UI framework in a separate library. Tomorrow or for the rest of the week, I'd really want to figure out how to do overlapping UI elements for example tooltips, drop down menus, floating windows, etc. The API is inspired by IMGUI. It looks like this: (It's really easy to do dynamic UIs)

    Panel.Push();
    if (Button.Put("Show fun").Clicked) {
        _showFun = !_showFun;
    }
    if (_showFun) {
        Label.Put("This is fun!");
    }
    if (Button.Put("Quit").Clicked) {
        Exit();
    }
    Panel.Pop();
    

    I'd really like to avoid doing predefined "layers", but it's not right away clear how I can manage that. I have a vague idea that I'll need a way for components to reorder themselves internally somehow. btw, something that is shown on top of something else should have it's input be consumed first, but it's rendering happen last.

    5 votes
    1. Apos
      Link Parent
      Added line segments just now to my shape library! snip They were more annoying to add than the other shapes since they go from a point a to a point b and are rounded. I draw the shapes on quads in...

      Added line segments just now to my shape library! snip

      They were more annoying to add than the other shapes since they go from a point a to a point b and are rounded. I draw the shapes on quads in a pixel shader. The line quad had to account for a bunch of extra space to give the line it's required thickness and I had to make sure the shader is working in the right coordinate system.

      1 vote
  2. jordan
    Link
    I wrote a bookmarklet script that opens every external URL on a website such as Tildes, Hackernews, Reddit, Lobsters, and other tech/programming related sites. It took about 30 minutes to code up,...

    I wrote a bookmarklet script that opens every external URL on a website such as Tildes, Hackernews, Reddit, Lobsters, and other tech/programming related sites. It took about 30 minutes to code up, and it basically scans the page for URLs, and then opens them in a bunch of tabs using the window.open() method.

    I wrote it so I could read random articles without having to make the decision (should I click this?). Because the 'should I click?' question is often loaded with subconscious bias and prevents me from opening the link. It's strange because once the article is open in my tabstrip it encourages me to read it.

    4 votes
  3. balooga
    Link
    Around 6 years ago I wrote a PHP app that fetches RSS feeds and stitches them together into a single feed. At the time I was using a podcast player that I liked, but it was the free version that...

    Around 6 years ago I wrote a PHP app that fetches RSS feeds and stitches them together into a single feed. At the time I was using a podcast player that I liked, but it was the free version that limits the number of feeds you can subscribe to. This was my cheapskate way to overcome the limitation without buying the app, but primarily it was just a good excuse to sharpen my skills.

    I eventually bought the app, and then switched to another app a few years later after the developer moved on to greener pastures. But all this time I've continued to use my aggregator app to manage my subscriptions. I'm not even sure why, tbh. Some part of me likes managing everything in a config.json file instead of my podcatcher's UI, even though it's more of a hassle to SSH into my server to do it. I think I just like the feeling of ownership.

    Anyway, fast-forward to this past week. A couple of the shows I listen to are coming through rewind.website (previously mentioned on Tildes), which is a great way to schedule out reruns of podcasts that have already aired. Unfortunately, I noticed that I hadn't heard any of those shows for a while, and discovered that rewind.website was down! Apparently it had been down for a couple weeks. (It has since come back online, but I had no guarantees that it would, and I was missing my shows.)

    Well, I haven't worked with PHP in years but over the weekend I rolled up my sleeves and implemented my own replay scheduler into the app so I don't have to rely on the third-party service. While I was at it, I added a filter feature so I can skip episodes that match regex. For example some of my shows occasionally run "ad" episodes to promote other podcasts or tease their premium content that's behind a paywall. And some shows like to rerun old episodes occasionally in the regular feed. Now all that stuff I don't want is automatically passed over.

    I was kind of surprised that a quick fix for some "broken" podcasts turned into a real value-add in this ancient project of mine. With the new scheduler and episode filters, I now actually have a reason for continuing to use my app. For the first time in 6 years it might actually be useful for other people besides myself.

    Too bad it's PHP.

    4 votes
  4. [3]
    Wolf
    Link
    I have a rough idea of an app that combines note-taking apps with a book reader. If I make highlights in while reading a book in the app, it turns that highlight into a flash card. So when I'm...

    I have a rough idea of an app that combines note-taking apps with a book reader.

    If I make highlights in while reading a book in the app, it turns that highlight into a flash card. So when I'm done with reading, I can review the flash cards later on. There would also be a functionality to link the flash cards together by concept, regardless of what book the flash cards came from.

    In the future, I want to add a calendar to keep track of my to-be-read pile, a journaling system that works with my flash cards, and something that can archive articles.

    This is a rough idea, I'm not even sure if this fits in this thread, but I want to create a more robust way of keeping track of my thoughts. Since most of my important thoughts come from books and articles online, i.e they are text-based, this kind of app seemed the best way to not only record them but find a way to link them and sift through them.

    Let me know if you guys have any adjustments. I am making this just for myself so I am not too worried about usability.

    2 votes
    1. [2]
      DataWraith
      Link Parent
      I've used a program called Polar in the past; it does a lot of what you're describing. They've gone a bit far with monetization for my taste, and kept adding useless new features, so I can no...

      I've used a program called Polar in the past; it does a lot of what you're describing.
      They've gone a bit far with monetization for my taste, and kept adding useless new features, so I can no longer recommend them, but I thought I'd mention them as a source of inspiration.

      You may also be able to find more information or apps by using the term incremental reading. I believe the SuperMemo flash card app was the first to pioneer this style of learning.

      3 votes
      1. Wolf
        Link Parent
        Thanks for the info! Polar does seem like a great source of inspiration. And I will look more into incremental reading when I have time to sit down and give it a thorough review.

        Thanks for the info! Polar does seem like a great source of inspiration. And I will look more into incremental reading when I have time to sit down and give it a thorough review.