spend balance using master key

Question: We can spend balance of an address if we have private key. is it true for master private key too? I mean, we could spend spend balance using master private key? or we should use child private key?
Answer: A Bitcoin transaction to an address has to be spent using the specific private key that corresponds to the public key whose hash is the address.  In this case, that's the child private key.
Of course, if you have the master private key, you can compute the child private key from it.  Your Bitcoin wallet client might even do that for you.  But at the last step, it's the child private key that is used.
Comment: what about generating addresses from child public key not child private key? then I have no child private key
Comment: @max: I don't understand.  Your question was about spending balances.  You can't spend a balance without a private key.

spend balance using master key


Inadvertent mistake with Jewish books?

Question: I recently converted to Islam and have been throwing away books from past study and sinful practices. Some of these are Jewish Kabbalah and Zohar. I started to burn them and realized there were names of God in them. I saved them from the fire until I can get an answer. Have I committed a sin?
Answer: No sin incurred. You are fine to proceed and burn them.
We dispose of old Qur'an copies by burning them, too.
Great news to hear about your conversion, Alhamdulillah.
May Allah (ﷻ) bless you.

Inadvertent mistake with Jewish books?


Calculating encounter level with mixed CR enemies?

Question: In D&D 3.5 how do you calculate the Encounter Level of an encounter when the encounter involves elements (usually enemies) of multiple CRs?
For example an encounter involves

4 Zombies (CR1/2)
2 Ghouls (CR1)
1 Ghast (CR3)

What would the CR be?
Answer: Rmorrisey's formula is correct, but to simplify: here's a rule of thumb: Doubles bump the EL by +2.
2 of any single monster is the same as the Base CR +2. Two CR1 monsters (the ghouls) is an EL3. (1+2=3)
The EL 3 ghouls and the CR 3 ghast are doubles, and thus an EL 5. (3+2=5)
4 CR1/2 zombies is not quite big enough to make an EL 5 (which would make this a 7, according to the double-bump principle), so it's a 6, more or less. Bigger than a 5, not quite a 7.
Here's a sideways trick you can use too: Class levels bump a full CR per level. NPC classes bump a 1/2 CR per level. As far as this formula is concerned, half CR's don't really count for much. Thus you can usually layer a single level of warrior or expert or acolyte  (+1d8 hd and a +1 BAB) onto just about anything without really pushing the margin.
Answer: Edit: Here is how XP is done in D&D 3.5 (DMG pp. 36-38). It's actually much simpler.

Determine the party's level
Determine the CR for each individual monster
Find the base XP award for each individual monster, based on the party's level
Divide the base XP by the number of PCs in the party

For fractional CR creatures, use CR 1, and divide the result by 2.
Summoned creatures don't count.
Edit: Below is the way it's done in D&D 3.0.
The DMG pp. 101 says, <code>"In general, you can treat a group of creatures as a single creature whose CR equals the group's CL."</code> Using Table 4-1, on that page:
4 zombies (across) at CR 1/2 (down) is an EL2 encounter (left side). Treat the zombies together as a CR2 creature. Zombies = CR2
2 ghouls (across) at CR 1 (down) is another EL2 encounter. So now you've got 2 CR2 creatures (the zombies, and the ghouls), and 1 CR3 (the ghast).
The 2 CR2 creatures (zombies and ghouls) make an EL4. Looking at the Mixed Pair column, there's no combination of CR3 (ghast) and CR4 (ghouls+zombies). The closest thing is a Matched Pair of CR3's, which is an Encounter Level of 5.
Hope that makes sense, and I'm doing it correctly; just trying to follow what it says on that page. I would recommend reading the rules in that section; it's geared more towards deciding what types of monsters you want to throw in, and then figuring out the number of them you need based on the Encounter Level you want to run.
Comment: Aww, your first answer (pre-edit) was better. This one is now about XP rather than Encounter Level.
Answer: I think this link  can be useful 'cause it calculates the EL and the XP/PC.
I can say that for me the only problem with the d20 calculator is that it overestimates the difficulty for the party cause I don't think that the encounter of the ghouls&Co (EL6 for the calculator) is a very difficult challenge for a party of 4 4th lvl PC XD. However the GM can adjust the XP of any encounter how he/she thinks it's better.
Comment: Thanks Pureferret ;-)                                              I can say that for me the only problem with the d20 calculator is that it overestimates the difficulty for the party cause I don't think that the encounter of the ghouls&Co is a very difficult challenge for a party of 4 4th lvl PC XD. However the GM can adjust the XP of any encounter how he/she thinks it's better
Comment: Definately worth my +1 now :)
Answer: I don't have a nice formula like RMorrisey does, but I found this page which does the heavy lifting for you.  It's not fool-proof, but I fed the bad guys you provided into the engine, and it came back with EL 6.  You can also input the PCs and their levels to see an estimation of how their level and the bad guys compare.  I used it extensively in the current campaign I'm running (and will DM the finale in our next session).
Answer:
For example an encounter involves
4 Zombies (CR1/2)
2 Ghouls (CR1)
1 Ghast (CR3)

Two encounters of CR X = 1 of CR X+2
1 of CR X of CR X-1 = CR X+1
2 x CR 0.5 = CR 2
4 zombies (cr0.5)= 2x CR2 = 1 CR4
Two ghouls become 1 CR3
1 Ghast is Cr3
The ghast and ghouls, both CR3 are a CR5
The CR5 from the Ghast and Ghoul, plus the CR 4 zombies, roughly total to a CR6...
but it's a soft CR6...
Any time you stage up multiple different beasties, they only match the calculation when they are used to proper effect.
It's often better to simply add the appropriate XP for each type of creature. In which case, use a CR 4, and two CR3's...


Are Warforged PCs affected by healing differently than other PCs?

Question: I have a player who just created a warforged barbarian. The 2015 Unearthed Arcana on Eberron brought warforged and artificers but didn't mention how they are healed. Is he stuck with half healing from regular spells? Should I introduce warforged tools since there is no craft skill?
Ideas?
Answer: As of 5e's published release and the Unearthed Arcana article, Warforged are treated no differently than PCs of other races.
Since it does not mention any healing exceptions for warforged in the Unearthed Arcana article that introduces them to 5e; they should have any and all healing effects work on them as per usual.
2018 update (thanks @Trevel)

This question has now been explicitly answered in the Wayfinder's Guide to Eberron, under the description of the warforged's composition (p. 67):

While they're formed from stone and steel, warforged are living
  humanoids. Resting, healing magic, and the Medicine skill all provide
  the same benefits to warforged that they do to other humanoids.
Answer: This question has now been explicitly answered in the Wayfinder's Guide to Eberron, under the description of the warforged's composition (p. 67):

While they're formed from stone and steel, warforged are living
  humanoids. Resting, healing magic, and the Medicine skill all provide
  the same benefits to warforged that they do to other humanoids.
Comment: The relevant wording in *Eberron: Rising from the Last War* is slightly different, but fundamentally the same: "**Although they were manufactured**, warforged are living humanoids. Resting, healing magic, and the Medicine skill all provide the same benefits to warforged that they do to other humanoids."
Answer: Warforged can be healed using healing spells such as Cure Wounds, according to the designer's intent.
Mike Mearls said as much regarding the Warforged race in Unearthed Arcana for 5e when somebody asked him about it on Twitter (see this tweet):

Question: Can a Warforged be healed through spells like Cure Wounds?
Answer: Yes.

Since Unearthed Arcana is not part of the standard game rules for 5e, there are no official rulings on its content per se. However, since Mearls is the designer for the content, this quote makes the intended interpretation unambiguous.
Answer: I would like to remind everyone that in the description of a Warforged it literally states "Although they are constructs, they have much in common with living creatures, including emotions and social bonds, and perhaps even souls" And healing spells such as cure wounds state "This spell has no effect on undead or constructs." so according to the D&D 5e rules, warforged cannot be healed by spells such as that.
You can find this on page 3 of the Unearthed Arcana: Eberron Setting for the warforged description and page 230 in the Player's Handbook for 5th edition for the spell Cure Wounds.
Link: http://dnd.wizards.com/articles/unearthed-arcana/unearthed-arcana-eberron
Posted by Wizards of the Coast
Comment: Hey @NathanCholewinski welcome to RPG.SE take the [tour] to learn more about our community. Your answer could be improved by providing a link or a page reference.
Answer: The cure wounds spell states "A creature you touch…" (Basic Rules v0.2, page 86).
The UA article states "Living Construct. Even though you were constructed, you are a living creature."
If the DM rules that a warforged is not a "creature" then you can happily conclude that your warforged is immune to fireball and disintegrate and so on. :-)
My conclusion is that cure spells and healers' kits work on a Warforged.
Note that the potion of healing says "A character who drinks…" (Basic Rules v0.2, page 50) so they certainly work on a Warforged.
Comment: Whether the spell uses "creature" is unimportant, here. Cure Wounds explicitly says, "This spell has no effect on undead or constructs." Unearthed Arcana clearly states that warforged are constructs but does not indicate whether they are excluded by healing spells and effects.
Answer: It's stated that the wooden parts of a warforged are organic as in a living creature; so the healing affects a warforged like a creature.
Comment: Hi! Would you be able to add the source @Simo for this answer?
Comment: Welcome to RPG.SE! Take the [tour] if you haven't already, and check out the [help] for more guidance. As mentioned, you should support your answer by citing the source. Also, note that the original question was about the version from the very first UA: Eberron in 2015; other existing answers have also pointed out that the version in WGtE does explicitly say healing magic works normally.


May a Pakistaini apply for a Turkish visa while in the USA?

Question: I am a Pakistani national and residing permanently(Green Card) in USA.  How can and where to apply for turkish visa.(An official turkish visa web site address)
Answer: I searched for "Apply for visa to Turkey" on the internet using Google. The search returned a list of web pages. The second item in the list was the Republic of Turkey's Ministry of Foreign Affairs eVisa application page.
As a Pakistani citizen holding valid residence permit from USA, you are eligible for an eVisa and can obtain one from within the comfort of your home for USD $60.


Is there a way to let every user can choose (e.g. on registration) whether their field is private or public?

Question: I have an address field for every user on my website. Now, not everyone is happy with having his address visible to other users. I'm currently using field_permissions to control the visibility of the single fields. Is it possible to let the user decide which visibility he chooses (without code)?
Answer: If you want to do this without writing any custom code, you could use Panels.
Create a boolean field, Show my address publicly, and add it to the user profile.
Then override the user profile display with Panels.  Add all of the fields that you want to display, including the address field.  Then, add a Visibility rule to the address field and set the condition to be Show my address publicly == TRUE.
This is a bit complicated to set up if toggling the display of the address is all you want to do, but Panels offers a lot of flexibility (without writing code) that could be used for other things, too.
Comment: That's a nice solution without coding. However, this visibility will probably not affect how the address will be displayed in views for example?
Comment: @Turion That's correct, Views will still show the address.  You would have to customize all the views as well (in such a case, it would be better to write a little custom code than to do a huge number of steps to avoid writing any.)
Answer: Field permissions is role based, so I think it's not good choice to work with for this certain scenario.
You can simple add another field to indicate whether others can see value of the field.
Then you can use hook_field_prepare_view to hide selected field value or try to find better hook.
If you want to have more advance solution you can create your own field type with two inputs: text field (value) and checkbox (value private or public).
You can use Field Permissions for higher level of access control too.


Connecting two computers to one monitor

Question: My monitor has three input sources: VGA, DVI-D, and display port.
My first computer is connected using DVI port and is working properly. I tried to connect another computer to the same monitor using a DVI to display port convertor cable. It seems that my monitor does not receive any signals from the second computer and goes to the power saving mode. The second computer works when it is connected to the DVI port.
Any ideas how to fix this??
Thank you
Comment: Have you ruled out the DP converter not working? I'm currently switching a monitor between VGA and DVI-D the same way so it should be possible. More details on your video card, the specific cable and monitors would be useful as well
Answer: If your monitor has a 'source' button on it (they often look like this), that should switch between the various inputs.
Otherwise, you can get a KVM Switch to change over the keyboard, mouse and monitor between computers all at once (There are probably variants that only change the monitor as well).
Comment: Often switching sources can be hidden inside the monitor's menu as well . It takes me 2-3 button presses when i'm not clumsy to switch the input in mine
Answer: We do this all the time at work, it's probably an electrical thing.  Remove the DVI computer from the problem and get the monitor working with just the display port converter, then try to add the working DVI system into the mix.  Getting both to work independently will give you a baseline that will help you find your problem more easily.
Two other pieces of advice--

You might just try VNC on one of the computers instead, it actually makes it much easier to do things like copy and paste between computers and the screen sharing issue goes away as do the multiple input devices (which become annoying)

There is a free program called Synergy out there that EVERYONE who runs multiple side-by-side computers should at least know about--allows you to easily share keyboard and mouse (although it is really made for multiple monitors so it may not be for you, but still you should know about it, it's fantastic)

Connecting two computers to one monitor


How can I break up a small boulder without power tools?

Question: I have a boulder/rock that is about 2 feet long and 1.5 feet in diameter. It is too heavy to lift and I would like to break it into smaller pieces. Without power tools, are there any good methods besides going at it with a sledgehammer?
Comment: Does it look cool? Craigslist: free rock.
Comment: You might be surprised how little work it takes to break up that rock with a sledge. Repeated hits in the same spot will weaken the stone and it'll come apart before you know it.
Comment: Light a fire around it, feed it and let it burn for 3-4 days. Then dump cold water on it. Done.
Comment: I repeat, the fire option can be dangerous - if there is trapped water in the stone (more likely with some types than others) you can have a violent explosion with hot rock shards. While that will certainly make the rock smaller, it can have negative consequences to people and property.
Comment: It's perfectly understandable if **you** can't lift it, but give a $20 to some neighborhood teenagers (or your nephews) and they'll be able to lift it.  I did some googling and math and for that volume rock, even the **densest rock on earth**, basalt, would only be 844 lbs.  Most rocks would be *well* under that and definitely within the capabilities of 3 men.
Comment: direct a stream of water towards it, for example, from your rain gutter.  wait, and eventually you'll have gravel.  (e.g., see [this big ditch](http://grandcanyon.com/) where the technique was used effectively)
Comment: Does it have any grain to the surface (sedimentary type rock like shale or slate) versus an amorphous rock (granite)?  Rocks with grain usually can be split nicely along the grain with just a couple of chisels and heavy hand drilling hammers.
Comment: @Mazura a slight variation of that would be to paint something on it and then sell it as "art".
Answer: You can go at it with a sledgehammer (or a smaller hand sledge) and a star drill, and then drive wedges into the holes (or if you are patient, fill the holes with water and let them freeze in the winter.) There are special wedges designed for use in round holes for splitting rock (feathers and wedges seems to find them). https://en.wikipedia.org/wiki/Plug_and_feather
Remember to use ear and eye protection.
Another approach from our practical forebears if you just need it out of the way would be to dig a hole 2-1/2 feet long, 2 feet wide and 3 feet deep next to it, then roll it in and bury it.
You could also build a bonfire on or around it, but that has some potential to become more exciting than planned for if the stone has trapped water in it.
Comment: The feather and wedge technique is the best way to split a stone by hand. There are plenty examples of it on youtube. You will need to use a hammer drill to drill a line of holes in the plane where you are going to split. Then insert the feathers and wedges. Tap each one in until tight. Work from side to side tapping each one lightly. Don't force it. Eventually, there will be enough pressure to split the stone. If you tried to break the stone using just a sledgehammer, you will only succeed in getting shards of stone to fly into your eyes.
Comment: No - "besides going at it with a sledgehammer?" was the question. Using a hammer and a star drill, and a hammer, feathers and wedges, is a VERY different process than beating on it with a hammer (alone.) Since folks seem to miss the concept, a star drill is a stone drill that is used with a hammer, no power tool required.
Comment: without a sledgehammer was the question
Answer: There exist expanding compounds like this one: Ecobust, which are poured into predrilled holes and expand as they dry, splitting the stone (or concrete). It does require a power tool, unless there are already some cracks in your boulder, but a cordless hammer drill should be sufficient.
Comment: Star drill (chisel) and a heavy rock hammer could be used to create the holes.
Comment: without power tools (like a drill)
Comment: Still a good answer since the asker may have been thinking more along the lines of a jackhammer than a drill. In any case, this answer may be useful to others who have never heard of such a product.
Answer: If it is a nice looking rock or has a particular shape, place it on Craig's list as a free item. I listed four 5" Blue Spruce trees I needed to remove to make way for a garage. Gone over the weekend and I didn't have to lift a hand.
Comment: So, bonsai?  :-)
Answer: Without (electrical) power tools, or a sledgehammer:
Here are 10 options besides a hammer or Fire-setting... mentioned in almost every post (but more specifically, for best results use at least 300 lbs of wood or 100 lbs of wood and 20 lbs of bbq briquettes; let it burn overnight and then (in the morning) dump 15-20 gallons of ice-cold water on it.)
Option 1 Use a thermal lance to punch holes in it or cut it apart in about 30 minutes.
Option 2 Use an oxyacetlylene torch to cut or drill holes into it in 20 - 60 minutes.
Option 3 A large fresnel lens with a good focal point on a sunny day will melt a hole in it in anywhere from 20 minutes to 20 hours.
Option 4 After using any of the above methods to create a hole, insert black powder or TNT into the hole and detonate it (or use ecobust as mentioned by mustaccio).
Option 5 Use a gas powered concrete saw to cut this rock (maybe 10-30 minutes).
Option 6 Use a bull dozer, back hoe, or other kind of excavator to remove the rock (20 seconds).
Option 7 Use about 80 lbs of Thermite to turn the rock into lava (keep the fire extinguisher handy).
Option 8 Use a catapult or rocket to launch the rock into a larger rock.
Option 9 Shoot it with a cannon.
Option 10 Call in an air strike.
Comment: Option 10 seems like the best call. Planes aren't power tools at all. :)
Comment: Nuke it from orbit, it's the only way to be sure
Comment: That's silly, electric planes!
Comment: Is it? Planes don't run on just gas anymore. Lose your power now, you'll probably lose the plane. Especially if it's "all power." (Or so my aviation experience would lead me to believe.)
Comment: 20 hours of continuous sunlight might be hard to arrange :)
Comment: @CalebWoodman watch the thermite video (option 7)
Comment: I'm with @Corone. Prices available on request.
Answer: Use a crowbar and put another rock under it so that sections of it are unsupported.  Now whack it with  the sledgehammer a few times.
If you get lucky,  it will have a crack in it and you can break it into pieces. Otherwise you can knock off sections from the end.
Worst case, use the plug and feathers approach described above.
Another technique is to make a large fire (e.g. bbq briquettes) on top of the rock, let it get super-hot, and then douse it with water, causing it to crack.
Comment: without a sledgehammer was the question
Comment: The question is hoping for a better answer than the sledgehammer, he didn't categorically exclude it.  When I fished a boulder (smaller than this, but too heavy for the garbageman to take) out of our front yard this is what I did--I managed to get a rock under it.  The 6th blow on the unsupported part and it came apart.
Comment: True... hence the suggestion to use heat cracking.
Answer: Obtain a chisel with a rubber protector around the top, (more contact points and less chance of hitting yourself.) Proceed to hit this chisel with a rubber mallet or other leverage-providing, hard-ended object. By nature of the chisel's inclined plane, forward motion will cause the rock to crack and split along the business end's edges. Depending on the kind of rock, you will soon have a large enough area broken up to sufficiently hold the chisel without aid of your hand.
Now use your large implement, (potentially a sledge) to apply a significantly greater force than used before, (making sure to use protective equipment, and both hands,) and you will have a wonderfully large split, or at least a significant compromise of the rock's structural integrity. Repeat this process as many times as needed. Through this, with little expense, like using a wedge with an ax to split firewood, you can break the rock into small chunks, which can subsequently be taken away.
You will notice the appeal in using an incline plane to do the work for you, preventing injury and potentially larger amounts of expense.
Answer: You have no sledge hammer, no power tools, and it's too heavy to pick up?  That leaves you with zero options that do not require or produce an explosion. Besides someone taking it of your hands, which is unlikely, seems to me, the simplest solution to dig a sufficient hole and just bury it.
Answer: If it's in a place that safe to do so, build a fire around it. Let it get very hot. Dump ice water on it. It will shatter.
Source: My dad was a farmer and he told me this a long time ago.
Comment: Or, apparently you might not even need the water, except as fire control. https://www.youtube.com/watch?v=pslnI0IPEc8
Comment: Good way to get yourself killed and your house destroyed, but otherwise great idea.
Comment: I included the caveat "if it's in a safe place..."
Comment: You need to define "safe place". Your answer doesn't even mention the risk of explosion, which seems rather irresponsible.
Comment: This is not a novel concept. http://www.backwoodshome.com/forum/vb/archive/index.php/t-28954.html
Comment: I didn't say it was a novel concept.


Android: Change Samsung Galaxy Ace default message type to text (160 charactors )

Question: My Samsung Galaxy Ace default message is multimedia type messages (70 characters) and is costing me a fortune, over 10p a text (UK).  How do I change this to normal text (160 characters) which my phone company gives me 200 free text making it cheaper for me?
Answer: AFAIK the stock Messages app always sends a SMS unless you've added an attachment (picture, video, audio), or if you are typing a very long message (the latter depending on your settings). If there is an attachment the message will show the number of used KB instead of the number of remaining characters.
That being said, you should check if the message centre number in your SMS settings is correct. To check start the Messages app, click Menu > Setting, scroll down to the SMS Settings section.
Also on the same screen there is a setting that may convert long text messages automatically to MMS, so you might want to turn that off.
Comment: I tried sending a text with no images and it still sends it as a mms.  The message centre number is 447785014318 and this is correct according to the forums.
Comment: @resolver101 Something I forgot to ask, can you check your MMS creation mode setting? Can you change it to restricted?
Comment: changing the MMS creation mode to restricted worked.  I also installed another sms app which allowed me to send text which were 160 charactors long.


Converting int to boolean ADO.NET SqlParameter

Question: I am trying to use a stored procedure that returns an int. Then I need to convert int to a boolean (success).
SqlParameter Return = new SqlParameter();
Return.ParameterName = "@return";
Return.SqlDbType = SqlDbType.Int;
Return.Direction = ParameterDirection.ReturnValue;

However this line of code throws a System.InvalidCastException error
 Success = (Boolean)Command.Parameters["@return"].Value;

What should I do to not get this error?
Thanks
Answer: You can use any of the following method to do what you need:
Success = Convert.ToBoolean(Command.Parameters["@return"].Value);

or
Success = Command.Parameters["@return"].Value==0?false:true;

or
if(Command.Parameters["@return"].Value==0)
  Success = false;
else
  Success = true;

(they're all the same thing as Convert.ToBoolean which will be false if the value is zero, otherwise true (this came from C!)
EDIT: one thing I have forgotten is that, if it returns a string or an object, you might have to cast it to integer first before converting to boolean.


Why does the energy level of a particle in a box decrease with length?

Question: I want to know the intuition of why L is in the denominator of the equation for the energy of a particle in a box. This helps explain why resonance is stabilizing without using molecular orbitals. Does it have to do with the Uncertainty Principle? As the length increases, uncertainty of position increases, so uncertainty of momentum decreases, consequently meaning that the kinetic energy is lower, lowering the overall energy of the orbital?
Comment: It has to do with quantum mechanics. The uncertainty principle is not an axiom, but a derived statement. As such, it can't be said to "cause" things, but can be called to explain them. With that in mind, your reasoning looks right to me.
Answer: In quantum mechanics, particles are waves, and as with any wave the longer the wavelength the less energy is in the wave.  You don't need the box to see this; infrared light has less energy in the photon than ultraviolet (the former makes you warm but the latter can damage your skin) and a slow moving free electron (lower energy) has a shorter associated wavelength than a fast-moving one (higher energy).  In the particle/box problem, the possible wavelengths are set by the dimensions of the box; a bigger box allows longer wavelengths -> lower energies.


What sizes are the images available through the /sites endpoint?

Question: I see logo_url, icon_url, favicon_url, high_resolution_icon_url... But I wasn't able to find any information about any of those images in the documentation.  Are any of them fixed size?  And/or is there a place where I can find the intent for each of those images?
Answer:
"Are any of the fixed size?"

I can't really answer that question directly, but for reference, the dimensions of the images supplied by the API for Stack Overflow are as follows:
Image:                    Dimensions:
=====================================
logo_url                  250x61
icon_url                  158x158
favicon_url               16x16
high_resolution_icon_url  316x316
I didn't have the patience to verify if the other sites used the same dimensions - but I would assume that they do.

"And/or is there a place where I can find the intent for each of those images?"

There is nothing in the documentation (that I am aware of) indicating specific intents for these images. But here is my humble opinion on each of the images:

logo_url - this image contains not only the site logo but also the name of the site in the appropriate font. I can't really see a valid use for this that wouldn't violate the trademark guidelines, however - but you never know.
icon_url - the primary purpose of this image (judging from the filename) is to serve as an apple-touch-icon - an image that will be used by iOS devices when a page is bookmarked. Of course, there are a lot of other things such an image could be used for.
favicon_url - this image is provided in .ico format so I can't really see much use for it.
high_resolution_icon_url - basically the same as icon_url but a much higher resolution. This might be valuable on high resolution displays or an area of your site that requires a really large copy of the logo.
Comment: A few corrections.  `logo_url` is whatever size the site's actual logo is, and can change as sites get new designs.  `favicon_url` is an .ico, and can technically hold multiple resolutions, but 16x16 is guaranteed for favicons.  Our trademark guidelines only restrict using the logo in advertising, you can use it to identify sections/modes/content/etc. in your app without issue.


Black clipping paranoia - rational fear or over critical?

Question: Whilst I edit my photo's in Lightroom/Photoshop I always seem to keep a very stern eye on the clipping point warnings in the histogram. Even when the warning highlighting (the blue mask in Lightroom for the black point clipping) is so small in the image that the only reason I know it is there is from the histogram, I always push the black's up until the warning disappears.
What I'd like to know, is if this is perfectly acceptable behaviour (bearing in mind that this can mess with the overall contrast of the image, and I like to keep most editing to a minimum), or if I'm being excessively critical and that it is OK to have some pure black in my images.
My monitor is a calibrated with a spyder4 express which reports back at showing 100% sRGB colour space. Just in case it helps with  anyone's answer :-)
Thank you for reading and I hope to get some helpful answers/critique!
Comment: I've voted to close this as opinion-based. In the absence of any other constraints, it's acceptable to do whatever you like to your images, and it depends on the effect you want for that particular image. For example, it's perfectly acceptable (and in fact, expected) to have some pure black in an astrophotography image.
Answer: The questions are:

Are you losing detail in the black region that affects the quality of your photo? E.g. if you have some dark texture there, clipping at black would kind of make the photo more sterile, although it is much harder to notice that in black areas.
Also, black areas usually suffer from noise, and a heavy clipping at black will remove that. Note: if your image has ISO, etc. noise (or grain) overall, a perfect black area will be unrealistic.
Are you going to postprocess the image? Are you going to curve it further, adjust brightnes/contrast/etc.? If so, you should be aware of how much detail you lose in the black area.

In general, the color and contrast reproduction capability of your final medium should determine how much clipping is acceptable for you.
I usually put an Adjustment layer in Photoshop above my image that makes the visible composite 10-15% (or even more) brighter and add more contrast as well (without clipping), and edit the black areas like that. This way no scratches, picture errors go unnoticed. When I am done, and the image is pleasing for the eye, I remove the adjustment layer, and consider the black areas done. Same can be done on the white adjustments, just with a darkening and more contrast adjustment layer (watch out, as the extra contrast can create clipping if you do it excessively). When I am done with touch-ups, I create a sample final version with all postprocess effects and check if the final image is clipping  too much. If so, I correct the brightness on the touched-up version. (The earlier to the original image you do adjustments, the more dynamic range and color information is kept.)
Comment: That third point, especially - If you clip the black at an early stage, then attempt to lift shadows later in the process, you'll probably end up with more visually apparent weirdness than if you do something towards the end of the processing chain that results in pure blacks. Of course, not all software makes this easy to keep track of...
Comment: Lightroom optimizes the order of applied edits to avoid this black clipping problem during editing steps.
Comment: @BaileyS: Could you please back this up with some references? I think the logical way to operate is to apply operations in sequential order. E.g. Adding a white strip and then applying brighten will create a clip. However, brightening first and then adding a white strip will NOT create clipping. The tool only knows what the sequence of actions were.
Comment: @BaileyS: I am aware of how Lightroom operates, thank you. But please support your claim of "order does not count in Lightroom" with some references.
Comment: @BaileyS: Ok, please demonstrate it. :-)
Answer: Black clipping has by no means to be a defect. For example an image that just shows the silhouette of a motive uses black clipping as a graphical effect.
However, usually one tries to avoid black clipping because of the fear of losing details in the shadows. This quickly becomes a habit one stops to think about although deep blacks can also be beneficial for certain motives. I suppose it also kind of depends on the visual style you want to achieve in your images. In analogue times especially images where the film had been pushed very much during development showed deep blacks and high contrast, resulting in a very distinctive visual style.


This Stack seems to have a lot of answers which should be comments

Question: I know each stack is different but this one seems particularly liberal in allowing things like subjective answers and incomplete answers. Some of these answers even receive upvotes. It seems to me that this decreases the value of all answers. Has this been discussed in any explicit sense or is it just the nature of the participants?
Comment: I think we've overcompensated now.
Answer: I don't know that there has been formal discussion either way, but as a smaller and lower volume stack there are only a few moderators involved, and only a handful of users who have reached a high enough rep level to take on moderator actions.
I notice two things frequently. First, as you mentioned, answers that are relatively subjective and short answers that should be comments. When you notice these please click the "flag" link and choose the appropriate message. One or more of the moderators will then take a look at the post. Because we recognize some allowable subjectivity in a lot of answers we may not delete it, but the flag is still useful because we can track who posts a large number of flagged content.
The other thing that happens on this stack frequently is that a perfectly valid answer will be posted as a comment. In these cases it would be appropriate to comment as well and ask the original comment poster to create an answer so that the content can be upvoted. It doesn't always work, but is a reasonable approach.
Answer: As Gary has mentioned, this is a smaller stack, and also much about cycling is subjective; answers to such questions are largely a matter of opinion.
Being low volume means that questions can be posted for hours without an answer, and can stay on the first page for over a day. On the main stack, or English, most questions get a (fairly definitive) answer within minutes, and are also quickly pushed of the front page.
So I observe an approach of well since nobody else has answered, I'll have a go. Any answer, or a partial answer, being better than none. Often this has the effect of triggering other answers in response.
Sometimes a short answer that could have been a comment is all that is required; one or two of your own answers are in this category. But longer more thorough answers almost always attract more votes. But because of the small user base, no answer has ever achieved Great Answer status.
The voting patterns are interesting (to me, at least). Question pages with 50 or so views commonly get 4 or so votes, spread between the question and the answers. But pages with thousands of views tend to get far lower voting rates per view.
So, on the one hand, the early voting tends to be quite generous, encouraging people who answer. But the later voting suggests something like meh, (s)he's got enough votes.
But the view of generous voting is also supported by the culture that we have very few downvotes, preferring to upvote other answers or leaving a comment. Looking at the voting figures for the top 50 users shows a downvote rate of about 1% or 2% of the upvotes.
The mouse-over for the vote buttons says

This answer is useful
This answer is not useful.

They don't say correct and incorrect.
So I think we tend to upvote answers that are useful, and downvote answers that are seen as wrong, rude/abusive or even dangerous.
To answer the question - I think it's due to the small size of the user base. We like to encourage new members, and also downvoters quickly become known.
Comment: I strongly suspect that the light later voting is due to later views mostly being people finding the question via google, not regular site users.
Comment: @freiheit yes, that seems likely.
Answer: I may be being over cynical but taking andy256's point further
"So I observe an approach of well since nobody else has answered, I'll have a go. Any answer, or a partial answer, being better than none."
I think their are a few users who subscribe to this ethos but also have a points mentality as well. They will answer any question very quickly with a poorly structured and not very comprehensive answer. I find the true answer is then teased out by  other users in the comments.
Hydraulic brakes is a good example of this. There is a small knowledge base that understand and can answer questions, but always a proliferation of low quality answers, that the answer as often as not is go to your LBS.
There are a few users whose answers I value and others which I usually over look. Probably the reason I don't engage in the site as much as I did previously.
Comment: The more long(er) term users (such as you, mattnz, Daniel, and other 2 year+ members) stick around, the better the site culture will be. There will always be new users (we hope), and a proportion will be enthusiastic rep chasers. They need a little guidance from older hands. As I have watched (and learned a little myself) I see how the new users gradually adapt. They need the good examples, and the feedback.


Is Canon MP-E 65mm f/2.8 1-5X macro lens good for photos other than close-up macro shots?

Question: Does this lens do a good job for photos other than close-up macro shots?  For example, does it make sense to use this lens for outdoor family portrait photography? What are some other common uses for this lens?
Answer: No. The MP-E is a dedicated macro-only lens. The farthest away it can focus is just far enough to get a 1:1 macro shot. It can only take shots between life-size and five times life-size. The only way you'd be able to take a picture from further away is to adapt the lens to a mirrorless body, and it's not a sure thing that you'd be ablt to focus at infinity even at that.
Comment: Re: mirrorless body - Because of the shorter flange distance?
Comment: @MichaelClark - exactly. At 1:1, the optical centre of the lens (the point where an equivalent thin single lens would be) is twice as far from the image plane as it would be at infinity focus. Since that is the closest that the MP-E can focus on its standard mount, the solution to more distant focus would be to bring the optical centre closer to the sensor.


Applications of semantic web/ontology in informational retrieval?

Question: What are the uses of Semantic Web in the information Retrieval. Semantic Web here i mean, the structured created like DBPedia, Freebase.
Answer: I have integrated information in RDF with Lucene in several projects and i think a lot of the value you can get from the integration is that you can go beyond the simple keyword search that Lucene would normally enable.  That opens up possibilities for full text search over your RDF information, but also semantically enriched full-text search.
In the former case, there is no 'like' operator in SPARQL, and the regex function while similarly capable to the SQL like, is not really tractable to evaluate against a dataset of any appreciable size.  However, if you're able to use lucene to do the search instead of relying on regex, you can get better scale and performance out of a single keyword search over your RDF.
In the latter case, if the query engine is integrated with the lucene text/rdf index, think LARQ, (both Jena and Stardog suppot this), you can do far more complex semantic searches over your full-text index.  Queries like 'get all the genres of movies where there are at least 10 reviews and the reviews contain the phrase "two thumbs up"'  That's difficult to swing with a lucene index, but becomes quite trivial in the intersection of Lucene & SPARQL.
Answer: You can use DBpedia in Information Retrieval, since it has the structured information from Wikipedia.
Since Wikipedia has knowledge of almost every topic of interest in terms of articles, categories, info-boxes that is being used in the information retrieval systems to extract the meaningful information in the form of triples i.e. Subject, Predicate & Object.
You can query the information via SPARQL using the following endpoint:Endpoint to query the information from DBpedia


Footer in Communication sites + Hub Site

Question: Is it possible to have the Footer of a Communication site (Hub) to be propagated to the associate sites to that Hub like it happens with the Hub menu/navigation?
Answer: I really would like to have this feature too!
For a global intranet look and feel with a clear leveled out look and feel the footer is as essential as the hub menu and both should come back as a pair with the rest of the look and feel across all associated sites.
Created an uservoice idea: https://sharepoint.uservoice.com/forums/329214-sites-and-collaboration/suggestions/38331166-footer-of-the-hub-site-to-propagate-to-all-associa


Why does рот become рту, in the Dative Case?

Question: What is the reason for this change? I had been under the impression that the rules from this (http://www.russianlessons.net/grammar/nouns_dative.php) page apply to the changing of the noun ending.
Comment: рот in Dative is рту, not рта.
Comment: It's also prepositional, being one of the nouns that take stressed -у for that case: во рту
Answer: Unfortunately, your page doesn't mention this important phenomenon which is called беглая гласная 'a fleeting vowel.' The thing is like this: in some words, the stressed vowels o, e, and ё completely disappear, turn to null, when the form of the word changes and the stress moves onto another vowel. Your noun рот has its root stressed, but when we form the Genitive case and add the ending -a, the stress moves onto this ending and the -o- in the root disappears.
The fleeting vowels are met very often in Russian and also in all the other Slavic languages, that's a common-Slavic phenomenon. But note, not every o, e, and ё is fleeting, e.g.:

кóт — котá : no vowel disappears.

But:

сóн — снá
бeрý — брáть
звонóк — звонкá

You have to remember in which words the vowel disappears, a good dictionary marks such words and their forms.
The reason why these vowels disappear is that the ones that do, descend from the ancient very short, reduced, vowels known as yers: a short high front vowel denoted as ĭ or ь, and a short back vowel denoted as ŭ or ъ. These vowels underwent reduction and were eventually deleted in certain positions in a word in the early Slavic languages, but if they were in a stressed position, they changed into the full vowels, in Russian into e and o respectfully. This phenomenon is called Havlík's law.
And again, note, рта is not the Dative case, it is the Genitive case of рот, the Dative case from this noun is рту.
Comment: +1. I believe the English term is "fleeting vowel".
Comment: @Quassnoi - Haha, really! Thank you, I corrected it.
Comment: It's "берý", not "бéру".


Hotkey to change Brush Hardness in Photoshop

Question: Is there a keyboard shortcut to switch between soft and hard brushes in Photoshop CC?
Comment: Brian, we tend here at **GDSE** to *avoid* questions which are both *easily googleable* and also available instantly within given software's online help (I found an answer for this in *less than ten seconds*) and it doesn't, based on your question as posted, look like ***any*** effort went into this query. I think it really would be worth your looking at [ask] to get a sense of how we prefer questions here - the goal is to further your and everyone's knowledge and skill *beyond* easy tech support Q/A level issues. [https://helpx.adobe.com/photoshop/using/default-keyboard-shortcuts.html]
Answer: There are keyboard shortcuts for adjusting the brush hardness up or down.
Use Shift + {/} for harder and softer
It adjusts it in 25% increments, pressing it four times will bring you to 0% or 100%.

You can also delete all the other brushes from Brush Presets besides for the 2 that you want to be able to toggle.
Then use Shift+</> to select the first/last brush.

There is also a keyboard and mouse combination for changing brush size and hardness.
Hold down Alt and Right Click + Drag;

Up/Down for brush hardness
Right/Left for brush size

▲ Holding down Alt
(On macOS it's Ctrl+Option+drag)
Comment: @Tetsujin I updated the answer, it's `Ctrl`+`Option`+`Drag` (not sure about left/right click though - you can let me know)
Comment: \o/ ctrl/alt [opt] drag works. Only been using Photoshop 25 years & never knew that one, thank you ;-))  [it's left-click, btw]
Comment: Is that alt/drag Windows only, or does it need setting up in prefs? I can't get Mac to do it with any key/drag combo.


Why doesn't lego make many 2x2x4 Pieces?

Question: I'm just wondering if anybody here knows where I can get some 2x2x4 pieces ... It seems that Lego doesn't make many just standard bricks that are 4 high ... I've found a few singles here and there on Ebay, but these don't exit in the pick a brick store and they are reeeally hard to find. Looking for about 16 Dark Stone Gray 2x2x4 pieces ... any leads? Or any idea why they don't make standard bricks that are 4 high? I assume it's because you can easily stack to 2 highs, but for cosmetic reasons I can't do this in my build. Thanks!
Comment: Thanks for all the responses ... very interesting about using Duplo blocks ... never thought of that. My only concern is that I need the sharp edges of Lego blocks for this build ... if I'm remembering correctly from my childhood, do Duplo blocks have more rounded edges? I've found a bunch of what are being advertised as 2x2x4 blocks on ebay ... try searching "2x2x4 lego brick" are these people simply incorrect and they are actually 2x2x3, or are these just rare pieces from specific kits? Thanks!
Comment: The pictures I see on [ebay](http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR0.TRC0.H0.X2x2x4+lego+brick.TRS0&_nkw=2x2x4+lego+brick&ghostText=&_sacat=0) are 2x2x3 bricks being advertised as 2x2x4. Not sure if the "x4" is perhaps marketing speak for the fact that there are 4 studs on the top, but they are clearly (also visible on the picture) only 3 bricks high.
Comment: Oh and note that some use the deceiving perspective of putting a brick flat to show that it covers 4 studs on a base-plate, but that doesn't mean that they are also 4 bricks high as the width to height ratio for a LEGO brick is not 1:1.
Comment: What's wrong with stacking up 2x2x1 bricks to make the column?
Answer: I can't find any evidence that a 2x2x4 piece has ever existed. Bricklink identifies a 2x2x3 brick, and there are many sellers around the world that will happily sell you 16 dark stone grey pieces for pennies/piece.
Answer: Another option you might want to consider is looking at 1x2x2 DUPLO pieces. They correspond to 4x2x4 lego pieces (slightly bigger than you are asking for, but not knowing the details of your build you might be able to incorporate these) and they interconnect (a 2x2 lego piece fits on a single DUPLO stud.) If you mount them sideways you get a 2x4 surface (but it would be 4 deep, not 2 deep as you requested).
EDIT: This post shows how DUPLO and LEGO play together :)
Answer: As odd Todd mentioned LEGO never made 2x2x4 pieces. The largest brick of similar size is 2x2x3 and 2x4x3. For larger smooth surfaces LEGO usually uses panels. You can find all the panels LEGO ever made here: http://www.bricklink.com/catalogList.asp?catType=P&catString=91
Comment: Just note that there is no 2x4 panel either .... 2x3 is the biggest.


SQL Server High Availability and Sharepoint - log file grows when no database activity

Question: Just started as a dba with a company running SQL Server 2012 High Availability and SharePoint.
Short description: Database with no user activity still has growing log file.
Long description:
They have many, many SharePoint dbs where the logfile size dwarfs the datafile size.  They've just been throwing extra disk space at the issue.
They were in Full Recovery (mandatory for HA) but weren't taking Log backups.  Simply by taking a log backup and a DBCC Shrinkfile to a manageable size I've started to bring things under control.
However, on my trial database the logfile is growing rapidly again.  As far as I can ascertain, no user activity in the database has taken place (insert/update/deletes) since I did the log backup.
Running
select [Current LSN], Operation, Context, [Transaction ID]
    , SPID, [Begin Time], [Transaction Name]
from fn_dblog(null,null)

shows hundreds of rows of GhostCleanup Task (looking for deletes) followed by a Begin Transaction and a Commit Transaction:

Can anyone explain what's causing this?  I can obviously set up Maintenance Plans to do Log backups much more frequently to keep the size in check, but I'd like to understand why there are all these transactions occurring in a 'static' database.
I've read about setting trace flag 661 to disable ghost cleanup, but don't want to do a server-wide change at this proof of concept stage.
I'm not sure if this is a HA issue, SharePoint issue, neither or both!  I've read lots of posts about SharePoint causing runaway logs but no real explanation.
It's the primary AOAG server. There are two synchronous secondaries and an asynchronous DR secondary.
dbcc opentran(EXT_Metadata_DB)

reports:

No active open transactions.

Log file is still growing despite no user activity. There were 5 Autogrowth events overnight.  No transactional replication on this db, though HA obviously needs to write the log to the secondary servers. No blocked processes visible.
select d.name, d.log_reuse_wait_desc
from sys.databases d
where d.database_id = 15

gives:

EXT_Metadata_DB    LOG_BACKUP

This seems to imply that all transactions are in the current VLF which can't be cleared. Puzzling thing is, I haven't done any log backups since I did the Shrinkfile. I'm using a tiny database for this investigation.  Data file is only 14MB and I shrank the log file down to 4MB (13% full).  A day or so later, data file remains at 14MB, but log file has now grown to 69MB and is 92% full.  The particular SQL Server instance I'm looking at has 675GB of log files.
select name, size
from sys.database_files
where type = 1

gives:

EXT_Metadata_DB_log 8872

before a checkpoint.  Ran checkpoint but size remains at 8872.  Server recovery interval is the default 0.
If I run:
SELECT context AS Context, [Transaction Name] as Description, COUNT(context) AS Count
from fn_dblog(null,null)
GROUP BY context, [Transaction Name]
order by count desc

I get 19 rows:

LCX_NULL            NULL                        12681
LCX_NULL            GhostCleanupTask            12326
LCX_BOOT_PAGE       NULL                        12185
LCX_CLUSTERED       NULL                        451
LCX_NULL            UpdateQPStats               81
LCX_FILE_HEADER     NULL                        35
LCX_NULL            SetFileSize                 33
LCX_PFS NULL                                    12
LCX_TEXT_MIX        NULL                        10
LCX_BOOT_PAGE_CKPT  NULL                        10
LCX_DIFF_MAP        NULL                        7
LCX_NULL            DeallocUnlinkedReorgPage    6

No user activity, but 37847 transaction entries in 24 hours. Is this to be expected? I've not modified any data.  It's a static database of metadata.
Answer: The cleanup is normal behind the curtain SQL server functionality.  Never ever ever disable this.  I would increase the transaction log backup frequency.  I like mine set to every 15 minutes to keep the backups small and fast.


Reporting non significant results

Question: Can I skip the reporting of non significant results of a test? I mean report the means and SD, say it's not significant, but skip the test result and exact p.
Comment: This is probably mostly a function of the journal you are submitting to.
Answer: One of the things which makes subsequent synthesis of primary studies and their meta-analysis difficult is when the authors of the primary studies just say "not significant". If you are convinced that you have presented enough information for synthesisers to reconstruct your analysis or if you believe your study is so poor that nobody will ever want to include it in their meta-analysis (just joking there) then publish in that format. If in doubt, please, please publish the details to make subsequent scientists life easier.
Answer: It is always best to present the results of significance testing, with confidence intervals as well as p.values. This aids researchers in meta-analyses, as well as gives clarification of what you consider to be significant/non-significant. Was the result marginally non-significant? We will never know if you don't tell us.
Presumably you will have already performed the tests, so if it is for saving space or not getting bogged down in tedious tables in your paper, remember that many journals accept use of online supplementary appendices. This can save space and headaches for curious readers.
Hope that helps :)

Reporting non significant results


Transcoding during ffmpeg overlay

Question: My question is related to the technicality behind video overlaying. When a 3D object or an image is added to a video sequence as an overlay to render, does ffmpeg fully decode the original sequence to a raw file, then mix the object or image to the desired position and re-encode back to the desired format?.
I'd like to know if this is the process followed by the industry to mix 3D objects, images or other material with generic video contents. Or is there another approach to perform this task.
Your assistance is highly appreciated.
Thanks.
Answer: From FFmpeg Documentation – Detailed Description:

ffmpeg calls the libavformat library (containing demuxers) to
  read input files and get packets containing encoded data from them.
  When there are multiple input files, ffmpeg tries to keep them
  synchronized by tracking lowest timestamp on any active input stream.
Encoded packets are then passed to the decoder (unless stream
  copy is selected for the stream). The decoder produces
  uncompressed frames (raw video/PCM audio) which can be processed
  further by filtering. After filtering, the frames are passed to
  the encoder, which encodes them and outputs encoded packets.
  Finally those are passed to the muxer, which writes the encoded
  packets to the output file.
Answer: Yes, compositing, as it is known in the industry, involves decoding two or more assets in to video streams and them combining those streams in some way.  The end result is then saved as a new file on render.  There is some variation in when rendering is done though.  Some software can put off rendering for a while to reduce the number of re-encodes required.
For example, if combining two layers of video in After Effects, you can embed the entire composition in to Premiere rather than re-encode the video to a lossy format.  This prevents further generations of loss without having to store the lossless render while working on the video (which would be very large).
Alternately, lossless file formats such as TGA sequences can be used for storing the result of a render without an additional generation of loss (since the render is preserved perfectly.)
The final render still uses the same basic process of using some blending algorithm to combine the pixel data from two or more video streams in to a single stream though and that stream eventually has to be stored again.
Comment: Thanks. Are there any tools in the industry that can perform this real time for HD videos?
Comment: That's called a keyer, down stream keyer or mask keyer, depending on the situation.  Often a video mixer will also have the functionality.
Comment: Is this the way it happens for re-broadcasting streams as well. For example, lets say that you need to add a logo to a stream you get which is already encoded. In that case do we need to fully decode the stream and add the overlay, and then re-encode before transmission?. Many thanks for your help.
Comment: In most cases, some stream players may support a logo layer that can be applied for viewing, but generally speaking, the stream is decoded, the alteration is made and it is re-encoded.  You can't change the content of a stream without doing a new encoding, you can only alter the length (clip the video) without re-encoding and even that has some limitations.
Comment: Here language of thank you is UPVOTING the answer.

