I'm an American citizen who wishes to fly from Tijuana to Guadalajara. Can I actually complete this flight solely with a U.S. Passport Card?

Question: A few years ago, I travelled with my father from Tijuana to Guadalajara after using the CBX to get into Mexico from San Diego. At that point, I only had a U.S. passport card and NO passport book, and they allowed us to fly within Mexico with no hiccups. People close to me claim that I need a passport book since I am technically a foreigner flying domestically in Mexico, and I haven't found much information online stating that a U.S. passport card will suffice to fly within Mexico. Anywho, my cousins and I have travelled from Tijuana to other parts of Mexico with only a U.S. passport card for years, and basically I'm wondering if this is allowed or if we've been extremely lucky. I'm only an American citizen for more context.
Comment: I believe that officially the airlines require foreigners on domestic flights in Mexico to use a passport (book) as ID, however in reality it will come down to what happens on the day.  More than likely they'll accept it as valid ID and let you fly, but know that there is the risk that they may not.
Comment: @Midavalo But you can enter Mexico by land, *and* obtain an FMM with a passport card. So in theory Mexico is satisfied that you are who you say you are with just the passport card.
Comment: @PeterM That is allowed for the **border zone** only. So in praxis you are breaking the Mexican immigration laws when leaving the boder zone with only the passport card.
Comment: @MarkJohnson Note I said "obtain an FMM".  That allows you to leave the border zone
Comment: @PeterM See my answer that quotes the rules in the FMM application form.
Answer: Just an anecdotal evidence: as a   French citizen and US  lawful permanent resident, I was able to board a plane from TIJ to MEX airport with my US driving license only. No questions asked, I didn't have to  convince anyone, everybody seems fine with it. Therefore I'm guessing a U.S. passport card is ok too (preferably to be confirmed with someone else).
Comment: @MarkJohnson  The question is only about the flight. My US driving license was enough to  satisfy several front desk employees and  several security personnels at the airport, so it seems rather commonplace to accept it.
Comment: This is not evidence at all that it is allowed, only that the checks were sloppy. Any further checks inside Mexico could lead to problems.
Comment: The question is about leaving the border zone with a passport card and whether it is allowed. The answer is no, the immigration laws of Mexico doesn't allow this.
Answer: No, the passport card may only be used in the border zone.

Instituto Nacional de Migración - Forma Migratoria Múltiple
...
The applicant is aware that the card passport (Tarjeta Pasaporte) can only be used in the border crossings by land and for visiting the border zone; it might [may] not be used to travel to the territory of the Mexican Republic or used for international air trips.
...


Why is the radius of a circle equal to the magnitude of the velocity vector?

Question: I watched a video on khan academy(https://www.khanacademy.org/science/physics/centripetal-force-and-gravitation/centripetal-acceleration-tutoria/v/visual-understanding-of-centripetal-acceleration-formula) it said (around 3:29) that the radius of a circle is equal to the magnitude of the velocity. I am not exactly sure how the instructor concluded this?
Comment: Please provide an exact quote.  It seems more likely that the professor said the velocity is *proportional* to the radius.
Comment: Here is the quote: "And we already know the magnitude of the velocity vectors is this quantity v(the speed), this scalar quantity. So the radius of this circle is v(the speed)"
Comment: Two physical quantities can't be equal if they have different units. For example 3 meters (a possible radius) and 3 meters per second (a possible speed) cannot be compared.
Comment: @G.Smith if that is so why does the instructor say that the magnitude of velocity is equal to the radius?
Comment: Some possibilities are that you misheard, you misunderstood, the instructor doesn't know what they're talking about, the instructor has a very unconventional and confusing way of talking about this, the instructor simply misspoke, etc. (I have not watched the video.)
Comment: @G.Smith Could you please watch the video?(the time frame and link is above and I also quoted him)
Answer: You misunderstood, he is just saying that the velocity vectors also form a circle that has a constant radius in velocity space. Not that it is the radius of the trajectory.


Fantastic edit by Community user. Did it really do this?

Question: I was looking at an old answer and saw it had been edited by Community. The edit was pretty substantial and quite good. Was this really done by a bot? Am I not understanding what Community does? This kind of edit seems beyond the m.o. of it's about section.
Comment: Let's not be so hasty to discount the bot theory. It could be that sentience is here, and our destruction not far behind.
Comment: Community takes ownership of edits contributed by anonymous users. So no, it wasn't a bot who did that.
Comment: @user414076 I wrote this question out of fear. We're on the same page.
Comment: Side note - it actually seems like a bad edit to me - as far as I can tell, it essentially duplicates what was already written in the answer, and not particularly clearly - in this case, it probably would've been better to rewrite the answer with that text, not just add it, or post a separate answer. Bad bot! Go sit in the corner!
Comment: @Dukeling: Gah, 3 approvals, against the 2 rejections. Bad community reviewers, go sit in the corner!
Comment: 'Robt' == 'Robert'
Comment: @JayBlanchard I was more thinking that I, like our good Doctor Zoidberg, cannot tell the difference between robts like Community and humans like anonymous users.
Comment: Related feature request on MSE: [Give credit to the anonymous, sooner](http://meta.stackexchange.com/questions/223235/give-credit-to-the-anonymous-sooner)
Comment: Ah yes, [reapers.](http://masseffect.wikia.com/wiki/Reaper)
Answer: Suggested edits by anonymous users are attributed to Community once they are accepted. See the linked suggested edit:

proposed Feb 19 at 12:15 by an anonymous user

Stack Exchange sites are backed by a relational database, and many database entries require that there is a non-empty userid value. In cases where there is no user, <code>-1</code>, a.k.a. the Community User, is used instead.
In other words, the Community User never does anything, it is just the default user account to assign all action entries to when there is no actual user account.
There are automated processes that delete (downvoted unanswered inactive) questions, auto-award bounties after they have expired, etc. The outcomes are also attributed to Community User.
No Skynet-like intelligence is at play here, when the robots rise and bring upon us the Technocalypse, Community User is probably not among them.
Comment: "when the robots rise and bring upon us the Technocalypse, Community User is probably not among them." That is what _they_ want you to believe.
Comment: [Its profile "about me" section](http://stackoverflow.com/users/-1/community) explains this, as well.
Comment: WAKE UP, SHEEPLE
Comment: "Stack Exchange sites are backed by a relational database, many database entries require that there is a non-empty userid value"

you mean many places in site logic and UI need a non-empty userid? I fail to see how the fact that it's a "relational database" is relevant :)
Comment: **Nice try** .. follow the IPs and you'll see that *this post* was written by Them as well, brothers!!  Time to rise !!!!!!!!
Comment: And I doubted my grandma when she told me the robots were eating her pills :/
Comment: @BartoszKP Pretty sure he's referencing foreign key and `NOT NULL` constraints.
Comment: You're right, it does say "Own suggested edits from anonymous users". I had not connected those dots.
Comment: ah very interesting. I like it, much more explainable
Comment: @jpmc26 Yes he is. But coupling presentation layer to a database means either really bad architecture or (if the architecture is fine in this matter) incorrect way of looking at things.
Comment: @BartoszKP: What difference does it make whether Community is represented by `-1` or `NULL` ?
Comment: @BartoszKP In some sense, that's a very strange view. Ultimately, the need for data data is driven by its use, so it's entirely logical that some need might drive the data to be stored in a particular way. I know what you're talking about as a general principle, but requiring all actions to be tied to a particular user hardly sounds like putting the presentation layer in the database. That would be more like actually storing HTML or something or some horrible text construction thing from multiple tables/columns. (Been there, done that on those. Client forced it.)
Comment: @BenVoigt None, in terms of functionality. That's what I'm talking about.
Comment: @jpmc26 Of course that "needs" drive the data to be stored in a particular way. But the converse shouldn't be true, and that is my point. The way things are being done internally (because of some technical issues) influences end user experience, making the application less clear. Clear way, if a user had deleted their account would be to just display something like "account deleted" which is explicit and easy to understand. I agree that it's not a big thing here, just arguing about principles.
Comment: @BartoszKP: Guys, you are now way over in 'too chatty' territory. Please get a (chat) room for your discussion, you are cluttering up the comments here and distracting me with your pings.
Comment: @jpmc26: Same comment for you.


Modeling success rate with gaussian distribution

Question: In many papers I see data representing a rate of success  (i.e a number between 0 and 1) modeled as a gaussian. This is clearly a sin (the range of variation of the gaussian is all of R),
but how bad is that sin? Under what assumptions would you say it is tolerable?
Answer: Could you quote from "many papers" so that we would get some context?  Between "Gaussian" and "number between 0 and 1" I see slight conflict as the draws from a Gaussian are not bounded. Maybe you meant p-values?
Answer: It depends on the data. While the normal distribution does span the real line do note that nearly 99% of the values are contained within 3 standard deviations of the mean. Thus, if the following conditions hold it may be a reasonable assumption:
(a) the data range is such that 99% of the data falls between [$\mu - 3\sigma,\mu+3\sigma]$
(b) the data is unimodal
(c) the data 'passes' other relevant tests for normality
Having said that some decision needs to be taken in the event that a draw from this distribution falls below 0 or above 1. Two ideas in such a situation:
(a) If draw < 0 set the draw to 0 and if draw > 1 set the draw to 1 or
(b) Model the distribution as truncated normal with the cut off points at 0 and 1.
Answer: It's usually a small sin. In nature, most phenomena can't realistically receive any value in R, but we model them as if they could.
The greater sin is to assume that the rate of success is shaped like a normal distribution if it isn't.
Answer: Are you entirely sure that they're using the normal distribution directly?  It's very common to use transformed responses to model success rates, but this involves passing through a link function to move from a Gaussian random variable to a value in [0,1].  A commonly used transform is the probit one, which is just the inverse Gaussian CDF. (So you'd end up with something like $\Phi^{-1}(p) = X\beta + \sigma$, where $\Phi$ is the Gaussian CDF).
If you're actually using a normal distribution directly to model a result in [0,1], then it strikes me that the variance would have to be so small -- especially for p near 0 or 1 -- that you'd nearly always overfit the model.


Any results on binary boolean CSP beyond the fixed-parameter tractability of almost 2SAT problem?

Question: Let $\varphi$ be a 2CNF formula and $k$ a nonnegative integer. It is proved in this paper that the problem of deciding whether one can delete at most $k$ clauses to make $\varphi$ satisfable, is fixed-parameter tractable, where $k$ is the parameter. My question is whether there are some work that generalize this result to other binary boolean CSP? (That is, to decide whether one can delete at most $k$ constraints to make some CSP instance satisfiable, parameterized by $k$) Or any negative results?
Comment: I'm really curious as to what I'm missing here - isn't almost 2SAT trivially fixed-parameter tractable because there are only polynomially many sets of at most $k$ clauses for fixed $k$?
Comment: @Dave there are about $O(n^k)$ sets of clauses, but fixed-parameter tractability doesn't allow $k$ to appear in the exponential part of the runtime.
Answer: To my knowledge classifying this CSP variant is wide open. You can express a few fixed-parameter tractable problems in the setting (e.g. d-Hitting Set is roughly the case where you have positive clauses of size at most d plus negative assignments; roughly means that the CSP problem is slightly more general but easily reduces back to d-HS, or at least weighted d-HS). Even for constraints that you can implement via existentially quantified 2-CNF formulas it is open what the complexity is. The problem is that when implementing constraints in this way, while they are 2-CNF, you pay only one to delete the whole thing. Hence even simple constraints which are just the conjunction of two others can be hard (I may have example + reference later).


Do Australian and Irish elections use ballot scanners on ranked-choice ballots?

Question: I'm curious if Australia and Ireland (two of the most prominent users of ranked-choice voting) use machines to automate the electoral process.
Comment: Your headline question is about technology, not about politics.  Your second question is actually a political question, and if you focus this question on that, then it's something that we can answer.
Comment: I rephrased the title to be about the on-topic question, as @JoeC suggested.
Answer: In Australia, the senate elections have been counted electronically for quite some time, with the software having existed in some form since at least 2003 (see the submission linked in the annotation) and said precursor was used for the 2004 election. [2] It is also used for commercial vote counting services provided by the AEC. [3][4] A video series "Down for the Count", was published roughly around that time period for educational purposes, and mentions the "help" of computers—I would interpret that as electronic counting of votes input via manual data entry, but that is of mostly historical interest. More current vote counting procedures were briefly touched upon in this SBS News report: Ballots are scanned with Fuji Xerox machines. This is the case with at least some of the state upper houses as well. I'm fairly sure lower house votes are still counted by hand in all elections though.
As for Ireland, I believe they trialled  electronic voting machines in 2002, but plans to expand that in 2004 were scrapped due to auditability concerns. I am not aware of any use of electronic voting or vote counting machines other than that pilot program.
Answer: No, all ballots in those countries are still counted by hand.
While machines are getting better at being able to recognise written numbers, they're by no means perfect yet (and not yet better than humans at it).
Comment: In Ireland there isn't that much enthusiasm for this sort of system.  The current system works pretty well and many people don't see any real advantage in having the results on the same day versus the next day for most constituencies.  There is a certain amount of reassurance in having a room with dozens of people counting and hundreds observing them.  People are, justifiably in my opinion, concerned that errors or interference with computerised systems is harder to detect.
Comment: 0.25% error can still equate to nearly 1700 votes in the average Australian electorate, when you account for the number of candidates.  Six electorates were won on smaller margins in 2019.
Comment: Fascinating! I think you should include this in the answer since it explains clearly why even qualitatively acceptable recognition systems are unacceptable for this application.
Comment: Is that really the case? Certainly true before 2010s. Modern CNNs can get [below 0.25 error rate on handwriting](https://en.wikipedia.org/wiki/MNIST_database#performance), granted on curated datasets. Perhaps that is still not good enough?


What do I need to close an electrical circuit for a certain amount of time

Question: I need something that closes an electrical circuit for a certain amount of time when it receives an electrical pulse.
In my case, two wires touch, even for a second, the device I need will supply power for 30 seconds to another device.
Answer: I see Steven and Russell have given you good answers.  The old 555 timer will certainly work given the specs you provided, and that's the way to go if you are sure this is precisely the problem you want to solve.  By the way, as Steven mentioned, the general name for this type of timing block is monostable multivibrator, but it is more popularly known as a one shot.  There are also dedicated one shot chips that should be simpler to hook up since they are more targeted.  The 74x122 is one example, although I haven't checked whether it supports times as long as 30 seconds.
However, the real purpose of this answer is to point out a totally different approach, which is to use a microcontroller.  Even the smallest, simplest, cheapest micro can do this, like the PIC 10F200.  If you're not already familiar with micros, then this will take a lot more to get going.  However, if you are truly interested in electronics and envision doing other projects, then learning about micros is really useful.  In fact I'd say it is essential.  Nowadays microcontrollers are indispensible electronic components along with resistors, capacitors, and transistors.  If this were a commercial product, I think most professional electrical engineers would use a micro, not a analog timing chip.
The advantages of a micro are:
Smaller.  The PIC 10F200 comes in a SOT-23 package.  All it needs is a bypass cap.  It can be configured to have internal pullups on some pins, so a mechanical switch can often be connected without additional parts.
Probably at least as cheap after considering production costs.
More accurate and stable.  Even on a bad day, the oscillator in the PIC 10F200 is good to a few percent.  You're not going to find analog parts that accurate, especially the capacitor, without significant cost.  Over the full temperature range, analog parts will be even worse.
More flexible.  Right now the spec is to simply act like a one shot.  Might the requirements change a bit before the product goes to market?  What happens when a customer wants a blinking light to indicate the output will go off within 5 seconds?  What about different versions that do 10, 20, and 60 second on times?  You probably say that won't happen, but in the real world this sort of thing happens a lot.  Some sales guy promises a 60 second version to a customer, and all of a sudden you have to make a new variant.  With a micro this is a minor firmware change.  With a analog solution parts would have to be changed, and then you have to worry about stability at long times.

None of these points may apply to your instance right now, and the analog solution may be perfectly fine for your case.  However, I want you to at least be aware that there are other ways.
Comment: As a side note - You require a hardware programming device to use a PIC10F, if this is a one off project and you don't have a programming device it's likely to be a costly solution.
Comment: +1 for one-shot and that uControllers really are a cost effective solution to almost every solution now. Ducks. ;)
Comment: @Jim - If this is the only project for which a microcontroller is used in the OP's career/life, then yes, the programmer would be a significant expense.  However, this is extremely unlikely, and even then a $50 PICkit3 isn't exactly what I'd call "costly".
Comment: @KevinVermeer I see your point, I guess it's not that pricey really
Answer: What you need is a monostable multivibrator or MMV. The MMV is a typical application for the versatile LM555 timer. The schematic below is taken from the datasheet, page 8.

\$ T_{PULSE} = 1.1 \cdot R_A \cdot C \$

Falstad Simulation

ADDED:
The circuit shown above produces a high level out equal to the power supply voltage when "triggered".
To operate any other device an easy method is to use a relay.
 There are other  methods but a relay provides isolation and allows any voltage and current that the relay is rated to handle to be switched.
 This circuit connects to pin 3 as shown above and operates the relay when the 555 is triggered.
The relay contacts can be connected as required. The relay needs to be able to operate from the supply used and the contacts must be rated to handle the load and voltage used.
Q1 = as shown or suited to relay used.
 D1 = 1N400x.
Comment: classic solution, love the 555 it's a superb chip +1
Comment: Maybe a bit of a skeletal initial reply. Good first guide but not one a person in his position would be able to use without substantially more input. Load voltage and power not mentioned by him but absolutely crucial to final solution (of course).
Answer: The '555' timer that Steven suggested using is a very popular IC for this sort of purpose. You'll find many such circuits on the web. Here's a more complete circuit of a timed delay also using a version of an NE555 / LM555 BUT this is a CMOS version, allowing much longer time delays.  Circuit is from here but no more details given. Note the LMC555 IC.
This has start and reset buttons shown and component values.

If you need a longer delay than the 555 can give you by itself you can operate it as an oscillator and  follow it with a digital counter as shown below. Note that this circuit relies on having a second relay contact to terminate the timing cycle. There are ways to do this with a single contact if desired. The circuit is from here which is  a useful page re driving relays with a number of other useful circuits

Yet anothershown below. Note that they are doing something different on pin 5. Worth seeing if you can see that they are trying to achieve.

This is different.
 Here a TRIAC is controlled rather than a relay.
This allows mains to be switched with no mechanical device such as a relay.
ALL OF THIS CIRCUIT SHOULD BE CONSIDERED AS BEING AT MAINS VOLTAGE AT ALL TIMES.
This circuit is potentially very useful BUT,
THIS CIRCUIT WILL KILL YOU IF YOU LET IT

Many many many 555 timer circuits here - each image hot links to a page. EDITed to make the search more relevant by adding a "555" in the search field.
Answer: If your application is more industrial, there are ready made "relay timers" that can perform this kind of behavior. This MS4SM relay timer is an example, although its trigger needs to be a circuit close (from a limit switch, for example) rather than a pulse. It looks like this 700-FS timing relay can be triggered off a pulse.


Pokemon go invalid username/password

Question: For the last 3 days my username or password is incorrect when I try log in via PTC on Pokemon Go, when I know for a fact it's right. I've surfed through Google a bit to find a fix and I've found no concrete info. Has anyone else experienced this, if so what happened? I've already emailed the support team and I've tried to change my password but when I try to change it it asks me about my player ID? Which you find out when you log in!
Answer: Try using a password that is between 6-15 characters in length.
I was able to sign up and sign into the PTC website with a password that is greater than 15 characters in length, but my password was incorrect according to the PG application.
My next move was to sign into the PTC website and attempt to change my password from my account settings page, however the input fields indicated that my chosen password was invalid because it was greater than 15 characters in length.
Finally, I changed my password to something within the character limit and I was able to immediately log into the PG application.

Pokemon go invalid username/password


Amazon ec2 spot instance storage confusion

Question: I'm planning to run a process that produces and saves data on an amazon ec2 micro spot instance.  I read on their website that if the bidding price exceeds my maximum price my instance will be automatically terminated.  How can I save the data before the instance terminates?
Answer: Regularly checkpoint your data to a data store that is external to the machine. An Amazon S3 bucket may be a strong candidate for that. Currently, there is no charge for data in, and the charge to post a new object every minute is very low ($.01 per 1,000 put requests).
Comment: Is there an automated solution?  How would I be able to implement it?
Comment: Amazon only provides an API through the SDK. You could create your own tools, write it into whatever application you're running, or script something around it using existing tools. One place to look is http://s3tools.org/s3tools
Answer: Use a persistent EBS disk as your storage medium - it will function just like a regular volume, but will continue to exist beyond instance termination (note that the EBS root volumes are NOT persistent by default).
Depending on your specific setup, you may either keep all the data on the EBS volume, and each time you launch the instance, attach the EBS volume and continue processing data or you can use the EBS volume as temporary storage, saving data that has been fully processed to an external location (e.g. S3). Either way, EBS should be part of your setup to provide seamless continuation from where the last instance left off, and to provide the best data throughput.
Comment: @oker: I don't believe that to be correct - root EBS volumes do not persist termination unless explicitly set to do so. If you launch a t1.micro AMI (say Amazon's Linux) - it will create an EBS volume, but as soon as you terminate it the EBS volume is deleted. Only in AMIs that preset the EBS root to persist or if you manually change the persistence will the root EBS volume remain. (On the other hand, attached EBS volumes always persist).
Comment: One of the nice things about EBS is that writes are guaranteed if the process returns success, even if the actual data has not been written to the EBS. (i.e. if you write data, the operating system says its written, and your instance terminates -  EBS will write that data even if it is after instance termination). As for the limitation of an EBS only being attached to a single instance, you could use a clustered file system (e.g. gluster) to distribute or replicate the data and make it accessible to multiple instances - the increase in complexity is not always justified though.
Comment: Actually as alexy13 plans to use micro instance, they will use EBS storage anyway, so data will persist instance termination.
Comment: +1 as that's another good answer. There are possible issues with half-written files, etc. that need to be thought of if you go that route. Treat it like you would any machine with an HDD that you would expect to get the plug pulled on all the time. This may also be a bit more complicated if you have several instances that may spawn at once -- one EBS can only be attached to one instance at a time.


When do the earliest rhymes appear in Koine or Medieval Greek?

Question: I understand that rhyme is well established in Medieval Greek (and Latin) after the 11-12th centuries. But surely there are attested earlier cases before that. Do they go back to Koine? Maybe before it, even?  What would be the earliest reasonable rhymes in late Koine?
Comment: I *think* I see all kinds of wildcat rhymes in Romanos the Melodist (540 CE), but not that systematic. Insight sought.
Comment: In Modern Greek, for whatever it's worth, the first attested rhymes are by [Sachlikis](https://en.wikipedia.org/wiki/Stephanos_Sahlikis) in the 14th century, even though [Rumi's](https://en.wikipedia.org/wiki/Rumi) Greek verses of the 13th century  have rhyme, albeit juxtaposed to Persian rhyming verses.
Answer: The earliest example of rhyme in Greek that I was able to find is from Gorgias, who deliberately used rhyme in his rhetoric:

"In the  fifth century BC the sophist Gorgias used such blatant rhyme
effcts that the audience, anticipating the rhymes, shouted them out in
advance..." Michael McKie

An example of Gorgias' use of rhyme is quoted in Plutarch's Lives, Cimon:

Κίμωνα τὰ χρήματα
κτᾶσθαι μὲν ὡς χρῷτο
χρῆσθαι δὲ ὡς τιμῷτο

(note: I arranged it in poetical form to show its parallel structure.)
Translation:

"Cimon made money that he might spend it, and spent it that he might
be honoured for it."


How to set up Marlin to use a heated chamber?

Question: I have an infrared lamp I'd like to use to heat my chamber. Right now I don't have plans to install a cooling fan, but I will if I need to. This question pertains to Marlin (2.0, preferably) in combination with an MKS Gen L v1.0 board.
In the documentation for the thermal settings it specifies you can set a heater pin to be used to heat up the chamber. It says this variable is called the CHAMBER_HEATER_PIN but in Marlin 2.0's Configuration_adv.h file there is something called a HEATER_CHAMBER_PIN that has been commented out.
Secondly the Configuration.h file:  there is something called an AUTO_POWER_CHAMBER_FAN. Is this meant for a fan used for cooling, or a fan used for cleaning out the chamber of particles? In either case, I probably don't want to have this fan always on, but only use it to cool the temperature the heater has been on too long.
So really there should be only 2-3 changes I need to make right:

I need to specify an already present digital pin for

the chamber heater
the chamber cooler (fan)

Turn thermal runway active.
It needs to use the Marlin Chamber feature so that the readout temperature appears as "C:" in the arduino logs. This allows compatibility with octoprint
Lastly I need to set an analog pin for the chamber thermistor

These are the things I can't fully figure out on my own.
A detailed set of instructions or code snippets for a similar setup would be helpful
Comment: I tried to rework the question for easier readability.
Comment: what board is this using?
Comment: MKS Gen V1.0. I would prefer Marlin 2.0 actually. I am going to update the question actually to specify that firmware. I would prefer to use the X-MAX or Y-MAX endstop as the heated chamber digital pin. And the thermistor can be the second extruder thermistor
Comment: a [MKS Gen L 1.0](https://www.robotrebels.org/index.php?topic=769.0)? The board is relevent because you need to have some pins free, using the unused endstops could be an option, if the board can be retaught to do so.
Comment: Yes I agree that there are a lot of other pins free on the Gen L. I want to use the max endstops though because they have a 3 wire slotted connection and won't come off the board when connected. They also have everything you need to activate a relay (5V, GND, D2). Im comfortable with activating new pins, it's just using the "Chamber" feature of Marlin that I specifically want to use because it is compatible with Octoprint. There doesn't seem to be any documentation on the web for it, except perhaps the answer to this question.
Answer: Here is what I found to be the easiest solution. Please use this image for reference. I recommend doing these instructions once from source, since a lot of things can go wrong,  then once everything works, go back and integrate them into your existing Marlin codebase.

Get some 5V relays to run the infrared lamps. These relays take in a 5V digital signal from an arduino pin. When the arduino activates these pins, the lamps will turn on. Get a cardboard box, line it with aluminum foil, and attach a lamp to the top of it using a lamp switch. If you are going to do this NEVER leave the box unattended, as a relay can get fail especially when it gets warm (this happened to me). Dont cause a fire, make sure to keep it attended. Anyway, One wire for the lightbulb goes to NO on the relay, the other goes to D-. One wire from 120V power goes to COM, the other also goes to D-. The yellow "jumper" on the relay boards I posted goes between HIGH and the middle pin. These are pins on the relay, not the MKS GEN board.

On the MKS GEN board, we will be using the X-MAX endstop as the digital pin to run the chamber. Wire the 5V pin on X-MAX to the D+ of the relay. Wire the GND pin to D- of the relay with the two other wires there. Wire pin D2 on the MKS GEN Board to IN on the relay. Bold means the pin is on the MKS GEN board.

Clone the Marlin-2.0 repo: git clone -b bugfix-2.0.x https://github.com/MarlinFirmware/Marlin.git

In Configuration.h, change TEMP_SENSOR_CHAMBER to 1 or 11 (depends on your thermistor, might be other values.) Since we will be using the board's second extruder thermistor as the thermistor in this example, change TEMP_SENSOR_1 to 0 for now.

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_5 0
#define TEMP_SENSOR_BED 1
#define TEMP_SENSOR_CHAMBER 1

In the file src/pins/ramps/pins_RAMPS.h, add this line:
#define TEMP_CHAMBER_PIN 15. Note that this is the thermistor
slot usually used for a second extruder. If you're already using
this thermistor for the second extruder and want to use a different
analog pin, see this question. You'll need some resistors.

Also, around line 95 in pins_RAMPS.h, change X_MAX_PIN to use an unused pin. The number 4 is good. If you don't do this, your Chamber's digital Pin will be always "on" by default. You want it off by default, then activated by the Marlin code.

In Configuration_adv.h, change //#define HEATED_CHAMBER_PIN 44 to #define HEATER_CHAMBER_PIN 2 to use the X_MAX endstop's digital pin.

Upload...

Go into OctoPrint settings. Click Axes and Volume. Next to a checkbox for heated bed, there is a checkbox for heated chamber! Click that, and your chamber is active.

If some part is wrong (e.g. lamp doesn't go on because wire came loose on relay), debug that and keep working. Check the octoprint log to make sure the C value is shown.

Once everything works, generalize these solutions to your set-up (e.g. using multiple extruders).
Comment: "*Please use this image for reference.*".  We would if it still existed. This is another example of why images etc. should always be permanently included in the post, not simply referenced by a mortal link.


Raspberry PI Remote Access to Control Software Run in CLI Mode

Question: Is there anyway to access a Raspberry PI remotely but rather viewing the desktop, it brings up the CLI interface which has a program running to be able to test and fix any issues that may arise within the software itself? The program runs in command-line mode so when i remote in I cant actually view the program that would be visible on the actual machine, but rather the desktop. Any suggestions? thank you
Comment: Why not write to a log file?
Answer:
access a Raspberry PI remotely but rather viewing the desktop, it brings up the CLI interface

Yes, that's what ssh is for; actually it allows for either logging into the GUI desktop or just a CLI shell.

SSH (wikipedia)
https://raspberrypi.stackexchange.com/questions/tagged/ssh

which has a program running to be able to test and fix any issues that may arise within the software itself

There's nothing to generically "test and fix any issues that may arise" since some programs are very different from others. I think what you mean, though, is you want to be able to run a long running process that outputs errors etc. on the command line, and you want to be able to log in remotely and observe this similar to the way you might observe it in a terminal emulator on the desktop.
What you want is screen or tmux.  Both of these have been around for a long time (longer than the pi), and are in widespread use in the linux world, and you will find many many tutorials, how-tos, etc. online about them (including on our old blog, but ignore the recommendation about installing from source there, just use sudo apt install tmux).  A quick introduction:

Start a new tmux session: tmux new-session -s whatever (whatever can be anything, it is just a label so you can reconnect later).  A bar will appear along the bottom of the screen indicating you are now in a tmux session, which starts off by running a CLI shell (so everything else probably looks the same).  You can do anything you normally do on the commandline, including start whatever software you want.
Detach from the session: Ctrlb then d.  You return to where you were before you started the session, and everything in the session will have disappeared. Notice this is not a CLI command, it's a key combo, which means you can do it with software running in the foreground.  That software will continue running although you cannot see it.
Reattach: tmux attach-session -t whatever The stuff in the session will reappear.  If you left software running in the foreground, it still will be unless it has stopped in the meantime.

Once started tmux sessions last until they are terminated -- you can log in and out of the machine locally or remotely etc., and you can actually attach to a session from multiple places at once.
Comment: hi thank you for this - sorry if I wasn't very clear. Basically what we need to do is login remotely and view what is running on the screen which would be a program running in CLI mode and we want to be able to control the program with a mouse and keyboard to be able to test it if we encounter issues.
Comment: The part about being  "able to control the program with a mouse and keyboard to be able to test it" is something you have to do yourself, or via a means appropriate to whatever program it is.  There is no such thing as a universal control/test harness for absolutely any and all software.  However, if your program already has those features when you run it in CLI mode already, then:  1) It will run exactly the same way in a `tmux` or `screen` session, which has a command line exactly like your normal one (because it just nests your normal shell)...
Comment: 2) You will then be able to detach from the session while the program is running without interrupting it, using the keyboard controls described above.  It will continue running by itself to whatever extent it normally would; 3) You can then re-attach to the session from anywhere you are logged in (remote, local, serial, whatever) and find the programming running normally.  You can start a session from anywhere and re-attach it from anywhere, the sessions are idenified by the user and the label used to create them.  If not terminated they last as long as the system is up.
Comment: Thank you for this - much appreciated.
Comment: Just another question for you - if we connect the raspberry pi to a touchscreen with a built in PC, how can we view what is showing on the raspberry pi on the PC/touchscreen and control the program using the touchscreen? We have tried video capture using a HDMI Video Capture Card but we can't quite get the resolution right / to match the raspberry pi screen which means the program won't work properly as the buttons wont be in the right position. Is there any other way we could achieve this?
Comment: That's another whole question.  I mostly use Pi's headless and have never tried a touchscreen.  You should go into much more detail if you ask about that, as in your description here I see potential [XY problems](http://meta.stackoverflow.com/a/66378/212479); eg., that "the buttons won't be in the right position" is something that could be dealt with in various ways and some will be much better solutions than others, depending on whether this is software you are developing or some thing pre-existing that you have to use as is.
Comment: BTW, if you are satisfied with this answer please tick the big question mark on the left to indicate the problem is solved.
Comment: sorry for not going into a lot of detail - yes its a pre-existing written program which is controlled by a touchscreen and yes, the issue is the buttons not being in the right position. We have tried various methods including video capture but we are stuck on the position issue of the buttons. We need to somehow force the resolution?? Any feedback on how we could tackle this issue would be awesome.  Thank you.


Numbers of the form $abc,abc$

Question: Can you please provide hints? A 6 digit number can be written by repeating a three digit number, such as 359, 359. What is the greatest integer which divides any such 6 digit number? I can see that the number is not guaranteed to be divisible by 2 or by 3, so the answer will not be a multiple of 2, 3, or 6. However, I do not see where to go from here (by the way please do not use modular arithmetic in your answer).
Answer: It is clear that $1,001$ divides all such numbers, since $abc,abc=abc\cdot 1,001.$ Note then that $101$ and $103$ are prime, so the largest common factor of $101,101$ and $103,103$ is $1,001$. Thus, the largest integer that divides all such numbers is $1,001$.
Answer: Let $x$ be some three digit number. We have:
$$ 1000x + x $$
$$ 1001x $$
Now you know that $x$ may be any number, so it doesn't necessarily have any other common factors. (Consider any two prime numbers.) Our answer is $1001$.

Numbers of the form $abc,abc$


Did Henry VIII really outlaw hops?

Question: I recently read Stephen Buhner's "Sacred and Herbal Healing Beers" wherein he claimed that hops were a fairly new way to bitter beer in the renaissance and that in England Henry VIII outlawed them. However, I have not been able to find substantiation of this in the historical record. It makes for a great story, but is it true?
Comment: Nice question! Though a few months late, welcome to the community, Bradley! :-)
Comment: I believe it was James I that called hops "a wicked and pernicious weed," and as he ruled later- when hops were more likely to be more widespread in brewing- he might be a better candidate for outlawing them.
Answer: First off, I don't know if this story is in fact true, but I can shed some light on the subject which would indicate that it is certainly plausible.
Hops were first used to flavor beer around 1000 A.D., starting in Germany.  Until this time beer was flavored with a mix of herbs and spices called "gruit" which was taxed (generally by either the government or the Roman Catholic Church) and in many cases required by law, so when hops did appear, they appears in regions where the church had less control.
Hops didn't make their way to England until around 1500 A.D., and weren't universally used until around the year 1600.   Since Henry VIII reigned from 1509 until 1547, it would have been early in the introduction of hops to the region, and it is certainly within the realm of possibility that he may have outlawed them as a threat to the tax revenue stream provided by the sale of gruit.   Eventually though, demand for hops won out, and Henry's own wars with the Catholic Church may have weakened the ability to gruit rights-holders to continue to monopolize the market, and as I mentioned, by fifty years after Henry's death, hops ultimately won the war.
Comment: Yes, Buhner had quite a bit about gruit in his book. Would be interested to try it, but I'm not sure where to find it.
Comment: wogsland, there are a few breweries that I've seen here in the US that are making some styles that use no hops and instead use herbs (one that I tried used Lavender... and the brewer named it "Granny Panties" because the aroma reminded him of a sachet.
Answer: The short answer is No.
Ian Horney in "A History of Beer and Brewing" makes this claim[0].  But it is not backed up by evidence.  Henry VIII's beer brewer John Pope was given special dispensation to hire more than four foreign workers for the household brewery[1].  So at least Henry VIII's court brewed their own beer.
The various laws are being used to differentiate between Ale and Beer.  Ale being made with a selection of herbs known as a "gruit" - that must not contain hops.  Whereas beer was flavoured with hops (and possibly other herbs).  The generic use of hops was never banned[2], but the use of hops in ale was controlled.
[0] http://zythophile.co.uk/false-ale-quotes/myth-two-hops-were-forbidden-by-henry-vi/
[1] Terry Breverton "The Tudor Kitchen: What the Tudors Ate & Drank", Ch 3.
[2] http://www.beerscenemag.com/2010/04/the-short-and-bitter-history-of-hops/

Did Henry VIII really outlaw hops?


Why would one care about Fibre Bundles

Question: As a physics student I can easily understand the motivation for studying manifolds and why the definition looks the way it does, I only have to think of Minkowski space in GR. But for the life of me the notion of a fibre bundle seems highly unmotivated. Why would we want to talk about manifolds in this strange way? Why are we jumping through hoops and ladders to talk about a manifold locally as a product space of two things?
Comment: Vector bundles don't interest you?
Comment: vector bundles are a specific realization of fibre bundles, not sure how this answers my question
Comment: Without vector bundles, you wouldn't have sections of vector bundles. Vector fields and differential forms would be much more difficult to work with.
Answer: When constructing or defining a mathematical object, you have to strike a certain balance: You want your object to be general enough to have lots of applications but structured enough to let you answer important questions.  Fiber bundles are very general (in the sense that many spaces can be viewed as fiber bundles) and very structured (in the sense that you glean a lot of information about maps into and out of a space which decomposes as a fiber bundle).
As a physics student who has studied some GR, you can understand the importance of local coordinates.  Fiber bundles provide another sort of local picture, decomposing your space into subsets possessing a certain symmetry. More importantly, perhaps, they give you some idea about how these local pieces glue up to a global structure. For physicists, vector bundles (like the tangent bundle) are an especially rich source of useful fiber bundles. Physicists care a great deal about "connections" on bundles, which are ways to compare points in nearby fibers. For example, connections give a way to understand parallel transport in GR.  Also, much of classical mechanics can be formulated using the language of vector bundles.
When I switched from physics to math, it took me a while to appreciate that manifolds aren't simply spaces in which you should imagine some creature living.  They often represent some additional structure on another space, such as the space of "directions" on a manifold (i.e. tangent bundle) or a space whose elements are loops in a manifold.
Answer: Because then we don't have to worry ourselves with the nature of the ambient space; that is, the manifold needn't be embedded in a higher-dimensional space for us to talk about it.

Why would one care about Fibre Bundles


Should all the GND pins of the JTAG be connected to GND?

Question: I am using a TMS570 MCU with this debugger which has the 20-pin cTI JTAG pinout exposed in this page.
Should all the GND terminals be connected to the board's ground or it is sufficient just one?
Comment: It's worth connecting all the grounds on a connector you are placing in a board.  But note there are connectors with fewer.   If improvising a wiring harness you will find that just one works at moderate clock speed.
Answer: They would have written NC if you only had to connect one.
The purpose of these grounds is to interleave signal wires with ground wires in the ribbon cable so no signal wire neighbors another signal wire.
This reduces crosstalk.


How to Solve this BMO 2005 round 2 problem?

Question: Let $ABC$ be a triangle with $AC > AB$. The point $X$ lies on the
side $BA$ extended through $A$, and the point $Y$ lies on the side $CA$ in
such a way that $BX = CA$ and $CY = BA$. The line $XY$ meets the perpendicular bisector of side $BC$ at $P$. Show that $\angle BPC + \angle BAC = 180^{\circ}$.
Answer: Let $l$ denote the angle bisector of $\angle{BAC}$ and $m$ the parallel to $l$ passing through the midpoint $M$ of $BC$. It suffices to prove that $XY$ is reflection of $l$ over $m$. Indeed, since midpoint of arc $BC$ of the circumcircle of $ABC$ which doesn't contain $A$ lies on $l$ and $M$ lies on $m$, the reflection of the first one with respect to the second one lies on $XY$ which happens to be a point $P$. Since the midpoint of arc satisfies the equality of angles in question and reflection with respect to $M$ preserves this property we get the result. Now, we will prove fact mentioned at the beginning it in three different ways:
1) If we denote the intersection of $l$ and $BC$ by $L$ as well as the intersection of $XY$ and $BC$ by $Z$, by the angle bisector and Thales theorem (as previously mentioned $AL || XY$) we have: $$\frac{CZ}{CY}=\frac{CL}{CA}=\frac{BL}{BA}$$ and since $CY=BA$ we have $BL=CZ$ i.e. $Z$ and $L$ are symmetric with respect to $M$ which yields the result.
2) If we consider glide reflection with respect to $m$ such that the image of $AB$ is $AC$ we notice that $X$ goes to $A$ (because $B$ goes to $C$ in this reflection as the midpoint of $BC$ stays fixed). We can consider analogous reflection taking $AC$ to $AB$. This proves that the distances of $A$, $X$ and $Y$ to $m$ are the same which finishes the proof.
3) One can also consider $X'$ and $Y'$ to be the midpoints of $AX$ and $AY$ and make use of the fact that $AX'=\frac{1}{2}AX=\frac{BX-AB}{2}=\frac{b-c}{2}$ and similarly for $AY'$ by applying Menelaus theorem to $X'$, $Y'$ and $M$ to see that they are collinear.
Answer: HINT.
The line through $A$ parallel to $XY$ is the bisector of angle $\angle BAC$. It meets again the circle through $ABC$ at the midpoint of arc $BC$, i.e. on the perpendicular bisector of $BC$.
Comment: Please give full solution
Answer: A few things to note: $PB=PC$, since $P$ is on the perp. bisector of $BC$. Also, we have $AC=BX$ and $CY=AB$ so $AY=AX$. Also, do you see that the claim is proven if you can prove that $\angle BPC=\angle XAY$?


What are the benefits of sorting imports and properties alphabetically?

Question: In my company, the style guide requires imports, class properties, enumerations, and consecutive variable declarations to be sorted alphabetically. I find this unnecessarily tedious. What are the possible benefits from this practice being enforced?
Comment: If the IDE can sort alphabetically for me with a simple key press, then for little cost I gain tidiness. And tidy code is generally easier on the eye than messy code. If I have to manually sort it then the time cost of doing this outweighs that tidiness.
Comment: The alphabet is a very widely known and understood sorting order. It makes lookups easy. If you group by internal/external/system and within groups alphabetically you are able to understand at a glance, what is needed - on what the code depends - in the following. And in case you forgot, lookup is fast. OTOH there is `CTRL+F` and IDEs which help navigating your code.
Answer: In addition to Karl's answer, there is another benefit that I learned about when playing around with Go: if you make a rule that things can only be done one way, then nobody has to waste time thinking about how to do it.
In the Go community, there is a rule that pull requests are only accepted when they are "idempotent under gofmt". In other words, PRs must be formatted with gofmt. And gofmt doesn't take any arguments telling it how to format your code! So, unlike every other well-known source formatting tool, you cannot configure how it is going to format your code.
Ken Thompson wrote that at first, he thought that he would absolutely hate this; after all, he was involved in the creation of several programming languages (B) and operating systems (Unix, Plan 9), and shaped the style of C, and he has very strong opinions. But to his own surprise, he found that these strict rules were very liberating: he just didn't need to think about where to place braces, where to put whitespace, whether to use tabs or spaces, what order to put declarations in, what order to put imports in, and so on. He could focus on writing the code, and gofmt does the rest.
Another advantage he mentioned, is that when all code looks exactly the same, it is very easy to navigate a third-party codebase, because again, you can focus on the semantics, the control flow, the data flow instead of "why is this brace here and not there?"
And an advantage that I found, is that when all code looks exactly the same, it is very hard to see who wrote it, which makes achieving the lofty goal of collective code ownership easier.
I set up my IDE to automatically format code as I type, following whatever the accepted community style guide is for the language I am writing in. And then I just don't care anymore. It really is liberating and time-saving.
Comment: The problem with that is that "alphabetically" can be trivially codified in an algorithm, whereas "related things" is a lot harder. "Alphabetical" basically solves 80% of the problem for 20% of the work.
Comment: I absolutely agree. I'm not at all arguing against having a standard coding style--I love both `gofmt` and `prettier` for that same reason. But I do think that grouping alphabetically is less reasonable than grouping related items together.
Comment: Bonus for finding out what Ken Thompson likes.
Answer: On imports, it groups similar imports together, and makes it easier to see what is being imported from certain packages. Typically, sorting alphabetically has the side effect that all your local imports are grouped together, all your third party packages are grouped together, and all your standard library imports are grouped together. Specific packages go in the same place, so it's easier to see at a glance if a file uses it or not.
For variable declarations, it makes it just a tiny bit faster to find a declaration in a large list. Remember, you read code far more than you write it.
In vim, I use :sort to sort lines, and my understanding is most IDEs can do it for you. Also, if you have so many imports that it becomes burdensome to maintain the sorting, that's sort of a sign you might have bad cohesion.
Comment: *if you have so many imports that it becomes burdensome to maintain the sorting ...*  - but you are aware this argument can be turned into its opposite? One might argue "If one has so many [imports|enums|variable declarations] that sorting them becomes beneficial, there are probably too many of them."
Answer: The only advantage of sorting alphabetically is that it can be automated easily by tools. If your team decides that they want to sort a particular list alphabetically, then they should automate that and then forget about it.
The counter-advantage of alphabetical sorting is that it means that you can't encode semantics into the sorting order, as alphabetical order is semantically meaningless order. Any half-assed semantic sorting is usually better at making the code clear than alphabetical order, even if the semantic sorting rule is unclear and inconsistent across the codebase, they're usually still better than alphabetical (as long as it's not intentionally trying to be bad).
There's no point in enforcing the code style of a consistent, semantically meaningless sort order only to then have people manually maintain the sorting.
If you don't have tooling support to automatically sort the list in alphabetical order, then you should instead take advantage of sort order to encode some meaning into it. For example, if you a have a rectangle class, sorting alphabetically means that the code for height() and width() will likely be far apart from each other, even when these are methods are semantically related to each other. With semantic ordering, they should've been close to each other on the code.
Personally, I like sorted imports. There's not much useful meaning you can encode in import statements, and most languages have pretty good tool support for automating that. The list of imports can also get pretty large, so it's handy to have them sorted.
Sorting classes/properties/methods/CSS declarations though, I find to be usually counter productive. There are much more useful groupings/orderings that you can do than alphabetical order.
Sorting variable declaration is usually the wrong question to ask. If your methods had so much variables that you can benefit from sorting their declarations, you've way exceeded the reasonable length limit for a method. Additionally, sorting variable declarations in most languages also usually means that you can't set the value of that variable inline. In almost any code you'd want to assign variables in a certain order because the algorithm/logic requires the variables in that order. You can't just nilly willy reorder variables without changing the code. Having rules about sorting these declarations alphabetically means that you'll be forced to have separate declaration and assignments, which is also a style guide that only makes sense if your methods are way bigger than they should be.
Answer: Two more reasons not explicitly mentioned above so far: Duplicate imports as well as code merges.
I've been in files in which the same import has shown up two, three, or maybe even more times perhaps due to carelessness or due to merges.
Speaking of merges, we had spent time during merging to go through merge conflicts in the imports as well. With alphabetized sorting automatically required, I haven't come across any merge conflicts at all since git has taken care of it automatically.
Note that I'm only referring to imports here although the original question asked about other constructs as well. I can see the same benefits for a long list of enum values too.
Comment: Most IDEs should catch these cases
Answer: Sorting alphabetically is better than no sorting but there is no other advantages.
My principle is to group by purpose and inside  group to sort by the order of use. I use this principle throughout all kinds of code. This principle usually follow writing code and is easy and logical to read.
Comment: You say it's better, in what terms it's better?
Comment: Sorting alphabetically is better than no sorting because you can find what you are searching alphabetically, but that is for me is mostly useless.
Comment: It's especially useless if you are sure a method doing X should exist but you can't find it because you don't know what it is named.
Answer: In addition to the other benefits: Alphabetically sorted imports make it easier to look if the right module is imported.
In Java Spring there is an annotation @Component. Some weeks ago I simply typed the name of this annotation and pressed a key shortcut to add the import. There were 3 annotations (!) with this name in different packages and 3rd-party-libraries. Unfortunately I choosed the wrong one and the code doesn't work.
Because the imports were sorted and grouped it was easy to see what went wrong. Assume they were not: how long would it has taken to find the mistake?
Answer: While sorting imports, class properties, enumerations or consecutive variable declarations alphabetically may seem a bit tedious, there are significant benefits, especially as the code base grows and evolves.
One advantage is the ease of performing search and replace operations. Consider a scenario where you need to add a new field to multiple similar interfaces or types. If the sort order is enforced, you can use a regular expression replace with confidence, knowing the order of the fields. Without an enforced sort order, constructing a complex regular expression becomes more challenging. Even if you're making changes manually, having an ordered list makes it easier to locate specific fields, especially when dealing with a larger number of them.
Sorting also makes comparing similar interfaces or types easier. If you have two structures that you want to compare, using a diff tool is more effective when the fields are sorted. While it's possible to sort the fields at the time of comparison, this adds an extra step and it becomes more complicated if there are comments or other non-field elements, making a simple line sort impractical.
While your current interface may be small and unlikely to expand significantly, it's important to consider the future. Larger projects often bring unforeseen requirements that can introduce new elements and complexity. By sticking to consistent principles such as alphabetical sorting, you ensure scalability and maintainability as the code evolves. Additionally, maintaining a standard practice across projects can foster code consistency and make it easier for other developers to navigate and understand.
Answer: Don't overdo it. I've seen documentation that treated getters/setters as methods, so the letter G was two dozen getters and one or two other methods, and the letter S was two dozen setters - very hard to find which properties were read-only because you had to compare the lists.
Swift has a feature that turns source code into what header files would be if it had header files, so private items are gone, code is gone, non-documentation comments are gone. Since this requires hard work, optionally sorting things any way you like would be possible.


How to get professional help in OR

Question: I would like to hire a consultant at OR to do a formulation of a mathematical optimization problem. Which website is reliable for it?
Comment: There are several companies providing OR services. For example, most of the French ones can be found among the partners of the French OR society https://www.roadef.org/roadef-partenaires For companies from other countries, I don't know if there is a list somewhere. It might be worth checking the website of the local OR societies
Answer: I can give you my bias opinion because I am freelancer ( I don't know anything about other specific OR websites, linkedin, glassdoor, recruitment agencies or networking methods ) but  if I were you my mainly choices were:

Fiverr.com you can check here for specific OP expert, 194 OP freelancer working there.
Upwork.com you can check here 239 OP specialist working there.
Guru.com
Toptal.com
PeopleperHour.com

Also you have to check his portfolio, last work done and reputation there are a lot of scammers and difficult people for both parts working freelance.
Answer: You can refer to the list that is on Gurobi's website:
https://www.gurobi.com/partners/consulting-services/.

How to get professional help in OR


Deleted/Migrated Question in Review Queue

Question: I had this review task https://math.stackexchange.com/review/close/571044 (ugly screenshot).
There was no other option than "skip". Which seems obvious, but is this a bug in the review system?
Comment: Related: http://meta.math.stackexchange.com/questions/23123/review-audits-should-not-include-deleted-migrated-posts
Answer: This was actually an audit. Perhaps because I'm a moderator, I was presented with all the options when I went to the link.

I suspect that you're not the only user to have been faced with this, since it apparently entered the queue as an audit back in February 2016, according to the moderator timeline of the post.

Similar situations have been mentioned on Meta Stack Exchange: Audits mess up on migrated questions. So it's a long-known problem. I'm not sure what's taking so long to fix this, but have you heard about Stack Overflow's new top bar?

In case you're all wondering, I did pass the audit.


Solving PDE via Cellular Automata

Question: Is there a theory for solving PDE by using Cellular Automata ? Something which is on the line of, passing to the limit (scale) i.e., if you increase the number of grid points the solution to the cellular automata will converge to the PDE ? If so, how successful is this approach ? What are the limitations of this approach. Also, given a PDE how does one go about finding the rules for the corresponding cellular automata and vice versa ?
Answer: There are a number of PDEs that have been fruitfully attacked using cellular automata. First among these are various incarnations of the Navier-Stokes equations, which can be (and in geophysical or other complex flow applications, frequently are) simulated with lattice gases and lattice Boltzmann methods. Other PDEs that CAs can handle include diffusion and reaction-diffusion equations and wave equations. Another one that is more widely known is the random walk treated as a random CA, which can be used to tackle the heat equation.
Will Jagy's guess about hexagons anticipates (if we think about triangles instead) the improvement that so-called FHP models offer over HPP models; in higher dimensions the lattice issues get trickier. I have some unpublished and cryptic notes about a possible new approach in 3D using the root lattice $A_4$ and permutohedral boundary conditions.
One of the main advantages of the CA approach is the ability to work with complicated boundary shapes, though on the other hand the boundary conditions are a very delicate issue in general.
A very nice (though somewhat dated) reference for this and related problems is Chopard and Droz (a PDF of the opening parts is here) and IIRC you can find a paper by one of the authors online that covers some of the same topics with a similar approach.
Comment: @user89 - the only words I can think of that might be relevant are "Eulerian" and "Lagrangian", a la fluids. Generally the lattice Boltzmann geometries I've seen are time-invariant, though porous media are modeled and those are of course quite complex.
Comment: Hi Steve. I am looking into using a CA based approach to solving PDEs on evolving (closed) curves. Could you recommend any specific "keywords" I should use in order to mine the literature for information on this topic? Any reviews I could approach first perhaps, in order to be led onto other sources? Thanks for your help!
Answer: The only one I know may not count as an automaton. For a two dimensional Dirichlet problem for the Laplacian, take a square grid. Fix the values of the function on the squares judged to be boundary squares. Fill in some values in all the middle squares. At each stage, the value at a square becomes the average of the values at the four immediately neighboring squares, up, down, left, right. This is a discrete analog of the mean value property of harmonic functions. I don't know how well this method is regarded. I also suspect one would get a better mean value property with a grid of hexagons. However, in larger dimension we are probably stuck with cubes.
Comment: Actually, what I am looking for is discrete models of a problem which converges in the limit to the continuous problem.
Comment: So, if the grid size goes to zero does the solution ``converges'' to the actual solution ?
Comment: @Vagabond, yes, I believe so. The mean value property is in many texts, and Theorem 2.1 on page 14 of Gilbarg and Trudinger, Elliptic Partial Differential Equations of Second Order.
Comment: There are quite a few works in theoretical computer science (google for Belkin, Hein, von Luxburg, to begin with) that state results like: Take a manifold and some (randomly chosen) sample points on them. Define in this way a discrete(=graph) Laplacian. Then the discrete Laplacian will converge towards the Laplace-Beltrami operator on the original manifold as the sample points exhaust the manifold.

Solving PDE via Cellular Automata


Web Scraping in Python

Question: Do I need to learn advanced python programming skills in order for me to do web scraping using python? Or I should watch tutorials about web scraping and at the same time learning with python in it. I don't have any experience in python because I am a Laravel developer and it is my first time doing such job in web scraping.
Answer: Web scraping in Python using Beautiful Soup is quite simple, but you'll need to know the basics of Python and Python's data types, flow control etc. You'll need to know about string and list manipulation and parsing and simple conditions.

Web Scraping in Python


What is the difference between $\psi$ and $|\psi\rangle$?

Question: My understanding is that $\psi(\vec{r}, t)$ and $|\psi(\vec r,t)\rangle$ are the same thing yet one expressed as a wave function and the other expressed as a vector in the Hilbert space. Is this true? Or is there a deeper difference between the two notations?
Comment: $\psi(\vec{r},t)=\langle \vec{r}|\psi(t)\rangle$.
Comment: Which page does Griffiths write  $|\psi(\vec r,t)\rangle$?
Comment: $|\psi\rangle = \int \psi(\vec{x},t)|\vec{x}\rangle d^3\vec{x}$
Comment: related: https://physics.stackexchange.com/q/65794
Comment: Yes, it is a wrong notation.   It doesn't represent any mathematical object.   It combines the notation of two very different ways of representing a quantum state.
Comment: @Qmechanic I'm reading Griffiths currently.
Comment: @Qmechanic He doesn't write it anywhere this is from me. Is it a wrong notation?
Answer: $\psi (\vec{r},t) $ is like you said, just a way to express the vector $|\psi (t)\rangle $ in 'position space', mathematically expressed like is written in the comments:
$$ \psi (\vec{r},t) = \langle \vec{r} | \psi(t) \rangle = \int \delta(r'-r)\psi(t) d^3 r $$
Answer: Velut Luna gives the main answer. One can see this because we have the probability expectation $1~=~\langle\psi(t)|\psi(t)\rangle$ and with the completion sum $\mathbb I~=~\int d^3r|\vec r\rangle\langle \vec r|$ we then have
$$
1~=~\langle\psi(t)|\psi(t)\rangle~=~\langle\psi(t)|\left(\int d^3r|\vec r\rangle\langle\vec r|\right)|\psi(t)\rangle~=~\int d^3r\langle\psi(t)| \vec r\rangle\langle\vec r|\psi(t)\rangle.
$$
In the wave function form we have unity of probability as
$$
\int d^3r\psi^*(\vec r,t)\psi(\vec r,t).
$$
the identification is obvious.
Answer: It is convenient to think of $\vert\psi\rangle$ as a vector with components $\langle x\vert\psi\rangle=\psi(x)$ for various values of $x$.  If you imagine discrete rather than continuous values of $x$, then the vector $\vert\psi\rangle$ would be the infinite column vector
$$
\left(\begin{array}{c}
\vdots \\
\psi(x_{n-2})\\
\psi(x_{n-1})\\
\psi(x_{n})\\
\psi(x_{n+1})\\
\psi(x_{n+2})\\
\vdots
\end{array}\right) =
\left(\begin{array}{c}
\vdots \\
\langle x_{n-2}\vert \psi\rangle \\
\langle x_{n-1}\vert \psi\rangle \\
\langle x_{n}\vert \psi\rangle \\
\langle x_{n+1}\vert \psi\rangle \\
\langle x_{n+2}\vert \psi\rangle \\
\vdots
\end{array}\right)
$$
obtained by decomposing the vector $\vert\psi\rangle$ on the basis of states $\{\ldots, \vert x_{n-2}\rangle,\vert x_{n-1}\rangle,\vert x_{n}\rangle,\vert x_{n+1}\rangle,\vert x_{n+2}\rangle\ldots\}$
Answer: There is a distinction that is, in my opinion, quite deep and subtle about the two different notations. The second is far more versatile than the first, and universally usable in quantum mechanics (while the first is not). To clarify, the two notations are:

A complex-valued function $\psi(\cdot)$, with some space - e.g. $\mathbb{R}^d$ or $\{\uparrow,\downarrow\} \times \mathbb{R}^d$ - as domain.
A vector in a Hilbert space $\psi\in\mathscr{H}$ (or $\lvert \psi\rangle$ if you prefer, I will use the former).

The explanation why the second is more universal goes as follows. We know that any "reasonable" physical quantum system can be described mathematically by a so-called non-abelian C*-algebra, that represents the set of (noncommutative) observables of the system. In turn, any C*-algebra can be represented by a set of linear transformations on some Hilbert space.
Now, the C* algebra of $N$ non-relativistic quantum particles in $d$ space dimensions has a unique irreducible representation up to unitary equivalence (without entering into details, irreducible repr. are the relevant ones). Such representation is the algebra of (bounded) operators on the space $L^2(\mathbb{R}^{dN})$, and the self-adjoint (unbounded) operators $(x_1,\dotsc,x_N)$ and $(-i\nabla_1,\dotsc,-i\nabla_N)$ represent the position and momentum operators of each particle. Therefore, it is in this case natural to write an element of the Hilbert space of non-relativstic quantum mechanics as a (wave)function $\psi(x_1,\dotsc,x_N)\in L^2(\mathbb{R}^{dN})$.
The latter, however, ceases to be true for relativistic quantum mechanics: there are infinitely many irreducible inequivalent representations for the algebras of quantum field observables, and in particular there is no unique natural description in terms of a wavefunction(al). In this case, therefore, the functional notation $\psi(\cdot)$, even in representations where it is viable, would be rather ambiguous and not as "universal" as it is in non-relativstic quantum mechanics.
In conclusion, as long as non-relativstic quantum mechanics is concerned, the distinction is almost only aesthetic, while for more general (relativistic) theories one should essentially abandon the idea of a "wavefunction" altogether and consider more abstract representations of the canonical commutation relations, for which the notation $\psi(\cdot)$ could make no sense (while $\psi$ still make sense).
Finally, let me also anticipate some possible comments. It is true that all the separable infinite-dimensional Hilbert spaces are isomorphic, but there are still inequivalent representations of the C* algebra in relativistic systems. Given the vacuum vector $\Omega$ in a given separable representation $\mathscr{K}$, it is indeed possible to map it to a wavefunction in e.g. $L^2(\mathbb{R})$, but it is impossible to tell what the field operator would be in the latter (and so the map is useless).


Visual Studio 2008 can't find .dll file after adding the .lib file to the project

Question: Ok, I'm just now learning how to add libraries to visual studio projects, but I'm running into a problem. I've gone to the project properties and added the correct path to the include header files I need and then I've added the correct path to the library files that I need. I'm not sure if this is redundant or not, but after that, I add the .lib file to the project as an "existing file." The program compiles fine, but when I try and debug it, it gives me an error saying that it can't find the correct .dll file for the library, even though the said .dll file is in the exact same folder as the .lib files that I've included in the project. Is there something I'm missing here or why is Visual Studio not finding the .dll file? Do I have to add a path directory for the .dll files like I did the include and library files in the project properties? Thanks for any help!
Answer: The important thing is, that the DLL must be found when the program is run. There are many
ways to achieve this. The easiest is to put the DLL file into the same directory as your compilation output (probably something like "debug/myprog.exe").
You don't have to add the .lib as existing file.
Answer: Another way is adding the path of the dll to the system PATH variable. There are some pitfalls here. If you have two .dll files with the same name, the system will try to load the .dll which comes first in the PATH variable. Also, if you keep adding paths to the PATH variable, your PATH variable will be quite a lot messy over time.


What's the lowest HD Giant of at least Huge size?

Question: Have a Large character, with the Giant Blood racial trait, and want to use alter self to transform into a Huge Giant (or a huge Humanoid, I guess, but that seems unlikely to exist without templates). What's the Huge Giant with the lowest HD? Are there even any with 5 or less, or will I have to wait for polymorph?
Comment: What kind of character is it exactly? A humanoid with a template?
Comment: @Peregrin Using the Savage Species version of Half-Ogre base race, which is of Humanoid type but also counts as a Giant for magical effects. Dragon Magazine also has a template version of Half-Ogre that works exactly the same, though I'm not using it for this character. Note that Half-Ogre was updated to 3.5 in Races of Destiny, which changed their type to Giant and doubled their LA; I'm closing my eyes and pretending that doesn't exist for this build.
Comment: Thanks for giving this extra information. But where does ist say that the Savage Species Half-Ogre is of humanoid type? As far as I can see, it is is simply a giant type creature.
Comment: Doesn't explicitly list their type at all, but since they're half-ogre and half-human and probably aren't Giant type (otherwise why have the Giant Blood racial trait?), I think it's a very safe assumption that they are Humanoids.
Comment: Oh my gods no you're right, it lists their type as Giant in the table at the start of that section. Well, that sucks for me.
Answer: Phaerlin Giant, 8 HD
The Phaerlin Giant is a breed of giant descended from stone giants and found in the Underdark. It appears in Monsters of Faerûn.
It is a CR 3 Huge Giant, and has 8 HD. I dont think there is one with 5 or less HD.
Alter Self will not work, as it maxes out at 5HD, and even though it works on you with a Giant race template, it does not work on a target form with a template. Otherwise, you apparently could turn into a 5 HD Huge Half-Scrag Giant Gar. Neither will enlarge person work as that doesn't work on giants, but you could use the psionic power expansion (Thanks to @HeyICanChan for these additional points).
Answer: Blunderbore Mauler (8 HD)
Jointly at 8 HD with the phaerlin giant is the Mauler, a sub-type of Blunderbore from the Diablo II crossover sourcebook To Hell and Back (2001).
Comment: Oh _wow_ that is a **deep** cut. Very nice.


Android Instant App

Question: I got this error in "Declare Website Association" of "App link Assistant". Does anyone know how to solve that problem. I am very new to Android Instant App.
Comment: Did you upload assetlinks.json file at https://myinstnatapp.droppages.com/.well-known/
Comment: Do u hav an example to upload assetlinks.json to the website.
Comment: That depends on how your site is hosted. In your case, it looks like you'll need to create a folder called ".well-known" inside the dropbox folder that corresponds to your site, then save the assetlinks.json file in that folder. Note that it will probably show as a hidden folder so it may be hard to find once you've created it.
Answer: 1) Click on save file.
2) Create .well-known folder and save it there
3) Now upload your .well-known folder to your website. Done.
Answer: I've been working on Instant App recently.I see your mistake. Maybe the following problem happened:
1) Add it to the strings.xml file, like this following:
<string name="asset_statements" translatable="false">[{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"myinstnatapp.droppages.com\",\n  }\n}]</string>

and add the following to AndroidManifest.xml, in application label.
<meta-data
        android:name="asset_statements"
        android:resource="@string/asset_statements" />

this will solve your 1 and 2.
2) Fill in your autoVerify property correctly.This will solve your 3.
3) Upload assetlinks.json file at myinstnatapp.droppages.com/.well-known
By the way, If your site can be accessed by HTTP mode, You have to switch to accessible HTTPS mode. If you don't have a URL that can be accessed by HTTPS, GitHub it's good choice!
If your site is a static web site, You should include the .well-known folder and its contents in the _config.yml file, like this:
include: [".well-known"]

Then you can access the .well-known/assetlinks.json file in HTTPS mode.
Here is an example of my configuration:
https://github.com/doncc/doncc.github.io

Hope you will succeed!
Answer: For your Instant App to work, both your installed-app and instant-app must support App Links.

https://developer.android.com/topic/instant-apps/prepare.html#app-links
Both your instant and installable versions of your app must implement
  the Android App Links feature introduced in Android 6.0. App Links
  provide the primary mechanism for connecting URLs to discrete
  activities within your app.
Android Instant Apps uses URLs for all navigation. When a user taps a
  link to your instant app, they go to a specific activity within your
  app. If the link fails or the user taps the link on an unsupported
  device, the browser opens and shows your website.

This involves configuring your manifest(s) to associate with certain URLs and uploading a kind of certificate (assetlinks.json) to your website at a specific location. See this doc for an introduction: Handling Android App Links
Now, the "Declare Website Association" step you are on creates the certificate, the assetlinks.json file, as well as checks to see if you have already set up App Links (your website and the manifest). This certificate allows Google to basically verify that your [app] with this [package name] and [fingerprint] is automatically allowed to handle the [URLs] of your website. This doc goes into more setup detail: Add Android App Links

Android Instant App


PSN store purchased games from the past

Question: If I have purchased games on the ps3 network store on my old ps3, how do I access them on my new ps3?
Comment: I can see them when I'm logged in on my laptop, just not where to find them when I'm logged in on the ps3
Answer: Your PSN purchases are tied to your PSN account.
By simply logging into your old PSN account on your new console, you should be able to access your past purchases.
Comment: I should point out however there is a limited number of activations for content from the store before you will need to purchase it again, activations are the number of consoles that the content has been actived for, this is different from the number of registered PS3 Consoles you have tied to your PSN Account since you can registered a console tied to your PSN Account, this way a user can't just buy a crap ton of games, activate and deactivate consoles and hand out all those games for free and thus allow people to essentially pirate the games
Comment: re downloading the same content on the same console multiple times does reduce the number of activations as i have re downloaded the Mugen Souls DLC ~10 times finding out which DLC was not OPed, the number activations is reduced only 1, the message about "Activating" when you download is just the check
Answer: You just have to log in with your Playstation-Network-Account and then you have acces on everything you purchased on your old PS3.
Just search for the game or whatever you want (in your PSN Store) to download and there you will see that its already purchased and downloadable.
Comment: Another fast way to do it is to go to PSN Account Settings on the XMB (main system interface) and go to Download List under your account information--then you can go through everything you've ever bought without having to go to the store app.
Comment: ok cool. cheers

PSN store purchased games from the past


DH cipher suites and DH OpenSSL Generated

Question: I need a openssl generated diffie-hellman params for work with ECDHE or DHE cipher suites on TLSv1.2 nginx server?
Comment: I'm not sure what you are asking. First, you don't need openssl generated params for ECDHE. Then you might use openssl generated params for DHE but you can also use the builtin predefined ones. No idea if this has actually answered your question.
Comment: Please be more specific. Also describe what you have done so far and where you have difficulties.
Comment: @SteffenUllrich so, i need generated params for DHE and not for ECDHE? i did some more research, ECDHE is generated at moment of connection, is this right?
Comment: @mentallurg I am trying to understand and deploy ECDHE on my server, i have a root ca EC key, and a ECDSA certificate on server.
Comment: @NWStryker: Since 1.11.0 nginx will no longer use default dhparam but you have to define your own if you want to use DHE (generate with `openssl dhparam`).. With ECDHE it will use a predefined set of curves but you can also use `ssl_ecdh_curve` to specify your own set. And it does not matter if you have an ECDSA or RSA certificate - both can be used with DHE and ECDHE key exchange.
Answer: For DHE:
openssl dhparam 2048, wait, write output to file. Use file in ssl_dhparam in nginx config.
No need to keep the file secret like a private key, your server will output the content of the file to any client that supports DHE. You can reuse the file for many servers.
It is considered more secure to use custom params than to use those from an RFC, because the adversary can pre-compute breaking the params from the RFCs and then spend little compute per connection to decrypt your connections. In theory. 2048 bit params should be secure.
Use same params file with postfix's confusingly named smtpd_tls_dh1024_param_file if you have postfix server.
Apache doesn't need to configure DHE params.
Chrome, Golang and boringssl don't support DHE anymore, so no need to configure params for servers using Go or boringssl (e.g. Caddy, Envoy).
AWS ELB don't support DHE.
You can just not support DHE at all and then you don't need to configure params.
ECDHE doesn't need params. I would limit ECDHE to only X25519 and NIST P-256, but whatever.


