How do you stop boosted exp for traded pokemon?

Question: So I got the torchic gift in pokemon x and y, and he has boosted exp (I'm assuming that this is because he's considered "traded").  Is there any way I can make him gain exp at a normal rate?
Comment: Why do you want the Torchic to gain a normal rate of XP?
Comment: If you are so worried about the growth rate, just battle low leveled Pokemon from Route 2?
Answer: Unfortunately the Pokemon is considered 'traded' if the Trainer Name/Trainer ID & Secret ID does not match your own.

You can breed it with a Ditto by placing both Pokemon into the daycare, collecting & hatching the resulting Egg, and instead raise the child (which will have your Trainer values). Unfortunately it is male - if it were female you could breed it with any Pokemon in the Field Egg group.
Otherwise, you could try restarting the game countless times in order to try and randomly get the correct Trainer ID, although the odds of getting the exact values is like trying to win the lottery. I don't recommend you try this.
Comment: You also need the same Trainer Name. While you point that out at the start, it's not clear at the end. Also it's a 1 in 65536 chance, so it's a much higher chance than lottery^^ Or so I think... You can rename it if only your TID matches at least, so I'd assume this also applies to boosted Exp.
Answer: Do what I did if you're worried about an over powered first run: save it for post-game and shut off exp share.  Victory Road and E4 do spike in difficulty; fair warning.
Comment: Even still, the spike isn't that much. I alternated between using EXP Share and not, and had a 'hot-swap' team of about 15 Pokemon that I would swap in and out depending on where I was/what I was doing, and Victory road wild Pokemon were *still* about 4 levels under my Pokemon's level at the time.
Answer: No, there is not.  (Theoretically, it might gain XP normally if you managed to start a game with the same name, Trainer ID, and secret Trainer ID as the Torchic's OT, but the odds of getting the last two variables to align are 1 out of 4294967296, and even then there might be some flag that still makes the game treat it like an outsider.)
Comment: For renaming purposes, only the Name and TID matter. I'd assume this also applies to boosted Exp. Points.


Double the mass in the universe, double the inertia

Question: If I double (halve) the mass in the visible universe, will my inertia double (halve)? I think it should, at least as soon ''I have received the news of this doubling''. But what does the General Relativity have to say about the matter? Effectively I mean...I'm aware that in GR mass, officially, is not there to ''resist force'' but to bend space-time.
Answer: There is nothing in General Relativity that links your inertia to the matter/energy density of the universe.
I suspect you are thinking of Mach's principle, or at least some variant of it, but GR does not embody Mach's principle. I'm not aware of any widely accepted theoretical approach that is based upon Mach's principle.
Comment: It's not Mach's principle that leads me to this question, but Gravitoelectromagnetism. Therefore you're answer is puzzling, since GEM is linearized GR. So, in small perturbation limit there should be something that links inertia to the matter of the universe... But I am no expert. Thank you!
Answer: Your question is not well posed. In particular you have said what you mean by mass or by inertia.
The word mass is nowadays exclusively used by practicing physicists talking to each other to defer to rest mass. And gravity isn't caused by rest mass. Current gravity is caused by last gravity. Which is the only correct way to understand gravitational waves but is too glib to explain gravitational sources.
So lets talk about sources. The first thing is to be more detailed about the case of zero sources.  For that just note that vacuum spacetimes can naturally be curved without any sources around. And they can curve in different ways or types. Just like electromagnetic waves of different wavelengths and amplitudes can travel through spacetime.
Gravitational sources allow two different types of naturally curved spacetimes to line up where the source is. And rest mass is not a gravitational sources. The sources are: energy, momentum, pressure and stress.
Yes, when you have rest mass you also have energy and sometimes also have momentum and/or pressure and/or stress. But it's the energy, momentum, pressure, and stress that are the sources, not the mass.
And for many everyday situations the biggest source is the energy and the energy is very close (numerically close) to being proportional to the rest mass.
But here is another issue: the rest mass of a system is not the sum of the rest masses of the parts.
And it's worse. There is no global sense of simultaneity so there is no obvious way to even add up rest masses or talk about a system at a fixed moment.
A linearized theory is going to obscure the lack of a simultaneity. And you didn't define inertia anyway. And it's all a bit silly, you can predict how things evolve and so you can make the testable predictions. So what else do you want?


On what day exactly should one read the added phrases prayers?

Question: When praying the Amidah at the second prayer of "Atá Gibor..." during summer one adds, "Morid hatal" between Pesach and Shemini Atseret; whereas in winter during Shemini Atseret and Pesach one adds, "Mashib haruach umorid hageshem" before continuing with,...Mechalkel chayim bechesed...".
On what day exactly should one start with, "Moshib haruach..."? On the day of Pesach or on the day after pesach?
And on what day exactly should one start with, "Morid hatal"? On the day of Shemini Atseret or the day after?
Answer: This is dealt with in the gemara in maseches taanis. We start the mention of mashiv haruach in the chazan's repetition of shemonah esrei for Musaf of Shmini Atzeres. Once it is started, the gemoro states that even when we have a second day of Yom Tov (Simchas Torah), we continue without a break. The question had been whether to stop after mincha until musaf of simchas torah because of sefeika deyoma. However, the gemoro answers that it would be a bizayon for the chag and would indicate that the first day had not really been Yom Tov.
Similarly, we stop saying it at the chazaras hashatz of Musaf for the first day of Pesach. Shacharis and the silent Shemonah Esrai for Musaf follow the rules that had been done until that time. That is, on Pesach, say mashiv haruach vemorid hageshem during shacharis and the silent shemonah esrai of musaf. Do not say it for shacharis and the silent shemonah esrai of musaf of Shemini Atzeres.
The gemoro discusses this in terms of the shliach tzibur saying the shemoneh esrai. It does not mention the silent shemoneh esrai at all. Thus we cannot draw a conclusion as to what is done during the silent shemonah esrai from the gemoroh.
Note that this is the way it is explained in some of the Art Scroll editions of the siddur. In others (of that siddur), and in the Koren siddur as well as others,for example, the switch depends on whether or not the gabbai can announce the switch before the silent shemonah esrei or not. One can announce that mashiv haruach umorid hagashem is being said, in which case it can be said during the silent shemonah esrai. This is because the announcement of the gabbai is the equivalent informing the kahal what is to be said during all following shemoneh esrai payers. If the announcement had not been done, then the kahal would have to wait until after tefilas hageshem during the repetition of the shonah esrai.
However, one cannot announce that the kahal is to stop saying something or is not to say anything. Thus, since Ashkenazim in chutz la'aretz do not say anything during the summer, Mashiv haruach is said during the silent shemoneh esrai and dropped with tefilas tal which is said by the chazan during the repetition.
Most ashkenazim in chutz la'aretz do not say morid hatal at all and continue directly with mechalkel chaim.
I do not have experience with those that say Morid Hatal, but the logic (of the gabbai's announcement) should be the same. Thanks to @DanF and @msh210 for confirming that this logic is followed by Eidot Hamizrach and nusach 'sfarad'.
Comment: Why say Tefillat Geshem in the repetition if the Gabbai already announced? Also, why would we want our Tefillat Geshem to consist of a Klap and a short statement instead of a heartfelt prayer by a Chazan?
Comment: If I recall correctly, some communities, I believe Edot Hamizrach says both Geshem and Tal as a separate Piyyut unconnected with Chazarat Hashat"z. I.e. - it is said before the silent Amidah. I would assume, then, that in all cases, the silent Amidah would have the new version and there is no need for the Gabbai's announcement. Can anyone confirm or dispute this?
Comment: @DanF, that's correct. ¶ sabbahillel, the last paragraph of your answer matches my experience in _nusach "S'farad"_ synagogues.
Comment: @DoubleAA, natch the announcement substitutes for only the announcing-the-change aspect of _geshem_, not for the prayer. I'm sure that's what the answer meant by "the announcement of the gabbai is the equivalent of tefilas geshem".
Comment: @DoubleAA I modified the sentence to be more clear that it was just referring to the announcement concept of tefilas Hageshem.
Comment: Thank you Sabbahillel, for your explanation and your references that I may study further. Also, I was not aware that most ashkenazim in chutz la'aretz did not say morid hatal. Especially since it is included in the Tefilát Binyamin, an ashkenazim sidur I have. Thank you all.


Reason for BusyBox environment in debian-installer?

Question: Debian-installer main menu has an "Execute a shell" option which starts an ash(Almquist shell) in BusyBox environment. One can exit this environment back to debian-installer with the exit command. What are the practical reasons for such BusyBox environment? Or does the debian-installer actually run inside this very same BusyBox environment?
Comment: The practical reason for Busybox is speed and file size. Along with busybox its dependencies (`$ ldd busybox`) linux-vdso, libcrypt, libc and ld-linux-x86-64 its only 2.6MB in size. Of which libc with 2.0MB is the largest dep and that library is often shared with other tools.
Answer: The installer actually runs inside that environment. You can also get a shell by switching to virtual console 2 or 3.
Having a shell available on the install media turns out to be really useful to use it as a rescue disc or otherwise fix up special weirdness needed to make the install work (as an example, see my answer about LVM RAID, in particular the how to install section).
Comment: I couldn't find a specific link to how Busybox is used in the Debian installer, but such a link would be interesting to include in the answer.
Comment: @derobert Another example where text editor in shell is used for modifying a script as a workaround for bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681656#35
Answer: BusyBox is a set of basic user and administration utilities including sh, cp, mount, etc. The Debian installer uses some of these utilities for its own purposes because it needs to perform these tasks.
In addition, there is an option for the user to get a shell prompt and run commands. This is useful when you need to do something that the designers of the installer didn't predict, for example because you have hardware that isn't supported or because you have an unusual setup.
The installer comes with BusyBox rather than with the GNU utilities found on the final system because BusyBox is significantly smaller (at the cost of having fewer features). While this isn't as important nowadays as it was in the days of floppy disks, there are still many circumstances where it's useful to save a few megabytes in the installer image.


When inserting a EmailMessage manually, the Activities Timeline shows "Upcoming & Overdue" but one that is autogenerated by SFDC is bucketed via month

Question: Perhaps it isn't possible, but I find it strange that autogenerated EmailMessage records are bucketed into the correct month, but manually inserted EmailMessage records show up as "Upcoming & Overdue"
When comparing fields behind the scenes, the values of the fields look almost identical between a manually inserted EmailMessage record and a autogenerated one by Salesforce. (Yes, even MessageDate is populated on both.)
Any idea how to properly categorize the manually inserted records within the Activities Timeline in the Lightning Page Layout, so they fall within their designated month?

For those that are curious the one that does bucket by the month, I'm using out of the box Flow "Send Email"
The one that is not bucketing by month and showing under Upcoming & Overdue I insert like so:
    EmailMessage newEmail = new EmailMessage();
    newEmail.ToAddress = ...
    newEmail.CcAddress = ...
    newEmail.Subject = email.subject;
    newEmail.TextBody = email.plainTextBody;
    newEmail.HtmlBody = email.htmlBody;
    newEmail.MessageDate = system.now();
    newEmail.RelatedToId = ...
    insert newEmail;

Answer: Found this in the EmailMessage documentation. Looks like Status = '5'  (Draft)
Should really manually be set to Status = '4'  (Forwarded)
That will categorize it correctly.
        newEmail.Subject = email.subject;
        newEmail.TextBody = email.plainTextBody;
        newEmail.HtmlBody = email.htmlBody;
        newEmail.MessageDate = system.now();
        newEmail.Status = '4';


Photoshop clear makes adjacent pixels semi transparent

Question: When I make a selection of some pixels and press delete, Photoshop does get rid of the pixels but as well makes the adjacent pixels (which were not selected) semi transparent for some reason. I would like to delete precisely the selected area.
Answer: My guess is that you set "feather" (in options block above the canvas) to something other than zero.
Check the screenshot at http://designshack.net/articles/software/8-ways-to-get-the-selection-you-want-in-photoshop/ under paragraph "Additional options" near the top to see what I mean.
Comment: I have set it to 0 and still same problem.


How to check Mime Type (Content Type) of a file?

Question: I want to restrict a file upload based on extension type and mime type. However i found the fileextension field will always be null in before or after insert contentversion trigger and filtype field on content will have some different form of string. Ex- For excl filetype is "EXCEL_X" and file extension is null in after insert trigger. I want to get the mime type like 'applicaton/xlxs' or somewhat like that.
Comment: @DavidReed I checked that answer earlier, The mime type can be multiple for excel file only. Let me know how can we identify the mime type by just seeing  Filetype
Comment: `FileType` isn't a MIME type. It's a Salesforce-specific string. If that's what you're after, it'd be helpful if you could clarify that in your question, because the actual MIME type (like `'text/csv'`) isn't available.
Comment: @DavidReed Is there any way to get Salesforce specific string for different type of file ? Any documention if you know.. Also, Thanks i edited my question.
Comment: not that I know of, besides uploading files of various types and looking at the field after Salesforce populates it.
Answer: When you talk about checking the file type in before insert, Better to go with PathOnClient field on ContentVersion.It is not null in both before and in after trigger.
trigger ContentVersiontrigger on ContentVersion (before insert) {
    for(ContentVersion cv:Trigger.new){
        if(cv.PathOnClient==cv.Title+'.jpg'){
          cv.adderror('error');
        }
    }}

PathOnClient will contain the Title and file type separated by "." e.g PathOnClient=download.png
If you are going for 'after trigger' on ContentVersion, then Yes you will get FileType 'EXCEL_X' whose extension is XLSX.
Again, Here pathOnclient will contain the file extension which will take out you from all the problem.
Comment: ContentVersion does not contain mime type field as I could check in the documentation.
Comment: Hi Sanket, Is it possible to get mime type from any file ? like 'application/xlsx' ..Like the way we have content-type field on attachment
Answer: You can try with the field PathOnClient

Description - The complete path of the document. One of the fields that
  determines the FileType.

code snippet inside your trigger/handler should be -
     ContentVersion attachedFile = new ContentVersion();

   if (attachedFile.PathOnClient.endsWithIgnoreCase('xlsx') || attachedFile.PathOnClient.endsWithIgnoreCase('xls')){
    attachedFile.addError('xls and xlsx files are allowed');
    }

Comment: Hi Bennie, Is it possible to get mime type from any file ? like 'application/xlsx' ..Like the way we have content-type field on attachment
Comment: The field `ContentType` will contain the MIMEType of a file in the Attachment object. Not sure about ContentVersion


Score needed to lift post ban

Question: So, a year or more ago, I think. I was post banned. Today I decided to change that. I went on an answering spree and earned 210 points. I suppose this is a lot for a guy with a score like mine. Now, I know what post banned means. I just want to ask if the formula for automatically lifting post bans is publicly disclosed.
Comment: I think [this answer sums it up](http://meta.stackoverflow.com/a/290668/578411). Don't expect anything to be revealed about how it exactly works, it is a trade secret to prevent users trying to game the system.
Comment: No, it is not publicly disclosed.
Comment: Thak you. Do you maybe have a estimate? Nevermind if you dont.
Answer: As @user0001 pointed out in the comments, this is not disclosed.
The reason that it is not disclosed, is to prevent people from gaming the system; doing just enough to get the ban lifted, or being just good enough to stay on the good side of a ban.
From Meta StackExchange:

If you are banned from asking questions, then writing a few quality answers that get upvoted might enable you to ask questions again. But as the internals of the filter are secret, there is no way to know for sure.

As you have earned 210 points, though, I think you are on your way. If your answers aren't downvoted or flagged, you must be on your way to get your ban lifted. Good luck!
Comment: @RobertoNicbaAnićBanić last two negatively voted deleted questions are [here](http://stackoverflow.com/questions/22595616/selling-play-store-apps-from-non-checkout-countries) and [here](http://stackoverflow.com/questions/21415620/making-program-extensions)
Comment: Don't forget that deleted questions count as well. The OP might ask for links to the deleted ones to see if they can be salvaged.
Comment: I got my deleted questions undeleted. But can anyone(if you are a mod, not you guy I know mods have diamonds ;)) check if I got anymore deleted questions?
Comment: Thank You, but I thibk I will just need to earn enough rep to overcome that. Although the first question is simply bad, I think the second question is nicely formed, and the answer would be Reflection.
Comment: @RobertoNicbaAnićBanić Users with 10k points or more should be able to see deleted posts. I have only glanced at the second question that Jon Clements linked, but (having over 3k points) I can see that people are voting to reopen it. Looks like things are going well.
Comment: Well 'EDIT: e.g. Currently I have the possibility to send popups to another PC' does not sound like the kind of question I would vote up or for reopen.  It's more like a kind of malware functionality that I would down/close/delete vote.  The first question is business/marketing and so just totally bad:(

Score needed to lift post ban


Setting ScrollViewer.ManipulationMode to System doesn't seem to work

Question: I have a hierarchical tree implemented using ListBox. I implemented item reordering method by holding an item and dragging it around.
To do this I intercept item's Hold, ManipulationDelta and ManipulationCompleted events. Because Listbox's ScrollViewer is in ManipulationMode = ManipulationMode.System by default, I need to set it to ManipulationMode.Control to disable it temporarily to be able to drag my item around.
If I won't do that, scrollviewer intercepts my ManipulationDelta events so when user tries to drag the item, he scrolls the scrollviewer instead and my item stays in fixed position.
Normally, after user drops the item i want to set it back to ManipulationMode.System (if I don't the tree structure scrolling remains laggy because item's template is somewhat heavy/complex).
<code>private void ElementHold(object sender, GestureEventArgs e) {
    ....
    _scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
    _scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled;
    // works ok
    _scrollViewer.SetValue(ScrollViewer.ManipulationModeProperty, ManipulationMode.Control);
}

private void ElementManipulationCompleted(object sender, ManipulationCompletedEventArgs e) {
    _scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
    _scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;

    // ▼ this doesn't seem to work.
    // ▼ In the debugger ManipulationMode has correct value but scrolling
    // ▼ still lags which means that scrollviewer stays in Control mode.
    _scrollViewer.SetValue(ScrollViewer.ManipulationModeProperty, ManipulationMode.System);
}
</code>
I've read that I can't switch ManipulationMode after ApplyTemplate() was called, but I also read that it should be possible if done by setting via dependency property instead of standard property.
What am I doing wrong here? Is it impossible to go back to System mode? If I go to other page and back to this one scrollViewer still lags. Only app restart works.
Answer: Just set UseOptimizedManipulationRouting="False" to dragging item control to prevent Routing event to scrollviewer


Count the number of integer solutions for $a \times b \geq k$?

Question: count the number of integer solution for $a \times b \geq k$
given the conditions
1) $1 \leq a \leq p$
2) $1 \leq b \leq q$
(k, p, and q are constant).
Comment: Do you suppose you can rephrase this so it doesn't sound like you are giving us an order? And while you're at it, indicate what thoughts you've had about the problem, what progress you've made, where you got stuck, how the problem attracted your attention, etc., etc.?
Answer: In graphical terms, you're counting the number of lattice points (i.e., points with integer components) that are within or on the boundary of the rectangle with opposite corners $(0, 0)$ and $(p, q)$ and which lie above or on the hyperbola $xy=k$. With this in mind we have three cases:

If $pq < k$ the rectangle lies below the hyperbola, so there are no solutions.
If $pq = k$ only the upper-right corner of the rectangle will intersect the hyperbola, so there will be a single solution, $a=p, b=q.$
If $pq > k$ there are at least two possible ways to go. The easiest is to get an upper bound for the number of solutions. Certainly the number of solutions will be no larger than the area above the curve $xy=k,$ below the line $y=q,$ and to the left of the line $x=p$. The curve and the line intersect when $x=k/q$ so the area will be

$$
A = \int_{k/q}^p k-\frac{k}{x} dx = pq+k\left(\ln\frac{k}{pq}-1\right)
$$
For most values of $p$ and $q,$ this turns out to be pretty close to the actual number of solutions.
On the other hand, if you want an exact answer you can find the convex hull of your set of solution points and then use Pick's Theorem. Although it will do what you want, the answer won't be nearly as simple as the estimate above.


If I found the Quest home level, but haven't spoken to the leader, does the Quest Artifact count as "generated" when wishing for artifacts?

Question: I've been on the Quest home level, but haven't ventured more than a few steps. I have Magicbane and Vorpal Blade, and have seen no other artifacts in my travels. I'm hoping to add 2 more artifacts with my remaining wishes before going on the quest. Looking at the wiki, I see my chances are better for getting them beforehand. But, since the Quest artifact is guaranteed, I'm wondering if it's pre-counted as generated.  The odds change significantly if it is, and I might be better served only trying for one more. So, any info would help.
Answer: The quest artifact is initially in the possession of your quest nemesis, not your quest leader.
Unless you've visited the bottom level of the quest, your quest artifact won't count as generated yet.


How does Anakin get his weapon back?

Question: When Anakin is on the conveyor belt his lightsaber is cut in half. When he's fighting Count Dooku a little later he has it again. How did he get it?
Answer: He was thrown a new lightsaber during the Geonosis arena fight by Jedi Knight Sephjet Josall. Obi-Wan was thrown one by Jedi Knight Nicanas Tassu.

Mace winced when he spotted Obi-Wan, Anakin, and Padmé sent flying into the air by the terrified and bucking reek. He motioned to other Jedi, but needn't have, for those closest were already rushing toward their vulnerable companions, throwing lightsabers to Anakin and Obi-Wan.
When those two ignited their blades, Anakin's green and Obi-Wan's blue, and Padmé came up between them, a discarded blaster pistol in hand, Mace breathed a bit easier.
Attack of the Clones: Official Novelisation
Comment: Wait. The two closest? That would imply that most if not all Jedi were carrying spares, so that those who happen to end up closest to Anakin and Obi-Wan could give them their spares. Oh well, I guess the force willed it or something.
Comment: @bitmask I presumed those two were tasked with delivering the light sabers, which is why they were the closest. They just bolted there. Whills of the Force had nothing to do with it.
Comment: I've watched this frame-by-frame and I've come to the conclusion that Wookieepedia is wrong about which Jedi passed which Jedi their spare lightsaber.
Comment: @BJones knowing they were captured, it wasn't a stretch to make that presumption.
Comment: I appreciate the answer. I must have looked away for just a second. Luckily they were the right color. If they were tasked with getting them lightsabers how would they even know that they were lost in the first place?

How does Anakin get his weapon back?


How to iterate through each vertex in a line?

Question: I am working with ArcObjects in building functionality for a toolbar inside of ArcMap. Once I start an edit session, I use the tools to manually draw a line. I am trying to loop through this line get (or display in a message box) each point in the line. For ease of use, I was trying to do this on a simple button click from my toolbar. I've been researching and thought of using the IPointCollection Interface but I'm not completely sure if this will work or be helpful in accomplishing my goal. I am looking more so for a starting point to this.
Comment: could you convert the geometry to WKT then an array. Then iterate over the points in the array?
Answer: You can use IPointCollection this way:
public void IterateVerticesIPointCollection(IPolyline line)
{
    // Cast the polyline to IPointCollection
    IPointCollection pointColl = (IPointCollection)line;
    // Iterate the array...
    for (int i = 0; i < pointColl.PointCount; i++)
    {
        IPoint point = pointColl.get_Point(i);
        // ...and do something with each vertex
    }
}

I think IPointCollection can be enough for you, but if you have to read large polylines or do some heavy process it's better to use IPointCollection4, it's a lot faster:
public void IterateVerticesIPointCollection4(IPolyline line)
{
    // Cast the polyline to IPointCollection4
    IPointCollection4 pointColl = (IPointCollection4)line;
    // Create an array to store the vertices
    WKSPointZ[] vertices = new WKSPointZ[pointColl.PointCount];
    // Store the vertices in the array
    pointColl.QueryWKSPointZs(0, pointColl.PointCount, out vertices[0]);
    // Now we can iterate the array...
    for (int i = 0; i < vertices.Length; i++)
    {
        // ...and do something with each vertex
    }
}

And I almost forgot that your polylines could have more than one part, in this case is better to iterate each part and then use IPointCollection/IPointCollection4 to do something with each vertex.
IGeometryCollection geometryCollection = (IGeometryCollection)polyline;
for (int i = 0; i < geometryCollection.GeometryCount; i++)
{
    IPointCollection pointCollection = (IPointCollection)geometryCollection.get_Geometry(i);

}

Comment: I appreciate your response. I will give this a shot and see what happens. I'm curious about the actual Polyline that has been drawn inside of ArcMap though. Won't I have to grab this line somehow from ArcMap to be passed into the function?


Taking photos within and iOS app, without appearing within the iOS Photos app

Question: I am developing an app in which the capability of adding photos & videos is added. However, I want the photos & videos to be only viewable within the application itself and not also in the iOS standard Photos app. Does anyone know if there is a way of limiting the cameras saving path?
Thanks
Answer: When you take photos within your app, they don't automatically show up in the Camera Roll. This is the default (i.e. if you want them to show up in Camera Roll, you have to do something special).


SMTP settings not being used

Question: I've been working on a existing drupal site I got from a client, and have been running into some problems when I try to change the smtp settings. The SMTP module was already installed, but when I change the settings in SMTP Authentication Support and send a test mail, it works, but it still keeps using settings from somewhere else (I presume). I've checked the config files for settings, but I can't seem to find anything. All cache has been turned off. I'm not an expert on drupal by any means, so is there some other place I should be looking or do I need to change some other settings?
Answer: Refer to the answer to How to configure webform with smtp , which includes:

If you have SMTP module installed in your drupal site than you would have to configure the SMTP settings (/admin/config/system/smtp) for sending the email ...

It also includes an example for configuring SMTP.

SMTP settings not being used


After reboot, direct SSH & HTTP time out, can only SSH from another server

Question:
Everything was working fine with server2 until I had to reboot.
Since reboot, I cannot SSH into the machine directly, and, http is not working...MOST of the time.
Every once in a while, randomly, I can suddenly get in. But most of the time, the connections time out.
I CAN SSH from server1 into server2.  This always works, but access from the outside is sporadic at best.
Firewall is not blocking those ports and the ports always reply
WGET from server2 is timing out as well.  Even when SSH and HTTP happens to work that particular minute, WGET never works.
Comment: I can only recommend the usual troubleshooting procedure: 1) check all logs + dmesg 2) telnet to service-ports and see what you get back 3) check with tcpdump at server-side / server+client-side / capture pcap and analyse with wireshark   BTW: if server1 is on the same subnet you may potentially have a router/arp/firewall issue
Answer: The first few things I would check for are the following:

Does server2 have the correct network prefix and gateway address configured on the network interface?
Does arp -n on server2 show an entry for the gateway?
If possible, check arp -n on the gateway as well looking for an entry for server2.

Sporadic connectivity like you describe can happen in scenarios where arp request and replies between gateway and host is for some reason not working, but they can pick up each other's MAC address anyway by watching arp requests. In one such case I was able to temporarily work around the problem by pinging an unused IP address on the LAN from the problematic host, until I found the root case, which was conflicting RFC1918 addresses assigned on two different interfaces.
Comment: Sound like the default gateway may be on the wrong interface.
Comment: When I do arp -n on server2, the IP address that I use to SSH into it is NOT listed, but there are several similar ones.


SDK for Developer

Question: Is there any SDK for developers under Linux? I mean more than man pages, it would be more like MSDN Library or Windows SDK under windows, where all documentation about programming and developer guide is documented and structured in one place.
Answer: A unified SDK implies a single source for all the core libraries.  That just isn't the way open source operating systems work.  Bits and pieces come from all over, and they're all separately documented.
EDIT: If paper's not a problem for you, the closest thing to what you're asking for is Advanced Programming in the Unix Environment 2/e by Stevens and Rago.
Comment: if that so, lets just take only for linux kernel for example, is there any structured documentation for kernel API instead of just list of man pages? is there any way we can search for a topic or follow a guide on a document of more like "developer guide"
Comment: Added recommendation paragraph for the Stevens book.
Answer: For GNOME, you can check out devhelp or help.gnome.org.
But as everyone has already stated, there is no single SDK for "Linux".  You need to have some idea of what you want before we can recommend specific developer resources.
Comment: so they (the system/lib/distro developer) is very good at making thousands of little piece to work together than to agree about how to standardize a document in order to make app developer create better apps faster. no wonder *nix apps are less compared to windows or even osx
Comment: @uray, there are a lot of different ways to program for GNU/Linux.  If you use comprehensive libraries like GNOME, KDE, or Qt, you may find that most of the documentation you need is in fact in one place.
Comment: @uray GNU/Linux is a living breathing environment going through a lot of changes. Writing it off as having a porely developed userland is very subjective. For most of it's history it has been the platform of power-users, people who spend most of their time in text, shunning the world of Desktop Environments and other hoo-ey. This has been changing lately as GNU/Linux gains wider exceptence/use. If you embrace the Unix side of linux, it is much more rich and well developed than OSX or Windows. If you're looking for shiny mouse-bait, you'll have to wait for it to catch up.
Answer: MSDN only documents Microsoft technologies, and not other libraries or frameworks to use on Windows; it doesn't include documentation from other vendors.  Now, linux distros use software from much more organisations & companies, so the documentation also tends to be more distributed and less uniform.  (And sometimes documentation isn't done very well, unfortunately.)
Also, most linux distros come with a documentation browser that bundles the documentation from various sources in one place.
Many of the important parts of a linux distro do have nice documentation libraries BTW, e.g.:

https://developer.gnome.org/
http://docs.python.org/
Answer: What I recommended if you're also interested in developing cross-platform applications is the Nokia Qt SDK which provides the Qt framework and other tools, which from my experience has one of the best documentations available, see http://doc.qt.nokia.com/ and http://qt.nokia.com/developer
Some videos to watch: this and this
For understanding what Qt is and what you can do with it check out: http://qt.nokia.com/
Also Qt is the framework of choice to build apps for MeeGo platform. (watch this)

SDK for Developer


How to detect available carrier networks?

Question: Is there any way in Android to detect all available carrier networks in the area. I tried to search it from connectivity manager and it seems it only returns active network info. I also tried the telephony manager and it only returns signals and neighbor info of the active carrier (e.g. other signals of same carrier). I would like to create an app that will scan for available cell networks in every country -- like in Settings -- to choose my network when roaming.
Answer: as far as i know that is not possible, because you can only get the cell info of your SIM carrier, but we have a new method on TelephonyManager called getAllCellInfo ().
The problem is that method its only available on API Level 17, only available on devices with Jelly Bean (4.2).
Check this link for more information.
Comment: Ok i tried on 2 devices running Jelly Bean (HTC Legend unofficial and Galaxy Nexus 4.2.1 ROM OTA updated) and the method `getAllCellInfo()` always return NULL. I set all permissions required (Manifest). There are folks with the same problem http://stackoverflow.com/questions/13619586/android-api-listcellinfo
Answer: Even the getAllCellInfo function will never report "all networks" that are in the air at your location, simply because the phone will only listen to / measure on the frequencies / networks that the current serving cell tells it to measure on. Normally this means that it will only measure (and be able to report cells) from the same network as the phone is currently using.
If the phone has lost coverage from its "home PLMN" (home or selected network) it will however periodically do measurements in other frequencies to try to get back to it's "favourite network".
To be able to get lists of all present networks in your area you need to have another kind of device for example a "scanner", which never locks on to any cell, but continuously scans many frequencies to find cells from any network and any radio access technology (GSM/WCDMA LTE for example) within these frequencies.
Or continuously press the "select network" function...
/ Kenneth


Business entities / value objects framework with DbC support

Question: The thing I think I spend most time on when building my business models is the validation of business entities and making sure the entity objects and their relationships maintains good integrity. My dream for a good entity/value object framework would help me create reusable entities/value objects and easily create constraints and rules for relationships as you would in a db but since I feel this really is business rules they belong in the model and should be totally independent of the database.
It should be easy to define that the Name property of a Person object should be required and that the Email property should be required and match a certain regex and that these rules should be easily reusable f.ex. in validating input in my web app.
I have absolutely most experience with Linq to sql and even though it certainly is nice to work with it has limit by not supporting value objects and others. My question is would Entity framework or NHibernate be more suiting or are there other technologies that fit my needs better?
Answer: There was a small book I read last year by Steve Sanderson himself that briefed me on DDD concepts.  Even though the book was on ASP.NET MVC as a preview, he really focused on the "M" in MVC as a true and pure Domain Model - using almost 1/2 the book on modeling approaches (which I very much enjoyed).  One thing he approached was using Value Objects in the context of Aggregate Roots (obviously).  But, he also showed how to use Linq to represent the entities, as well as the Value Objects.
The point is, he noted the limitation of Linq that it must have an identity on every object, including Value Objects.  He acknowledged it broke the pure domain model approach; but, it was the only way to get it to work with Linq-to-SQL.
His work-around was to give your Value Object an Identity; but, make that identity internal so it is not exposed outside of your model.  This will allow you to link and share your objects using Linq in your repositories; while not exposing it to the client layers - so, it is as though they are Value Objects exclusively.
The Entity Framework I believe suffers from the same requirement.
A C# example is below.
<code>public class MyEntity
{
  [Column(IsPrimaryKey = true
    , IsDbGenerated = true
    , AutoSync = AutoSync.OnInsert)]
  public int EntityID { get; set; }

  [Column(CanBeNull = false)]
  public string EntityProperty
  {
    get
    {
      // insert business rules here, if need be
    }
    set;
  }
}

public class MyValueObjectForMyEntity
{
  // make your identity internal
  [Column(IsPrimaryKey = true
    , IsDbGenerated = true
    , AutoSync = AutoSync.OnInsert)]
  internal int ValueObjectID { get; set; }

  // everything else public
  [Column(CanBeNull = false)]
  public string MyProperty { get; set; }
}
</code>
Answer: Even though it appears you're on the .Net side of the world, I'd highly recommend Eric Evans' book "Domain Driven Design". (There's actually more UML than Java, and the ideas should port.)
It's a patterns book, but he proposes a number of design strategies that argue for sticking all of the object rules logic ("invariants") into a centralized domain; he then goes on to riff about a number of commonly-understood patterns and makes issues like yours seem more tractable. Well, if not tractable, at least more manageable in the longer term.


Rails assets don't get updated

Question: I have a Rails 3.1 app and for some reason when I change CSS, the changes don't show up. I did bundle exec rake assets:precompile and it helped once, but now I am stuck with the old CSS no matter what.
Answer: As your assets are now precompiled you need to clean them with the following
bundle exec RAILS_ENV=development rake rails_group=assets assets:clean

Comment: Delete all the files in public/assets and stop running the precompile task! If the CSS does not show then I bet this is an upgraded app?? In that case check that all you config options match those in the Rails Pipeline Guide upgrading section.
Comment: Any chance you can tell how to turn off asset precompile for development so that it is possible to see changes made in .css immediately?
Comment: this didnt work as a bundle exec command, `rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets` worked for me though
Comment: hmm did not help..? /Users/username/.rvm/rubies/ruby-1.9.3-p0/bin/ruby /Users/username/.rvm/gems/ruby-1.9.3-p0/bin/rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets   btw the problem i mentioned shows up in development..
Comment: I had the same problem and needed to remove `config.assets.digest = true` from my dev config file to get the asset cache to invalidate when assets were changed.
Comment: If you're on Chrome, try using a different tab. Myself and others found that sometimes Chrome was using caching on it's own.
Answer: For my production environment I had to combine a few of the above steps to get my assets recompiled.
First I had to do:
rake assets:clean

Making sure I was in the right environment
Then I needed to delete the public/assets directory that the precompile creates (or just the file that you need to fix, application-<hash>.css for example)
Then finally re-run
rake assets:precompile

And restart my apache server (I use passenger with apache, not tested with nginx)
Answer: You might want to try rake assets:clean and then rake assets:precompile
Comment: When I did this, I noted in the error that it was performing the rake task in `rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets`..once I switched it to `development` it worked nicely! :) thx.
Comment: did it.. nothing changed (old css is being served).
Answer: For me is was just deleting compiled css/js files from public directory.
It turned out that other dev put it there and didn't let know anyone.
Comment: I had to do this too, but it's not another dev, it's the precompiler.
Answer: What worked for me in rails, chrome, mac :
1 - In terminal :
rake assets:clean

2 - In Sublime text or in Finder :
Delete the "Public > Assets" folder
3 - In terminal launch localhost server :
rails s

4 - In chrome :
http://localhost:3000/

5 - Reload chrome clearing cache if relevant :
cmd + shift + R

You should now be able to update your css files and see immediate changes on your localhost just reloading the page
DO NOT RUN "rake assets:precompile" in terminal because it will recreate the folder "assets" in the "public" folder and you won't be able to see updates of your css files directly in your localhost
Comment: That last note was my solution. I run `rake assets:precompile` on development just to test if everything was going to work properly on production. Then I spent 3 hours looking for this solution. Thanks!
Answer: In case any future Googlers find this thread: I had the same problem in the test environment of a Rails 4.2.8 application. None of the above solutions worked. Setting config.serve_static_files = false in config/environments/test.rb solved it.
Bear in mind that this is a temporary fix as it causes all files in the public folder to no longer be served (including 404.html, favicon.ico, robots.txt, etc).

Rails assets don't get updated


How can I interact with a smart contract deployed on etherscan.io using the ABI?

Question: I was wondering if it is possible to interact with someone's smart contract deployed on etherscan.io by using the ABI of that smart contract. for example when developing projects on my coding editor using "truffle migrate" I get the JSON file that contains the ABI that allows me to call all the functions inside that contract. but what if I want to call the name function of someone's smart contract using the ABI found on etherscan.io?
is it possible?
How can I convert that ABI to a JSON file and add it to my code editor?
Answer: Yes, it is possible to interact with any contract deployed on the chain. The ABI can be found on the Etherscan contract code tab if the contract is verified. If the contract is not verified then you cannot really determine the ABI yourself, not easily at least, may be able to reverse engineer tx calldata and try to make sense of the input.
Answer: Meet explained it accurately. I'm not sure if you are asking whether you can interact with a contract that isn't verified with a different ABI you got from etherscan.io.
If so, and you know what functions it has, here's a shameless plug for a tool I wrote: https://lovethewired.github.io/blog/2022/abi-playground
It's using ethersjs, more specifically ethers.utils.interface to generate the ABI.
Comment: Hey, this doesn't support Goerli testnet. Can you add Goerli support (or open-source this so I can submit a PR?)
Comment: Hey, it supports any chain that you can connect to via MetaMask, it just might not show up in the dropdown. But fair point, I should open-source it.


What are these types of 当て字?

Question: I was trying to find ways to translate people's names into 当て字, and came across this website that seems to list 4 types of 当て字:
暴走族風【ぼうそうぞくふう】, 宝塚風【たからづかふう】, お子様風【おこさまふう】, 難読文字【なんどくもじ】
The best translation I can make is "Biker-style", "Takarazuka-style", "Childlike-style", and "Difficult Words". Are these 4 standard types of 当て字, or is it something the author of the website made up himself?
Comment: Is it you or the website who is reading 風 as かぜ?  Either way, it is weird.
Comment: In this context (meaning "style"), 風 is read ふう. Also 宝塚 is read たからづか.
Comment: Thanks, I made both of these changes, they were my own mistakes.
Answer: First and foremost, that website is in no way an authoritative guide to [当]{あ}て[字]{じ}.  It even says 「当て字で[遊]{あそ}ぼう」("Let's play with ateji!") in a highlighted color.  The four ateji patterns given are completely random and just for fun.
All I want to do here is to explain the first two patterns as many Japanese-learners would be unfamiliar with the ideas behind them.  The other two, 「お[子様風]{こさまふう}」 and 「[難読文字風]{なんどくもじふう}」 could be figured out by using a dictionary.
1) [暴走族風]{ぼうそうぞくふう}
暴走族 (hot-rodders) are known for their love of kanji.  They write everything in kanji --- but only in abnormal kanji.  Below, they are saying 「よろしく!アイラブユー」 and that kanji version of 「よろしく」 is very famous among us non-暴走族 Japanese citizens as well.

(source: blogimg.jp)
2) [宝塚風]{たからづかふう}
宝塚 is a highly popular female-only theatrical company.  (It is almost impossible to get tickets for its shows!)
The actresses of Takarazuka, with basically no exceptions, have dramatic-sounding and gorgeous-looking stage names - both first and last names. Below are some examples.

Some of you might notice that the list contains masculine-sounding names.  That is because some actresses of Takarazuka always play the male parts.
Comment: Thanks for this, I had a vague idea of what these kanji represented but you've helped clarify exactly what they meant.
Answer: The website appears to be an 当て字 generator. You input kana and it outputs 当て字 based on the above-listed arbitrary styles. They aren't real types of 当て字.
As an aside, I'm not sure exactly what the criteria is for the first two (at a glance I'd say it could be kanji with bad connotations vs good/imperial connotations), but the latter two just create 当て字 using simple and complex kanji respectively.
Comment: The criteria are SO clear only if you are familiar with how 暴走族 like to write things and how 宝塚 actresses like to create their stage names.

What are these types of 当て字?


CNN autoplay video has changed and must be blocked another way?

Question: In recent days, the way that CNN autoplays its videos has changed and old methods of blocking them no longer work. I suspect it has something to do with their using HTML5 instead of Flash. Any suggestion on how to block them now?
Answer: After further searching, I've found plug-ins for both Firefox and Chrome that handle both the Flash and HTML5 attempts to auto-play videos on CNN. It appears that CNN is now trying up to six times to auto-play a video, and these plug-ins catch them all! https://www.technologyhint.com/stop-video-autoplay-chrome-firefox/
Comment: I have Chrome 58, and installed both of those extensions.  CNN videos still autoplay about 75% of the time.
Comment: None of these work in Chrome anymore (Chrome 62).
Comment: I've switched to FlashStopper, and have no problems. I have version 60.0.3112.101 of Chrome.
Answer: You can try this extension in Chrome:
Disable HTML5 Autoplay
Comment: This is no longer maintained, unfortunately.  Autoplaying videos are the new pop-up windows, I really hope one of the browser vendors come up with a way to permanently disable them without requiring downloading and configuring an add-on.


How to run python application on different machines?

Question: I have a program in Python 2.X that relies on various outdated modules (e.g., Pyglet) that needs to be run on different Mac/ Windows OS machines. Currently, to get the program to work on a certain computer, I need to modify the source code and make sure the machine has the correct versions of the dependencies. Is there a way I can create one version of the program, and when I install on it a machine, it will automatically get the correct dependencies?
Answer: PyInstaller freezes (packages) Python applications into standalone executables, under Windows, Mac, Linux, FreeBSD, Solaris and AIX. These executable files can run on a system without Python installed. It is designed to be compatible with many third-party modules such as PyQt, Django or matplotlib without requiring configuration or plugins.
PyInstaller's main advantages over similar tools are that PyInstaller works with Python 2.7 and 3.5-3.7, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with third-party packages out of the box. This means that with PyInstaller all the required tricks to make external packages work are already integrated within PyInstaller itself, so that there is no user intervention required.
PyInstaller is open source software, distributed under the GPL.


Does gammar dictate there should be an article before a noun?

Question: I saw grammar books saying how and where the article should be, but I cannot see them saying there should be an article before a noun, or a noun should have an article in front of it. Is it kind of custom or something?
Answer: You only need to put an article before a noun when it is singular. If it's plural, an article isn't necessary but it's presence or lack thereof can alter the sentence's meaning.
Singular noun:

He punched boy. - This is grammatically incorrect.

He punched a boy. - This is grammatically correct but we don't know which boy.

He punched the boy. This is grammatically correct. We're talking about a specific boy.

Plural noun:

He punched boys. - This is grammatically correct but due to the lack of an article, this sentence could be interpreted as "he often punched boys".

He punched the boys. - This is grammatically correct. It means that he punched a specific set of boys.


Keyboard and Mouse Not working after boot (Arch-Linux)

Question: This problem is really annoying as my keyboard and mouse won't work when the system is first booted.
I can't even enter Ctrl+Alt+F2 to go into terminal too. The only option is to restart and after restarting several times it works.
This problem is not only with Arch Linux but also with Manjaro, Antegros and other arch based linux.
USB Mouse and TouchScreen works though.
My laptop is acer Spin with 8GB Ram. Is this problem with X11.
Also the /etc/X11/x.config.d/ directory is empty there is no config file inside it.
Answer: Install the USB utilities package from for arch linux
pacman -Sy usbutils


How to install dolby atmos on elementary os?

Question: My laptop is a lenovo ideapad 320, and it has dolby atmos certification. On Windows (the OS that came in it), there is an app of dolby atmos to configure and equalize. There is a way to have it on elementary os?
Comment: Same question. Will appreciate any help
Answer: All I can confirm, you can play back files encoded with Dolby Atmos on VLC 3.0 (here'a a couple of test video files). As to the presence of Dolby Atmos in-system configuration utility in elementary OS - I seriously doubt that, because of licensing issues (elementary OS is free and Dolby Access software is a commercial product).


What route did you use to earn the Stunt Superstar award in Burnout Paradise?

Question: The Stunt Superstar Paradise Award in Burnout Paradise requires you to get a x40 multiplier in a stunt run. I'm looking for suggestions from those who've gotten it. Which stunt run did you use and what was your route?
Comment: is the name of the award stunt superstar?
Comment: Yes. I believe it is #41 on the PS3 version.
Answer: Choose a stunt run in the Downtown area of the map. The key is you don't have to worry about the time limit on a stunt run as the stunt run will continue even after the time runs out as long as you keep the little countdown circle going and don't crash! The countdown circle is kept going by performing stunts or more importantly a quick boost. So all you have to do when the countdown circle is about to run out is briefly boost and establish a route through Paradise City that allows you to perform a decent number of jumps and billboard smashes. There is a good amount around the Wildcats stadium area. If you need some more, head west down the Southbay Expressway and then up and into the quarry. Good luck!
Comment: Another easy way to keep the countdown circle going is to drive in reverse.
Answer: I like to start just north of the Wildcats stadium, an dhead up the scaffolding on the left heading south, then round the back of the stadium and up the ramps here. When you come to the end and pop out onto the dual carriageway quickly go up the steps of the building on the north side and a hairpin to drop out through a billboard.
Then take the ramp over the water to get onto the South Bay Expressway. Just before the bridge turn around and use all the jumps in the dockyard. Back around onto the expressway and over the bridge this time, using the jumps.
Head off to the right and drift all the way to the top of the dam and get to the main entrance to the quarry and use the half ramp down into the quarry. Use a couple of jumps in there and come back out the main entrance.
Use the ramp to the west of the dam to head back down and head off past the dirt track onto south mountain drive. Loads of stunts all the way round until the end of north mountain drive and you should have your x40 multiplier by then.
The key is little dabs of boost when your circle is almost gone.
Comment: I started out exactly as you did, except I continued over the bridge, using the jumps and the billboards in the middle. My multiplier determined how many big air jumps I took in the quarry...one, two or all three. Two key things, though: To keep your boost up on the way there, you need to drive into opposing traffic. Also, don't forget the flatspins and barrel roll opportunities.
Answer: Mine took less than 10 minutes! Ok start a stunt run somewhere next to the airfield and then go to the airfield and score at least 13x barrel rolling, then if you drive outside and around the airfield you should find at least 7x more (there's gotta be like 4 billboards and 3 airtime places). By then you should be at least on a 20x multiplier, if you got that, take a 1 minute drive to and thru the dam and to the quarry, now try to make sure you barrel roll off the halfpipe which will give you a + 4x, go around the building and head back up the the big ledge, keep going Untill you reach a jump and flat spin off it, (2x) go back up to the ledge and jump thru the billboard flat spinning (4x)
Go around and do the remaining 2 or so jumps off the ledge, then head up to the ledge, turn around and speed your way thru the billboard overlooking the broken bridge/train tracks. By then you should at least have around 36-39x multiplier going. After you get that,get back on s.mountain drive and barrel roll of the superjump right across the quarry entrance! You will define tely reach 40x, if not more by then. You can go ahead and keep building up the multiplier if you're trying to set a score or something but there you go! P.s  set time to midnight for less traffic ;)
Answer: Avoid barrel rolls. Try simple jumps. Trick - when you are about to jump from somewhere, remember to press left or right button along with handbrake. By that, the car will not only jump, but also spin in the air giving you extra multiples. Don't forget to press nitro button before red clock cycle completes. And always use light stunt cars. My favourites are P12 and Hyperion. My record in stunt run is 21,923,460. I could not remember what exactly was my multiple, but I could safely say it was between x85 and x90.


Remove extra font

Question: There is a Chinese font (WenQuanYi Micro Hei) which I'd rather remove since I don't use it and I guess it takes up memory. Where is the file for it?
Answer: To remove the font:
Open a terminal window (Ctrl+Alt+t or find the icon through the dash or menus of your desktop environment).
Then run one of the following commands in a terminal..
sudo apt remove fonts-wqy-microhei

or
sudo apt purge fonts-wqy-microhei

Purge also removes any configuration files the package may have.
sudo will ask for your password. Note that the password will not echo on the screen.
Answer: For removing fonts, they are usually in two different locations in Ubuntu 16.04.
If you have installed it via aptitude (apt/apt-get), it is usually located in:
/usr/share/fonts or sometimes in: /usr/local/share/fonts and you can usually remove it by running a command in the terminal. The command is this: sudo apt-get remove package-name or sudo apt remove package-name. If you would also like to remove all traces of any configuration files for the font, you can use purge instead of remove like this: sudo apt-get purge package-name or like this: sudo apt purge package-name
However, if you have manually installed a font like I did, you should find it in: /home/yourusername/.local/share/fonts/ and you can simply just delete the font file there. If you cannot find it there, you could also look in: /home/yourusername/.fonts/ for it and delete it.
Of course, if all else fails, there is a command you can run to display all your installed fonts and their directory. The command is: fc-list and you can pipe grep to it so that you can find your font name. To do this, you would open up terminal and type: fc-list | grep fontname and then it should only output the details of font you are looking for including the directory of the font.

Remove extra font


Problem related to semidirect product

Question: I have a small question regarding the semidirect product. Consider a group $G$ which is the semidirect product $\mathbb{Z}_3 \ltimes (\mathbb{Z}_5 \times \mathbb{Z}_5)$ (internal semidirect product). Let $\phi\colon\mathbb{Z}_3\to\operatorname{Aut}(\mathbb{Z}_5 \times \mathbb{Z}_5)$. There will be $\phi_0 ,\phi_1 ,\phi_2$ corresponding to $\bar{0},\bar{1},\bar{2}$ of $\mathbb{Z}_3$, right?
Comment: Can you compute the automorphism group of $\Bbb Z_5 \times \Bbb Z_5$? A fact you will need once you have done that is that the image of a generator of $\Bbb Z_3$ must have order dividing the order of the codomain.
Comment: I don't understand. Do you mean that this semidirect product can not exist?
Answer: Since Aut$(\mathbb{Z}_5)=C_4$, Aut($\mathbb{Z}_5 \times \mathbb{Z}_5$) $\cong C_4\times C_4$. The only action $\mathbb{Z}_3$ can have on $\mathbb{Z}_5 \times \mathbb{Z}_5$ is the trivial one. Thus you get a direct product in the end.
Comment: Thanks a lot @Jianping but when I compute automorphisms of order 3 in the automorphism group of $\mathbb{Z}_5 \times \mathbb{Z}_5$, in GAP i get several automorphisms...

Problem related to semidirect product


Internal versus External Storage

Question: I have read so many theories about saving a file to the internal storage and external storage that I don't know exactly any more what to do.
I created a PDF file with droidtext that I want to e-mail as an attachment in the chosen e-mail app.
This is no problem. I succeeded in this, however... I only can do it with the external storage.
So, I create a PDF, put it in the external storage with Environment.getExternalStorageDirectory().getAbsolutePath().
However, if no external storage is available I want to save the PDF on the internal storage.
I did it like this so far:
External (working perfectly):
pdf = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + java.io.File.separator + fileName);
            PdfWriter.getInstance(document, new FileOutputStream(pdf));

Internal storage:
pdf = new File(fileName);
            PdfWriter.getInstance(document, openFileOutput(fileName, MODE_PRIVATE));

With both having Document document = new Document();.
The Internal memory method delivers no error whatsoever, but I am not sure if the file is saved internally.
Also, I think that because it is saved internally, the mail app will not be able to select it as an attachment.
I can't test this because my emulator has no mail app. Nor can I go through the content on the device. Nor do I own a device that has no external storage...
What is the best way to solve this? Force users to have external storage or are there other ways to solve this?
Answer: "What is the best way to solve this? Force users to have external storage or are there other ways to solve this?"...I'm not certain, but I think you have no choice but to force users to have external storage to be able to email an attachment.
Comment: Thanks for your answer! I hope someone can answer me with 100% certainty.
Answer: You can't use MODE_PRIVATE to save to internal storage or the email app won't be able to access the file. You'll have to use MODE_WORLD_READABLE.
To get the directory of where the file is stored use Context.getFilesDir() (http://developer.android.com/reference/android/content/Context.html#getFilesDir%28%29)
You can also just install an email app on the emulator to test this. Just download an apk and install it via adb.

Internal versus External Storage


Features of General Relativity applicable only to 3+1 dimensions?

Question: While studying general relativity, I noticed that much of the theory could easily be generalized from a $(3,1)$-dimensional spacetime to an $(n,1)$-dimensional spacetime without any changes. So, is this the case for all results that we can derive in general relativity? Or are there results which depend crucially on spacetime having $3$ spatial dimensions?
Comment: The Robinson uniqueness theorem for black holes only holds in 3+1, so that objects like Black Rings (torus shaped black holes) are possible in 4+1 dimensions
Answer: I'll first discuss some quite physical differences, which might already be enough for your interests. Afterwards, I'll also mention how mathematically things can be sort of unique in four dimensions.
Physical Predictions
There are results that depend on the number of spatial dimensions. For example, the Riemann tensor has $\frac{d^2 (d^2-1)}{12}$ independent components in $d=n+1$ spatial dimensions. This implies that

in $3+1$ dimensions, it has $20$ independent components. $10$ in the Ricci tensor, $10$ in the Weyl tensor;
in $2+1$ dimensions, it has $6$ independent components. All of them are in the Ricci tensor, since the Weyl tensor vanishes on manifolds of dimension less than $4$;
in $1+1$ dimensions, it has a single independent component. It corresponds to the Ricci scalar.

The Einstein equations read
$$R_{ab} - \frac{1}{2}Rg_{ab} = 8 \pi T_{ab}.$$
If we contract with the metric on both sides, we see that
\begin{align}
g^{ab}R_{ab} - \frac{1}{2}Rg^{ab} g_{ab} &= 8 \pi g^{ab}T_{ab}, \\
R - \frac{d}{2}R &= 8 \pi T, \\
\left(1 - \frac{d}{2}\right)R &= 8 \pi T, \\
R &= \frac{16 \pi}{2 - d} T, \\
\end{align}
where I defined $T = g^{ab}T_{ab}$ and used the fact that $g^{ab}g_{ab} = d$ in $d$ dimensions. Notice that, for $d=2=1+1$, the last step is a division by zero, so I'll treat it separately. As for the other dimensions, a consequence of this expression is that we can rewrite the Einstein equations as
$$R_{ab} = 8\pi\left(T_{ab} + \frac{T}{2-d} g_{ab}\right).$$
Let us consider what happens in vacuum: $T_{ab} = 0$. In all dimensions but $d=2$, we get $R_{ab} = 0$. If $d=4$, we can still have curvature because only $10$ components of the Riemann tensor are on the Ricci tensor, so there can be non-vanishing curvature. This is what allows the Earth to orbit the Sun: even though the Earth is in vacuum, spacetime is still curved.
In $d=3$, things are not like that. The Einstein equations are telling us that the Ricci tensor vanishes, but all of the Riemann tensor's independent components are in the Ricci tensor. Hence, in $d=3$, there is no curvature in vacuum. Gravity is no longer long-range in this sense, it is only present where matter is present.
Let us now consider $d=2$. In this case, we actually have that $R_{ab} = \frac{1}{2}R g_{ab}$ always. The Einstein tensor always vanishes. Hence, the Einstein equations actually only imply that the stress-energy tensor must vanish, which is wildly different from what we get in other dimensions.
In short, the dimensionality of spacetime can have quite some impact on the physical predictions of General Relativity. Padmanabhan's Gravitation: Foundations and Frontiers has a chapter dedicated to gravity in other numbers of dimensions which might be of your interest. While I only mentioned gravity in lower dimensions, it also covers gravity in higher dimensions.
Four Dimensions are Hard (Topologically Speaking)
Differential topology is quite difficult in four dimensions. For example, if your space if topologically equal (i.e., homeomorphic) to $\mathbb{R}^n$, then it surely has the same differential structure as $\mathbb{R}^n$ (i.e., they are diffeomorphic). Unless $n=4$. In this case, there are infinitely many possible different differential structures, known as exotic $\mathbb{R}^4$'s. This is just one example of how things can get rough. In short, techniques that apply to large dimensions fail in $d=4$, and so do the techniques that apply to low dimensions. As this review by C. Manolescu puts it, "This makes it [$d=4$] the most challenging dimension to study".
I'm not an expert in $d=4$ topology and this paragraph pretty much used everything I know about it, but my point is that not only do physical predictions depend on the dimensionality of spacetime, but even more general properties of differential geometry depend highly on the dimensionality of the manifold and can get quite complicated in the particular case of $d=4$.
Comment: Huh, didn't know differential geometry was so complicated in $d=4$. And to think that that is what we reside in. Such a coincidence.
Comment: Also, are there Physical Predictions which differ between $d=4$ and $d>4$? That was actually what I wanted to ask, but I forgot that the situation was so different in $d=2, 3$.
Comment: @IshanDeo I'm quite certain there are physical predictions that will differ in more dimensions, but I'm not really familiar with them. Notice the number of independent components of the Ricci tensor is $\frac{d^2 + d}{2}$, i.e., quadratic in $d$, while the number of components of the Riemann tensor is quartic. Hence, in large dimensions most components of curvature are due to the Weyl tensor, which does not occur on the Einstein equations. This suggests the vacuum solutions to be much richer
Comment: In fact, [Wikipedia](https://en.wikipedia.org/wiki/Higher-dimensional_Einstein_gravity) says that in $d=5$ one can get "black rings", which would be analogues to black holes, but with horizons that are not necessarily homeomorphic to a sphere
Answer: Fun fact: The familiar 3+1 dimensions are the only number of dimensions in which stable planetary orbits exist.
Comment: @JohnMadden See https://physics.stackexchange.com/q/50142/64170
Comment: This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - [From Review](/review/low-quality-posts/376457)
Comment: Oh, wow! Do you have any links you can recommend where I could find more information about this?
Comment: @JohnRennie How do you mean this does not provide an answer to the question? The OP asks for results in GR that depend uniquely spacetime having 3+1 dimensions. This answer gives one (for humankind very crucial) example of such a result. Its short nature is not in any way meant as a critique of the question. If this was put as comment, moderators would, rightly, be complaining that answers should not be put in comments.


Outlook: How to archive files using date range?

Question: How can I archive emails into .pst files using a date range? I would like to create .pst file for each year.
I'm using MS Outlook 2003.
Answer: The only way I know is by using MS Outlook archiving tools. You can choose from/to (date) to archive and then name your pst files by name.
You can't chose from Jan. 1st 2009 to Jan. 1st 2010 but you can archive from now to Jan. 1st 2011. Then, Dec. 31 2010 to Jan. 1st 2010 and so on...
Answer: While this question is fairly old, I believe the techniques in Robert McMurry's macro would work for this, because it sounds like exactly what the original question is looking for.
In the interest of trying to prevent the worst losses of bit-rot, here's the relevant block of code. The actual article has much more detail on what it's doing and possible enhancements such as adding recursion; this appears to work on just a single folder ("Inbox") and can probably be used as a starting point.
<code>Sub MoveOldEmails()

    ' Declare all variables.
    Dim objOutlook As Outlook.Application
    Dim objNamespace As Outlook.NameSpace
    Dim objSourceFolder As Outlook.MAPIFolder
    Dim objDestFolder As Outlook.MAPIFolder
    Dim objVariant As Variant
    Dim lngMovedMailItems As Long
    Dim intCount As Integer
    Dim intDateDiff As Integer
    Dim strDestFolder As String

    ' Create an object for the Outlook application.
    Set objOutlook = Application
    ' Retrieve an object for the MAPI namespace.
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    ' Retrieve a folder object for the source folder.
    Set objSourceFolder = objNamespace.GetDefaultFolder(olFolderInbox)

    ' Loop through the items in the folder. NOTE: This has to
    ' be done backwards; if you process forwards you have to
    ' re-run the macro an inverese exponential number of times.
    For intCount = objSourceFolder.Items.Count To 1 Step -1
        ' Retrieve an object from the folder.
        Set objVariant = objSourceFolder.Items.Item(intCount)
        ' Allow the system to process. (Helps you to cancel the
        ' macro, or continue to use Outlook in the background.)
        DoEvents
        ' Filter objects for emails or meeting requests.
        If objVariant.Class = olMail Or objVariant.Class = olMeetingRequest Then
            ' This is optional, but it helps me to see in the
            ' debug window where the macro is currently at.
            Debug.Print objVariant.SentOn
            ' Calculate the difference in years between
            ' this year and the year of the mail object.
            intDateDiff = DateDiff("yyyy", objVariant.SentOn, Now)
            ' Only process the object if it isn't this year.
            If intDateDiff > 0 Then
                ' Calculate the name of the personal folder.
                strDestFolder = "Personal Folders (" & _
                    Year(objVariant.SentOn) & ")"
                ' Retrieve a folder object for the destination folder.
                Set objDestFolder = objNamespace.Folders(strDestFolder).Folders("Inbox")
                ' Move the object to the destination folder.
                objVariant.Move objDestFolder
                ' Just for curiousity, I like to see the number
                ' of items that were moved when the macro completes.
                lngMovedMailItems = lngMovedMailItems + 1
                ' Destroy the destination folder object.
                Set objDestFolder = Nothing
            End If
        End If
    Next

    ' Display the number of items that were moved.
    MsgBox "Moved " & lngMovedMailItems & " messages(s)."

End Sub
</code>


Let's the numbers 1 and 1600 be the theme of the enigma

Question: How can one with an accurate balance-scale measure any weight up to let's say 1600 gram with an error margin of 1 gram, when available are only 7 different counterbalance (weights)
Answer: In the traditional version of this problem, dealing with exact integer weights, the standard answer is to

 use weights increasing in powers of 3: 1, 3, 9, 27, etc.

How much error can this cope with? Answer:

 up to 1/2 a unit.

Therefore

 by doubling these: 2,6,18,...,1458 we can get up to 2+6+18+...+1458=2186 units. (In this case, grammes.)
Answer:
 1) First weight is 2g to handle 1-3g.

2) In order to weigh something at 4g (outside error margin of 1g) we can put the 2g weight on it pushing the lower limit to 6g. Now we need a 7g weight which now we can handle from 1-10g (2 + 7 + error of 1)

3) Next weight we want is 21g. For 11-13 we add 7+2, for 14 we add 7, for 15-17 we add 7 and do 21+2, and for 18-20 we add 2. Then we can also do weights above 21 using the 2 and 7 getting us to 31g.

