Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
I kno I'm only joking.

Adbot
ADBOT LOVES YOU

Falcorum
Oct 21, 2010

RIP Syndrome posted:

A (very) poor man's version of this is to append + and a unique string to your mailbox wherever you provide it. E.g. you enter myacct+amazon@gmail.com when you sign up for Amazon, and your mail still arrives in myacct and you can filter on the +amazon bit in the To: header. All serious off-the-shelf software supports it, and I think most e-mail providers (gmail, outlook, ...) do too.

Of course, spammers can just strip the +... part to get at your underlying address. Are they smart/confident enough to do that, though?

On the other hand, some websites have issues handling email addresses with the + part in them (don't ask me why). As in, they simply won't send emails to an address with that.:v:

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Heh, for testing purposes I wrote a random email address generator some time back so I dove into the formal specs.

Quoted from https://en.wikipedia.org/wiki/Email_address#Local-part

quote:

The local-part of the email address may use any of these ASCII characters:

uppercase and lowercase Latin letters A to Z and a to z;
digits 0 to 9;
special characters !#$%&'*+-/=?^_`{|}~;
dot ., provided that it is not the first or last character unless quoted, and provided also that it does not appear consecutively unless quoted (e.g. John..Doe@example.com is not allowed but "John..Doe"@example.com is allowed);[6]
Note that characters after a plus sign + are generally[citation needed] ignored, so fred+bah@domain and fred+foo@domain will end up in the same inbox as fred@domain This can be useful for tagging emails for sorting, see below. The minus sign - is also used in that fashion, although less often.

space and "(),:;<>@[\] characters are allowed with restrictions (they are only allowed inside a quoted string, as described in the paragraph below, and in addition, a backslash or double-quote must be preceded by a backslash);
comments are allowed with parentheses at either end of the local-part; e.g. john.smith(comment)@example.com and (comment)john.smith@example.com are both equivalent to john.smith@example.com.

This often fails at line three as many clients do not like those characters and limit it to .-_ if you are lucky. But formally, any website that accepts email addresses should accept addresses that have any of those characters in the local part. Especially adresses with all kinds of poo poo but in quotes are handled badly by just about all sites and applications I tested.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
Email address RFC 5322 official standard:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Most people just use:

(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

I remember reading once a guy had a working address that was something like `a@a` though I can't remember what I read about it. Someone else was talking about how their email address was completely unusable on any form. I doubt even all email providers adhere to the full spec.

quote:

Note that characters after a plus sign + are generally[citation needed] ignored, so fred+bah@domain and fred+foo@domain will end up in the same inbox as fred@domain This can be useful for tagging emails for sorting, see below. The minus sign - is also used in that fashion, although less often.

What does it mean about the minus sign at the end of that sentence? It also says both + and - are valid characters to use... I'm sure I've seen email addresses where the person's name is hyphenated, does this mean their real address is just their first name?

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
Ooh here's how W3C treats emails in email inputs:

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

RIP Syndrome
Feb 24, 2016

Nolgthorn posted:

What does it mean about the minus sign at the end of that sentence? It also says both + and - are valid characters to use... I'm sure I've seen email addresses where the person's name is hyphenated, does this mean their real address is just their first name?

Hey now that's none of our business, it's strictly between them and their MDA!

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

Email regexes are like encryption, everyone (shouldn't) rolls their own.

IAmKale
Jun 7, 2007

やらないか

Fun Shoe
I picked up <lastname>.network a year or so ago, all enthused that I was able to find a domain name with my full last name in it. Unfortunately more that half of the websites I have accounts with refused to recognize TLDs longer than four characters - the regex validating that input had a {2,4} tacked onto the end! After discovering this on some really big companies' websites, I gave up on ever using the domain for registering accounts.

It's nice seeing that email regexes aren't supposed to discriminate on the length of the TLD, but in practice that logic gets thrown right out the window :qq:

IAmKale fucked around with this message at 18:54 on Feb 22, 2018

kayakyakr
Feb 16, 2004

Kayak is true

IAmKale posted:

I picked up <lastname>.network a year or so ago, all enthused that I was able to find a domain name with my full last name in it. Unfortunately more that half of the websites I have accounts with refused to recognize TLDs longer than four characters - the regex validating that input had a {2,4} tacked onto the end! After discovering this on some really big companies' websites, I gave up on ever using the domain for registering accounts.

It's nice seeing that email regexes aren't supposed to discriminate on the length of the TLD, but in practice that logic gets thrown right out the window :qq:

I've owned the domain hack for my last name for about 10 years now. It's awesome. first@lastna.me is so good.

redleader
Aug 18, 2005

Engage according to operational parameters

Nolgthorn posted:

I remember reading once a guy had a working address that was something like `a@a` though I can't remember what I read about it. Someone else was talking about how their email address was completely unusable on any form. I doubt even all email providers adhere to the full spec.

I've heard that people from Google are starting to use name@google, since they own that TLD. They can gently caress right off, because Real Domains Have Periods.

And, of course, no two email providers validate addresses the same way. In practice, the best email validation regex is "something that mostly matches gmail". Or .+@.+

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
My favourite is \S@\S (no anchors). If you can match that we’ll send an email.

IAmKale
Jun 7, 2007

やらないか

Fun Shoe
Even better, don't bother validating emails on the client. Only allow people to create accounts when they can click a validation link in an email sent out to the address they specified. If they gently caress up or specify an incorrect email, tough poo poo :getout:

Pollyanna
Mar 5, 2005

Milk's on them.


IAmKale posted:

Even better, don't bother validating emails on the client. Only allow people to create accounts when they can click a validation link in an email sent out to the address they specified. If they gently caress up or specify an incorrect email, tough poo poo :getout:

This is my preferred approach. Your problem~

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
My preferred approach is to build an api that hands out account ids to apps and the apps send messages to account ids and the account ids have to approve the apps. But assuming people want to switch to a emailess email reader, or that app administrators don't want to collect email addresses is my folly.

pokeyman posted:

My favourite is \S@\S (no anchors). If you can match that we’ll send an email.

I used /^[^\s@]+@[^\s@]+\.[^\s@]+$/

People going no-tld are playing with fire.

Nolgthorn fucked around with this message at 13:44 on Feb 23, 2018

Capri Sun Tzu
Oct 24, 2017

by Reene

IAmKale posted:

Even better, don't bother validating emails on the client. Only allow people to create accounts when they can click a validation link in an email sent out to the address they specified. If they gently caress up or specify an incorrect email, tough poo poo :getout:

Pollyanna posted:

This is my preferred approach. Your problem~
Why would you want to make it harder for someone to sign up for your product? That isn't competent front-end design.

Obsurveyor
Jan 10, 2003

Capri Sun Tzu posted:

Why would you want to make it harder for someone to sign up for your product? That isn't competent front-end design.

There's no bulletproof front-end design solution to make sure an email is correct, including being free of typos, without ultimately sending an email.

5TonsOfFlax
Aug 31, 2001

Capri Sun Tzu posted:

Why would you want to make it harder for someone to sign up for your product? That isn't competent front-end design.

As someone with <first_initial><lastname>@gmail.com, I'm thankful for that approach. I'd much rather receive a single "confirm your account" email I can ignore, than an ongoing deluge of poo poo from mailing lists, apps, sites, and idiots (nothing can stop the idiots). People have even signed up for accounts on services that I eventually want to use with my email, necessitating stealing their accounts from them. I have an Apple ID now, despite owning no Apple hardware.

Capri Sun Tzu
Oct 24, 2017

by Reene
Whatup flname@gmail.com buddy, I've had mine for close to 20 years so at this point and it's a constant stream of garbage no matter what I do to organize it. I've also had a bunch of people use my email for various things, including one mildly embarrassing incident where I submitted my apple id to be added to corporate account, only to find out it was registered to a woman who shared my initials. I had recovered the password thinking I'd forgotten it and had been using it for years.

This was an issue because WWDC invites are given out soley by lottery and require you to show photo ID matching your apple ID. I had to explain to my managers and dev team why they had just bought a $1600 ticket for "Jillian" and would need to petition Apple to get it changed.

Volguus
Mar 3, 2009

Obsurveyor posted:

There's no bulletproof front-end design solution to make sure an email is correct, including being free of typos, without ultimately sending an email.
To ensure that the email is correct (syntactically) there is, is just that is not worth it to implement the full RFC. To ensure that the email actually exists and can be read by whoever gave it to you, there are only two ways:
  • Implement OAuth2 authentication in your web app with every OAuth provider there is out there
  • Send the email while making the account

Both of these are bulletproof as they do confirm that the user has access to the account that they say they do. OAuth may have a few vulnerabilities here and there but is relatively easy to use.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Capri Sun Tzu posted:

Why would you want to make it harder for someone to sign up for your product? That isn't competent front-end design.

lol, yeah. hosed up engagement numbers are more important than actual irl users. barriers to entry might be bad for vc money (a legitimate concern to be sure) but it's the opposite re the quality of your user base. sure, let people sign up and check it out, but if they cannot verify their email they're out.

Also my firstname.lastname email coup de grace, wherein I wrote some songs for Lindsay Lohan (e: Snapchat a Titty is my prev username):
https://forums.somethingawful.com/showthread.php?threadid=3712267&userid=0&perpage=40&pagenumber=511#post456016998

I still get tons of receipts & signups in the that name, though I guess the music producer has lost some of his cachet because lately its all been a teenage gamer :(

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Volguus posted:

To ensure that the email is correct (syntactically) there is, is just that is not worth it to implement the full RFC. To ensure that the email actually exists and can be read by whoever gave it to you, there are only two ways:
  • Implement OAuth2 authentication in your web app with every OAuth provider there is out there
  • Send the email while making the account

Both of these are bulletproof as they do confirm that the user has access to the account that they say they do. OAuth may have a few vulnerabilities here and there but is relatively easy to use.

Oh hey there you go Nolgthorn - you should add OAuth so you can hand out junk addresses there, too!

Impotence
Nov 8, 2010
Lipstick Apathy

Nolgthorn posted:

My preferred approach is to build an api that hands out account ids to apps and the apps send messages to account ids and the account ids have to approve the apps. But assuming people want to switch to a emailess email reader, or that app administrators don't want to collect email addresses is my folly.


I used /^[^\s@]+@[^\s@]+\.[^\s@]+$/

People going no-tld are playing with fire.

code:
$ dig +short tt MX
1 ASPMX.L.GOOGLE.COM.
10 ALT1.ASPMX.L.GOOGLE.COM.
code:
$ dig +short ai MX
10 mail.offshore.ai.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Biowarfare posted:

code:
$ dig +short tt MX
1 ASPMX.L.GOOGLE.COM.
10 ALT1.ASPMX.L.GOOGLE.COM.
code:
$ dig +short ai MX
10 mail.offshore.ai.

?SYNTAX ERROR
READY.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense

Munkeymon posted:

Oh hey there you go Nolgthorn - you should add OAuth so you can hand out junk addresses there, too!

The workflow is similar.

While signing up somewhere you click on a link with an appId in it and it takes you to my thing, where you have to be logged in. Then it asks if you wanna receive messages from the app owner, if you click yes it adds an account to your sidebar and redirects you back to the app webpage with the new accountId in it. Then on their end they can start piping you messages.

But part of the purpose of it, were anyone to ever use it and I am not sure anyone will other than me, is that I don't want any apps being linked to my google account, or twitter, or whatever. I don't want them having my email address but I also don't want them having my name, my contacts, on and on.

So my thing just gives them an id that's it. :downs:

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Nolgthorn posted:

Email address RFC 5322 official standard:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Most people just use:

(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

Oh, nice regexes, that can be put to good use with generex (some java lib) for randomizing email addresses.

Nolgthorn posted:

Ooh here's how W3C treats emails in email inputs:

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

gently caress yes! I know of at least 2 systems I touched in the last year that would fail this test.

Now the only thing is to include some sort of length randomizer (I have this already) and there is infinite email addresses in the future. Reason: when running tests, I like to randomize data input for all kinds of fields so that it will resemble real world possibilities more without me having to think very deep what possible emails would be. It leads to amusing errors, one was that the input and display were not matching as a double space is shown as a single in browsers. We made adjustments to the randomizer at that point.

hendersa
Sep 17, 2006

Hey guys! It's been a while!

I've been working on the Beagle Entertainment System a bit for the past six months or so. Remember this thing?




I put in an hour or two here and there when I can. Some bug fixes and clean-ups turned into bigger redesigns and abstractions, and now I've put something like 250 hours in on this thing getting it in good shape. In fact, much of the platform-specific stuff has been abstracted away to such a degree that I'm looking at getting it working on all of these guys:



My TODO list isn't getting any shorter because of it...



... but things are looking up. Before, I was using Node.js for the Express-based configuration web interface, but it was just too slow and heavy. Fighting with Node versions and npm wasn't doing any favors for me, either. Sure, it is convenient and all, but throw multer into the mix and it becomes a mess. So, I decided to write a proper, lightweight web server using Mongoose, and it is so much faster to start up and shut down. It's a little weird about how everything is handled using static callback functions, so I had to protect multi-part form uploads using a mutex (ensuring that only one multi-part session could be active at once). I need to add in some more logic for database queries for the web interface, but the BES side is pulling out game and control info from the database with no problem.

:mario:

I was also tooling around ebay a bit and I found an SNES audio processing unit daughterboard for $8. It has a pretty straightforward interface, so I figured I'd take a shot at talking to it with my BeagleBone Black and seeing if I can get the APU to play some audio. I'm still waiting on some parts from Digikey to breadboard out the circuit, but I've got the initial research done on the hardware interfacing:



The quick summary is that I'll use an 8-bit data bus to transfer a program to the SNES's SPC700 on the APU board. Once I get all the handshaking and such done, I can query the status register of the APU using the two-bit address bus and start/stop audio program execution. The APU has a built-in audio circuit, so I'll be able to push audio data out directly to an audio jack from the APU board. It isn't as simple as connecting 8 BBB GPIOs to the 8 APU data bus pins to make a parallel interface because the bus has to be bidirectional (BBB GPIOs are only input or output, not both) and the APU uses 5V logic levels while the BBB uses 3.3V. That means I need to use a pair of shift registers and some line level converters to get things talking. I have one output GPIO and one input GPIO that are the serial-in and serial-out for the shift registers. One shift register puts data on the parallel bus (and it is pulled into a high-impedance state when I want to read from the bus). The other register is always listening on the bus and it ready to send me a serial stream of the current bus state. Aside from that, I have a bunch of output GPIOs to handle the control signals for the APU and the shift registers.

:science:

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I've been rewriting my GameCube model viewer, now that I know what I'm doing, to be faster, and support a ton of additional junk. Along the way, I noticed a really neat effect they pulled off in Super Mario Sunshine, and wrote a post about it! Deconstructing the water effect in Super Mario Sunshine

Tann
Apr 1, 2009


That's really cool, thanks for sharing!

Happy Thread
Jul 10, 2005

by Fluffdaddy
Plaster Town Cop
Seconded! Sometimes I have to explain mip maps in graphics class and this trick can make them more interesting

Veni Vidi Ameche!
Nov 2, 2017

by Fluffdaddy

hendersa posted:

Hey guys! It's been a while!

I've been working on the Beagle Entertainment System a bit for the past six months or so. Remember this thing?




I put in an hour or two here and there when I can. Some bug fixes and clean-ups turned into bigger redesigns and abstractions, and now I've put something like 250 hours in on this thing getting it in good shape. In fact, much of the platform-specific stuff has been abstracted away to such a degree that I'm looking at getting it working on all of these guys:



My TODO list isn't getting any shorter because of it...



... but things are looking up. Before, I was using Node.js for the Express-based configuration web interface, but it was just too slow and heavy. Fighting with Node versions and npm wasn't doing any favors for me, either. Sure, it is convenient and all, but throw multer into the mix and it becomes a mess. So, I decided to write a proper, lightweight web server using Mongoose, and it is so much faster to start up and shut down. It's a little weird about how everything is handled using static callback functions, so I had to protect multi-part form uploads using a mutex (ensuring that only one multi-part session could be active at once). I need to add in some more logic for database queries for the web interface, but the BES side is pulling out game and control info from the database with no problem.

:mario:

I was also tooling around ebay a bit and I found an SNES audio processing unit daughterboard for $8. It has a pretty straightforward interface, so I figured I'd take a shot at talking to it with my BeagleBone Black and seeing if I can get the APU to play some audio. I'm still waiting on some parts from Digikey to breadboard out the circuit, but I've got the initial research done on the hardware interfacing:



The quick summary is that I'll use an 8-bit data bus to transfer a program to the SNES's SPC700 on the APU board. Once I get all the handshaking and such done, I can query the status register of the APU using the two-bit address bus and start/stop audio program execution. The APU has a built-in audio circuit, so I'll be able to push audio data out directly to an audio jack from the APU board. It isn't as simple as connecting 8 BBB GPIOs to the 8 APU data bus pins to make a parallel interface because the bus has to be bidirectional (BBB GPIOs are only input or output, not both) and the APU uses 5V logic levels while the BBB uses 3.3V. That means I need to use a pair of shift registers and some line level converters to get things talking. I have one output GPIO and one input GPIO that are the serial-in and serial-out for the shift registers. One shift register puts data on the parallel bus (and it is pulled into a high-impedance state when I want to read from the bus). The other register is always listening on the bus and it ready to send me a serial stream of the current bus state. Aside from that, I have a bunch of output GPIOs to handle the control signals for the APU and the shift registers.

:science:

Holy poo poo. It's still alive? I think I asked this, before, and the answer was, "no," but is the code up on Github or anything? There are multiple things (especially with the game listing/selection interface) that I've wanted to fix, in the past.

LP0 ON FIRE
Jan 25, 2006

beep boop
Making a strange cellular automata thing that uses ascii



Also I'm getting a strange thing to eventually happen on the left side that might be a bug explained here: https://forums.somethingawful.com/showthread.php?threadid=3070034&pagenumber=180&perpage=40#post481874569

hendersa
Sep 17, 2006

Veni Vidi Ameche! posted:

Holy poo poo. It's still alive? I think I asked this, before, and the answer was, "no," but is the code up on Github or anything? There are multiple things (especially with the game listing/selection interface) that I've wanted to fix, in the past.

It's still alive, sorta. The quick version is that I got busy finishing my PhD, spent some time working double-time at a new job, and then spent some time recovering from ridiculous levels of burnout and aching wrists. That resulted in my stuff sitting around for about a year and a half without any activity. I've been answering mails as they've come in here and there to provide support, but I was so burnt out that I just didn't want to sit in front of the computer for a while. The old stuff is here:

GUI front-end and emulators: https://github.com/hendersa/bes
Node.js configuration web server: https://github.com/hendersa/bes-config-node
Kernel (3.14-ti) device tree rebuilder: https://github.com/hendersa/bes-dtb-rebuilder
Users manual: https://github.com/hendersa/beaglesnes-manual

Not much of that will be useful, as the front-end and emulators are being rewritten (and are not yet checked in), the Node.js stuff is now a Mongoose-based server embedded in the GUI code, and the device tree rebuilder stuff will need to use the device tree files for the 4.9 kernel.

What got me off my butt and looking at it again was the folks from beagleboard.org contacting me around last August/September and asking me to look at supporting their new PocketBeagle board. The BBB-specific hardware interfacing was strewn all throughout the BES code, though, so it became pretty clear that a rewrite was in order to isolate and abstract that stuff. I started in on a rewrite, and I spent a lot of time just moving things around, consolidating into classes, and experimenting with various ways of doing things.

I don't think that people realize how much work it is to do this kind of stuff. Getting all of those boards set up and breadboarded out with interface circuits, planning out the pin-muxing, etc. takes a lot of time, and I only get so many hours a week to work on it. I get lots of "you should have used RetroPi lol" mails, which don't much help my mood. Those guys kind of miss the point that BES was supposed to be a good example of how to get all of these fancy features working together to make a multimedia embedded appliance.

Oh well. I do sometimes get a mail from a grad student or engineer somewhere who copied a bit of BES to help with a research project or something. Those mails help make it worth it. :eng101:

TheresaJayne
Jul 1, 2011
Finally produced something i can show

https://www.youtube.com/watch?v=-XQ2icxqMgo

TheresaJayne fucked around with this message at 16:01 on Mar 19, 2018

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
I haven't considered it before but I imagine building an algorithm which correctly stages orbits for planets to follow is hard. Therefore are those orbits predetermined instead? They seem a bit round when I would expect something more ovalish to my untrained eye.

Can the planets disrupt one another?

Capri Sun Tzu
Oct 24, 2017

by Reene

Nolgthorn posted:

I haven't considered it before but I imagine building an algorithm which correctly stages orbits for planets to follow is hard. Therefore are those orbits predetermined instead? They seem a bit round when I would expect something more ovalish to my untrained eye.

Can the planets disrupt one another?
It's not just hard, it's NP-hard.

Eela6
May 25, 2007
Shredded Hen
If I remember correctly from when I did it in my numerical analysis of diff eqs class back in college, it's not too hard to approximate the solutions (in the short term) if you use implicit runge-kutta methods for the diff eqs, though you have to be careful with normalizing the step sizes, etc.

This sort of problem deals with very small and very large numbers at the same time, which is a recipe for bringing out some of the worst behavior of floating-point numbers.

NASA provides an API for the projected and historical orbits of pretty much any celestial body you can think of, which I used to check my answers.

As it turns out, in the short term, the planets don't effect each other's orbits very much at all. They are very small and very far away from each other, and the sun is very large.

Eela6 fucked around with this message at 18:25 on Mar 19, 2018

LP0 ON FIRE
Jan 25, 2006

beep boop
Sorry about the clarity of this video. This is cropped to the controls for my camera app. Perhaps I should upload another with a dark background.

https://www.youtube.com/watch?v=WA0m0Qf42jI

I'm having a design issue, and just wanted opinions. Right now, my video record and photo capture buttons switch, and then can be tapped an additional time to take a photo or start recording a video. The furthest left button is the photo albums button showing a thumbnail of the user's latest photo, and I was going to have it switch places with the currently selected button. I thought this would be nice to you could preview live and change whatever effects are being done on the imported photo before making a finalized video or still, but then I realized if I did this, having 3 buttons swapping would change their order in all different ways!

Now I'm trying to think of a better way of incorporating the feature of previewing live effects on an imported photo. Or maybe having 3 buttons swap out of order is okay?

One alternative I thought of would be to disable the other buttons when you import a photo for live effects preview, without swapping, and have a "Next" or button or something in the upper right of the screen, and an X to cancel and go back to photo or video capture mode. My dilemma there would be that the photo or video buttons would already be showing a selected capture mode by having one of them be big, and I just don't like that. It kind of brings me back to the original idea of having the 3 buttons swap.

lord funk
Feb 16, 2004

LP0 ON FIRE posted:

I'm having a design issue, and just wanted opinions.

I think you have a cool animation that is a poor interface. When I press a button I want it to stay put. Plus, if I hit the record button, I want it to start recording, not move and make me press it again.

Some thoughts: why not just animate the size of the button (hey, you just started recording, press this again to stop)? Or if you are absolutely set on having your buttons fly around, shift all three around, and center the one you just pressed.

LP0 ON FIRE
Jan 25, 2006

beep boop

lord funk posted:

I think you have a cool animation that is a poor interface. When I press a button I want it to stay put. Plus, if I hit the record button, I want it to start recording, not move and make me press it again.

Some thoughts: why not just animate the size of the button (hey, you just started recording, press this again to stop)? Or if you are absolutely set on having your buttons fly around, shift all three around, and center the one you just pressed.

Despite it making sense that importing an image for a live effects preview should be thought as another mode besides taking a photo and recording video, I decided to knock out the import button position, and swap it with the settings button at the top of the screen. I'm going to stick with only the video and photo button swapping. The one that is larger and centered gives good context of what mode you're in, but I'll put that to the test of who tries it out before releasing it.

I really wanted to keep it simple as possible, and I think just a tiny bit of experimentation will make people instantly know what's going on. I'm glad I didn't go with the 3 button swapping thing though.

I think I see what you mean by resizing the buttons, which I like too. That would be making both the video and photo button small originally, then increasing the size when you pressed it, but also that triggers the button's action of taking a photo/video?

Adbot
ADBOT LOVES YOU

lord funk
Feb 16, 2004

LP0 ON FIRE posted:

I think I see what you mean by resizing the buttons, which I like too. That would be making both the video and photo button small originally, then increasing the size when you pressed it, but also that triggers the button's action of taking a photo/video?

I mean, I'm get unreasonably annoyed at unnecessary clicks / taps, but considering there will be a corresponding 'mode' switch, I'm betting the swap will go over just fine.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply