-
15 votes
-
Fortnightly Programming Q&A Thread
General Programming Q&A thread! Ask any questions about programming, answer the questions of other users, or post suggestions for future threads. Don't forget to format your code using the triple...
General Programming Q&A thread! Ask any questions about programming, answer the questions of other users, or post suggestions for future threads.
Don't forget to format your code using the triple backticks or tildes:
Here is my schema: ```sql CREATE TABLE article_to_warehouse ( article_id INTEGER , warehouse_id INTEGER ) ; ``` How do I add a `UNIQUE` constraint?
9 votes -
Multiple vulnerabilities discovered in TikTok enabling sending arbitrary links through SMS, exposing private account data, and more
11 votes -
Smaller HTML Payloads with Service Workers
7 votes -
Play Chess against GPT-2
@theshawwn: I am preparing to release a notebook where you can play chess vs GPT-2. If anyone wants to help beta test it: 1. visit https://t.co/CpWrFvtnY2 2. open in playground mode 3. click Runtime -> Run All 4. Scroll to the bottommost cell and wait 6 minutes If you get stuck, tell me.
5 votes -
Changing your name is a hard unsolved problem in Computer Science
14 votes -
Hard drive dying, trying to save a VM
I have a large VirtualBox VM on an external HDD. The HDD fails the S.M.A.R.T. test. The VM still works fine, but any regular attempt to copy the VM files over to a healthy drive fails ... there is...
I have a large VirtualBox VM on an external HDD. The HDD fails the S.M.A.R.T. test. The VM still works fine, but any regular attempt to copy the VM files over to a healthy drive fails ... there is clearly already something corrupt in the VM's virtual HDD, although it is not (apparently? yet?) affecting the functionality of the actual VM.
Any suggestions on how to save the VM? Linux Mint Guest OS, Pop_OS (Ubuntu) Host. The VM is nearly 800 GB. Both regular copy and rsync fail.
Thanks,
EricPS: (and perhaps I should have led with this, but...) is it okay to ask these kinds of specific, technical, "help me with my tech-stuff" questions here on Tildes?
Update to the update ... moved update info into a comment ... will keep my progress updated in that primary comment.
Danke, y gracias to all
14 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...
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?
12 votes -
Troubleshooting and fixing a dead Apple IIc
4 votes -
The art of the bodge: How I made the emoji keyboard
4 votes -
Software disenchantment
21 votes -
Exotic threats in mobile testing...
I'm currently in the process of reading the excellent "Lessons Learned in Software Testing: A Context-Driven Approach". Early on the following is mentioned. Test common threats before exotic...
I'm currently in the process of reading the excellent "Lessons Learned in Software Testing: A Context-Driven Approach". Early on the following is mentioned.
Test common threats before exotic threats.
Seems reasonable enough. That said, it got me thinking It'd be cool to generate a list of such threats for future devs/testers to draw on. So...I'm calling on the collective experience of any Tilders involved in iOS or Android development to lend a hand.
In your time working on mobile, what issues have you encountered that you would you classify as exotic? I.e those issues that infrequently arise but when they do can cause major damage. Any and all help is appreciated.
4 votes -
Choosing a new printer
I'm thinking about getting a new printer. My needs are basically to print out textual documents 2-3 times per month from macOS. I don't need to print photos. I will not buy an inkjet because of...
I'm thinking about getting a new printer. My needs are basically to print out textual documents 2-3 times per month from macOS. I don't need to print photos. I will not buy an inkjet because of the outrageous price of the ink. I would like to have fax support (my spouse sees a lot of doctors and they still use fax machines a lot, and we're not comfortable sending personal medical info via a fax service on the web), and it would be nice if we could also scan documents. So I'm thinking a multi-function device.
We currently have a Brother 7840W MFC with print, fax, copy, and scan. It's over 10 years old (maybe 15?) and I dislike it. It's been slowly losing functionality over the past 5+ years. The WiFi went out, but I was able to connect it via wired ethernet to a computer and share it from there. The drivers insist that there's a paper jam, but there isn't and it prints just fine (but sounds like some of the internal mechanical components are going to die any day now.) The UI of the printer is awful. I recall having to use the phone pad to enter my WiFi password, and it was like texting on a Motorola StarTAC. (Like if you want the letter "C" press the number "2" three times, etc.) The drivers and related software don't work like normal macOS software. (Disclosure: I also once wrote a scanner driver for Brother and it was horrible, but they shipped it, so I'm not real comfortable putting their software on my computer. But that was 25 years ago, so maybe they're better now?)
I've heard horrible things about the drivers and software of most other major printer makers - HP, Epson, Lexmark, etc. I'm guessing what I'm looking for doesn't exist, but I just want a multi-function device in as small a package as is reasonable, and with a UI on the device and software that doesn't suck and that won't die on me in < 5 years. Does such a thing exist?
17 votes -
Google Chrome: Behind the Open Source Browser Project (2008)
6 votes -
Uptime 15,364 days - The Computers of Voyager
6 votes -
Ask Tildes: Design practices for retrieving dozens (or hundreds) of related records over a RESTful API
I'm looking for some feedback on a feasible mechanism for structuring a few API endpoints where a purely RFC-spec compliant REST API wouldn't suffice. I have an endpoint which returns $child...
I'm looking for some feedback on a feasible mechanism for structuring a few API endpoints where a purely RFC-spec compliant REST API wouldn't suffice.
I have an endpoint which returns $child entries for a $parent resource, let's call it:
/api/parent/:parentId/children
. There could be anywhere from a dozen to several hundred children returned from this call. From here, achild
entity is related to a singleuserOrganization
, which itself is a pivoting entity on a singleuser
. The relationship between achild
anduser
is not strictly transitive, but can eachchild
only has oneuserOrganization
which only has oneuser
, so it is trivial to reach auser
from achild
resource.Given this, the data I need for the particular request involves retrieving all
user
's for aparent
. The obvious, and incorrect solution to the problem is to make the request mentioned above, and then iterate through and make an API request to retrieve eachuser
. This is less than very good as this would obviously be up to several hundred API calls.There's a few more scalable solutions that could solve this problem, so any input on these ideas is great; but if you have a better proposal that also works, I'm keen to explore that!
Include
user
relationships in the call by default.This certainly does solve the problem, but it's also pumping down a load of data I don't necessarily need. This would probably 2x the amount of bytes travelling along the wire, and in 8 out of 10 calls, that extra data isn't needed.
Have a separate
/api/parent/:parentId/users
call.Another option that partially solves the issue: I need data from both the
child
and theuser
to format this view, so I'd still need to make the initial call I documented earlier. Semantically, it feels a bit odd to have this as a resource because I don't consider auser
to be nested under aparent
in terms of database topology.Keep the original call, but add a query parameter to fetch the extra data
This comes across as the 'least worst' idea objectively, in terms of flexibility and design. Through the addition of the query parameter, you could optionally retrieve the relationship's data. This seems brittle and doesn't scale well to other endpoints where it could be useful though.
Utilize a Stripe
expands
-style query parameter.Stripe implements the ability to retrieve all related records from an API endpoint by specifying the relations as strings. This is essentially the same as the above answer, but is scaled to all available API endpoints. I love this idea, but implementing it in a secure way seems fraught with disaster. For example, this is a multi-tenancied application, and it would be trivial to request
userOrganization.user.organizations.users
. This would retrieve all other organisations for the user, and their users! This is because my implementation ofexpands
simply utilises the ORM of my choice to perform a database join, and of course the database has no knowledge about application tenancy!
Now, I do realise this problem could easily be solved by implementing a GraphQL API server, which I have done in the past, but unfortunately time and workload constraints dictate implementing a GraphQL-based solution is infeasible. As much as I like GraphQL, I'm not as proficient in that area as compared to implementing high quality traditional APIs, and the applications I'm working on at the moment are focusing on choosing boring technology, and not using excessive innovation tokens.
Furthermore, I do consider the conceptuals around REST APIs to be more of an aspirational sliding scale, rather than a well defined physical entity, because let's face it, the majority of popular APIs today aren't REST-compliant, even Stripe's isn't, and it's usually both financially healthier and feature-rich to choose a development path that results in a rough product that can be refined later, than aiming for a perfect initial release. All this said, I don't mind proposals or solutions to my problem that are "good enough". As long as they aren't too hacky! :)
10 votes -
I'm not feeling the async pressure
5 votes -
Project-Specific Programming Suggestions for Newbie
8 votes -
Top 10 Web Design Styles of 1993 (Vernacular Web 3) - Prof. Dr. Style
10 votes -
Announcing the alpha release of Intergrid
Intergrid is an online outliner and note-taking app. It's inspired by – and in many ways replicates – Indigrid, except it's on the Web. It's free to use, and it's readily available right from the...
Intergrid is an online outliner and note-taking app. It's inspired by – and in many ways replicates – Indigrid, except it's on the Web. It's free to use, and it's readily available right from the main page.
Why Intergrid?
The main goal of Intergrid is to help you focus on the notes.
There are no settings. You can't pick the font. Theming is not an option. There's only content, and what you want to do with it.
Plus, it looks cool.
Is it feature-complete?
Hell no. It's been in development for three months – which is to say, not very long. It still has ways to go.
Which is why I'm keeping the initial release rather quiet: Tildes and a handful of friends are the only people to know about it so far.
Are there bugs?
Afraid so. There are some I know about, and there are probably some I couldn't even reach.
Why release it, then?
Because it works already. You can add, edit, and save your notes in-browser. As long as you have cookies enabled, it will serve you. (Intergrid doesn't use cookies, and has no tracking to speak of, but the permission for
localStorage
– the technology used to store and gather data about your notes – is adjacent, as far as browsers are concerned.)It would be of particular use to people on systems other than Windows. While the current version is focused on desktops, future versions may gain mobile support – all the more likely because, outside from a handful of hardcoded interactions and design considerations, there's nothing preventing mobile users from enjoying the app.
There's also the pragmatic reason: something Jeff Atwood called "Always Be Shipping", all the way back in 2007. You can't get feedback on an app that has no public version. Your programming expertise and design sense will only get you so far. Getting it out there – and going forward with the feedback – is a generous part of the process.
Where are you planning to take it?
The first step would be the fix the bugs. There will be a list of known ones in the comments.
Once those are fixed (or can be postponed without repercussions to being able to use the app), there are features I'm going to implement within the next couple of months. Most of them, at least initially, are going to be put in to keep up with Indigrid's feature set.
-
Views: open, move, and close columns, each hosting a different view on the notes, allowing you to gain perspective or edit multiple ideas simulatenously
-
Bookmarks: store views as separate named bookmarks, allowing you to traverse different mental spaces within the notes
-
Action History and Undo/Redo: record changes to the notes and time-travel between its different states, because sometimes, you want to be able to "go there" and not be weighted down by rock-solid commitment
-
Offline Use: work with your notes even when the Internet is down
(Even though the code for columns is already in the development branch, I was unable to come up with a respectable way of handling it before New Year, which is when I promised to release the app.)
In the long term, I'd like to make sure you could access your notes from any browser on any device. This plan also includes the ability to create and share read-only or editable partial copies of your notes – for example, as presentation or a basis for an online discussion. After finishing with shaping up the current, local-only version, this is where want to take the development. I reckon it would take me somewhere between 6 and 12 months to finish the codebase for this.
Anything else I should know?
Do keep in mind that this is an early release. There may be bugs – perhaps even the kind that will rid you of your notes. If you're uncomfortable about using software this early in development, please don't: your sanity is dearer to me than getting users.
It will, however, get stable over time. If there's ever a breaking change on the horizon – the kind of change that will change an aspect of Intergrid radically – users will be notified about it at least two weeks ahead, so that at least they could backup their notes. I want to ensure the safety of mind for the users of Intergrid, so that they know their notes are in safe hands.
That said, make regular backups anyway. The nodes are encoded/decoded as indented plain text, which means they can be transferred to and from a simple textfile with copy/paste. Any single whitespace character – space, tab etc. – is considered one level of indentation, so it doesn't matter how you indent your plain-text notes: they will be aligned as you'd expect. Intergrid and Indigrid both export tab-indented text.
Can I help?
From the coding and design perspective, I would appreciate open-source involvement. However, at this stage, even though there's a repository awaiting changes, I'm uncomfortable making it public just yet, because licensing is hard and I don't want to get into any sort of legal trouble without at least understanding what I'm dealing with.
Once this and other aspects of open-sourcing the code are dealt with, I'm going to post another update.
If you'd like to support the development financially, you could donate via PayPal.me. The first $5 or so will go to supporting the infrastructure: the monthly hosting payment and 1/12th of the yearly domain name price. (Even though the domain name has been paid for for the next two years, I'd like to be able to host the app reliably. The domain name is directly tied to the data saved – you can't access another website's saved data unless they're on the same main domain – which is why it's important to keep it.)
19 votes -
-
The smallest possible valid (X)HTML documents
5 votes -
Can We Build Trustable Hardware?
8 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...
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?
13 votes -
Day 25: Cryostasis
Today's problem description: https://adventofcode.com/2019/day/25 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/25
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
5 votes -
Tracking flight details while in the air
8 votes -
Day 24: Planet of Discord
Today's problem description: https://adventofcode.com/2019/day/24 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/24
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
4 votes -
Day 23: Category Six
Today's problem description: https://adventofcode.com/2019/day/23 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/23
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
5 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...
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?
11 votes -
Day 10: Monitoring Station
Today's problem description: https://adventofcode.com/2019/day/10 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/10
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
8 votes -
Day 15: Oxygen System
Today's problem description: https://adventofcode.com/2019/day/15 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/15
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
6 votes -
Day 22: Slam Shuffle
Today's problem description: https://adventofcode.com/2019/day/22 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/22
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
6 votes -
Only 15% of the Basecamp operations budget is spent on Ruby
6 votes -
Day 14: Space Stoichiometry
Today's problem description: https://adventofcode.com/2019/day/14 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/14
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
8 votes -
Day 21: Springdroid Adventure
Today's problem description: https://adventofcode.com/2019/day/21 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/21
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
5 votes -
On the Measure of Intelligence
6 votes -
Day 20: Donut Maze
Today's problem description: https://adventofcode.com/2019/day/20 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/20
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
5 votes -
Day 7: Amplification Circuit
Today's problem description: https://adventofcode.com/2019/day/7 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/7
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
10 votes -
Go 1.14 Beta 1 is released
4 votes -
Day 18: Many-Worlds Interpretation
Today's problem description: https://adventofcode.com/2019/day/18 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/18
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
8 votes -
Day 19: Tractor Beam
Today's problem description: https://adventofcode.com/2019/day/19 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/19
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
6 votes -
Day 6: Universal Orbit Map
Today's problem description: https://adventofcode.com/2019/day/6 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/6
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
11 votes -
A Failed SaaS Postmortem
6 votes -
Elements of AI - Free class for AI Fundimentals
7 votes -
Advent of Code 2019
35 votes -
Exploring Google Stadia's "Negative Latency"
26 votes -
Day 17: Set and Forget
Today's problem description: https://adventofcode.com/2019/day/17 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/17
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
7 votes -
ArchLabs Linux?
Anyone here use or used ArchLabs? I put out this Distro along with another dude and I'd love to hear any feedback.
15 votes -
Day 16: Flawed Frequency Transmission
Today's problem description: https://adventofcode.com/2019/day/16 Join the Tildes private leaderboard! You can do that on this page, by entering join code 730956-de85ce0c. Please post your...
Today's problem description: https://adventofcode.com/2019/day/16
Join the Tildes private leaderboard! You can do that on this page, by entering join code
730956-de85ce0c
.Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace
python
with any of the "short names" listed in this page of supported languages):<details> <summary>Part 1</summary> ```python Your code here. ``` </details>
6 votes -
Using PHP 7.4 typed properties
4 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...
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?
13 votes