4) Continuing from what we figured in the last step, if we take the total (30) and add it to the next weight we don't know yet (32) we get 62. One higher than that 63g should be the weight we need. 32-34 are good with +30. For 35-36 we add 21+7. For 37-38 we add 21+7 and do 62+2. For 39-41 we add 21+2... etc

 Assuming this pattern holds, a weight W(i) = 2 * N + 3 where N is the sum of weights W(1) to W(i-1).

Giving us...

 2, 7, 21, 63, 189, 567, 1701 which would actually handle weights up to 2551g with a margin of error of 1g

 Edit to add, each successive number after 7 is the preceding number times 3. I'm not as well-versed in math as I used to be so I don't immediately know the reason for that but it lines up with the other answer of powers of 3. This however gets a higher total possible weight you can measure.
Comment: The difference between this and the other answer is that this answer assumes we will only weigh integer weights, which is why this gets a higher total.
Answer: The answer is

We can't

Because

The maximum weight we can calculate is 318g

Think of it this way...

This works a lot like binary...The key fact I've focused on is that the margin of error is only 1g. If we want a margin of error to 1g then the minimum weight we need is $2g$ (As that can cover 1g and 0g is, well, N/A). With a $2g$ weight we can measure $1g$ to $3g$.So the maximum we can make with that is $3g$. So the next weight we need is $5g$. With this we can calculate $4g$ to $6g$. We have all number covered so far up to $8g$...
Now the next weight we need is $2g + 5g = 7g + 3g$ (margin of error) $= 10g$ With this we can calculate $9g$ to $11g$.
So that adds up to $17g$ meaning we can get up to $18g$. The next weight should be $20g$ because that can cover $19g$. So now we can cover up to $2 + 5 + 10 + 20 = 37g$. So we can cover up to $38g$, meaning the next one should be $40g$ which can cover $39g$.
The rule for finding the next weight ($W$) is:
$W=T+3$ where $T$ is the current total the wights add up to.
Now we only have seven weights. So the seven weights using the rule are:
$2g$, $5g$, $10g$, $20g$, $40g$, $80g$ and $160g$
Therefore the maximum weight we can calculate is 318g (317g + 1 margin of error).

And

As you can see, that is nowhere near 1600g.
Comment: You could do better even without the error margin.

Let’s the numbers 1 and 1600 be the theme of the enigma


The locus of rational/elliptic curves on a special surface in $\mathbb{P}^3$

Question: Let $P$ and $Q$ be two general polynomials of the same degree $d>5$. Consider the surface $S: z^2=P(x)Q(y)$ in $\mathbb{P}^3$ (after homogenization by the variable $w$). One can show that these kinds of surfaces are of general type. I want to show that the locus of rational/elliptic curves on this special surface in $\mathbb{P}^3$ is in the part $\{zw=0 \}$.According to a conjecture made by Lang the locus swept out by entire curves is equal to the locus swept out by images of non constant rational maps from an abelian variety to a projective variety $S$.  So if we assume this conjecture it is enough to prove that the locus of non-constant holomorphic functions to the surface $S$ is contained in the part $\{zw=0 \}$. \
One idea to attack to the above problem is to solve the following problem:
 The above statement is equivalent to prove that the functional equation $h^2 = P(f) Q(g)$ have no non-constant solutions for holomorphic functions $f,g,h$.  I couldn't prove that this functional equation has no non-constant solution.  I appreciate it if anyone have any idea/comment about this problem.
Comment: "So if we assume this conjecture it is enough to prove ..."  Actually, you are only using the direction that is known (and trivial).  Every nonconstant rational map from an Abelian variety induces (many) entire curves whose images sweep out the image of the Abelian variety.  So the union of (nonconstant) images of Abelian varieties is contained in the union of (nonconstant) images of entire maps.
Comment: Yes, you are right, this is the trivial part.  But do you have any idea about this problem? As I mentioned in above, how to prove that the above functional equation has no non-constant solution.  Or maybe you want to think by using the algebrogeometric tools to solve the problem.
Comment: Using Riemann-Hurwitz you can show a certain proportion of the zeros of $P(f)$ and $Q(g)$ must be single roots, which means a certain proportion of the zeros of $P(f)$ must be zeros of $Q(g)$ and vice versa. Here I'm thinking of $f,g$ as just rational functions on a curve. One could try to derive a contradiction from that, but I don't immediately see how.
Comment: thanks Will, but by applying Riemann-Hurwitz to the map $P(f):\mathbb{P}^1 \rightarrow \mathbb{P}^1$ we have: $2g_{\mathbb{P}^1} -2=(2g_{\mathbb{P}^1}-2)deg(P(f))+\sum_{p\in\mathbb{P}^1}(e_p -1)$ so we have $-2=-2d +\sum (e_p-1)$ where $d=deg(P(f))$.  How we can deduce from the above that there are simple roots?
Comment: I mean that if $P(x)=(x-a_1)\cdots(x-a_n)$ then want to see that all roots of the equation, for example,$f(z)=a_1$ are of multiplicity 1.
Comment: Dear Will,  in my case $P$ and $Q$ are as follows: $P(x)=(x-a_1)\cdots (x-a_n)$ and $Q(x)=(x-\overline{a}_1)\cdots (x-\overline{a}_n)$ where $a_i$ are general complex numbers. I think, I could derive contradiction if we could prove a certain proportion of the zeros of P(f) and Q(g) are single roots.  I mainly apply complex analysis specially nevanlinna theory.
Answer: There are results by Voisin (On a conjecture of Clemens on rational curves on hypersurfaces Journal of Differential Geometry 44 (1996) 200-214) and Ulmer (Rational curves on elliptic surfaces, arXiv:1407.7845 [math.AG]) where the authors try to limit the number of rational curves for a very general member of a family of varieties.
Your setup is close to Ulmer's one and you may have a try to carry over the main ideas from his case to your case. (You probably have to replace "general" by "very general".)
Comment: May be it works, but note that these surfaces are not K3 surfaces or elliptic surfaces (like in Ulmer's paper .  In fact they are general type surfaces.
Comment: Voisin's paper concerns varieties of general type, Ulmer's preprint is partly an extension of Voisin's strategy to hypersurfaces of degree 6k in P(1,1,2k,3k), and for your problem it would be probably sufficient to extend Voisin's method to the family of hypersurfaces of degree 2d in Ps(1,1,1,d) with d^2 nodes.
Comment: Dear Remke, According to the above paper by Voisin every general hypersurface in $P^n$ of degree $d\ge 2n-1$ contains no rational curve.  In my case the polynomials P and Q can be taken general (e.g. their coefficients are general) can I deduce that by Voisin theorem the above hypersurface for $d\ge 5$ contains no rational curve?
Comment: No, because all your hypersurface may be contained in the locus where the conclusion of Voisin's result does not hold.
Comment: this locus is not explicitly computed in the Voisin's paper


What does "should be borne in mind" mean?

Question: When searching borne online, its meaning says past of bear. When reading a paper, it states: "These findings should be borne in mind by designers". Contextually it sounds like designers should keep it in mind, but is there a different meaning or emphasis that this phrasing creates?
Comment: Not really. As a BrE speaker, *keep in mind that...* sounds odd to me when something is being mentioned for the first time, whereas *bear in mind that...* is fine - but I can't think of any good reason for this and I have only noticed it because AmE speakers use *keep in mind that...* that way all the time.
Comment: There's a subliminal difference between subjunctive as a mode of future, and imperative as a mode of presence. I guess that's the difference, @Minty? Otherwise be reminded that "to keep animals" means basically "to hold".
Answer: The past participle implies that the action, a learning process, should be completed, which implies that the idea shall become innert knowledge, whereas bear in mind rather sounds like the burden of permanently avoiding to forget the idea.
The difference is minicule, if the later is the path to the former. As far as I understand, it simply means "know that ..." or even "appreciate" (in the sense that value appreciates, "may grow and improve"; Cp *Ger Bürde; Würde "honour, responsibility; dignity").
The difference to keep in mind is regional, as @minty points out in the comments.
Comment: PS: I had speculated elsewhere that *keep* "to look for, guard" had come under the influence of a reflex of PIE \*kept "to take", whence *to capture, to have*, but I could not say when or where and the idea was rejected by the community (over at Ger.SE about *aufheben* "to keep, store; to pick up", but also quite counterintuitively "to abolish, deprecate, to lift [a ban]" etc, which had borne the question).
Comment: it is the past vs present that was what seemed unique to me, the keep vs bear was just my own rephrasing for explanation
Comment: Also compare, or rather, do not confuse: *to bear [a child]* "to carry, produce" (cp. *birth*); *bear* "naked" (from *to obviate, show*?), and perhaps Ger *verbergen* "to hide" (as to keep hidden).


What happened to Zuko's mother?

Question: In The Legend of Korra, Jinora asks Katara what happened to Zuko's mother, and in The Last Airbender, it is only revealed that she was banished for killing Fire Lord Azulon.
Comment: There is comic book series that explains what happened. It's called [*The Search*](http://avatar.wikia.com/wiki/The_Search).
Comment: I heard about this on avatar.wikia.com but couldn't find any real information. Also I don't know where to buy the comic series.
Answer: This is revealed in The Search, a comic book set after the events of The last airbender:

 Zuko's mother used to live in a simple village along with her boyfriend. Then the Fire Lord Azulon, upon finding the location, decided to marry her to his son, prince Ozai. This is because he found out that she was avatar Roku's daughter, and wanted to strengthen the royal bloodline.
It seemed like Roku tried to hide her for that very reason. She couldn't refuse. Fast forward several years, she kept sending secret letters to her boyfriend in the village. She suspected that the letters were being intercepted, so she wrote a lie in one of these letters implying that Zuko is actually the son of her and the boyfriend, rather than Ozai's.
 As suspected, Ozai was indeed intercepting the letters; he was furious with that lie (he knew that it was a lie because he had spied on her for several months before meeting her) and confronted her. He decided that as punishment, he would indeed treat Zuko as if he wasn't his own son. Years later, when Azulon commands Ozai to kill his firstborn to have a taste of Iroh's loss during the war, Ozai accepted immediately.
 Zuko's mother stopped him and offered him a deal: she would make a poison that Ozai could use to kill Azulon and take the throne, in exchange for sparing Zuko. He accepted, but at the condition that she would leave the palace because he feared her ability to make such deadly poison. Zuko's mother went back to the village where she found her boyfriend again. They met a spirit with the ability to change someone's face and memories, and she decided to get a new face and erase her memories (so she forgot about Zuko, Ozai, Azula, Roku, etc) and lived happily. After the events of The Last Airbender, Zuko asks for Aang's help to find her. Azula also helps. They find her and restore her memories. She stays at the village.
Comment: *Such* a letdown.
Comment: I thought that Ursa was Roku's granddaughter, because Roku is Zuko's great-grandfather. And how can Roku have hidden her, when he died before he was born and couldn't act through Aang?
Comment: @ThomasJacobs: Roku hid Ursa when she was young — before his death, her marriage to Ozai, and the events of the original series.  Her whereabouts during the events of the series is explained further in the spoiler-tagged section of this answer.
Answer: Zuko's Mother Ursa left because she was banished for trying to save Zuko from death. She then went to the mother of faces for her to get a new face and for her memories of Firelord Ozai and the children to be erased. It is later revealed that the kids met their mother in the village. She changed her name. After that, Zuko asked if his mother could get her face and memories back. He then let his mother come back to live with him.
Answer: At Firelord Azulon's burial they said "Firelord Ozai was husband to Alia (Zuko's mother), who is now passed" - meaning she died, making the following comic invalid!
Comment: Having re-watched the coronation, Ilah (proper spelling) is Azulon's wife, not Ozai's. They are listing all of Azulon's direct relations. That doesn't include Azulon's daughter-in-law, or any other in-laws.
Comment: Every good covert assassination needs a cover story.
Comment: or the official story is that she was dead, when she had actually been exiled.
Answer: I just re-watched that episode and they meant that Firelord Azulon was the husband of Iylah and not Firelord Ozai. So the story still stands.
Comment: if anything, this should be a comment on gideon_rocks's answer
Comment: Ilah isn't Zuko's mother, she's presumably Zuko's grandmother. So, while I believe you, your answer has nothing to do with the question here.
Answer: At the end of the Avatar Airbender series, when Zuko's dad was in jail, Zuko went to go meet him in the last episode and he asked "where is my mother?" which implies that she is alive but her whereabouts are unknown.
Comment: This doesn't really answer the question, plus the accepted answer does explain what happened. So unless you have some further information to add, this seems like it could have been posted as a comment.
Comment: *he asked "where is my mother?" which implies that she is alive but her whereabouts are unknown.* No, it really doesn't. At most, it implies that Zuko *thinks* she's alive.

