• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~tech with the tag "software". Back to normal view / Search all groups
    1. I created my own audio player, here is my experiences with the process

      Overview If you want to see just the final result, check out my TiMaSoMo showcase post. This post does minimal amount of showcase of the final project, although it does include some pictures. If...

      Overview

      If you want to see just the final result, check out my TiMaSoMo showcase post. This post does minimal amount of showcase of the final project, although it does include some pictures. If you want to see a showcase of the software, the original author has made a great video showcasing it that is worth checking out: YouTube videoBlogpost for those who prefer reading. Instead, this post is more a discussion of my experience developing a device.

      Initial Planning

      The goal of this project was to create a dedicated audio player, to separate that capability from my phone. The main source of audio will be streaming Spotify, not local files. Although unfamiliar with them, I felt that a Raspberry Pi was a good baseline device. For audio, I had an old USB DAC/amp that I wanted to repurpose. Using this DAC/amp would allow for some of my harder to drive headphones to work, as well as just getting cleaner audio. Then, I was planning on just using an eInk touchscreen. The rationale for eInk was so that it would feel different than my phone, and just feel like it was intended for music instead of scrolling. The logic was if I put a regular LCD screen on, it would not differ from a smartphone, and therefore I might as well just connect my DAC to my phone and use that. For software, the plan was to just use either Android or some lightweight linux distro. The initial plan for batteries was to just use rechargeable AA batteries, so that I can easily swap them out. One major reason I wanted to go with the DIY route was for repairability, especially with batteries. If I got an existing Digital Audio Player (DAP) on the market, I knew that the Li-Ion battery would eventually go bad, and existing devices on the market may not be easily repairable.

      Hardware Sourcing

      My hardware approach was to buy one component at a time. That way, if I ran into an issue with the feasibility of the approach, I could pivot without having wasted money on all the components ahead of time. This approach did slow down development as I was frequently waiting on hardware, but was more fiscally responsible. In January I got a Raspberry Pi 3a+, and played around briefly with some different operating systems. The next part that was needed was to source the screen.

      Initial Plan for eInk

      The original goal was to try and get a touch eInk screen, roughly 5” for a reasonable price. I spent a few weeks trying different places to try and find one, but could not find one. Since I could not find one I started thinking about pivoting to an LCD screen. With this pivot, I started defining goals of the project more. If I were to just use an LCD touchscreen potentially running Android, what makes it different from using my phone? I spent a few weeks trying to define the goals of the project, and was not able to come up with satisfactory answers if I went with an LCD screen.

      Clickwheel design pivot

      In the process of trying to figure out my approach, I stumbled across this YouTube video. I felt like this would be a good starting point. It seemed to solve the issue of it not being another Android device, which was my main problem I was trying to solve. However there were a few parts of the implementation that I did not like:

      • It relied on using old used Apple hardware. This works for now, but over time it would become harder to source replacement parts.
      • I did not already have the hardware, so I would have to buy an old used iPod and strip it for parts
      • It was a bluetooth implementation, so I would have to figure out how to fit my DAC into an old iPod, which seemed unrealistic
      • The battery while replaceable, was a non-descript battery so getting a new replacement with the same form factor would be harder.

      Luckily, for the clickwheel, someone on the weekly programming project on Tildes pointed out this new clickwheel. Since that seemed to be a reasonable approach I ordered one and also got a small LCD screen from Amazon. Unfortunately, the screen used up all the GPIO pins and had non-existent documentation or drivers. I was unable to get the screen to work, so I returned it and ordered a Waveshare 2” LCD. I was intentional on finding one that could be a regular display without using too many GPIO pins. The Waveshare screen had significantly better documentation, and with a bit of work I was able to get it working. With that solved, I started wiring in the clickwheel, and creating basic code to detect basic inputs, which I then used to modify the original code for the Spotify player to handle my clickwheel (see below for comments on code modification). Once I had the screen and clickwheel, I could also develop the software while waiting for parts. Image showing the early iteration of the device

      The last main part I had to solve was batteries. Another helpful comment on the weekly programming thread on Tildes told me about 14500 and 18650 batteries. I sourced a 14500 charger and some 14500 cells from Amazon. I had some issues with the first charger I got, and since they were shipping directly from China, it meant the second one would take another few weeks. Picture of using the 14500 battery. The cells I sourced said they were 2500 mAh. I tried one out, and had playtime of about 30mins, not enough to even listen to a full album on a single charge, which is inadequate. I used a portable battery bank rated at 10000 mAh to set a benchmark, and that lasted significantly longer (I was probably around 50% after about five hours or so of playback). This indicated that the 14500 cell was falsely claiming capacity, which is apparently a common issue on Amazon. It also seemed like 14500s rarely have capacity above 700mAh, so I realized that a 14500 would not work. So I decided to upgrade to an 18650 cell, which I could source the actual battery locally from a reputable vendor, with a capacity of 3400mAh. Since I realized that small hobbyist electronics like this on Amazon were shipping directly from China, I started ordering from AliExpress for the charger, which saved me some money for the same part (and even picked up a spare just in case). Picture of me using the 18650 to listen to music on my balcony during the summer. Since I did not need the extra power of the RPi 3a+, and the battery was taking more space, I ordered a RPi Zero 2w+. I also ordered some micro USB ends to solder to to make internal cabling, as well as a USB-C port to use for charging. By May I had all the hardware parts I needed, and all that was left for hardware was to design a case to 3D print, which is detailed below.

      Software Development

      The first thing I tested was installing Raspotify which this project used, and set it up with my DAC. Since that worked, I started to program the clickwheel using GPIO pins. I had never used a RPi before, but found some easy tutorials on programming the buttons of my clickwheel in Python. Once the buttons were programmed, I had to figure out the rotary encoder, but was able to find a Github repo that had a working Python code to process the inputs. I was able to add that, and created a Python class that would handle all the inputs of my clickwheel. Once that was coded, I just had to incorporate that into the code for the Spotify player frontend. I forked the repo, and was greeted with at the top of the main file this comment:

      # This code is a mess.
      # This is me learning Python as I go.
      # This is not how I write code for my day job.”
      

      This was not an encouraging comment to read, as at the start my Python skills were relatively low. I was able to quickly find where the inputs from the clickwheel were being handled. The original code had clickwheel inputs being handled in a separate C program and then communicating to the Spotify frontend via sockets. Since my clickwheel code was handled via a Python class I was able to simplify it, and not require sockets to be used. With that working, I just had to set up all the required steps to get the project working. Unfortunately, the documentation for deployment was extremely lacking. I was able to find a Github issues post that provided instructions so was able to get it all set up. I was able to get to this phase by the end of March.

      Once I had it all working, I could start on expanding the software to fit my use case as well as start working on any bugs I encounter. I felt a good starting point in handling this was to start addressing the issue of “this code is a mess.” Cleaning up the code would be a good way to gain familiarity with the code as well as make it easier for me to address any bugs or future enhancements. I started work on creating a class diagram, but it was really tedious to do it from scratch with such a large codebase, so I deserted that plan quickly. I am thinking of creating some sequence diagrams from some features I implemented recently, which would help in general documentation to refer back to in the future. I did find some classes that would make more sense in separate files, so did do that. I also started adding in new features as well. The first was to implement a “hold switch” which turns off the screen and disables the clickwheel input. Before, the screen would be on a 60sec timer to turn off, but I felt that sometimes I would want to have the screen stay on (like if I am just sitting in a chair listening to music). This was a relatively easy feature to implement. One bug that kept on appearing is that the screen would frequently freeze on me, normally about 60sec into a song, but would update once the next song started playing. I spent several weeks tracking down this issue, thinking it was software related, as the screen used to timeout after 60sec. I also thought it might be a configuration of my OS, so did some debugging there as well. Finally, I plugged in my main desktop monitor, and realized when the small 2” screen would freeze, my desktop monitor would not. This lead me down to investigating the driver for my screen. I found an issue with someone having similar issues with the original driver that Waveshare forked. I then realized that there was a setting that the screen would stop updating if less than 5% of the pixels were changing. Once I changed that in the config file, the screen freezing issue stopped. I was able to solve this major issue by late July.

      The last major feature I have implemented is to create the ability to add new WiFi networks from the app itself. This was a needed feature if I wanted to bring it anywhere outside of my home, since 3rd Party Spotify apps cannot download music. Luckily, there was a search feature, which gave me a baseline for text input using the clickwheel. I was able to create a basic page that prompts for the input of a SSID and the password, and then adds that to /etc/wpa_supplicant/wpa_supplicant.conf and then restarts the wireless interface. I added this feature into the overall settings page I added, which also included other useful dev options, like doing a git pull for me to avoid having to SSH into the Rpi to do it. The settings page features were a part of my project for TiMaSoMo.

      Case Design

      I started work on the case in late May roughly. The plan was that I was going to design the case and have my friend who owns a 3D printer print out my design for me. To continue with the project goal of repairability, I wanted to avoid using glue for the case. Instead, I wanted to use heated inserts to hold all the components. I had not used any 3D modeling or CAD software before, so it was a learning experience. I settled on using FreeCAD, which I was able to learn the basics of what I needed relatively quickly. I started with a basic case design for a prototype, to help plan out how I would lay things out. On my computer screen, having the device be 40mm thick sounded fine, but after receiving the prototype I realized I would need to be aggressive in thinning out the design. However, this protoype in early June was very helpful in getting a better understanding of how I needed to design it. Case prototype pictures.

      The first iteration I was able to get down to 27mm, which was a significant improvement. I received this iteration in mid July. However, there were parts that did not fit properly. Most of the mounting holes were not aligned properly. However, the bigger issue was that at 27mm the device would not be thick enough to hold the DAC and screen stacked on top of each other. This iteration still had the DAC keep the original metal housing, so that I could easily remove it and use it as originally intended if I did not want to continue using my audio player. First case iteration pictures.

      The second iteration I decided to remove the metal housing of the DAC, which freed up a lot of internal space, with the main limiting factor of thickness being the 18650 battery. So I kept the thickness around 27mm, but had more internal space. Removing the metal case of the DAC was relatively straightforward, except figuring out how to secure it to the print. Luckily, there were two roughly 2.5mm holes in the PCB, that I was able to use to secure it. I also started to do a more complex design, since I was getting more experienced with FreeCAD. I also moved the RPi to the top of the case, so that the two parts of the case could easily separate, with only micro USB connectors being used between the parts in the top and bottom part of the case(Picture of third iteration showing this feature). For anyone who has had to repair electronics that did not fully separate due to ribbon cables (laptops are the worst for this it seems), you understand the quality of life improvement of having the two parts easily separate. I got this iteration of the case in early September, and found a few issues of parts conflicting. However, with the use of a dremel, I was able to modify it to get it to roughly fit (although janky in some parts).In this picture you can see the power switch, which I had to modify to sit outside the case. I wanted to fully assemble it, so that I could start using it and figure out where it needs to improve. The biggest issue aside from conflicting parts was that the top of the case was bulging, so I wanted to add another point of connection to prevent it. This bulge was partly caused by the screen cutout causing a weak point in the top of the case. Second case iteration pictures.

      The third iteration was part of my TiMaSoMo project. This was a relatively simple minor tweaks, as well as fix some minor pain points of the previous iteration. I reinforced the top significantly to prevent bending, as well as add a fifth point to secure it. I also added a recess to make accessing the switches for power and hold easier to use (although I think I messed up the hold switch one). Overall, this print worked well, and there is currently no plans for a fourth iteration. Fourth iteration pictures.

      Here is all four cases compared side by side

      What I learned

      The first lesson I had to learn was how to define project goals. Not being able to source an eInk screen had caused me to pivot, and in doing so I had to reflect on what truly mattered for my project. I knew that DAPs existed, so why build my own rather than buy one? Most DAPs on the market seem to be Android devices where they removed the phone functionality and added in quality audio components. Part of a dedicated audio device was to not have my phone be the everything device that they are, but a second Android device with an LCD screen and better audio components is not the solution. Luckily, I encountered the clickwheel based approach, which did solve that issue (and probably better than an eInk would have). Also, I wanted the device to be easily repairable. Li-Ion batteries go bad, which was another major concern for me with the current options of DAPs. Repairability was something that mattered to me, but I had to embrace what that meant for the form factor. If I went with a non-descript Li-Ion pillow battery, I could probably significantly reduce the size. Understanding that I wanted to avoid just being another Android device and have repairability and replaceable parts as the defining features were useful to keep in mind. That approach did result in compromise though, primarily in physical size at the end.

      The second big thing I learned was just the process of sourcing parts for a project like this. The closest project to this that I have done in the past is create a DIY cable tester. That simply just involved some switches, resistors, LEDs, and some AA batteries that I could all source locally. So having to buy more complex electronics where the documentation mattered was a learning curve for me. Luckily, early on I was ordering from Amazon, where returns were relatively easy. The problem with Amazon though was false advertising for batteries and some components were shipping directly from China. So, switching to AliExpress saved me money without adding any additional in shipping.

      Learning 3D modelling and getting stuff 3D printed was also a huge learning curve for me. I am glad that I got a very rough prototype printed early on in the process. In designing the prototype, I just was not concerned about saving space. However, once the prototype was printed and off my screen and into my hand, I realized how aggressive I needed to be in compacting things. The other thing with using FreeCAD is I learned too late in the process about part hierarchies, and I still do not fully understand them. Not using part hierarchies properly led me to have to do a redesign on each iteration, as moving mounting holes over a few mm would shift every part added after it. Luckily, my designs were relatively simple, but having hierarchies handled properly would have helped me iterate quicker. On top of getting prototypes in hand quickly, using imperfect prints and just adjusting the parts that didn’t work with with a dremel was useful. If I didn’t do that with the second iteration, I would not have dealt with the issue that the top of the case would bend out over time. Spending time using the imperfect device helped me figure out the issues to make the next iteration better.

      Future Goals

      The first goal I will add in future expansion is to add better documentation and create a better development workflow. Right now, my process includes pushing any changes I do (luckily I am using Github branches now), then pulling the updated repo and starting it on my Pi. However, I never test if it compiles properly before pushing, so I end up sometimes doing five pushes in ten minutes, playing whackamole with compilation errors. Being able to run a dev version on my desktop with keyboard emulation for inputs would be beneficial.

      Another big issue that I want to solve is that I need to clean up the audio on lower resistance headphones like my IEMs. There appears to be some electrical noise, that only sensitive devices like IEMs detect. The solution I am currently considering is to add in a capacitor on the voltage rail between the Pi and the DAC to hopefully get cleaner power.

      Another issue is that I currently have no indicator of battery life. Since it is an 18650 Li-Ion battery, I should be able to just detect the gradual decrease in voltage, and calculate battery percentage. However, GPIO pins appear to be unable to do that natively, so I may have to add in a small controller board to do it. I have not looked too much into this.

      There are a few UI/UX decisions that do not match my preferred way of listening to music. So over time I plan on gradually tweaking the UI/UX to match what I want it to be. A prime example of this would be that when I select an artist, I want it to present a list of their albums, instead of playing their most popular songs.

      I want to be able to use Spotify Lossless, since that has rolled out near the end of this project. Unfortunately, it seems that currently it will not be supported. Seems like Librespot (which is the basis for Raspotify) does not currently have a solution that does not involve working around Spotify’s DRM.

      Conclusion

      Overall, I am really glad I took on this project. It took a long time for me to get it to a finished state. However, the experience has been really fun, and I have learned some new skills. Also, having a dedicated device that all it does is stream Spotify is really nice. I always found myself whenever I was listening to music ending up scrolling on my phone for a bit more stimulation, and then realized I have not been paying attention for the past couple of songs. Having a device where all I do is just listen to music and leave my phone behind has been nice. Also, modifying the code to fit my preferred use case has been nice. There are points where I realize I do not like how something is laid out, but then I have agency to change the layout. Here are some pictures of the final device.

      If you want to build the device yourself, I will warn you that it has some rough edges. Also, the DAC/amp is discontinued, so sourcing that to fit inside the case would be tricky. However, my Github repo has all hardware listed, the code needed, and easy to follow software deployment instructions.

      30 votes
    2. Microsoft is adding AI facial recognition to OneDrive and users can only turn it off three times a year

      I didn't watch the whole video and I'm not familiar with the channel so I don't want to make this a link post, but here's the source: The Lunduke Journal I watched up to the point where the author...

      I didn't watch the whole video and I'm not familiar with the channel so I don't want to make this a link post, but here's the source: The Lunduke Journal

      I watched up to the point where the author explains how Microsoft tends to turn on all the privacy invading settings every time they push an update (not surprising). I guess if I had to use Microsoft products, I'd try to disable automatic updates and just do them twice a year in one go, while also turning off the settings I want off. Would it be practically feasible? I don't know. Having to go to those lengths to use some software just seems ridiculous.

      48 votes
    3. My PKM journey

      I've tried a LOT of Personal Knowledge Management software in the journey for the perfect way to record all knowledge I want to save. TL;DR: I've tried a bunch of apps to try and replace a...

      I've tried a LOT of Personal Knowledge Management software in the journey for the perfect way to record all knowledge I want to save.

      TL;DR: I've tried a bunch of apps to try and replace a combination of Todoist and Obsidian. What software and system do you use to keep track of personal knowledge and tasks?

      What I'm looking for
      There are three different attributes I am looking for in a PKM, in the following order:

      1. Ease of use. I need whatever I use to be really easy and frictionless to record information with. If there's too much resistance to getting information into the application than I probably won't end up saving it and I'll just forget about it.
      2. It needs to be easy to surface relevant information but also browse through less relevant information. This one is sort of a few sub categories. On one hand, I need reminders, due dates, and the UX to make sure that I don't miss certain tasks. On the other hand I need to be able to categorize and view all recorded entities - tasks, as well as pieces of information unrelated to tasks. This means I want to be able to categorize the information in a way that allows me to filter down from a larger list or from completed tasks - the best way to do this is usually tags.
      3. I like to use software that doesn't allow the developers to access my information; usually this is done through end to end encryption. This is especially important in a PKM because of the volume and sensitivity of the information being recorded. However, this is last on the list because I use multiple devices which introduces additional surface vectors if someone were to try and get my information. End to end encryption is just a nice to have.
      4. A bonus, being able to share tasks in a secure and easy way with my significant other.

      Where I've been
      Todoist
      I won't make you read the whole post to find out my favorite... it's Todoist. I've used it for years! It really locks down that first attribute, ease of storing tasks. Todoist makes it really easy to add tasks, move tasks, and reschedule tasks. It's a simple and functional task manager that really works for me. I basically use it to keep track of everything across several projects. I roll over most of the tasks from day to day until I'm able to complete them. For tasks that need a reminder I add a due date - the reminder system is pretty basic but it works. It's the app I keep coming back to after trying all the others. But being primarily a task manager it lacks the ability to store information not related to tasks. Like information about people, places or things. So I searched for another app.

      Obsidian
      I'm trying this out on Obsidian right now! It's a wonderful piece of software that has full end to end encryption. I use it as a sort of digital "safe" for information I definitely don't want to lose. Unfortunately Obsidian lacks some critical functionality:

      • Tasks are just checkboxes. There are plugins that can help you handle them better but the native UX for managing them is just copy, paste, and delete.
      • There's tagging and folders but there's no real way to move through lots of semi-related pieces of information. I like a big list of stuff that can be filtered down, not lots of scattered documents. All of the linking and tagging happens in the middle of the rest of the text and a list of backlinks at the bottom of the UI.
      • Maybe this sounds silly to you the reader - but basically it's all just too manual. If Obsidian had a sort of "parent note" at the top of each folder - like Notion which I'll cover next - it would make Obsidian a lot easier to use. Instead I always have to choose between a new block in a note, a whole new note or a folder. I'd love to be able to write out stuff as I think of it and then move stuff into sub folders - or lists - more easily.
      • It's expensive for a journaling app with a relatively basic feature set. Note to note linking and cloud sync are just expected features at this point for an application like this.

      Between Todoist and Obsidian I am able to meet all of those listed attributes:

      1. Todoist makes it easy to enter information and make sure I remember it when I need to. I can write a reminder in Todoist to make sure I record information in Obsidian.
      2. It's pretty easy to keep track of a lot of relevant tasks and other pieces of information in Todoist. For information that I need longer term or isn't related to a current task, it goes in Obsidian
      3. Obsidian is end to end encrypted. Anything related to sensitive stuff goes in Obsidian.
      4. Todoist allows setting sharing at a project level. So this makes it pretty easy to share tasks.

      After using this system for awhile I started to see cracks forming. Todoist makes it easy to keep track of tasks but complex projects are often hard to manage. It's easy to lose track of tasks that are further out then a few days without using obtuse filters. Obsidian is difficult to use on mobile and having to transfer information from Todoist to Obsidian is frustrating. There are probably Obsidian plugins I could use to manage some of this but then I'd have to evaluate each one for data privacy concerns. And paying so much for Obsidian it's a little frustrating to have to rely on community plugins.
      So I began looking for a new application, one that could do it all.

      Notion
      I still use Notion for a few different very specific things. I could probably use Obsidian or some of the other apps I'm about to talk about for these things. But I really like Notion - when it first came out it blew me away! It did so much stuff! It's great for keeping lists of well categorized pieces of information. It has great support for tagging, and the aforementioned folder / page hybrid. It's basically a wiki software combined with a task manager. A few issues keep me from using it as my main application:

      • Like Obsidian it's hard to use on mobile. Especially for complicated stuff like moving through lots of different pieces of unrelated information.
      • The reminder system is clunky. Since everything in Notion is a "block", reminders are tied to them. I think if I put a lot of time and effort into building a process for keeping track of my tasks it could work. But again, I don't really want to spend that much effort when I have system that already mostly works.
      • There's no end to end encryption and nothing but a true / false value assigned to your user keeps employees from accessing your information easily.

      A great piece of software but ultimately one I moved away from after a bit and back to Todoist.

      Workflowy
      This was the first time I felt a real paradigm shift. Workflowy is basically a really big list. Every bullet on the list is a "node" and you can zoom into nodes endlessly. So you can go from seeing all of your information to seeing very specific pieces of information very quickly and easily, even on mobile. And entering information is a breeze, you just add it as a bullet and then move it to where you need it. It's amazing for what I like to do, which is start with a general idea and build more and more specific information. For example, when going on trips I could create a "trip to place" bullet. Workflowy has amazing support for two way linking lists - basically you can change a list in one place and have it updated in all the other places its linked. So I could have a packing list that I link to the trip to place bullet. Or I can copy it and add to it. You can see all the possibilities and the UX makes it seamless.

      The real killer here for me was the lack of reminders. The way to handle due dates in Workflowy is to literally type the date; there are UX solutions like a pop out calendar that handles this for you. And then you can filter down to bullets that contain that date. In theory it works well but it requires me to make sure I am looking at the right information when I need to be instead of the other way around. I tried using Todoist to supplement this but ended up having to constantly check both to make sure each was properly updated. If Worflowy had a way to assign reminders to bullets so a notification popped up that would make this the perfect app. In fact, I might give it another try after writing this out!

      Lastly, it doesn't offer end to end encryption.

      Twos App
      This is the other app that got really close to being perfect. Twos App is the software that touched the sun and lost its wings. It does everything! It's sort of similar to Workflowy where you can have checkboxes (tasks) and bullets (pieces of information). You also have lists. So you can start a "shopping list" that sits outside your daily tasks, and you can fill that list with items you need. Then when you are ready to go shopping you can move that shopping list into a "day" and it's automatically a task. It also has a pretty good reminder system.
      The problem with Twos App is unfortunate: the bugs. I found it doing odd things like reordering items, separating them out of lists and just generally glitching out. My theory is that the app is so feature packed that the systems start to conflict with each other. I've seen they are going to release a new major version soon so I might give it another try.

      This is getting way too long! Just real quick some others I've tried:

      • Capacities. A lot of protentional, like a more structured version of Notion. It shares a ton of the same features and functions similarly. But everything revolves around "objects" which are basically just... templates. There's no inheritance or ways to compose objects that would make something like that really powerful
      • Amplenote: Another app that is close in theory but one big thing is it lacks the ability to tag tasks. You can only tag notes, which tasks live inside of. There are UX solutions for this but it's pretty clunky. It also supports end to end encryption but on a note by note basis? It seems like another situation where if I put a lot of time in I might be able to get something working but just doesn't seem worth it.
      • Loqseq: End to end encrypted! Great support for tasks! But I think it's just still too underbaked. The sync feature is still in beta and requires you to pay in the form of donations? They basically tie your account to the donations you make and then give you access. Seems not worth it for the current set of functionality. It also lacks task level tags, like Amplenote.
      • I've also tried Day One, Daycast, Standard Notes, Legend, and probably a bunch of others I'm not listing. I almost forgot about Ticktick.

      So this brings me to my question: what application and system do you use?

      20 votes
    4. Is there a postman alternative without the bloat?

      use postman quite a bit at work as a backend developer and the recent updates have added alot more bloatware to the program. All I want is a simple program that does HTTP requests and not get...

      use postman quite a bit at work as a backend developer and the recent updates have added alot more bloatware to the program.

      All I want is a simple program that does HTTP requests and not get account promo and collections and their cloud stuff shoved down my throat.

      And my work computer is maintained by a central system so I can't freeze my Postman application at a past level, it auto-updates.

      So I am wondering if there is a good alternative that just does HTTP requests and nothing else?

      28 votes
    5. Upgrade desktop to win11 when hardware isn’t supported?

      Ive been using Linux Mint for like 10 years now but my s/o still wants to use Windows Win 10 is about to lose support, and they cant upgrade to Win 11 cause its missing some new chip? Anyone have...

      Ive been using Linux Mint for like 10 years now but my s/o still wants to use Windows

      Win 10 is about to lose support, and they cant upgrade to Win 11 cause its missing some new chip?

      Anyone have details or fixes? Im way out of the loop cause Linux is just plug and play for me so I don’t keep up with this stuff any more

      27 votes
    6. Recommendations for a Linux based job/ticket management system

      Hi all! I'm someone who has ADHD/Autism spectrum issues and am dealing with problems related to executive function. To the point, I'm asking for help with a specific idea of better managing...

      Hi all! I'm someone who has ADHD/Autism spectrum issues and am dealing with problems related to executive function. To the point, I'm asking for help with a specific idea of better managing getting things done.

      What I'd like is a job tracker / ticket management system that would make it easy for me to keep track of all the different individual to-do items (I.E. jobs / tickets) that I have, keep notes on what I've already done, and have a separate notes section for 'this is what still needs to be done on this item'.

      Currently I have this information kind of scattered through different areas / folders. Calendar, work documentation folders, personal notes, etc...

      Needs:

      1. Free (open source is nice but not explicitly required). I don't want to add another expense to my balance sheet.
      2. Is user-friendly enough to save me more effort than it costs. I am a long-time tech so the bar on this one is reasonably low.
      3. A GUI. If there are CLI / command line interface programs that would not be convenient for me, I work much more efficiently when I work visually. If I need to install by CLI that's not a problem, just the daily use of the program should be graphical and not command-line text.
      4. (EDITED IN): Locally installed. I want to stay away from adding more company-hosted services which can change / become paid only / otherwise easily undergo Enshittification. If it is locally installed software, I can always decline to update or install a new version.

      Nice to haves:

      1. A tracker that gives datestamps for when I put in more information so I can easily know when I last picked up that task.
      2. A priority system so I can have it automatically sort to top for stuff that needs doing sooner vs long-term projects.
      3. Some kind of 'tagging' system which would allow me to tag things like 'personal' or 'work' or 'parts orders' which I could then use a search or sort function to look at only items tagged that way.

      My main desktop is Linux Mint 21.3 Cinnamon in case anyone needs that detail. That is the computer I want to install the ticketing system on.

      I've done some searching so far but I'm hoping that by laying out exactly what I'm trying to do with it someone here will have specific advice. My search results so far have found people recommending projects for others who have different use-cases or needs than me.

      17 votes
    7. Subsync is a stellar program that should have an active maintainer

      Subsync is a program that will sync any subtitle file based on either audio or another subtitle. It is remarkably good at syncing any subtitle you throw at it. I never encountered anything even...

      Subsync is a program that will sync any subtitle file based on either audio or another subtitle. It is remarkably good at syncing any subtitle you throw at it. I never encountered anything even remotely as good as Subsync for that task.

      Unfortunately, the author archived it due to some technical reasons as well as bad interactions with users. I don't believe there is anything as good out there when it comes to syncing broken subtitles. Subsync still works, but I don't know for how long. I am not a programmer. I am posting this as a call for help: if anyone is interested in maintaining this program, I think it would be of great help to a lot of people.

      Right now, Subsync is a manual tool with a graphical interface. But I foresee it working in the background with programs like VLC, Plex, or Stremio. That would be awesome.


      EDIT

      Subsync is automated and language aware. It will sync individual lines using audio or another subtitle as a reference. It won't just shift everything; it will adjust them individually. It is usually not necessary to go through the entire file, but you can do it for badly synced subtitles. Adjusting every single subtitle will take more time, but you can do it.

      Merely shifting all the subtitles won't work for older TV shows because of the breaks. Depending on the version (DVD, Blu-Ray, WEB, or recorded directly from TV), the ad breaks will be edited slightly differently, with different delay times before resuming the show. That is enough for the subtitles to lose sync after every act. There is also the issue of frame rate and perhaps other video features, which I believe can also unsync subtitles. I probably have more issues with subtitles than most because I mostly watch older or classic TV content.

      (Adapted for clarification from my response below)

      27 votes
    8. How do you manage separate development environments on your computer?

      Hello Tildes! There's an open-source app I would like to work on and contribute code to, but it uses a toolchain that I'm not terribly familiar with (Deno), and I'm not a huge fan of letting tools...

      Hello Tildes!

      There's an open-source app I would like to work on and contribute code to, but it uses a toolchain that I'm not terribly familiar with (Deno), and I'm not a huge fan of letting tools like this have full access to my system and files.

      Do any of you use a system to containerize different development environments for software development? I could definitely use a standard Docker/Podman container to run the app, but I'm not aware of a good system where you can edit a program's source in an IDE, make changes, build the app, open a local port, and save your new code, all within a sandboxed environment.

      If anyone uses a system like this or something related, I would love to hear about it and share ideas.

      14 votes
    9. If you're a programmer, are you ever going to believe an AGI is actually 'I'?

      First, I am emphatically not talking about LLMs. Just a shower thought kinda question. For most people, the primary issue is anthropomorphizing too much. But I think programmers see it...

      First, I am emphatically not talking about LLMs.

      Just a shower thought kinda question. For most people, the primary issue is anthropomorphizing too much. But I think programmers see it differently.

      Let's say someone comes up with something that seems to walk and talk like a self-aware, sentient, AGI duck. It has a "memories" db, it learns and adapts, it seems to understand cause and effect, actions and consequences, truth v falsehood, it passes Turing tests like they're tic-tac-toe, it recognizes itself in the mirror, yada.

      But as a developer, you can "look behind the curtain" and see exactly how it works. (For argument's sake, let's say it's a FOSS duck, so you can actually look at the source code.)

      Does it ever "feel" like a real, sentient being? Does it ever pass your litmus test?

      For me, I think the answer is, "yes, eventually" ... but only looong after other people are having relationships with them, getting married, voting for them, etc.

      31 votes
    10. I have been using a neo-dumbphone for a week, here are my thoughts

      Overview I got the Minimal Phone by Minimal Company (it is a stupid name). Overall I quite like it. The hardware seems pretty solid, and for the most part the software is good. It is a first gen...

      Overview

      I got the Minimal Phone by Minimal Company (it is a stupid name). Overall I quite like it. The hardware seems pretty solid, and for the most part the software is good. It is a first gen device, and it does show in some spots, but they also are running relatively stock android for both good and bad.

      Background

      Two years ago, I stopped carrying my phone with me all the time, and moved over to carrying a small notebook to keep track of things. Instead of going into my phone calendar, I write stuff into this notebook. I also repaired my PSP around the same time, to handle entertainment. In the past two years, I have moved more tasks off of my phone and onto dedicated devices to do those tasks. This left my phone as primarily used for communication. I have more thoughts on using dedicated devices, but I am waiting until I finish switching over to the final dedicated device before I do a write up on that. When I needed to replace my phone, going with a neo-dumbphone felt like a good fit for me.

      Why I chose the Minimal Phone by Minimal Company

      So there were a few features that I liked about the minimal phone compared to others:
      • while more expensive than a cheap android that I do software limitations on, it felt like I was getting a device that worked for me, rather than doing a bunch of configuration to get one to work for me
      • Minimal phone was significantly cheaper than the Lite Phone, and had Google Playstore access to add some apps not included that I may need
      • RCS support (it is just running Google Messages)
      • eInk felt like a good fit for me
      • The physical keyboard intrigued me

      Experience ordering the phone

      I will say, that with it being a new company, there were several delays in receiving the phone. They had a manufacturing issue that pushed back my phone a month, and there was no communication about it until I reached out. It would have been nice if they notified me about this ahead of time, but being a new company, I will extend some grace. Shipping was handled by some no-name company, so tracking was sparse and it seemed to be delayed a few times and was quite slow (took 2 days from Hong Kong to Vancouver Canada, but then two weeks from Vancouver to the Canadian prairies).

      Software Impressions

      Overall, I have been pleased with the software. It is running stock android, with a custom app launcher, and another custom app to configure screen settings. They did not over commit on the software, and instead focused on just providing a few well polished apps. I think there is some room for future bug fixes and potentially some more first party apps, but overall I am glad they went in this direction. Since it is pretty stock Android, I feel that future OS updates should be easy (they did commit to 5 years support, but that also relies on the company lasting 5 years). The default Android settings out of the box did not render well on eInk display (scrolling is rough compared to pagination) but one I tweaked some screen settings it got better. Overall, some rough edges, and a noticeable negative difference when leaving first party apps (which is mandatory as first party is so small), but nothing deal breaking.

      Hardware

      The hardware has been quite good. The eInk screen puts less strain on performance, as nothing needs to be extremely snappy since the screen can't keep up. The physical keyboard has been good, although I do feel that the shift key and the alt key should be reversed. The battery was advertised as a four day battery, but in my use case, it has been a comfortable two day battery (ending the second day with about 25%). I feel that in the coming weeks I may get closer to a three day battery, as the novelty wears off and I use it less. The camera is pretty weak, but I have not liked taking pictures on my phone anyways, so I am not concerned about it. The display has been really nice. I have never really used eInk screens for an extended time before, but it just feels quiet if that makes sense. With it being eInk, it sometimes does not fully refresh the screen, but there is a screen refresh button if needed. Overall, I have been quite impressed with the hardware. There are a few layout decisions they made that I feel I would have chosen differently, but nothing deal breaking.

      Summary

      It is a first gen device and sometimes shows the rough edges, but no major issues and I have quite enjoyed it. We will see how I feel about it in a month or two, but I think this type of device is probably what I will continue using for several years.
      39 votes
    11. Is AI actually useful for anyone here?

      Sometimes I feel like there's something wrong with how I use technology, or I'm just incredibly biased and predisposed to cynicism or something, so I wanted to get a pulse on how everyone else...

      Sometimes I feel like there's something wrong with how I use technology, or I'm just incredibly biased and predisposed to cynicism or something, so I wanted to get a pulse on how everyone else feels about AI, specifically LLMs, and how you use them in your professional and personal lives.

      I've been messing with LLMs since GPT-3, being initially very impressed by the technology, to that view sort of evolving to a more nuanced one. I think they're very good at a specific thing and not great at anything else.

      I feel like, increasingly, I'm becoming a rarity among tech people, especially executives. I run cybersecurity for a medium sized agency, and my boss is the CIO. Any time I, or any of her direct reports write a proposal, a policy, a report, or basically anything meant to distribute to a wide audience, they insist on us "running it through copilot", which to them, just means pasting the whole document into copilot chat, then taking the output.

      It inevitably takes a document I worked hard on to balance tone, information, brevity, professional voice, and technical details and turns it into a bland, wordy mess. It's unusable crap that I then have to spend more time with to have it sound normal. My boss almost always comes up with "suggestions" or "ideas" that are very obviously just copy pasted answers from copilot chat too.

      I see people online that talk about how LLMs have made them so much faster at development, but every time I've ever used it that field, it can toss together a quick prototype for something I likely could have googled, but there will frequently be little hidden bugs in the code. If I try to use the LLM to fix those bugs, it inevitably just makes it worse. Every time I've tried to use AI in a coding workflow, I spend less time thinking about the control flow of the software, and more time chasing down weird esoteric bugs. Overall it's never saved me any time at all.

      I've used them as a quick web search, and while they do save me from having to trawl through a lot of the hellhole that is the modern internet, with blogspam, ads, and nonsense people write online, a lot of times, it will just hallucinate answers. I've noticed it's decent at providing me results when results exist, but if results don't exist, or I'm asking something that doesn't make sense, it falls flat on its face because it will just make things up in order to sound convincing and helpful.

      I do see some niches where the stuff has been useful. Summarizing large swathes of documents, where the accuracy of that summary doesn't matter much is a little useful. Like if I were tasked to look through 300 documents and decide which ones were most relevant to a project, and I only had an hour to do it, I think that would be a task it would do well with. I can't review or even skim 300 documents in an hour, and even though an LLM would very likely be wrong about a lot of it, at least that's something.

      The thing is, I don't frequently run into tasks where accuracy doesn't matter. I doubt most people do. Usually when someone asks for an answer to something, or you want to actually do something useful, the hidden assumption is that the output will be correct, and LLMs are just really bad at being correct.

      The thing is, the internet is full of AI evangelists that talk about their AI stack made up of SaaS products I've never even heard of chained together. They talk about how insanely productive it's made them and how it's like being superhuman and without it they'd be left behind.

      I'm 99% sure that most of this is influencer clickbait capitalizing on FOMO to keep the shared delusion of LLM's usefulness going, usually because they have stake in the game. They either run an AI startup, are involved in a company that profits off of AI being popular, they're an influencer that makes AI content, or they just have Nvidia in their stock portfolio like so much of us do.

      Is there anyone out there that feels this technology is actually super useful that doesn't fall into one of those categories?

      If so, let me know. Also, let me know what I'm doing wrong. Am I just a Luddite? A crotchety old man? Out of touch? I'm fine if I am, I just want to know once and for all.

      80 votes
    12. Tech keeps stealing my life, and I want tips on how to make it stop doing that

      ** Please do not tell me how to fix my issue below; this is an example, not a tech-support request ** I have a (LibreOffice) spreadsheet, personal tracking data. The other day, I got a new laptop...

      ** Please do not tell me how to fix my issue below; this is an example, not a tech-support request **


      I have a (LibreOffice) spreadsheet, personal tracking data. The other day, I got a new laptop (Framework), put a new OS (Debian trixie RC2) on it.

      Now, on the new machine, when I add a comment to a cell, the background color of the new comment is wrong/different from every other comment in the spreadsheet. When I add a comment to the same spreadsheet, opened on a different machine, the new comment still has the "correct"/standard background color, but any comments I added on the new machine continue to have the wrong color.

      This happened once or twice in the past couple of days, and I just manually "fixed" the color of each new comment, but this morning, I tried to figure out what the deal was, how to fix it properly/permanently.

      And just like that, my 3-minute daily edit of this spreadsheet turned into a 2-hour wild goose chase. I still haven't fixed it, I still don't know whether to blame LibreOffice, Debian, the new laptop, or some other variable I haven't even thought of. All I know is, someone has stolen 2 hours of my life from me, and I really want to know who that is.


      Bigger picture ...

      This happens all the time. Every day, often 3-4 times a day, it is a regular point of stress, of contention in my life, deciding whether to devote hours (sometimes days) of my life to strong-arming software into working the way it was supposed to work in the first place, or to try my best to accept that we just can't have nice things on our computers, and move on.

      This definitely predates the word "enshittification", but I don't think it really predates the concept. Stipulated -- software development is complicated, and software is used in so many different situations -- different hardware, different OSes, different libraries, different supporting/complementary software, versions, etc -- it is extremely hard to make software that "just works" for everyone, all the time.

      Nonetheless, I think the entire software development industry just collectively decided that is it okay to release stuff that doesn't work ... dating back to some point in the 20th century, long before Linux, before the Internet, before smartphones ... this issue--this philosophy--goes waaaay back, and there's just no fighting it at this point.

      But also, I do not want to live in a world where I have to surrender hours and days and years of my life, fighting with software that doesn't work, because "that's just how software is".

      So, that's my gripe. Is there any kind of viable middle ground here, that is less extreme than "cabin in the woods"? 'Cuz I am (yet again) seriously weighing that option this morning.

      33 votes
    13. What is your personal online "tech stack"? How do you like it?

      I thought it would be fun to explore what people on Tildes use for things like email, file synchronisation, webhosting, backups, streaming, password management, etc. Are you using a common big...

      I thought it would be fun to explore what people on Tildes use for things like email, file synchronisation, webhosting, backups, streaming, password management, etc.
      Are you using a common big tech service? Are you self hosting? Something in between? If you are self hosting what does it look like? Are you running bare metal, using containers, a complete proxmox setup with a legion of VMs? And of course, what software are using on top of it all?
      I am also curious to see how satisfied you are with your current setup.

      To be extra clear, this is not about the OS you are running on your personal computer, we've had plenty of discussion like that already ;).

      And also to be extra clear, this isn't just about self hosting.

      Posted in ~tech because I want a broad discussion, not just the ~comp folks.

      I'll start

      I have been trying to move away from a lot of the big tech services for a few years now. For me it isn't an absolute where I don't want any Google or Microsoft in my life, I just don't want to be reliant on them for what I see as critical parts of my personal infrastructure.

      Running servers and maintaining them including infrastructure on top like reverse proxies, docker, Kubernetes, etc is something I am fairly familiar with. But it isn't something I quite enjoy or trust myself to do for a lot of important stuff. Specifically when it comes down to security and making sure backups are in order. This means that for a lot of things I have opted to use other services. But in a way that allows me to move away to a different one quite easily.

      File storage & synchronization

      For years I made use of Google drive, but after running into various sync issues and the lack of Linux clients (even though I am now back on Windows) it was the first service I moved away from big tech.
      For this I make use of a hosted Nextcloud instance on Hetzener's "storage share" plan. Honestly, no big complaints here about the core functionality. Files get synchronized just fine and Hetzner takes care of updates and backups.

      Email

      For email I make use of my own domain in combination with mailbox.org mail hosting.

      Media streaming

      I still have quite some music, movies and series on my hard drive. For this I use Jellyfin, which works quite well. Though the native apps have some issues where it will start transcoding things that don't need transcoding at all. This isn't an issue with third party apps. On android, I use findroid. On the ipad of my SO I had to compromise a little bit, the best app there seems to be Infuse which isn't open and requires a subscription for some advanced features. Though for Jellyfin playback the free version seems to work fine so far.

      Jellyfin itself is just running on my desktop PC. I have been thinking about a NAS of sorts, but decided to hold off on it for now as my computer is effectively always on whenever one of us wants to watch something.

      Password management

      In the past I have used KeePassXC which with the browser extension works quite well on my desktop. But keeping it synced to my phone as well was sometimes a bit finicky. So last year I decided to switch to Bitwarden with the idea that I can always switch to vaultwarden if I decide to.

      Edit: DeaconBlue's setup reminded me that I also use Aegis which backs up encrypted to nextcloud.

      Backup

      For backups I make use of Hetzner's storage box plans. In order to create the backups I make use of restic, but to make things a bit easier I have opted to use the Backrest front-end for it which basically takes care of scheduling.

      VPS for various random scripts and experiments

      I am also running a Ubuntu server VPS, also on Hetzner infrastructure, which I use to run a variety of scripts, experiment with stuff I might want to self host, etc. The scripts it runs are mostly related to discord moderation and one I maintain for the /r/history team (even though I am no longer active on reddit).

      Webhosting & Domains

      While I have a VPS, for simple hosting and since I need to buy my domains somewhere I am making use of a hosting provider in the Netherlands called mijn.host. They are quite affordable and customer oriented.

      If you have ever see me share images on Tildes this is also where I have my own image hosting thing running. Which is basically ShareX configured to upload images to a simple PHP endpoint I created that resizes images, strips their exif data and renames them.

      Honourable mention: PikaPods

      PikaPods basically provides you with docker hosting of a wide variety of open source apps in a very user friendly way. I have experimented a bit with it and while I don't have a current use for it I do think that it is a neat service other people might enjoy.

      45 votes
    14. I hate the new internet. I hate the new tech world. I hate it all. I want out, and I can't be the only one.

      I think most people would agree that the internet and technology in general have absolutely gone to shit over the past decade or so. There is no corner of the internet nor of the software world...

      I think most people would agree that the internet and technology in general have absolutely gone to shit over the past decade or so. There is no corner of the internet nor of the software world that hasn't been affected by enshittification. Everything exists to serve you ads. Everyone wants to extract as much money from you as possible. Every website is in a race for the bottom as they try to find the lowest effort content that makes them the most money. Every piece of software is pushed out half-baked and/or stripped down to the bare minimum with the rest paywalled or with the devs pinky promising to fix it 5 updates down the road.

      Every social medium is just bots. The front page of Reddit is easily 35% easily detectable bots at least and who knows what the rest is comprised of. And it's probably the one that's doing the best at the moment, Facebook, Twitter, Instagram, Tiktok, all of them are just bots and propaganda and engagement farming the whole way down. And the worst thing is, they're complicit. Hell, they're actively encouraging it and trying to find ways to make it worse. And I have no doubt Reddit will bend the knee soon enough too (they just banned /r/whitepeopletwitter because Musk made a tweet critical of the sub).

      There's probably some element of rose-tinted glasses here, but the old internet was just so much better looking back. Like, early 2000's to maybe 2012, 2013 or so, that was the peak. No colossal data harvesting schemes feeding into algorithms designed to keep you engaged on their site 24/7 for the purpose of shilling you advertisements and selling your data, no mass propaganda, no Dead Internet Theory (which can hardly be considered a theory anymore). Yeah there was shit content, there was tons of it, but I can deal with shit content and petty forum drama and whatnot; what I can't deal with is all the multi-billion dollar corporations trying to shape the entire landscape of the Web into the perfectly minmaxxed cash-generating machine that does as little as possible for as much data and advertising as possible.

      Modern software isn't much better. Windows and MacOS are filled with anti-user features, telemetry you just can't turn off, Windows will often just install shit on your computer without telling you. They turn your computer into a walled garden, where you can do what you want as long as you play by their rules, but without giving you any real control over what your computer does. Yeah you can delete system files and brick your laptop if you feel like it, but anyone who's ever tried to permanently disable Windows updates will know that in the end you're not the one calling the shots: Microsoft are. And... Like, that's insane, right? It's running on my fucking computer, it's my CPU doing the work, I want to know what the hell it's doing and not just the parts it lets me see, and if I want it to do something different then I should be able to make it so.

      I hate it all. I'm tired. I want out.


      These are my problems. Here's what I've done about it so far.

      • Obsessive privacy on the web. No Google services. Firefox with as much telemetry turned off as possible. Protonmail and ProtonVPN for everything (and I'm considering getting out of those too with the pro-Trump stances they've been taking recently). As minimal an online footprint as I can get, I make as few accounts as possible and I don't use shared or even slightly related usernames (my username here is an exception as it's my Reddit username, and no, it's not my real name), I delete accounts whenever I can and I GDPR request the services afterward. Virtual cards for online payments as much as possible. Will probably make a Javascript whitelist at some point too. Is all of this overkill? Yes. Why do I bother? Because fuck them.

      • As little social media presence as possible. Real life necessitates some amount of social media interaction of course, I have Facebook and Instagram but use them exclusively for messaging. I often see people excluding Reddit from social media but I don't fully agree, even if it's not exactly in the category it still targets a lot of the same psychological weak points in us, encouraging doom scrolling and shaping our opinions through echo chambers and propaganda (it's always important to remember that echo chambers and propaganda you agree with are still echo chambers and propaganda). I still use Reddit admittedly, but I've tried to minimise my usage as much as possible and I'm shopping for alternatives.

      • Free and Open Source software as much as possible. I'm all in on GNU these days. Yes, it's a massive pain in the ass. My job unfortunately requires some Windows-only software so I'm running a dual partition but I'm trying to get as much of my computer usage onto Linux as possible (I use Arch btw). Like I said above, it's my computer, if I can't control what it's computing then it stops being my computer, it's at best shared between me and all the developers of the proprietary software I have installed on it.


      That's my rant. It's been a long time coming.

      There are still things I'm looking to change, especially with how I use the internet. Getting rid of Reddit is the next big step for me, I think. I just can't be bothered with it anymore, but there is still something about it that I love, every time I look through a small niche topic community, or an interesting new hobby sub I've never seen before with years of cool posts for me to go through. And yeah, I do still enjoy browsing through /r/all even when it's 80% shit and objectively bad for my mental health. But at this point the overwhelming mass of utter shit is just not worth digging through anymore. I'm tired.

      Tildes is really cool. It reminds me of the old internet, the ideal usage of the Web. I open the site, I see a link to an interesting article, I read it, I give it a like, I read and/or contribute to the discussion in a comments section. I want more of this.

      If anyone has any links to cool sites that I should check out I'd greatly appreciate it.

      165 votes