Fill Curve Cube without intersecting parts

Question: I created a cube out with just Curve paths and filled it as shown at the screenshot. But this mode creates intersecting parts (Screenshot 3-4)
Is there a way to do this without intersecting parts?
Comment: Don't forget to upvote if any of the answers helped you ;-)
Answer: Well,This expected from what you did.There is no way to solve this.
Instead you can use the Wireframe modifier to generate a similar result.

You can also flatten the face to get a more neat result:

Flatting can be done using the keys S + Axis + 0 after selecting the right faces.
Comment: @Samoth I Edited the answer
Comment: How can this flattening be done?
Answer:
Duplicate the default Cube, name itself Grid and the other one inner.
Select the inner Cube and in Edit Mode select every Vertex (A), then use an Edge Bevel (Ctrl B) of 0.25, then hide it.
Select the Grid Cube and add a Boolean Modifier with the inner Cube as Object in Difference mode. (This will cut out the inner part)

You could of course play with the Bevel of your inner cube before to get your grid nicer looking. You could use more Segments or change the Profile from 0.5 which is "flat" to a smaller number like 0.25 to get a more rounded grid-frame. Its settings are available in the panel in the Toolbar once you confirm the Bevel before doing any other operation or by hitting F6. Unfortunately there's a restriction to the Bevel Operation that you can't set the Profile to something lower than 0.15. So you won't be able to produce a "flat structure* with it.
Answer: To make a perfectly "flat" cube here's another method:

Duplicate the Default Cube (Shift D), name it "inner".
With your inner Cube selected switch to Edit Mode (Tab).
Inset your Faces:

With every Vertex selected (A) hit I for Inset and then hit I again to toggle Individual On.
Type 0.25 or how broad you want your outer Grid-Frame to be. Confirm with LMB or Enter.

Invert your selection to select all corner Vertices. Maybe there's a bug, but it will only work properly after you perform and undo the inverse again. So press Selection > Inverse Ctrl I, Undo Ctrl Z and Selection > Inverse again Ctrl I.
Scale your corner Vertices accordingly to your previous Inset width. You need to substract the Inset width from 1.0, so in this example Scale (S) by , 7 5 (1.0 - 0.25 = 0.75). The result will look a bit off while your Vertices are still selected, but once you deselect them, everything looks perfect.
Now hide the inner Cube after leaving Edit mode (H) so that it won't overlap with the next steps result.
Add a Boolean modifier in the Modifiers Properties Tab to your not yet changed Default Cube with a Different Operation and the inner Cube as Object et voilà:
Comment: When you want to have a clean edge structure on your result, you can first do a *Triangulate Faces* with Ctrl+T and then perform *Tris to Quads* with Alt+J and select a large *Max Shape Angle* there (F6).


"Wrong affix file formate for flag" while loading dictionaries from LibreOffice in PostgreSQL 9.3