What happened to Zuko's mother?


Why does methyl not shift in the mechanism of isoborneol to camphene?

Question:
After the formation of carbocation, I was confused why would the reaction not go in favor of forming bornylene. I am still not sure why but I think that $\mathrm{sp^2}$ hybridized carbon will cause a lot of strain in the ring. Another thing confuses me, why does methyl not shift in place of the ring itself breaking? Is this anywhere similar to Bredt's rule? Please help me with these two doubts.
Comment: There is no alkyl shift here; the carbocation is inherently non-classical in nature. Note how the "shift" is drawn using *resonance* arrows <->, not a *reaction* arrow ->. Google 'norbornyl cation' for more info.
Comment: In addition, the bond that does migrate has good overlap with the initially formed carbocation while the methyl C-C sigma bond is essentially orthogonal to the carbocation p-orbital.
Answer: This is a class of carbocation 1,2-rearrangement reactions, and historically named Wagner–Meerwein rearrangement after two chemists who discovered the reaction (see following diagram):

Although it can be explained considering as an rearrangement of a classical carbocation, there are a tremendous amount of work has been done considering 2-norbornene cation as non-classical carbocation (see comment of  orthocresol elsewhere). However, my interned task is to explain why it is not possible to have 1,2-methide shift instead of alkyl shift (Wagner–Meerwein rearrangement) considering classical carbocation.
First, why the reaction not go in favor of forming bornylene? Since the reaction is in acid medium, fast equlibrium of protonation (to give initial 2-norbonyl carbocation derivative) and deprotonation (to give bornylene derivative) could be expected until most thermodynamically stable product is formed. This can be expected from a $2^\circ$-carbocation, if there is a possibility of rearrangement to a more stable $3^\circ$-carbocation.
Now, the initial 2-norbonyl carbocation derivative is $2^\circ$-carbocation with a possibility of rearranging to a more stable $3^\circ$-carbocation by either 1,2-methide shift or alkyl shift (which is the one eventually happens). If you look at initial carbocation without the bridge-head, the bottom cyclohexyl part is in boat confirmation, which is locked in by the rigid bridge-head carbon. Now that restricts the 1,2-methide migration, which would made energetically unfavored triangularpyramidal $3^\circ$-carbocation. Thus, the readily available alkyl migration is energetically favored and fast. The rearanged crbocation would readily dehyrogenate to give camphene (2,2-dimethyl-3-methylidenebicyclo[2.2.1]heptane).
Also keep in mind that not only it is not favored by the steric resons, but also 1,2-hydride shift would generate a $3^\circ$-carbocation, which would have violate Bredt's rule.
Note: Nonetheless, a recent publication has discussed this scenario and 1,3-hydride migration to give 7,7-dimethyl-2-methylidenebicyclo[2.2.1]heptane as elimination product (Ref.1).

References:
Huidong  Zheng, Yi Lin, Mengchan Wang, Jie Liu, Dan Wu, Jingjing Chen, Guanghua Yin, S. Ted Oyama, Suying Zhao, "The influence of solvent polarity on the dehydrogenation of isoborneol over a $\ce{Cu/ZnO/Al2O3}$  catalyst," Catalysis Today 2019, 323, 44-53 (https://doi.org/10.1016/j.cattod.2018.10.021).


Upslope area shows an error stating tool needs graphical user interface

Question:
I tried delineating catchment area of a place. First I downloaded the DEM TIFF from internet. Then reprojected it to the required CRS. Then I used the Fill Sink tool and Strahler Order after that. Then I created a shapefile and located a single point in the river where I wanted to find the catchment. Then, I used Find XY tool to get coordinates and used the coordinates in the Upslope Area tool. I put the DEM without sinks layer in elevation, deterministic 8 in method and 1.1 in convergence. Then I run it but I always got the error.
Comment: Please remember include the exact software release and put the full error message in the body of the Question, as text, not only as an image, since images are not legible on all devices and can't be searched by others with the same message.
Answer: Check if the log message gives you more information, menu view > panel > log message. Other recommendations

If the basin raster is not generated, check if the DEM coordinate system matches the point coordinate system (CRS). This tool does not have reprojection.
It may be a processing error, create a new profile, in configuration > user profile > new profile.
If this fails try running directly in SAGA,
Answer: A small addition needs to be made in the ta_hydrology_upslope_area.txt file included in the SAGA installation files.
In the txt file, the Upslope Area part should be edited as Upslope Area |4 and saved.

source: https://youtu.be/t-2ExoyhIfA
Comment: please, what is the solution for mac? it has dylib files only


Is mac's Invisible scroll a good UX?

Question: I've recently seen latest mac os is having invisible scroll bars which will be visible only once your mouse comes onto it. I think it is a bit tough for the user to know if there is a page overflow or not. Is it not a bad User experience.
Answer: It's personal.
I've seen websites employ menu elements (top level) that are invisible until the mouse goes over the menu element. I would suggest that is an example of bad UI, as the relationship to the menu element and the mouse is required and a relationship between the user and the menu element is required for the user to make a decision as to what menu element they want.
When it comes to scrolling, the relationship between the window and the mouse exists whilst the mouse is within the window. It doesn't have to move over to the scroll bar element to invoke the scrolling mechanism. The Apple Magic Mouse, like most modern day mouse devices incorporates a scrolling actions. Magic Mouse is via touch along the long axis of the mouse, others a wheel between the left and right mouse buttons. As such scrolling actions have become second nature in 'window' based systems.
That said, it doesn't mean we should negate the users who have little or no experience of the operating system and Apple particularly fall foul of this. Going for slick interactions over usability.

Is mac's Invisible scroll a good UX?


How to add an extra, independent set of custom fields?

Question: I'm looking for a plugin or sth to let the admin enter a list of specs (name & value) for a given type of post. The regular custom fields would work perfectly but of course, they are used by some other plugins and I don't really want to filter them on my theme (since plugins may be added in the future) and also don't like the admin seeing all that irrelevant/confusing info.
Comment: If you prefix field names with an underscore, they'll be hidden from the built-in Custom Fields meta box. You can then add your own meta box to manage your specific custom fields. I don't understand the part of your explanation regarding filtering them in your theme or other plugins using post meta.
Comment: Currently, I have a couple of plugins installed that are adding a few custom fields by default to every post. So when the admin wants to add a custom field sees a bunch of them already used and the ones he adds, will be mixed with the existing ones. I want a custom field box, that features no pre-existing fields when creating a new post and that will, in the future show only the ones added manually by the admin.
Comment: Mauro, by now it's really hard to understand your goal. If you need to (in code) retrieve all registered custom fields for a specific post type, then please [edit] your question to make that clear. Also show us what you have tried to reach your goal and where you failed with your efforts. Thank you.
Comment: I want the admin to be able to write custom specs to a product (custom post type). An example would be the list of specs of a cellphone: "Battery life: 48hs, Internal memory: 16GB, etc". I want the admin to be able to write both, label and value. My theme will then print them as a ``. Some plugins don't prefix their metadata with an underscore and they show up in the out-of-the-box custom fields meta box. I want to create an extra meta box, with the same functionality, but without these plugin-created meta data.
Answer: Custom fields are also known as post meta. Many things are stored as post meta, such as the ID of the featured image. You'll have noticed that these do not show up in the custom fields section of your posts.
This is because these post meta values have keys beginning with an underscore. Similarly any post meta you set that also has an underscore at the start, will not appear in the custom fields section.
So your task now is to implement the User Interface for the options you want to present to the user. You would do this using custom meta boxes. Luckily this question and many variants of it have been asked by people wanting to create different kinds of meta box. For this reason I won't go in to detail on that here when others have already done so.
This question and answer will give you the basic gist of what to do to create a custom meta box and how to save the value when the post is saved, but others may provide more information or cater to your specific UI needs.
A final note, when registering a metabox, you have to specify where it goes and what capability is needed to view it. This way you can show the box only to those users with the necessary access. For example, administrators and super administrators have the manage_options capability, but not editors. Users can also turn the boxes on and off using the screen options, or collapse them down and rearrange them. You do not need to do anything extra to get these UI features.