Transcoding during ffmpeg overlay


How to insert a footnote of author affiliation?

Question: I am using document class ieeeconf to write a paper. How should I include a footnote indicating author affiliations? Please guide.
Comment: read package documentation. in it this is described.
Answer:
Use \author{ Author Name \thanks{Affiliation} }
\documentclass[]{IEEEconf}

\begin{document}

    \title{Development of a Generalized PV Model in MATLAB/Simulink Using Datasheet Values}

\author{Al-Motasem I. Aldaoudeyeh
            \thanks{Al-Motasem I. Aldaoudeyeh is with the Department of Electrical and Computer Engineering, North Dakota State University, Fargo, ND, 58102 USA. email: firstname.lastname@example.com}
        }

    \maketitle

\begin{abstract}

This paper proposes an improved single-diode modeling approach for PV modules suitable for a broad range of the PV technologies available today, including modules on tandem cell structures. After establishing the model (which has an overall of seven parameters), the paper devises a methodology to estimate its parameters using Standard Test Conditions (STC) data, Nominal Operating Cell Temperature (NOCT) data, and temperature coefficients values as provided in most manufacturers' datasheets. Simulation results and their comparison with a previous work show a very accurate prediction of critical points in the current-voltage characteristics curve. The precise prediction happens for both STC and NOCT conditions and the error in predicting maximum power point lies within $1\%$ limit, and the error in its corresponding voltage and current is almost always within $2\%$ limit. Further, for both maximum power point and open-circuit voltage, the statistical variance around manufacturer measurements due to temperature changes is demonstrated to be low for five various module technologies.

\end{abstract}

\end{document}


What's the difference between SoftReference and WeakReference in Java?

Question: What's the difference between java.lang.ref.WeakReference and java.lang.ref.SoftReference ?
Comment: SoftReferences are type of (not really but for discussion sake) WeakReferences which are usually collected when JVM thinks it is out of memory.
Comment: @AjeetGanga, Loose weak refs are **always** collected whenever the GC runs. See https://stackoverflow.com/a/46291143/632951
Answer: From Understanding Weak References, by Ethan Nicholas:

Weak references
A weak reference, simply put, is a
  reference that isn't strong enough to
  force an object to remain in memory.
  Weak references allow you to leverage
  the garbage collector's ability to
  determine reachability for you, so you
  don't have to do it yourself. You
  create a weak reference like this:
WeakReference weakWidget = new WeakReference(widget);

and then
  elsewhere in the code you can use
  weakWidget.get() to get the actual
  Widget object. Of course the weak
  reference isn't strong enough to
  prevent garbage collection, so you may
  find (if there are no strong
  references to the widget) that
  weakWidget.get() suddenly starts
  returning null.
...
Soft references
A soft reference is exactly like a
  weak reference, except that it is less
  eager to throw away the object to
  which it refers. An object which is
  only weakly reachable (the strongest
  references to it are WeakReferences)
  will be discarded at the next garbage
  collection cycle, but an object which
  is softly reachable will generally
  stick around for a while.
SoftReferences aren't required to
  behave any differently than
  WeakReferences, but in practice softly
  reachable objects are generally
  retained as long as memory is in
  plentiful supply. This makes them an
  excellent foundation for a cache, such
  as the image cache described above,
  since you can let the garbage
  collector worry about both how
  reachable the objects are (a strongly
  reachable object will never be removed
  from the cache) and how badly it needs
  the memory they are consuming.

And Peter Kessler added in a comment:

The Sun JRE does treat SoftReferences differently from WeakReferences. We attempt to hold on to object referenced by a SoftReference if there isn't pressure on the available memory. One detail: the policy for the "-client" and "-server" JRE's are different: the -client JRE tries to keep your footprint small by preferring to clear SoftReferences rather than expand the heap, whereas the -server JRE tries to keep your performance high by preferring to expand the heap (if possible) rather than clear SoftReferences. One size does not fit all.
Comment: Post no more available, you can find it on wayback machine: https://web.archive.org/web/20061130103858/http://weblogs.java.net/blog/enicholas/archive/2006/05/understanding_w.html
Comment: this time, the archive is no longer available
Comment: Great explanation. This question can come up in Java related job interviews.
Answer: Weak references are collected eagerly. If GC finds that an object is
weakly reachable (reachable only through weak references), it'll clear the
weak references to that object immediately. As such, they're good for
keeping a reference to an object for which your program also keeps
(strongly referenced) "associated information" somewere, like cached
reflection information about a class, or a wrapper for an object, etc.
Anything that makes no sense to keep after the object it is associated
with is GC-ed. When the weak reference gets cleared, it gets enqueued in a
reference queue that your code polls somewhere, and it discards the
associated objects as well. That is, you keep extra information about an
object, but that information is not needed once the object it refers to
goes away. Actually, in certain situations you can even subclass
WeakReference and keep the associated extra information about the object
in the fields of the WeakReference subclass. Another typical use of
WeakReference is in conjunction with Maps for keeping canonical instances.
SoftReferences on the other hand are good for caching external, recreatable resources
as the GC typically delays clearing them. It is guaranteed though that all
SoftReferences will get cleared before OutOfMemoryError is thrown, so they
theoretically can't cause an OOME[*].
Typical use case example is keeping a parsed form of a contents from a
file. You'd implement a system where you'd load a file, parse it, and keep
a SoftReference to the root object of the parsed representation. Next time
you need the file, you'll try to retrieve it through the SoftReference. If
you can retrieve it, you spared yourself another load/parse, and if the GC
cleared it in the meantime, you reload it. That way, you utilize free
memory for performance optimization, but don't risk an OOME.
Now for the [*]. Keeping a SoftReference can't cause an OOME in itself. If
on the other hand you mistakenly use SoftReference for a task a WeakReference is meant
to be used (namely, you keep information associated with an Object somehow
strongly referenced, and discard it when the Reference object gets
cleared), you can run into OOME as your code that polls the ReferenceQueue
and discards the associated objects might happen to not run in a timely
fashion.
So, the decision depends on usage
- if you're caching information that is expensive to construct, but
nonetheless reconstructible from other data, use soft references
- if you're keeping a reference to a canonical instance of some data, or
you want to have a reference to an object without "owning" it (thus
preventing it from being GC'd), use a weak reference.
Comment: Particularly useful for the explanation of when weak objects would be used.
Comment: @Pacerier: The author of that post is simply wrong.  He neglects some other usage scenarios like event subscription, his second point is nonsensical, and his third point assumes that a programmer can do things that may not be possible.  His first point is reasonable, but ties in directly with what I said.  If code will frequently have to build *and compare* large immutable objects, for example, the building part will often be cheaper if code creates new objects without regard for whether they already exist, but a comparison between an object and itself (identical references) will be...
Comment: ...much cheaper than a comparison between two different immutable objects that hold the same data.  If code needs an object that matches an existing object, using a reference to the existing object (instead of a new one) will be helpful if those objects will end up being compared.  If the object exists in the interned cache and nowhere else, however, returning a reference to that would be more expensive than, and offer no advantages over, creating a new object and returning a reference to that.
Comment: A key point about the proper use of a `WeakReference` is that in places where one should be using it, the fact that one may remain valid for a little while after the reference goes out of scope may be tolerable, but is not desirable.
Comment: I'm struggling to understand what is the use of WeakHashMap if it always produces weak reference to its key value object?
Comment: @supercat, There is **only one** proper use of `WeakReference` which is to observe GC runs. See elaboration: https://stackoverflow.com/a/46291143/632951
Answer: In Java;  order from strongest to weakest, there are: Strong, Soft, Weak and Phantom
A Strong reference is a normal reference that protects the referred object from collection by GC. i.e. Never garbage collects.
A Soft reference is eligible for collection by garbage collector, but probably won't be collected until its memory is needed. i.e. garbage collects before OutOfMemoryError.
A Weak reference is a reference that does not protect a referenced object from collection by GC. i.e. garbage collects when no Strong or Soft refs.
A Phantom reference is a reference to an object is phantomly referenced after it has been finalized, but before its allocated memory has been reclaimed.
Source
Analogy: Assume a JVM is a kingdom, Object is a king of the kingdom, and GC is an attacker of the kingdom who tries to kill the king(object).

When King is Strong, GC can not kill him.
When King is Soft, GC attacks him but King rule the kingdom with protection until resource are available.
When King is Weak, GC attacks him but rule the kingdom without protection.
When king is Phantom, GC already killed him but king is available via his soul.
Comment: Soft reference ... `until memory is available` doesn't make sense. Do you mean `is eligible for collection by garbage collector, but probably won't be collected until its memory is needed for another use`?
Comment: Excellent summary with innovative example
Comment: yes, garbage collector won't collect the reference until the memory is available.
Comment: I like simple explained stuff, without too much bla bla bla +1 from me !
Comment: +1, further reading : http://javarevisited.blogspot.in/2014/03/difference-between-weakreference-vs-softreference-phantom-strong-reference-java.html
Comment: I like the analogy.
Answer: Weak Reference
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ref/WeakReference.html
Principle: weak reference is related to garbage collection. Normally, object having one or more reference will not be eligible for garbage collection.
The above principle is not applicable when it is weak reference. If an object has only weak reference with other objects, then its ready for garbage collection.
Let's look at the below example: We have an Map with Objects where Key is reference a object.
import java.util.HashMap;
public class Test {

    public static void main(String args[]) {
        HashMap<Employee, EmployeeVal> aMap = new
                       HashMap<Employee, EmployeeVal>();

        Employee emp = new Employee("Vinoth");
        EmployeeVal val = new EmployeeVal("Programmer");

        aMap.put(emp, val);

        emp = null;

        System.gc();
        System.out.println("Size of Map" + aMap.size());

    }
}

Now, during the execution of the program we have made emp  = null. The Map holding the key makes no sense here as it is null. In the above situation, the object is not garbage collected.
WeakHashMap
WeakHashMap is one where the entries (key-to-value mappings) will be removed when it is no longer possible to retrieve them from the Map.
Let me show the above example same with WeakHashMap
import java.util.WeakHashMap;

public class Test {

    public static void main(String args[]) {
        WeakHashMap<Employee, EmployeeVal> aMap =
                    new WeakHashMap<Employee, EmployeeVal>();

        Employee emp = new Employee("Vinoth");
        EmployeeVal val = new EmployeeVal("Programmer");

        aMap.put(emp, val);

        emp = null;

        System.gc();
        int count = 0;
        while (0 != aMap.size()) {
            ++count;
            System.gc();
        }
        System.out.println("Took " + count
                + " calls to System.gc() to result in weakHashMap size of : "
                + aMap.size());
    }
}

Output: Took 20 calls to System.gc() to result in aMap size of : 0.
WeakHashMap has only weak references to the keys, not strong references like other Map classes. There are situations which you have to take care when the value or key is strongly referenced though you have used WeakHashMap. This can avoided by wrapping the object in a WeakReference.
import java.lang.ref.WeakReference;
import java.util.HashMap;

public class Test {

    public static void main(String args[]) {
        HashMap<Employee, EmployeeVal> map =
                      new HashMap<Employee, EmployeeVal>();
        WeakReference<HashMap<Employee, EmployeeVal>> aMap =
                       new WeakReference<HashMap<Employee, EmployeeVal>>(
                map);

        map = null;

        while (null != aMap.get()) {
            aMap.get().put(new Employee("Vinoth"),
                    new EmployeeVal("Programmer"));
            System.out.println("Size of aMap " + aMap.get().size());
            System.gc();
        }
        System.out.println("Its garbage collected");
    }
}

Soft References.
Soft Reference is slightly stronger that weak reference. Soft reference allows for garbage collection, but begs the garbage collector to clear it only if there is no other option.
The garbage collector does not aggressively collect softly reachable objects the way it does with weakly reachable ones -- instead it only collects softly reachable objects if it really "needs" the memory. Soft references are a way of saying to the garbage collector, "As long as memory isn't too tight, I'd like to keep this object around. But if memory gets really tight, go ahead and collect it and I'll deal with that." The garbage collector is required to clear all soft references before it can throw OutOfMemoryError.
Comment: You may get a `NullPointerException` in `aMap.get().put(...)`.
Comment: For another example of `WeakHashMap` in action, with example app showing how entries are removed only *after* garbage-collection executes, see [my Answer](https://stackoverflow.com/a/52790092/642706) to the Question, [*Is WeakHashMap ever-growing, or does it clear out the garbage keys?*](https://stackoverflow.com/q/52789834/642706).
Comment: Your first HashMap example looks wrong. When you do "aMap.put(emp, val);" both 'emp' and 'val' are strong references. Internally, a new variable is created to hold 'emp' and 'val' so when you do "emp = null;" you are just nullifying the "emp" variable, but not the variable internally to the hash map (which is still holding the original Employee object). Therefore the hash map will still hold a strong reference to 'emp' regardless of what you do with the 'emp' variable outside.
Comment: @Tiago. No. Presumably by "first example" you are referring to the `WeakHashMap` example (since that is the first one that is demonstrating Weak behavior). Look at doc for "WeakHashMap": `"An entry in a WeakHashMap will automatically be removed when its key is no longer in ordinary use. "`  The entire point of using WeakHashMap is that *you* don't have to declare/pass-in a WeakReference; the WeakHashMap does that for you, internally. http://docs.oracle.com/javase/7/docs/api/java/util/WeakHashMap.html
Comment: Took 0 calls to System.gc() to result in weakHashMap size of : 0
is the output of your second program ?
Answer: The only real difference between a soft reference and a weak reference is that

the garbage collector uses algorithms to decide whether or not to
  reclaim a softly reachable object, but always reclaims a weakly
  reachable object.
Comment: @ATorras, Samir. I expanded on this answer here: https://stackoverflow.com/a/46291143/632951
Answer: SoftReference is designed for caches. When it is found that a WeakReference references an otherwise unreachable object, then it will get cleared immediately. SoftReference may be left as is. Typically there is some algorithm relating to the amount of free memory and the time last used to determine whether it should be cleared. The current Sun algorithm is to clear the reference if it has not been used in as many seconds as there are megabytes of memory free on the Java heap (configurable, server HotSpot checks against maximum possible heap as set by -Xmx). SoftReferences will be cleared before OutOfMemoryError is thrown, unless otherwise reachable.
Comment: But in Android it isn't advised for caches
http://developer.android.com/reference/java/lang/ref/SoftReference.html
Comment: @DoctororDrive tbf the question was about java, not dalvik! :-P
Comment: @YaroslavMytkalyk, Frankly, if Android wants to rewrite the behavior of a class, it should use its own namespace, not `java.lang`. Such abuse of synonyms is doing no one any good.
Answer: This article can be super helpful to understand strong, soft, weak and phantom references.

To give you a summary,
If you only have weak references to an object (with no strong references), then the object will be reclaimed by GC in the very next GC cycle.
If you only have soft references to an object (with no strong references), then the object will be reclaimed by GC only when JVM runs out of memory.

So you can say that, strong references have ultimate power (can never be collected by GC)
Soft references are powerful than weak references (as they can escape GC cycle until JVM runs out of memory)
Weak references are even less powerful than soft references (as they cannot excape any GC cycle and will be reclaimed if object have no other strong reference).

Restaurant Analogy

Waiter - GC
You - Object in heap
Restaurant area/space - Heap space
New Customer - New object that wants table in restaurant

Now if you are a strong customer (analogous to strong reference), then even if a new customer comes in the restaurant or what so ever happnes, you will never leave your table (the memory area on heap). The waiter has no right to tell you (or even request you) to leave the restaurant.
If you are a soft customer (analogous to soft reference), then if a new customer comes in the restaurant, the waiter will not ask you to leave the table unless there is no other empty table left to accomodate the new customer. (In other words the waiter will ask you to leave the table only if a new customer steps in and there is no other table left for this new customer)
If you are a weak customer (analogous to weak reference), then waiter, at his will, can (at any point of time) ask you to leave the restaurant :P
Answer: The six types of object reachability states in Java:

Strongly reachable objects - GC will not collect (reclaim the memory occupied by) this kind of object. These are reachable via a root node or another strongly reachable object  (i.e. via local variables, class variables, instance variables, etc.)
Softly reachable objects - GC may attempt to collect this kind of object depending on memory contention. These are reachable from the root via one or more soft reference objects
Weakly reachable objects - GC must collect this kind of object. These
are reachable from the root via one or more weak reference objects
Resurrect-able objects - GC is already in the process of collecting these objects. But they may go back to one of the states - Strong/Soft/Weak by the execution of some finalizer
Phantomly reachable object - GC is already in the process of collecting these objects and has determined to not be resurrect-able by any finalizer (if it declares a finalize() method itself, then its finalizer will have been run). These are reachable from the root via one or more phantom reference objects
Unreachable object - An object is neither strongly, softly, weakly, nor phantom reachable, and is not resurrectable. These objects are ready for reclamation

For more details: https://www.artima.com/insidejvm/ed2/gc16.html « collapse
Comment: Not a good description of phantom references. Also, you've listed the 4 types in a peculiar order. "phantom" is the weakest type, not the strongest type. The traditional order to list these is "strong, soft, weak, phantom". And I have no idea where you got the notion that phantom objects are used for caching mechanisms. AFAIK, they are a temporary state seen only by the GC, not something that an ordinary programmer would work with.
Comment: @ToolmakerSteve and all - Apologies for couple of things 1. the wrong explanation of Phantom references in the previous version of my answer, and 2. Delay in correcting the errors. Now the answer has been improved by correcting the errors
Answer: The Only Real Difference
Per the doc, loose WeakReferences must be cleared by a running GC.
Per the doc, loose SoftReferences must be cleared before OOM is thrown.
That's the only real difference. Everything else is not part of the contract. (I'll assume the latest docs are contractual.)
SoftReferences are useful. Memory-sensitive caches use SoftReferences, not WeakReferences.

The only proper use of WeakReference is to observe the GC run. You do this by creating a new WeakReference whose object immediately goes out of scope, then try to get null out of weak_ref.get().  When it's null, you learn that between this duration, the GC ran.
As for incorrect use of WeakReference, the list is endless:

a lousy hack to implement priority-2 softreference such that you don't have to write one, yet it doesn't work as expected because the cache would be cleared on every GC run, even when there is spare memory. See  https://stackoverflow.com/a/3243242/632951 for phails. (Besides, what if you need more than 2 levels of cache priority? You'd still gotta need a real library for it.)
a lousy hack to associate data with an object of an existing class, yet it creates a memory leak (OutOfMemoryError) when your GC decides to take a break after your weakreferences are created. Besides, it's beyond ugly: A better approach is to use tuples.
a lousy hack to associate data with an object of an existing class, where the class  has the nerve to make itself non-subclassable, and is used in an existing function code which you need to call. In such a case, the proper solution is to either edit the class and make it subclassable, or edit the function and make it take an interface instead of a class, or use an alternative function.
Comment: What about a cache where the key type's `equals()` is just object identity? Soft references seem like a waste there, because once a key object is no longer strongly reachable, no one will ever look up that mapping again.
Comment: I disagree. Use WeakReference when you don't want to influence GC in anyway (You might want to save an object reference and then check later if it still exists, without any preference that it does). Use SoftReference if you want to influence the GC to try and keep the object (i.e. when you would prefer that the GC would keep it).
Comment: A good example where to use WeakReference is in Android's AsyncTask - to keep an instance of the context. That way if the context dies (if activity - screen rotation, etc.), the AsyncTask won't have any strong reference to it, and so it can be garbage collected. Check https://youtu.be/uKx0FuVriqA?list=PLrnPJCHvNZuD52mtV8NvazNYIyIVPVZRa&t=757
Comment: What a lousy "argument". I use weak references to store callbacks that will auto deregister when a complex session data is invalidated without needing to actually care about UI business logic in the callback itself
Answer: To give an in-action memory usage aspect, I did an experiment with Strong, Soft, Weak & Phantom references under heavy load with heavy objects by retaining them till end of program. Then monitored heap usage & GC behavior. These metrics may vary case by case basis but surely gives high level understanding. Below are findings.
Heap & GC Behavior under heavy load

Strong/Hard Reference - As program continued, JVM couldn't collect    retained strong referenced object. Eventually ended up in "java.lang.OutOfMemoryError: Java heap space"
Soft Reference - As program continued, heap usage kept growing, but OLD gen GC happened hen it was nearing max heap. GC started bit later in time after starting program.
Weak Reference - As program started, objects started finalizing & getting collected almost immediately. Mostly objects got collected in young generation garbage collection.
Phantom Reference - Similar to weak reference, phantom referenced objects also started getting finalized & garbage collected immediately. There were no old generation GC & all objects were getting collected in young generation garbage collection itself.

You can get more in depth graphs, stats, observations for this experiment here.
Answer: One should be aware that a weakly referenced object will only get collected when it has ONLY weak reference(s). If it has so much as one strong reference, it does not get collected no matter how many weak references it has.
Comment: This is common sense... same goes for softref and phantomref.
Answer: WeakReference: objects that are only weakly referenced are collected at every GC cycle (minor or full).
SoftReference: when objects that are only softly referenced are collected depends on:

-XX:SoftRefLRUPolicyMSPerMB=N flag (default value is 1000, aka 1 second)
Amount of free memory in the heap.
Example:

heap has 10MB of free space (after full GC);
-XX:SoftRefLRUPolicyMSPerMB=1000

Then object which is referenced only by SoftReference will be collected if last time when it was accessed is greater then 10 seconds.


Magneto lifting and throwing humans?

Question: Can Magneto lift and throw humans like Darth Vader can with Force powers? And did Magneto do it in the comics?
Answer: His powers only deal with magnetic fields and related subjects (eg: electricity).
If a person is wearing enough iron, or objects with enough iron in them, he could lift them - and possibly control them, but the average person does not. A soldier, on the other hand, might have enough armor that might make them susceptible to body control by Magneto.
The closest thing I can think of for Magneto doing such things in the comics is when he ripped the adamantium from Wolverine's skeleton. I admit, though, that I haven't read all of the X-Men comics and none of them from the past 10 years, so it's certainly within the realm of possibility that he has controlled humans by controlling their clothes/armor.
In the second X-Men movie, Magneto rips out the iron which Mystique had injected into a guard. He could have used it to sort of puppet the guard had he wished. He also used his powers to control Wolverine in the first movie.
Comment: Armor? Considering Magneto is in 20th century, the armor is made of Kevlar, synthetic weave, ceramic plates, or at most, nanoceramics. None of the materials used to make armor in 20th century are even remotely magnetic.
Comment: @Kevin, you're correct. I edited my answer above to reflect that.
Comment: I Believe that was actually the second movie.
Comment: @DVK, except in the savage land :p. But yes, that's why it's very unlikely but it IS possible.
Answer: You're all wrong. Magneto can levitate people because water is diamagnetic. With a strong enough magnetic field, scientists have levitated animals like frog. Since magneto has ridiculous amounts of electromagnetism, he can lift a human without any iron content. He only needs water in the human body.
Answer: Ferrous metals make up less than 1% of the body's mineral content – as opposed to Magneto's physical makeup, which has ten times the average human's iron content, according to the X-Men Unlimited series.
That would be enough for Magneto to manipulate various push and pull maneuvers, and could conceivably lift a person, but not without inflicting serious internal damage to the individual.
In Wolverine's case (as well as Deathstrike, Bullseye, Hammerhead, and some others), the adamantium in his body contains enough additional iron content that Magneto could levitate him without injuring his vital organs.
Comment: Iron in your blood is not ferromagnetic, as it is part of molecules, (for example, oxids) and does not form a crystal structure.
Answer: I remember reading that when asteroid M crashed to the earth, passing through the atmosphere greatly enhanced Magneto's powers. He was able to manipulate even the small traces of iron in a person's blood. This was also what made him powerful enough to separate the Adamantium from Wolverine's skeleton. Magneto was so power hungry at this point that Charles felt the only option was to make him a vegetable. Of course this had its own side effects In the Ultimate universe, I don't think any of this happened yet. But at his peak Magneto's powers were off the charts.
Answer: If you really want my answer, its going to be a bit sarcastic, but pardon that.
He can do it if they have braces, otherwise use prostheses(including the various metal plates that doctors like putting in people's skulls after injury).
Of course these plates are usually not ferromagnetic, but even they can be affected by magnetic induction(a man with a titanium plate in his head cannot go into an MRI because it would become incredibly hot).
Of course, if Magneto has succeeded in gaining generic artifact of power enhancement, he might be able to pull the iron in blood(while simultaneously repelling hydrogen)...
Unfortunately all of these methods will harm the person, the latter causing them to explode, so don't get your hopes up for seeing it in a movie.
Answer: I'm not sure about the comics, since I don't know them, but this scene that shows Magneto escaping shows that he can indeed lift up people (if they have a lot of iron in their blood, apparently).
Answer: Protons, neutrons and electrons all have magnetic fields that interact to hold the atom together, the positive charges of the protons governing the number of negatively charged electrons orbiting the nucleus and therefore dictating the type of atom it is. The exchange of the negatively charged electrons between the positively charged nuclei of atoms is what creates molecules. These magnetic fields seem minuscule, but their combined strength is so strong that they overcome the forces of gravity. Hence the reason you do not simply fall through the ground into the center of the earth. The electromagnetic bonds between the atoms of you feet are repelled by the electromagnetic bonds of the atoms of the ground. These small magnetic fields cause a non-ferrous substance to be either paramagnetic or diamagnetic.
in other words yes he should be able to lift a human simply by controlling the electromagnetic bonds in the human body
Comment: This may be so but it doesn't answer the question.
Comment: Yes it does answer the question. everyone has a magnetic field in there body therefore he should be able to control that field and throw humans without metal.

Magneto lifting and throwing humans?


How can I add live stream to a playing video with minimal distraction?

Question: I have a live stream of comments related to specific time slots in the video, I want to display them at their appropriate time during movie play without causing much distraction? Do you have suggestions for apps in which this was done in a nice way?
Comment: Welcome to UX.stackexchange. Aside from having the app "look nice" what specifically would you like to know? It's less a question of "should it be to the left or right" but how the users interact with the app (or where you want to lead the users).
Answer: You can live stream comments or video meta data a couple different ways. I used soundcloud and genius.com as examples of good annotation and I think the mental models their users follow can translate well into video annotation.

Parallel Annotation

Similar to how Soundcloud operates with user comments on top of songs, this would simply display a user comment with a 'caret' for clear indication on the buffer bar/stream. This is probably the least distracting of the three options however it may not be the best way to deliver your content.

Parallel Annotation Layover

Almost working exactly the same as the first option however this overlays the comment on top of the video. Depending how important your meta data is this could be a viable solution. However if your comments and meta data are not necessary for viewing the video or enhancing the experience it could be a distraction for the user

Sidebar Annotation

Similar to how genius annotates lyrics and how other video players allow a live stream of comments side annotation gives you the best option for maximum real estate. If you have a large number of comments or meta data associated with a specific part of your video this would most likely be the best option.
Answer: Scrolling tickers at the bottom of the screen are commonly used by large news/sports networks to display relevant information to viewers. As long you don't mind having a small overlay at the bottom of the screen this is an experience that the general public should be comfortable with.
Ticker examples:
Comment: The problem with a ticker is that @egsemsem wants contextual comments related to specific points in the video. Tickers as we know them (news + sports as you provided) usually provide additional information or broad context to what is being shown. Its hard to give specific comments or meta data to video with a ticker


How to ferment 15-gallon batches

Question: It's probably a simple solution, but I'm planning on making the jump to AG very shortly and, having only done 5-gallon batches in the past, am wondering what is the easiest way to ferment a full 15-gallon batch. I would expect most people to say "just use 3, 5-gallon carboys", and that is fine. I am curious if there another way short of purchasing a 15-gallon conical fermenter? I suppose it's simply a question of volume, but would like to know how other AG brewers do it and what kinds of setups might be involved.
Comment: I don't understand these comments.
Comment: in my experience, neither are most all grain batches.
Comment: Not sure why all-grain is necessarily related to 15 gallon batches...
Comment: It's not, but most extract batches aren't 15-gallons.
Answer: The advantage (aside from price) of getting three 6 or 6.5 gallon better bottles or glass carboys would be that you can move them around without injuring yourself.   I'm using two 6-gallon better bottles for the 10 gallon batch I made recently, and they're working nicely.   That also lets you experiment with different kinds of yeast in the same wort, etc.
Comment: 3 vessels are the way to go for sure, simply because you can't easily move a 15 gallon filled fermentor around very easy.  Not to mention you MUST have temp control at that volume, so you'd need an even bigger fridge or something to hold that volume fermentor.
Comment: Also, I brew ten-gallon batches in two fermenters, and it is nice to be able to experiment.  For example, I made a Saison with both Wyeast 3711 and Wyeast 3724, so that I could taste the difference between the two.

How to ferment 15-gallon batches