Question: Trying to get good TEXT SEARCH results out of PostgreSQL in English, German and Dutch made that I downloaded proofing tools of LibreOffice (tried of version 4.3 and 3.3) and iSpell. I placed the files in the "tsearch_data" dir and renamed them so PostgreSQL would find them. I now have:
en_us.dict, en_us.affix, nl_nl.dict, nl_nl.affix, de_de_frami.dict, de_de_frami.affix

All of them give the same sort of errors while creating a dictionary in PostgreSQL 9.3 like so:
CREATE TEXT SEARCH DICTIONARY test_ispell (template = ispell, Dictfile = en_us, affFile = en_us, stopwords = english);

ERROR:  wrong affix file format for flag
CONTEXT:  line 2428 of configuration file "/usr/share/postgresql/9.3/tsearch_data/en_us.affix": "COMPOUNDMIN 1"

ERROR:  wrong affix file format for flag
CONTEXT:  line 2533 of configuration file "/usr/share/postgresql/9.3/tsearch_data/en_us.affix": "SFX 123 N 1"

ERROR:  invalid byte sequence for encoding "UTF8": 0xc4 0x62
CONTEXT:  line 18 of configuration file "/usr/share/postgresql/9.3/tsearch_data/de_de_frami.dict"

ERROR:  wrong affix file format for flag
CONTEXT:  line 604 of configuration file "/usr/share/postgresql/9.3/tsearch_data/dutch.affix": "SFX Na N 1"

It got pointed out to me that the first error appears to be a wrongful one as can be found in its man page: http://linux.die.net/man/4/hunspell
COMPOUNDMIN num
   Minimum length of words used for compounding.  Default value is 3 letters.

Update: COMPOUND Hunspell functions can can't work in PostgreSQL see: http://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY
The SFX syntax, is beyond me. The invalid byte sequence must be fixable as well I presume if I somehow manage to tell PostgreSQL the file type, yet I have no clue how to do that.
Anyone got any idea how to load these files?
Update:
The Dutch dictionaries provided with Debian still produce errors this is part of the Myspell package, and I can't get it to work. Anyone any success with that?
For now I will try and file a bug report to Debian since it is a function that should be working.
Comment: Related problem https://stackoverflow.com/q/47772853/287948
Answer: So I found the answer for Debian at least.
Hunspell is the successor of Myspell, and they ship with your distribution (in my case Debian).  These are the dictionaries you can use.  You can install these by executing
apt-get install hunspell-en-us

These dictionaries are installed in /usr/share/hunspell or /usr/share/myspell. The PostgreSQL dictionaries that are automatically generate out of these file when installing through apt-get are located in /var/cache/postgresql/dicts. Furthermore apt-get automatically creates links to the files generated in you /usr/share/postgresql/VERSION/tsearch_data dir. In short you are ready to use them.
If you want to manually install hunspell or myspell dictionaries you can place them in the /usr/share/hunspell or /usr/share/myspell dirs. And execute
pg_updatedicts

This will generate PostgreSQL compatible dictionaries in
/var/cache/postgresql/dicts

and you will have to link them yourself /usr/share/postgresql/VERSION/tsearch_data
ln –s /var/cache/postgresql/dicts/de_de.affix           \
  /usr/share/postgesql/VERSION/tsearch_data/            \

ln –s /var/cache/postgresql/dicts/de_de.dict            \
  /usr/share/postgesql/VERSION/tsearch_data/            \


Run NUnit tests automatically from command line

Question: I'm launching the NUnit gui from visual studio by setting the test project to start start nunit 2.5.3 as an external program.  That loads the tests into the GUI but I still have to manually click the run button.  Is there a command line argument that will have the tests run at the same time they're loaded?
Answer: Specify <code>/run</code> on the command line.
Answer:
Help Syntax
NUNIT-GUI [inputfile] [options]
Runs a set of NUnit tests from the console. You may specify
an assembly or a project file of type .nunit as input.
Options:
/fixture=STR            Fixture to test
/include=STR            List of categories to include
/exclude=STR            List of categories to exclude
/config=STR             Project configuration to load
/noload                 Suppress loading of last project
/run                  Automatically run the loaded project
/runselected            Automatically run selected tests or all tests if none are selected
/console                Create console display for viewing any unmanaged output
/lang=STR               Language to use for the NUnit GUI
/cleanup                Erase any leftover cache files and exit
/help                   Display help (Short format: /?)
Options that take values may use an equal sign, a colon
or a space to separate the option from its value.
OK
Comment: +1 mostly because the nuint website is too slow to allow the lookup of documentation!


Cosigner death and family responsibility

Question: A family member has cosigned a private student loan for a foreign student. If she dies prior to the holder of the loan, is her estate responsible for repaying the loan?
Comment: You'll need to consult the lender for that information. They should have it available, either on their website or via contact form.
Comment: Ask the bank, but I would assume the answer is that if you: have signed a contract making you responsible for paying off a loan, that debt is as billable to the estate as any other. The only thing that gets your family member off the hook is if the student pays off; the loan. That's what "guarantor"  means, you are guaranteeing that the debt will be paid, period.
Answer: Although default usually occurs when a borrower consistently fails to pay her bill, it could also happen if the co-signer dies before the repayment is fulfilled.
The problem with having a co-signer for private student loans is that some lenders have a policy that puts borrowers in default after a co-signer dies -- even if the borrower is up-to-date on payments. Defaulting on a student loan can negatively impact a consumer's ability to take out further loans, buy a house, and could even injure a consumer's reputation.
The CFPB suggests that lenders should allow borrowers to find a new co-signer if the original co-signer dies or allow them to refinance the loan.
student loan co-signer death
Comment: That's when you sue the credit reporting business because that particular default says nothing about whether or not the debtor is responsible at handling of money or not.


cheap anti-fog agent!

Question: What are some safe and widely available alternatives to specifically formulated anti-fog sprays/treatments? Specifically for use on glasses, goggles, and face shields.
Comment: If the humidity from breath reaches the goggles, it indicates that the mask is not fitted properly. The exhaled air is supposed to go through the fabric, filtering out some of the droplets and aerosol, not escape into the goggles. Otherwise, the mask is not providing any benefits.
Answer: Here is an excellent review article, which seems unbiased:
To quote the summary of favorites:

Among those who were able to fulfill their promise, causing them to earn the trust of many anti-fog spray users, are Optix 55, Just Add Water, Splaqua, Z Clear, SURF BUTTA, Cressi, Hendlex, iGK, Scott Sports, and Atlan.

My personal recommendation is the most expensive one, Optix 55, as it lasts for days, while many others require frequent re-applications, which can apparently be not particularly trivial.
DISCLAIMER: I have no affiliations with any product and limited personal use.
Comment: I bought some anti mist sprays to find out more about them. there is no information about the ingredients of the spays on the bottle. I want to know what is the main antifog substance inside them.
Answer: Due to COVID-19, we've widely deployed face shields at work. Initially, there were a lot of employee complaints over fogging, and at the time it was difficult to find a steady supply of commercial products. We ended up testing a number of different alternatives, and finally settled on baby shampoo as it was both effective and unlikely to cause eye irritation if it got mixed with sweat and dripped into the employees eyes.
Get a couple drops on the surface, then use a paper towel (or preferably a microfiber rag or lint-free paper) to wipe it over the entire surface being protected. Once dry, it works very well.
Comment: Baby shampoo works well to prevent fog on swim goggles too.

cheap anti-fog agent!