How long are lines in Tel Aviv airport

Question: Is two hours before flight time early enough to show up at the Tel Aviv airport for a mid-morning, El Al flight to the States on a typical Wednesday?  Or are the lines there so long that three hours is advised.
Answer: The information in some answers above is outdated.
On my last trip from Tel Aviv airport I waited full, nasty 60 minutes for passport control, and it's as terrible as it sounds.
I would never plan to arrive to Tel Aviv airport less than 3 full hours before the scheduled departure.
Arriving 2 hours before flight is very edgy, you will probably make it, but you can also miss your flight.
Less than 2 hours - you are in trouble.
And this is my advice for Israelis.
For foreigners - I wouldn't dare arriving less than 3 hours before departure.
Answer: The lines at Ben Gurion Airport are short, some of the shortest in the world for an airport of this size (there's a reason for this—long lines are bad for security). Check-in lines can take about 40 minutes tops (less if your flight leaves soon), and passport control usually takes no more than 5 minutes (maybe 15 at peak times, but I have never seen more than this). The standard onboard bag screening line takes about 10–15 minutes too.
The problem, as chx also said, is security: if you are deemed 'suspicious', prepare for questioning, which could take ~2 hours. They are usually nice about it if your flight departs soon, and might rush you through certain stages after ascertaining that you are safe. However, this is a good reason to follow the semi-official recommendation and arrive at least three hours early.
Comment: I can agree to arriving three hours early - at least. I checked in at Terminal 3 and there was a queue of 1.5 hours, - so it was not short. On top of that, I was deemed suspicious (didn't have a checked bag since my wife was carrying it on a different flight) which took another 30 minutes. From terminal 3, you will be shuttled to terminal 1, there are no flights directly from terminal 3 (except to domestic Eilat). This shuttle service will take another 20 minutes. All in all, after quite a sprint, I was the last one to arrive at the gate!
Comment: It sounds like you were in Terminal 1 and were shuttled to Terminal 3? Almost all flights depart from Terminal 3. The lines Terminal 1 can indeed be long, it's not a very good terminal, having been built decades ago.
Comment: Sorry, I switched them then.
Answer: Short Answer
Judging from my recent personal experience (November 2016,) I would definitely advise getting there the recommended 3 hours in advance, especially if you're traveling by yourself. This was also the advice I received consistently from locals while in Israel a few weeks ago.
More Detailed Answer
Your actual wait times will depend on how many other flights are leaving soon on an airline whose check-in desks are in the same area as yours. Arriving much more than 3 hours early, however, is not helpful because they will not let you go through the line for the exit security interview that you have to do before checking in:

The security check is open for every passenger who arrives up to three and a half hours before the flight. The airline check-in counters are opened three hours before the flight's departure time. Passengers are required to present a valid passport and the flight ticket or a proof of purchase of a ticket (electronic ticket).

Source: Website of Ben Gurion Airport (and also observed in personal experience)
Security/Check-In/Immigration Process
The process at Ben Gurion is a bit different from most other countries in that there is an extra step at the beginning:

The first step is a security interview that you must go through before you can check in for your flight. The interview itself wasn't particularly long when I went through it. They just asked standard questions to make sure that you didn't seem like a terrorist and that there weren't holes in your story and such. However, if they feel like it, they could start opening up and searching through your luggage which will obviously take a lot longer. This includes your checked luggage, which you will still have at this point and which must be marked by the interviewer before you can check it in with the airline.
Which line you go through for this interview depends on which
airline you're departing on, with several airlines sharing the same
interview line. This can result in the line length being highly
dependent on how many of those other airlines are operating
departures near yours. They do, however, go through the queue and
give priority to people with departures coming up soon.

The second step is actually checking in with the airline. At least in the case of an Alitalia flight to FCO, I was not allowed to check in online in advance, but instead had to go to the check-in desk. Fortunately, this was relatively quick for me because my SkyTeam status allowed me to use the priority check-in lane, but otherwise it would have taken a while.

The third step is showing your boarding pass and passport at the entrance to the security line.

The fourth step is going through the security line. If you're unlucky like me (likely because I'm a young adult who was, at this point, traveling alone,) this means going through a 'special' line where they open up your carry-on and swab down every last thing in it, as well as requiring you to take off your shoes, belt, etc. All electronics had to be separated out (not just laptops, but all electronics.) Fortunately, though, at least I didn't get the strip search treatment to which chx was subjected. This part of the process took a while, as they could only process 2-3 people at a time and it took a few minutes per person.

After going through security and re-assembling all of your carry-on and clothing items, the next step was exit immigration. This was pretty straight-forward with nationals of most countries (basically any country with biometric passports) being allowed to use automated kiosks. Unfortunately, the facial recognition software doesn't seem to be all that great and it didn't recognize me, resulting in another few minutes delay waiting for an immigration officer to manually override it.

Once you've cleared immigration, you can finally go to your gate.

Also, before even getting to the airport terminal itself, there are security checkpoints on the road entering the airport. These didn't add more than a couple of minutes delay in my couple of experiences, though.
Time Required in My Experience
In my case, I arrived at Ben Gurion about 6 hours before my flight, as I was traveling to the airport with the rest of my tour group, which was leaving on a different flight (they were going to Newark on United; I was going to Rome on Alitalia.) Both United and Alitalia used check-in desks behind the 'A' security interview queue, but I wasn't allowed to enter the queue there until 3 hours prior to my flight's departure. Fortunately, they do at least let you wait in a relatively comfortable food court area until you can enter the queue. Around 9:00 AM on a Thursday, the A interview queue was relatively empty. However, by the time I was allowed to enter the queue around noon, it was quite long with several flights checking in on different airlines. From the time I entered the queue until I had completed the interview was a bit over an hour.
After going through the interview, it was around another hour for the remainder of the check-in, security, and immigration process (even with priority check-in.) By the time I finally arrived at the gate area, it was only about 50 minutes prior to departure (i.e. about 15 minutes prior to the stated boarding time.) Had I entered the security interview queue 2 hours prior to departure instead of 3, it's likely that I'd have missed my flight and this is without going through the more intensive search procedures that chx experienced.
In total, this was a time of over 2 hours from when I entered the queue for the pre-check-in security check to when I was actually in the boarding gate area.
Answer: Two hours? Absolutely not. If the security people are not happy with you for whatever reason, they will escort you politely to a little booth where you will be asked to remove (almost) all your clothing, sit there in your underwear as they screen those and then they will remove every. single. piece. from your luggages and hand inspect it. I have went through this at the Eilat airport and Ben Gurion too. On the same day. I missed both of my flights, needless to say. (And I have been let back into Israel some years later -- haven't tried flying from an Israel airport since this happened, though.)
Comment: If you're into the screening, even four hours won't help. You can't optimize on corner cases.
Comment: Nah, it didn't take more than two hours as far as I can remember but you need time to move, get there before the door closes etc. Three hours IMO is enough.
Answer: The waiting time in TLV is surprisingly short and procedures are fast.
That being said - if you are of any "suspicious" Characteristics - you will need more time.
Two hours should be enough.
Interestingly enough, The last time I have visited there, I showed up three hours before, but the check-in (and security) for my flight was only two hours before the flight - so I was facing an empty counter with no security personnel. When they finally arrived, they cleared the area and started the process.
If you indeed are being held for further questioning - this can take more time, but the security people will most of the time do everything they can to rush you to your flight in time. I have noticed that the listed boarding times in TLV are many times not accurate (earlier - on purpose) and that the real boarding and departure times are late - and I think it is for this exact reason.
If you have anything suspicious in the bag (electrical items, tools etc.) allow more time, and be honest about it from the start! One time they took my bag out of the cargo area when I was already sitting inside the plane - and brought it to me to identify. This caused 30 min delay in the flight.
Be aware though, that like any other country (and even more) the TLV airport is affected by specific days / periods / holidays of extreme traffic. For example the Jewish Passover week, or the period following the Jewish new years holidays are considered peak periods in which it is best to arrive 3 or even 4 hours ahead.
Answer: The info above appears to be outdated or misleading.
Based on the advice from the internet, I arrived 3 hours early (10:30 flight on a weekday by an ethnic German to Germany on a German passport) but was at the gate in 30 minutes. The entire process was the same as any other airport, even a bit faster.
Details:

pre-airport security: already done when I boarded the train to the airport
check in: I had no checked luggage and had checked in online.
pre-security exit interview: 2 routine questions (I had arrived via land crossing from Jordan, and they didn't even ask about that.)
security: normally long line for an airport of this size, about half the queuing space used (I didn't even have to take liquids out.)
passport control: immediate with biometric passport, no questions asked

Ignore the guy above talking about a terminal switch. The train arrives at Terminal 3, where most flights depart. There isn't even any signage about how to get to other terminals, and I wouldn't know there are other terminals if I hadn't been read about it here.
Comment: This experience can vary widely based on your nationality and whether they find you suspicious.
Comment: Was it the same airport? Obviously the larger the airport, the more time you will need to pass everything.

How long are lines in Tel Aviv airport


Is it right to animate forms in corporate platforms?

Question: I working on an internal user panel for a company that provide premium services. in their platform has lots of forms with too different inputs.
It is so important to users to know where there are and what field is focused now. so I decided to use a very simple animate for labels, but I not sure for some pages what are just empty fields could be useful or not.
any style/way you recommend?
Comment: Assuming:
1: Not selected Feild
2: Selected Feild
3: Values in feild
Comment: Are they correct?
Answer: I agree with what you are trying to do in spirit - but I think you may run into problems with the animation you're proposing. In addition to challenges relating to accessibility and mobile, tilting the label when the field becomes active obscures what is being requested of the user.
The example below is taken from Yahoo's user signup form and demonstrates tactics that may help mitigate your concerns, namely the use of color to indicate the active field (as well as to highlight validation errors).
Answer: When designing an UI, it is better to go as standard as possible -- don't try to reinvent the wheel. Use things that the user is familiar with.
Animations are a non-standard way to focus user's attention on a field, and may confuse the user which didn't expect it.
Furthermore, either you go for an animation that shortly ends (and will not serve its purpose if the user looked away for a moment and missed the animation) or you go on a looping animation (which will most probably annoy the user).
Instead, highlight the field background or draw a red border around it. This will work, it's much easier to implement, requires less resources, and is pretty much standard.
Comment: I think it is self-evident why this is a bad answer. If you said "in a B2B app for power users, the UI should be as functional as possible" that would at least be logical, or showed examples of 'conservative UI' and explained why they are effective, then this would be a good answer. But stating all UIs should be 'conservative' is not user-centric.
Comment: Perhaps I did not explain myself well. I slightly modified that point.
Comment: That's a lot clearer :) Other comments deleted, and vote updated accordingly.
Answer: If you have lots of feilds in one form, its better to divide the form in different sections if possible.
And put a completion status data.
Suppose User is filling Account Section,
Status must show, you are in Account Section.
You can use little animations in forms, what you are using is also good enough.
if Field is selected, change the color of the feild. That will be recognized soon.


Extending an outlet in the middle of a run

Question: I would like to add an outlet to my back yard. In my basement there is a 20 amp circuit that runs from the breaker panel to my garage. Can I tap into the circuit in the middle of the run essentially forming a Y. The bottom part of the Y being at the breaker panel and one branch of the Y runs to the garage and the other branch runs to the backyard. I want to put a GFCI on the outside outlet and there is already one in the garage.
Answer: The main problem with this approach is that if you simply cut the cable in half, there won't be enough slack in the wires to get sufficient length-in-the-box (6" per NEC) for wiring the intermediate splice.  Oops!  I would extend from the garage outlet instead -- you can simply tap off its LOAD terminals and have GFCI protection for the outdoor outlet without putting another GFCI in.
Comment: @J.Doe -- for a garage space -- using UF to run out the back of the box, so to speak, and then into conduit on the outside of the house to the outlet's an option...
Comment: Thank you for the response. The problem with that it the garage has been dry walled and would be tough to get at. Could I add two junction boxes in the basement to increase the length of available wire to work with and still be in compliance with the NEC?
Comment: Using LBs, you could even pop out and go down into the ground and back up at your exterior outlet location if you want to minimize the exterior conduit running around.  I'm pretty sure you only need to go down 12" on a GFCI protected circuit and if you run against the foundation you shouldn't hit it ever.
Comment: I have decided to add a breaker to my panel and have the outside circuit all on its own. I know a bit of over-kill but it was the easiest thing to do in my situation. Thanks everyone for the great suggestions.


Non-Toxic Wood Glue

Question: I've got a cutting board that was left soaking for too long, and it subsequently cracked and split. Is there a non-toxic wood glue I can use to glue it back together? I'm planning on using a quick clamp and whatever type of wood glue is safe to use for food prep surfaces, if there is such a thing.
Answer: Tightbond II is an excellent choice, but it's not waterproof, and it softens considerably under heat.  TightBond III has much better heat and water resistance.  If there's any chance that somebody will put your cutting boards in a dishwasher, I'd spring the extra two bucks for the TightBond III.
Comment: Looks like II is water resistant, and III is waterproof. It's a huuuuuge cutting board (maybe falls under the chopping block category), so I don't think it's ever in danger of being put in the dishwasher.
Answer: According to this article regular old TiteBond II is non-toxic and FDA approved for cutting boards.

Non-Toxic Wood Glue


Add UV Mapped texture coordinates to OBJ file?

Question: I'm working on an OBJ parser for a game engine I am creating. I have the model being loaded correctly and all, but I've never really used blender before and I'm not entirely sure how to get my UV Mapped texture into the OBJ file. Inside the OBJ file, lines typically start with "v", "vn", and "f" for me, which seems normal. However, I saw someone who had lines starting with "g" that indicated texture coordinates in his OBJ file. Does anyone know how I could do this? I already have the texture mapped and everything, I just can't understand how I am supposed to get it into the exported OBJ file.
Comment: Blender exports this automagically... Lines starting with `vt` indicate texture coordinates (UV), and faces defined in the format `f 1/1 2/2 3/3` are faces with an UV map.
Answer: If you want texture coords when exporting to .obj, make sure you have Include UVs ticked in the exporter options (it should be checked by default). Also, make sure that you actually unwrapped the model, check UV Maps under Data in the Properties panel to make sure that a UV map is assigned to your object.

If you should open an obj file you should see something like
vt 0.000100 0.000100
vt 0.999900 0.000100
...
f 1/1 2/2 4/3 3/4

where the lines with vt are texture coordinates and the line(s) with f specify faces that are a part of the UV map. Read more on the obj format here. That being said, it is an open format and people might roll their own custom exporters and importers and name these identifiers differently (not recommended). I know that g is used by default for groups so you might be looking in the wrong place, also if you have a texture with the model make sure their is a .mtl file along with the obj to ensure that everything works correctly.
Comment: @TobiasKolb Press T to open the shelf with the options.
Comment: How do I find these particular settings to tick (Apply Modifiers / Include Edges / ...)  in Blender? This is what I'm looking at RN https://i.imgur.com/xd3mgdI.png
Answer: Minimal example to include texture coordinates / vt in OBJ format:

File -> New
Change from Object Mode to Edit Mode
Click Shading / UVs from the upper left vertical aligned tabs
Under UV Mapping, change from Unwrap to Cube Projection under
Export to OBJ

Conclusion: The key to include vt in OBJ is step 4. Step 4 is only available in Edit Mode.
Answer: You don't have to set Cube Projection. You can also use Unwrap, as long as you choose something under UV. It depends on how you're mapping.


Will a Nikon AF-S Nikkor 50mm 1: 1.8 G lens work on my Nikon D3100 series camera?

Question: Will an AF-S Nikkor 50mm 1:1.8G work well with my with Nikon D3100?
Comment: Good evening Michael and welcome to Photo.SE! Please take a moment to take [the tour](https://photo.stackexchange.com/tour) On this Q&A website it's expected of question askers that they describe what they've tried so far to solve their own question and also to provide details on their question. It's ok if your research did not give you answers, but then at least we know what you've looked at so far and what else we can tell you. Have you checked Nikon's website to see if the lens will fit on your camera? If so, what did you find? What does "working well" mean for you?
Comment: To understand what the letters on the lens mean, see the Nikon Lenses answer to: [What do all those cryptic number and letter codes in a lens name mean?](//photo.stackexchange.com/a/76183)
Comment: Good Day All. Firstly I am new to all this and at an age were progress can easily baffle me. I really do appreciate all of your comments and suggestions of making good titles to questions and related sites that will be of help. I don't even know if I am writing this in the correct place. Anyhow. Yes I am thinking of purchasing this lens. I have only just gone to digital and found it really fascinating. My boy is a freelance and his advice was to try and find the lens as it is much better than the 3.5 which comes with the standard box. If I am doing anything wrong on this site tell me. Michael
Comment: You can [edit](https://photo.stackexchange.com/posts/121209/edit) your question if you would like to add new information.
Comment: Hi Michael, welcome to Photo-SE. To help make your question better, let me ask you, do you have reason to think it won't work? Are you considering purchasing the lens? Also, when editing your question, please edit the title to be descriptive and specific to your question. "Compatibility of lenses" could apply to thousands of questions. For instance, most of them probably have nothing to do with Nikon cameras or lenses. When writing titles to questions, aim for complete sentences ending in a question mark. See: [How do I write a good title?](https://meta.stackexchange.com/a/10648/175991).
Comment: Does this answer your question? [Will Nikon AF-S "G" lenses autofocus on D3xxx bodies?](//photo.stackexchange.com/q/90086)
Answer: AF-S Nikkor 50mm 1.8G will work fine on D3100 as all G lenses will. G (gelded) lenses have built in focusing motor and don't need camera screw driver motor to focus them, which is not present on Nikon 3xxx and 5xxx series.
Comment: Hi George and thank you. So the lens will auto focus without any problems?Michael
Comment: Yes, It will :)


Navigate to another ViewController programmatically using Custom Segue

Question: I have two view controllers in the storyboard. I did successfully navigate from the 1st one to 2nd one programmatically:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *yourViewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"yourViewControllerID"];
[self.navigationController pushViewController:yourViewController animated:YES];

I want to use my custom Segue to navigate to other page instead of pushViewController without using interface builder.
This is my custom Segue that I could easily use with interface builder:
@interface LeftToRightSegue : UIStoryboardSegue

How about do it programmatically?
Answer: Here's how I've done it. I create my segue subclass then call it from my sourceViewController IE the one I'm in, init my destinationViewcontroller then pass them to my custom segue class.
YourViewController *yourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"YOURStoryboardViewControllerID"];
CustomSegueClass *segue = [[CustomSegueClass alloc] initWithIdentifier:@"ANYid" source:self destination:yourViewController];
[segue perform ];

Comment: Thanks, Alex. I'll try it and tell you the result.
Answer: I believe you have to use interface builder to inform the storyboard that a segue of a particular type should exist between two elements and how to identify it.  You can trigger it in code using performSegueWithIdentifier: but, according to the docs, you can't actually create one in code:
"Your app never creates segue objects directly; they are always created on your behalf by iOS when a segue is triggered."
Answer: As Phillip Mills wrote, you have to create a segue in IB. You can do it by ctrl-dragging from one view controller to another and choosing "Custom" from the menu that appears. Then select the new segue and open attributes inspector. Enter an identifier for the segue and set its class to the name of the class you've implemented. After completing these steps you can use performSegueWithIdentifier:.
Comment: Thanks, but I think I wrote already in the question, that I have done these steps from IB.
Answer: I'm assuming you're asking how you should implement the custom segue's subclass so that you don't have to use navigation controller?
If yes then I'd override the perform method in your LeftToRightSegue class as follows:
- (void)perform
{
  UIViewController *source = self.sourceViewController;
  UIViewController *destination = self.destinationViewController;

  UIWindow *window = source.view.window;

  CATransition *transition = [CATransition animation];
  [transition setDuration:1.0];
  [transition setTimingFunction:[CAMediaTimingFunction functionWithName:UIViewAnimationOptionCurveEaseInOut]];
  [transition setType:kCATransitionPush];
  [transition setSubtype:kCATransitionFromRight];
  [transition setFillMode:kCAFillModeForwards];
  [transition setRemovedOnCompletion:YES];

  [window.layer addAnimation:transition forKey:kCATransition];
  [window setRootViewController:self.destination];
}

You can change the type of animation if you want something different than a push.
Also don't forget to import QuartzCore:
#import <QuartzCore/QuartzCore.h>

Comment: Thanks, What you assumed is wrong. my question is something else.
Answer: Swift way, Click on the Segue and select Custom.
Now you can create a subclass of UIStoryboardSegue as follows
class MySegue: UIStoryboardSegue {
    override func perform() {
        let source = sourceViewController as! UIViewController
        if let navigation = source.navigationController {
            navigation.pushViewController(destinationViewController as! UIViewController, animated: false)
        }
    }
}
then select Segue and set Class and module properly. Hope it helps


Basic lands during booster draft

Question: What do you do in the event that you open a basic land in a booster draft? Do you just treat it like all other cards in the booster?
Answer: Basic lands are not removed from the booster pack in booster draft. They are drafted as any other card in the booster pack. From official MTR (Magic Tournament Rules):

7.7 Booster Draft Procedures
All players must open and draft the same type of booster at the same time. Players open their first booster pack and count the cards face down, removing token cards, rules cards, and any other non-game cards.
Answer: Technically the basic land card isn't supposed to be removed from the packs when drafting, but most of the time it will be. This is not official in the tournament rules, but has become pretty standard practice.
There are exceptions to this, whenever the slot has something other than just basic lands. One notable example of this exception is drafting Unstable, where the basic land slot could also contain steamflogger boss, a card that could only be in the basic land slot in those packs. Since there was something other than a basic land in those slots sometimes, that slot must be left in the draft.
Foil cards are never removed from the draft, including foil basic lands.

Basic lands during booster draft


How to erase all transaction history of an account?

Question: Is there a way to remove all the transaction history of an account? Let's say I have sold my account name, but don't want to show all the old transactions of that account.
Comment: Its possible to delete the contract data stored in ram, but not the transaction that were made .any one reply action basing on  transaction log .
Answer: No, the blockchain is immutable and distributed.
Due to immutability, any change in past blocks would alter the block hash, making the rest of the chain invalid.
Due to being distributed, anyone can download the blockchain, and it would be difficult to erase it from everyone's memory storage.
Comment: so if i sold my account name, that person will still have all the transaction history of that account too? even if the keys have changed?
Comment: yup that's right


Should you always Code To Interfaces In Java

Question: I understand the principles of Coding to Interfaces - to decouple the implementation from the interface, and to allow implementations of the interface to be swapped in and out.
Should I code to interfaces for every class I write or is that overkill? I don't want to double the number of source files in a project unless it's really worth it.
What factors can I use to decide whether to code by interface or not?
Comment: See this question as well: http://stackoverflow.com/questions/3036749/is-it-the-best-practice-to-extract-an-interface-for-every-class
Comment: Thanks. That's what I was after
Comment: Using always an interface first may encourage strict encapsulation and readability, in terms, one have to deal with interface only and even don't see implementation.
Answer: In general I agree with the other answers: use an interface when you know or anticipate change and/or different implementation, or go for testability.
But it's not always easy to know in advance what may change in the future, especially if you are not so experienced. I think the solution for that problem is refactoring: keep it simple (= no interface) as long as it is not needed. When the need arises simply do an "Introduce/Extract interface" refactoring (supported by almost all decent IDEs).
When you do it extract only those methods that are actually needed by the callers. Don't be afraid to extract more then one separate interfaces (if not all of the extracted methods are really coherent).
One driver of the refactoring might be the testing: if you can't easily test something with classes only consider introducing one/some interface(s). This will also allow you to use mocking which may greatly simplify testing in many cases.
Edit: based on Tarski's comment I've realized one more important scenario/adjustment to the previous statements:
If you provide an external API (for other [sub]projects, or really release it "to the wild") then using interfaces in the API (except for simple value classes) is almost always a good idea.
It will allow you to change the impl if you like without disturbing the client code. You will have a problem only if you also have to change the interface. Not breaking compatibility will be very tricky (if not impossible).
Comment: You are right with the recompilation, you have to do it after the refactoring, but only once. After that implementation is nicely decoupled, so you are free to change it/add new ones without the need for recompilation.
Comment: great answer. I've encountered exactly this - I had a class used by multiple client projects and now need an interface to offer an alternative implementation - i could use overriding but it's not as clean. The problem is that I then need to recompile all the existing clients to use the interface. As you put it, I didn't know I needed the interface when I started
Comment: Regarding the edit, you may want to read about: http://martinfowler.com/bliki/PublishedInterface.html
Answer: I use it when at least one of the following is true:
1) I want to decouple unrelated modules/classes from each other, and I want it to be reflected by the java package dependencies.
2) When decoupling is important in terms of build dependencies
3) When the implementation may change through configuration or dynamically at runtime (usually due to some design pattern)
4) When I want a class to be testable, I make its "link points" to external resources interfaces, so that I can use mock implementations.
5) Less common: When I want to have an option to restrict the access to some class. In this case my method returns an interface instead of the actual class, so the caller knows that I don't expect him to do other operations on the returned value.
Comment: +1 for testability and access restriction
Answer: No, every class should not have an interface.  It's overkill squared.
You use an interface when you need to abstract what's done from how it's done, and you're certain that the implementation can change.
Have a look at the java.util Collections API for a good example.  The List interface is a nice abstraction for the general idea of a List, but you can see that there are many ways to implement it: ArrayList, LinkedList, etc.
UPDATE: So what about that case where you design a concrete class, decide after you have clients that an interface is needed, and then you break your clients by adding an interface?  Yup, that's what happens.  How can you know what you don't know?  No software or methodology can fix that.
The good news for you is that extracting an interface from a concrete class is an easy refactoring to do for both you and your clients.  IDEs handle that kind of thing routinely.  You and your clients should take advantage of them.
I'd say that layers, like services and persistence, should always have interfaces.  Anything that can be proxied should have an interface.  If you're doing Spring AOP, anything that you want to decorate with an aspect should have an interface.
Model or value objects, like Person or Address or Phone, should not have an interface.  An immutable value object should not have an interface.
The rest fall into gray areas.  Use your best judgement.
Comment: But what if you don't know you are goign to need the abstraction? E.G. You code a class without an interface, your clients depend on the class, you then need another implementation but cannot extract an interface without breaking binary compatability.
Comment: ^ this. Also, is it really that hard to just create an interface and have a class implement it? Does it really take much more time to just do it?
Answer: Long story short, no. You are the creator of the application, so you have a decent idea of what could change. Some of the design pattern books go a little crazy on it in my opinion since they seem to always push designing to interfaces and not implementation no matter what. Sometimes, it is just overkill. For my latest application (small size), I have a database interface because I think there is a chance I may later port it to the web and switch to MySQL. Of course in reality, it would be easy to create a database interface down the road from my existing class and just add "implements myDbInterface" later with a couple of small changes. This works because I am the only developer though. On a larger team, or different type of product, it may be a different answer. Just use your best judgement (after reading all the good SO answers of course).
Answer: I like to think of that one uses interfaces when pluggability and the potential for different behaviour is important. Services are the perfect fit. One might want a default implementation, but faking(mocking) etc is another. This obviously means there should be an intf as there will always be at least 2 forms.
Value types on the other hand should be final classes. They should never be extended. Value types include something like Suburb, MimeType. If there are variations of these use composition. As a goal i try and put little behaviour if any in my value types. Validating the simple type it wraps etc is probably the most complex thing that it does. Eg A Color class which takes r/g/b should validate that each component is between 0 and 255 and thats it.
Answer: Yes use interface when you expect a behavior to change. . In future.
Or your class which can handle changes in clear way.
eg.
public static void main(String s[])
{
 Employee e1=new Employee(new Salesman());
 Employee e2=new Employee(new Manager());

 system.out.println(e1.performaction());
 system.out.println(e1.performaction());
}

Class Employee
{

//which changes frequently
Authority a;

public Employee(Authority a)
{
this.a=a;
}
public String performAction()
{
a.action();
}
}

//------------------------------------------------------------------
interface Authority
{
public String action();
}

class Manager implements Authority
{
public String action()
{
 returns "I manages People";
}

 class SalesMan implements Authority
{
  public String action()
{
 returns "I Sell things Company makes ";
}
}


Visa information on B2 visa to the USA

Question: My child's surname has changed and he has a new passport, but the B2 visa has his old surname. Can we travel with the two passports and the documents that show his surname change?
Answer: According to the State Department here:

I changed my name. Is my U.S. visa with my old name still valid?
If your name has legally changed through marriage, divorce, or a court
ordered name change, you will need to obtain a new passport.  Once you
have a new passport, the Department of State recommends that you apply
for a new U.S. visa to make it easier for you to travel to and from
the United States.

So it's possible, but going through immigration may take extra time as they review the documents.

Visa information on B2 visa to the USA


Why can blue LEDs be used for generating white light, but red LEDs cannot

Question: LEDs consist of pn-junctions, so why can blue LEDs be used for generating white light, but red LEDs cannot
Comment: @Jon That looks like an answer... :)
Comment: Because the blue/UV light can be transformed with phosphors into much of the visible spectrum, since they are (energetically) at the top end of the visible range. Up-converting red photons into the yellow/green/blue is really hard and inefficient.
Answer: "White" light consists of a mixture of at least three colors that should be blue(ish), green (ish) and red(dish).
The most common way to get white from basically monochromatic LED light is to use fluorescent material.
This is what a spectrum of a blue LED looks like:

This gets converted in the LED to something like this:

In fluorescent material,  an electron is excited by a single incident photon and then relaxes over intermediate energy levels. This means that photons emitted during this relaxation can only be of lower energy (shifted to the red end of the spectrum) compared to the exciting photon.

So it's easily possible to get red from blue but not the other way round.
Answer: The blue led has wavelength of about 450nm and has more energy than red photons at about 600nm wavelength.  To create white light phosphors were discovered a long time ago, phosphors are used in fluorescent bulbs (convert UV to blue, green, red) and in old CRT TVs that converted electrons into colours of light.  The phosphor atom takes in a higher energy photon and then produces a lower energy photon ( color) and heat.  There are many different phosphor chemicals (1000s to 10000s) that absorb UV or blue or other and make different colours of light.
Comment: This does not get to the point why blue is necessary.
Comment: Its just economics, more expensive white led lights (highest CRI) actually used UV and converted to to B,G,R.  Also some white LEDs had red leds for red and blue led and green phosphor etc.... over the years many combinations have been tried.
Comment: That doesn't explain why *blue or UV* is necessary then. The necessary bit is that phosphor converts from higher-frequency to lower - blue to yellow or red for instance - not the other way around, red to blue for instance. That said, I do have a sliver of material that does just that...
Answer: You can build white phosphor LED based on red LED, but it will be extremely ineffective (<1% efficient).
There are anti-stokes luminophores, which can convert photons of lower energy to photon of higher energy (extra energy comes from vibration). This way you can convert red to blur and green, and hence get white color.
But anti-stocks luminophores have extremely low efficiencies, and that is the reason it is not used this way.


What should the behavior of Disabled Link/Button be?

Question: What is the best practice for designing disabled states? In general disabled states cannot be interacted with.
Any opinions on presenting a tooltip/pop-up on hover or click when the user interacts with a disabled/greyed out link or button.
Answer: Adding a Tooltip to tell users why a button is disabled is a good way to reduce frustration!
Disabling a button could be frustrating and confusing to users in many cases, as yes users usually cannot interact with a disabled button/object. Adding a Tooltip that guides users on the reason an object is disabled is one way of interaction that would reduce users' frustration.
Take this example: Add Course button is disabled till all mandatory fields are filled out. When the button is hovered, a Tooltip will display to explain why the button is still disabled.
-Note: When all mandatory fields are filled out, the Tooltip content could be changed to explain the button functionality, or simply do not display it if it is not needed anymore.

download bmml source – Wireframes created with Balsamiq Mockups
Update: I just found this answer to support the idea.
Comment: What about a scenario for Mobile Devices?
Would it be better to show a text message as label above the button?
Comment: @HarishRaghuraman Maybe if you add a little help icon, when pushed, it displays info explaining why the button is disabled. The icon only stays displayed while the button is disabled.
Comment: @HarishRaghuraman check [This](https://ux.stackexchange.com/questions/96560/should-a-button-be-disabled-under-offline-situation-or-clickable-with-a-notifica/125588#125588) very similar answer to a case for Mobile devices.
Answer: Personally, I can always tell a disabled state from two things:

The element is 'greyed-out' in some fashion, to distinguish it from other, active elements around it. (Which you've mentioned)
The 'pointer' cursor does not show when hovering over the element.

The Material design guidelines have some good information regarding disabled states, but I'd start with completely disabling interaction on the button - clicking it does nothing, hovering it does nothing, etc.
I'd also advise against a pop-up on hover or click, as it will remove the user from the current experience in a very jarring fashion; pop-ups should generally be used for immediate, high priority feedback.


Disable address validation for PayPal Express Checkout

Question: I'm using Magento 1.9 and have PayPal express checkout enabled.
And I have the problem that when a user makes a typo on his shipping address and tries to pay with PayPal it will receive the following error:

PayPal gateway has rejected request. A match of the Shipping Address
  City, State, and Postal Code failed

I know that this is due PayPal validating the shipping address on its end, but I was wondering if there is a way to completely disable this on Magento. I have read on several sources that the way to fix this is by editing:
/app/code/core/Mage/Paypal/Model/Api/Nvp.php

And removing this line:
$request['ADDROVERRIDE'] = 1;

But I have done so already but I keep getting the same message.
Is there anything else I could try?
Thanks.
Comment: did you found solution ?
Answer: Have you tried changing address_override to 0 rather than removing it?
I'd shy away from editing that file directly as it'll be kicked out if you upgrade magento. Better to create a copy of that file in /app/code/local/Mage/Paypal/Model/Api/Nvp.php and modify that.
(thanks to https://magento.stackexchange.com/a/26102 for that)


On Ps. 110:1, the two lords

Question: The second lord in Ps 110:1 is adoni, not as misstated often adonai.
Adoni is the non-Deity title all 195 times in the Hebrew Bible.
Why so much (sometimes) inaccurate information in the discussion.
In v 5 we have ADONAI which means the Lord God.  The position is reversed here and one can have the Lord GOD at one's right hand as champion. But in v. 1 the adoni, my lord, is certainly not Deity
Comment: Hello and welcome. As written, this isn't a real question, but we have one which may interest you: [What does "The LORD said to my Lord" mean in Psalm 110?](http://hermeneutics.stackexchange.com/q/11579/3555)
Comment: Also related: http://christianity.stackexchange.com/questions/47902/according-to-unitarians-to-whom-does-the-word-%d7%94%d6%b8%d7%90%d6%b8%d7%93%d7%95%d6%b9%d7%9f-refer-in-mal-31
Answer: Closely Related: From Judaism.SE ... Psalms 110:1 - Is Radak's or Rashi's Interpretation Authoritative?

1. Question:
Why so much (sometimes) inaccurate information in the discussion. In v 5 we have ADONAI which means the Lord God.
Setting Aside the Presuppositions about the term, "Adoni" - to just answer:
What factors are complicating a universally accepted interpretation of this verse?

2. Answer:
This controversy has arisen because of contradictory Rabbinical Jewish interpretations of this verse - both of which contradict the Christian "Messianic Interpretation".
To justify these interpretations, it is first necessary to associate "Adonai" with an actual person - a man: (such as Abraham, David, etc).
Attributing this promise to a person, distinct from "The Most High" - is very valid, (and necessitated by the context); because, "Adonai" literally means: " 'sir', 'master', 'lord', (even 'husband') "; And "The Most High" is making a promise to them.
However and But - ... because the"plain-reading" of the text does not suggest a specific name, (peshat rule of exegesis) - notable "Rabbinical Gymnastics" are used to make it work.
However, Christians object to these interpretations - on the grounds that these interpretations are linguistically, and exegetically unsound :

2.1. Radak's Commentary on Psalms 110, (Tehillim, Artscroll, Pslams 110:
Here, Radak suggests that "לְדָוִ֗ד מִ֫זְמֹ֥ור" instead means "A Psalm ABOUT David", in only this one instance, (citing from memory).

Quote from: Daily Tehillim, Psalms 110 - The Radak, however, explains this Psalm as a hymn composed by a poet in honor of David's victories over his enemies.

Note: Will update this when I find a source reference to cite Radak's commentary in English directly.
Christian Objection: If Psalms 110 begins with "לְדָוִ֗ד מִ֫זְמֹ֥ור", and every other instance in Psalms is translated as: "A Psalm BY David" - then there are no grounds to translate this construction differently - (to suit a theological bias).

2.2. Rashi's Commentary:

Rashi on Psalms 110:1, chabad.org link - The word of the Lord to my master: Our Rabbis interpreted it as referring to Abraham our father, and I shall explain it according to their words (Mid. Ps. 110:1): The word of the Lord to Abraham, whom the world called "my master," as it is written (Gen. 23: 6): "Hearken to us, my master."

Christian Objection: Taking the name: "Abraham" - from Genesis, (where God was talking to a "master"), and then injecting "Abraham" into a completely different context in Psalms, isn't valid anywhere else in Scripture - and shouldn't be valid here to suit some doctrinal bias.  The context of Psalms 110 is sufficient to explanation itself, (as other Psalms do).
Answer: Please provide some sources or further explanation for your point about inaccuracies
In Hebrew we have the following:

אָדוֹן - adon - lit. Lord (God), lord (human), master (human)
אֲדֹנִי - adoni - lit. my lord or my Lord (singular noun + singular suffix) - could be translated as either human or God depending on context
אֲדֹנָי - adonai - lit. my Lords (plural noun + singular suffix) - translated as God or Lord, this is the typical construct for Lord.

What we have in 3 is the emphatic form of the noun. It is used in a similar manner to Elohim which is a plural noun that refers to the one God [source]. But that does not exclude option 2 from referring to God (because it is in the gloss for the root word). Whilst nearly all instances of adoni are rendered as human lords that does not automatically exclude Psalm 110:1 from referring to the deity twice. The KJV and a few other translations actually render a few other instances of adoni as my Lord (see Judges 6:13 and Daniel 12:8). However nearly all of the modern English translations render every instance of adoni as my lord except in the case of Psalm 110:1.
Context is key when translating. The ESV have renders it as "The LORD says to my Lord (deity)". Whilst the NIV have rendered it as "The Lord says to my lord (human)" with a footnote explaining it could also be Lord. The NASB has Lord whilst the NRSV has lord without footnotes. This can be attributed to the difficulty of understanding the poetic nature of the Psalms. Thus rendering the exact meaning unclear rather than any deliberate inconsistency.
Comment: In Hebrew, a noun is usually a participle, gerund or verbal-noun. Presuming passive inflection, Elohim (אלהים) can mean many who are elevated, or multiple-events of elevation being experienced. The plural-sense makes it a verbal-noun. Therefore, all those conspiracy theories of elohim being multiple gods, miss this grammatical characteristic of Hebrew. e.g. (אכלים) could mean many people eating, or "food" (being eating by many).
Answer:

נאם יי

declares Hashem

לאדני

to my master (to you sir/honoured-one)

שב לימיני

sit at my right

עד

until

אשית אֹיביך

I establish your enemies

הדם לרַגליך

being-stool to your feet.

There are caes where [אדני] (masoret inflects as adonai) addresses Almighty. For example, Genesis 18:30,32 - Abraham addresses Hashem.
As stated by questioner, [אדני] has been used honorifically mostly towards humans far too many times. Fpr example, Genesis 24 - אדני is used by Abraham's servant to refer to humans.
Among many other cases where [לאדני] is used towards 2nd person honorifically:

Gen 32 [לאדני] is used honorifically as "to you sir", when Jacob was very specific telling his mlakhim/"angels"/errand-runners to address Esav honorifically as "my-lord/sire". Regardless that Esav was by now socially much lower position than Jacob.
Gen 44 Joseph being addressed in the 2nd person

So the verse simply means

Hashem says to you my-honoured-sire, sit to my right until I establish your enemies as your footstool.

There are no shortage of verses for example in Proverbs where the reader is addressed in the 2nd person.

On Ps. 110:1, the two lords


Simple texturing in OpenGL

Question: I am trying to texture a 3D sphere I created. I am having difficulties understanding How textures works. They way I understand it is a picture file that "wraps" a 3D object. I found some tutorial online but If there is a really simple one to get me started that will be nice.
I am usind OpenGL 3+ on Ubuntu.
Answer: As simple as it gets. Link.
Should be very easy to understand, if you don't then simply conduct further research.
Answer: opengl redbook is a good source of knowledge for this:
http://fly.cc.fer.hr/~unreal/theredbook/chapter09.html
basicly texturing any geometry requires you to specify for each vertex additional coordinates from your bitmap space. Since bitmaps are 2D you use two dimensional coordinates u,v. Your video card will extrapolate those coordinates and while rendering triangles from your verticies will put appropriate texels (texture pixels) from your bitmap. u,v coordinates for more complex geometry should be either calculated from code or be put manually in some 3D software like Blender.

Simple texturing in OpenGL


Material of my mixing bowl

Question: I'm using a handheld mixer with a melamine mixing bowl. Lately I've noticed that the surface of the bowl at the bottom of the bowl feels irregular, and dark spots have begun to appear. Should I use a mixing bowl made of other material? If yes, which other material?
Answer: Melamine is quite a soft material and wears quickly. Not only would metal and hard plastic mixing utensils wear it down, abrasive ingredients like sugar, oats and so on would take little bits off the bowl's surface. Over time, it is common to have pits and grooves carved into the bowl. These small indentations are hard to clean properly and could trap colours. In warmer and more humid climates, they are great habitats for molds, living off the trapped micro-scraps. Both or either could be the source of the dark spots. Melamine should not be microwaved or used with boiling water. At high temperatures (pasteurization temp is too high from memory), decomposition happens with toxic releases.
Glass (clear borosilicate or Pyrex), glazed pottery and stainless steel (in that order) are preferable in my view for abrasion resistance and non-reactive properties. I generally avoid using stainless with any wet alkaline ingredients. Also, you cannot microwave a metal bowl. I would however go for stainless if I need to heat or chill the contents rapidly.
Answer: Hm. I can think of two reasons for the dark spots.
1) Simple discoloration. Most plastic products, including melamine, suffer from this to some degree.
2) Abrasion of a layer of paint, although the only melamine bowls with additional painting I've ever seen were pet food bowls.
The only reason for the irregular shape I can think of is thermal deformation, maybe the bowl sat on a surface that wasn't cooled down yet.
Considering the state of science, it is very difficult to make a sound recommendation regarding the best material. How various popular materials affect the human body is under extensive investigation and what might be safe today might be a bad choice tomorrow. The material of choice for most kitchen products is stainless steel, which is unfortunately also the most expensive.

Material of my mixing bowl


What happened to the other demons?

Question: In The Conjuring we only get to see what happens to Bathsheba, but what happened to the other demons in the film? Are they harmless and still roaming in the house?
Comment: @Tom Are you sure the `ending` tag is justified? Doesn't seem to be especially about the ending of the movie?
Comment: @ChristianRau The original text actually said "in the end." Added the tag and then rewrote the text. Just didn't put it back in, but, with the ending tag there it's kinda redundant. I haven't seen the movie, so, if the OP's original phrasing of the question was off, then the tag might be unjustified
Answer: In the film, Bathsheba was a wicked woman, who killed off her child to please the devil. Other ghosts or apparitions as seen in the film are actually direct or indirect victims of Bathsheba.

While researching the house's history, Ed and Lorraine discover that the house once belonged to an accused witch, Bathsheba, who tried to sacrifice her children to the devil and killed herself in 1863 after cursing all who would take her land. The property was once 200+ acres but has since been divided up into smaller parcels.

Bathsheba had cursed people who took or lived on her land. So even after she was killed, she continued to possess mothers and made them kill their children. So the other demons which you refer to are actually NOT demons, but the ghosts of the mothers who have committed suicides after Bathsheba made them kill their children. Also, Rory is one such murdered child killed by a possessed mother.

Lorraine enters the passage and falls through the floorboards into the cellar, where she sees the spirits of people whom Bathsheba has possessed. All are mothers whom Bathsheba used to kill their children.

Bathsheba is the only one who wants to hurt the family, and possess Carolyn to make her kill her daughter. All the other ghost spirits are not actively tormenting, merely living their horrors in the afterlife. It was only Bathsheba who needed to be exorcised, while the other ghost spirits could have been ridden off with other means. Bathsheba was the danger to the family.
Links: The Conjuring - Wikipedia

What happened to the other demons?


Double demountable hinge won't close

Question: I'm replacing the hinges on my cabinet and this hinge won't allow the cabinet door to close tight. It appears the hinge is rocking on the cabinet face when I try to push the door tight. I've tried a couple different hinges without luck.
Hinge gif
Answer: It looks rather like the door is interfering (touching) with the frame somewhere. Watch the door carefully as you close it and see if it touches anywhere. Even a slight interference can cause that issue.
This can sometimes be corrected by adjusting the hinges. If that does not work you may need to add a spacer behind the hinge, maybe a couple of washers, to offset the door a little from the frame on the hinge side. That should provide enough clearance for the door without being overly noticeable.
Comment: The way the hinge works shouldn't allow the door to get in the way. Everything fits well on the hinge itself. I'll add another picture.
Comment: You've tried different hinges, the hinge in use looks fine. So unless the metal tab on the hinge is catching the wood edge of the cabinet door (which it does not appear to be doing); I think @Trevor is 100% correct. While the "hinge is designed shouldn't allow..." wont matter if the wood for the door, or the frame (at any location) is warped, even just a little bit.
Comment: 4th hinge was the trick

Double demountable hinge won't close


Mice that are eating through the boards under kitchen cabinets

Question: I have lots of mice I. My home it ate through the board under the kitchen cabinets. How can I cover that and what do I cover it with and does peppermint oil work if I spray it around the house. Please help
Comment: You will not be able to stop mice from getting in.  You must deal with the mice problem first via extermination.
Comment: If you live in an area that has a lot of mice in the environment, you are going to struggle. If you have pets or children in the home, then you must protect the traps.  Where is this?
Comment: Get a few ratzappers, they work great.  Add a small piece of dog food, wait, zap, dump, repeat.
Answer: Get Professional help.
@TheEvilGreebo is correct. I have my own mice stories which I won't bore you all with. But the bottom line is that a good exterminator can do a combination of:

traps
poisoned bait (they eat and (hopefully) die elsewhere
figure out where/how the mice are getting in and either block them or tell you how to block them

The last item is particularly important. Mice can get in through a surprisingly small hole. It could be you have holes from rotting wood or recent construction and when one mouse gets in and finds food, he tells his friends...
There are plenty of "home remedies" but once you are infested, I highly recommend professional help to get the problem under control. Once it is under control, the home remedies may be sufficient.
Or (seriously) get a cat.
Comment: You'll need to stay vigilant with the traps and/or bait for months, if not years.  As long as there's at least one breeding pair surviving, you won't see the end of the mice.  Definitely talk to a professional to make a plan.  Try to find someone who deals regularly with rodents.  There are some pros who only do insect control, and they won't be helpful.  Search for "rodent control" or "wildlife control" in your area.
Comment: If you want to plug the holes yourself, search online for "copper mesh for rodent control" and buy some.  Stuff a piece in each hole, then saturate it with expanding foam to hold it in place.  That will create a good barrier to keep the mice from chewing through in the same place again.  Keep in mind that they'll still find other places to chew through, but it's still worth doing because you'll keep them confined (hopefully near traps and/or bait) for a while.


When you no longer want a professor on your dissertation committee

Question: If I already asked a professor to serve on my dissertation committee but I now longer want him on my committee for various reasons, how can I politely tell him this through email? I just don't know how to say this in a polite and not at all prideful way.
Comment: This assumes that you have the choice - in some disciplines you don't have any...
Comment: Is there any reason why you can't just be honest?
Comment: What's the country? Please elaborate on how are things done there. In my country, you'd have no power at all; you could talk with your supervisor, and they might suggest some people to be on the comittee, but the decision is made by the head of the comittee and the faculty council. No one cares about the student's preferences. Is it different at your place?
Comment: It's in the U.S. Yes, I intend to be honest when I tell him. I just wanted to know how to word it to him. And technically I do have a choice in who goes on my committee
Answer: You do not need to tell them from the first place. They will implicitly understand that you changed your mind. It is fine. But if you send them the official forms and dissertation, I think you need to follow a certain procedure. In this case, it is not polite and not recommended to change a committee member unless there are strong reasons.
Contacting committee members should be done by the supervisor not by the student in most of the places. I highly recommend you to consult your supervisor as this is part of the supervisor's job.
Comment: I think the last part of this answer is the key. Let your advisor/supervisor tell them, rather than doing it yourself. This avoids making a potential enemy. Speak to your advisor.
Comment: Oh not at all, his name is not on any official form or on my dissertation so that part is not a problem. I didn't want to just be quiet and then make things awkward with him and me in the department.
Comment: In my experience in the US, it's the student who tends to organize the committee and contacts committee members, not the supervisor. I guess this is yet another thing that varies by field or location. Certainly is worth consulting the supervisor though, not least since they might have to sign updates forms.
Answer: Just tell him you've decided to replace him but thank you for having been willing.  Don't volunteer or reply with the "why".  If you're on campus, I would just do it in person.  Make sure you have a replacement available too.  Then just notify whoever maintains records of such stuff, department secretary, I guess.  Probably worth letting your advisor know too.
Comment: Okay thank you. I would do it in person, but he travels a lot, which is why I wanted to  send an email to him.


How to get to know the state of mind

Question: How to get to know mind has reached sakadagami state or still in sotapanna?During  meditation experience no thoughts and Feel like clear emptiness. Reached clear darkness  with peace of mind and there is a light with dark in sometime. And sexual craving disappears when meditation feel free after that. At which state of mind dependent origin will break?whether it is  just a jhana state .
Answer: "clear darkness with peace of mind" is an experience of Samadhi. It's neither Sothapanna nor Sakadagami. When you attain Sothapanna, it makes a permanent change in you. The self view, attachment to rites and rituals and doubt are removed permanently. It's not any kind of peaceful feeling that you get while meditating. Same goes for Sakadagami. When you attain it your craving towards sensual pleasure and aversion are permanently weakened regardless of if you are meditating or not.
Comment: Which samadhi,is it kanika samadhi
Comment: What is the state of mind in sotapanna?Isn't it peace reduce attachment to thoughts
Comment: kanika samadhi is moment to moment concentration.  Read [this answer on how Satapanna occurs](https://buddhism.stackexchange.com/a/232/111).
Answer: At sotapanna state, 3 of the 10 fetters will be disappeared from mind -- they are:

sakkayaditti (feeling of myself and mine)
wichikichcha (doubt on 8 things, includes buddha, dhamma, sanga, ...)
seelabbathaparamasa (follow wrong silas)

After sotapanna state, when your mind advance to sakadagami state, another 2 fetters will be reduced, but not completely removed from mind -- they are:

kamaraga (lust for 5 sensations we get from our eyes, ears, tongue, skin and nose)
wyapada( conflict with things we dislike..this is mainly the anger in our mind)

When you see these are reduced from your mind, after sotapanna state, it's sakadagami state.
That feeling of mind when it advanced to sakadagami state can't express to other person, you have to experience that feeling from yourself.
Sexual  cravings will completely remove from one's mind when he is advanced to the arahat state -- the last state of nirvana path. When you are in sakadagami or anagami state also, you have sexual  cravings in your mind, but they are reduced gradually than before.
When you meditate you can experience lights appear in front of you, that's called Āloka-saññā (or light signals) -- then if you need you can focus your mind on that light and meditate along, that's called kasina bhawana. But that may be not your target sometime, however from that you can get your mind to a jhana state... when you focus on light and meditate along that light will be larger in huge size... that is the first jhana.
(i haven't learnt buddhism much in English, just in pali an Sinhalese..so i don't know some English translations you use for pali words..sorry for that.. )
Comment: "[Fetters](https://en.wikipedia.org/wiki/Fetter_(Buddhism))" in English. People on this site use some Pali words, like the ones you used, perhaps using different spellings like *[Sila](https://en.wikipedia.org/wiki/Buddhist_ethics)* and [Bhavana](https://en.wikipedia.org/wiki/Bhavana).
Comment: If sotapanna has not achieved and reduced kamaraga and wiyapada is it a just jhana state or sotapanna or sakadagami?
Comment: Before archiving sakadagami have to achieve sowan state..When it's jhana state there's a certain reduce of kamaraga and wiyapada, but just reducing kamaraga and wiyapada we can't certainly say jhana, It may varies according to meditation when doing anapasati we can see a huge bright light in first jhana state,like that...
Comment: @madhawavish in wiyapada have seen the thoughts process has come and action has stopped by another thought.  And when  the action has stopped there is a light darkness with peace of mind. Is it a jhana state?

How to get to know the state of mind


Grouping by multiple attributes and eager loading

Question: I have a simple model on Rails 4.0.0:
class Template < ActiveRecord::Base
    has_many :instances
end

class Instance < ActiveRecord::Base
    # attribute: completion_result
end

I want to fetch the count of instances grouped by Template and completion_result. My query looks like this:
    Instance.joins(:template)
            .where('templates.enabled = ?', true)
            .group(:template_id, :completion_result)
            .count

This works great, and I get a result such as:
{[7, "ok"]=>2, [10, "ok"]=>1, [8, nil]=>2,
 [8, "cancel"]=>2, [9, "ok"]=>1, [8, "ok"]=>5}

In other query, where I'm grouping by a single attribute, I can specify group(:template) instead of group(:template_id) and that will make the key of the Hash be an ActiveRecord instance instead, thus helping me get rid of an n + 1 query scenario.
In this case, since I'm grouping by multiple keys, if I change my group to group(:template, :completion_result) Rails will generate an invalid query (it will try to select template instead of template_id, which doesn't exist).
Is this a bug a Rails or am I missing something?
Answer: Have you try something like this
Template.all.select('templates.*, COUNT(1) as count').select(:completion_result).joins(:instances).where(enable: true).group(:id).group(:completion_result).map{|x| {[x,x.completion_result] => x.count }}


Is there any video of this (or any) successful fair catch kick?

Question: According to Wikipedia, the last successful fair catch kick in the NFL was made in 1976 by Ray Wersching. Is there any video of this (or any) successful fair catch kick?
Answer: The last successful fair catch kick was made by Ray Wersching of San Diego Chargers. The kick seems to be so old that a footage of it can't be found easily online.
But here is a video of attempted fair catch kick with rule explanation from Dean Blandino the NFL's Vice President of officiating.
Comment: I think this doesn't answer the question.


Phone SMS to Display Google Voice Num?

Question: I am using Galaxy S3 with t-mobile. I use Google Voice for my number, and have the phone set to automatically use GV to call. I setup Google voice to forward SMS. Everything works fine with the exception of when I want to sent a new SMS, of course using the phone's SMS app.
How can I get GV to appear as the number from which the sms originated?
Comment: Why aren't you using the Google Voice app to send your SMS messages?
Comment: I much prefer to use the one that's in the phone, the way it's integrated maybe.
Comment: I'm pretty sure the built in client does not support sending from another number than your SIM. Use the GV client if you want the outbound number to be your GV number.
Answer: With forwarding, you should be able to do this automatically. If your contacts are texting your google voice number, then you must have already told google voice to forward texts to your real number.
You should be able to reply directly to that forwarded message. Google creates a new phone number for your contact and associates it with that person. So if person X at phone number 123-456-7890 sends a text to your Google Voice number, you will recieve it on your regular number as coming from 987-654-3210. When you respond, Google will recieve the message (they own 987-654-3210), then resend it to 123-456-7890 with your Google Voice number as the caller ID.
However, if they are texting your regular number, or if you don't have forwarding enabled, you will be stuck using the Google Voice app to send text messages and still have your GV number show up.*
*There is a paid app (root required) that claims to integrate google voice with the native (and 3rd-party) text messaging apps. The app costs $5 and looks like it does what you want. I haven't tried this, though, and some of the reviews claim it doesn't work right (though others say it works great). Edit: There is a free version here.

Phone SMS to Display Google Voice Num?


VirtualBox boots only in UEFI Interactive shell

Question: I installed Ubuntu 14.10 in VirtualBox with UEFI. But now I have rebooted this OS and now it boots into a UEFI Interactive Shell v2.0. How can I boot normally into Grub again?
Comment: Even with 5.1, changes to efi variables, like the required boot setting with `efibootmgr` are lost after shutdown (they stay on reboot though).
Comment: 5.1.30 it still exist. Even though the fix is easy, but I have to fix every time after installing debian & ubuntu.
Comment: Good news everyone, with VirtualBox 5.1 the workarounds aren't needed anymore. You might just have to add a new EFI entry (manual using `efibootmgr` or automatically by reinstalling grub) so it boots Ubuntu right away again.
Answer: I encountered the same problem and found that if I issue following command in the interactive shell, the virtual machine would boot into Ubuntu:
fs0:\efi\ubuntu\grubx64.efi

(Use backslash, forward slash does not work. Commands in UEFI interactive shell are case insensitive.)
My VirtualBox version is 4.3.20 r96997, Ubuntu version is 14.10 AMD64. I do not know why this happens and how to solve it. Just found this not elegant and still a little bit troublesome workaround.
Update 1:
I read this, tracked down to a bug report and found a better workaround.
Update 2:
Workaround in Update 1 failed. I turned off the virtual machine, launched it. And it booted into UEFI Interactive shell again. According to this, the problem was probably cause by a VirtualBox bug. I am still looking for further solution to this.
Update 3:
Finally found an solution. According to this, you need to create a startup.nsh script manually. Except for the method in mentioned post, you can also do this:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"

Comment: [*"It is currently not possible to manipulate EFI variables from within a running guest"*](https://www.virtualbox.org/manual/ch03.html#efi) The solution in your second update to move whatever bootloader you want to use on the ESP to `\EFI\boot\bootx64.efi` sounds like the better solution to me than wasting 5 soconds wating for startup.nsh. Note: You can press F12 during boot or enter `exit` on the EFI shell to access the firmware settings and modify all kinds of things, including the terminal resolution, but these modification are not stored permanently.
Comment: Good to know that it is a bug. Simply `edit startup.nsh`. +1 It is looking for `\EFI\boot\bootx64.efi` to skip the 5sec.
Comment: Copy and rename `\EFI\ubuntu\shimx64.efi` to `\EFI\boot\bootx64.efi` is the best. [credit](https://askubuntu.com/questions/919417/boot-into-grub-from-windows-boot-manager-in-uefi-dual-boot-configuration#comment1451458_919417)
Comment: After issuing the command in the interactive shell you can install `refind` to fix EFI
Comment: Update 3 did it for me....
Comment: EFI is usually mounted at `/boot/efi` so no need to mount `/dev/sda1`.
Answer: I had the same problem (with the EFI enabled because I couldn't get it to run otherwise). Strange; although installation of Ubuntu 14.04.2 got no error, installing Kubuntu 15.04 failed to finalize. It froze at the very end when asked to remove DVD. After reset, it booted fine but after power down it brought up shell.
So, to avoid shell type:

fs0:
  edit startup.nsh

and on the opened window add these 2 lines:

FS0:
  \EFI\ubuntu\grubx64.efi

press Ctrl + s and Enter to save and Ctrl + q to quit. Then restart VM.
Alternatively, you can always use these 2 lines to exit shell and boot OS. But second time you restart you will be in a shell again and to avoid it edit startup.nsh.
Comment: In case you aren't using Ubuntu, you can figure out the correct path for your machine using `ls` in the UEFI shell. E.g. `ls FS0:\EFI`, then `ls FS0:\EFI\redhat`, to learn the path is `FS0:\EFI\redhat\grub.efi` on CentOS.
Comment: @ntc2 Thanks, that was exactly what I was looking for! For my Slackware installation it was `FS0:\EFI\Slackware\elilo.efi`.
Comment: Typing the command does work but the problem is that on next restart it again goes to that shell and file startup.nsh does not seem to be saved.
Comment: To save the startup.nsh file you need to use Ctrl+S to save and press Enter to write to file.
Answer: Another option is to un-check the Extended Features option called 'Enable EFI' under 'Motherboard' for your VM.
Had this issue come up for Gnome Ubuntu 12.04.2 amd64bit installation.
Discovered this after having to change settings for hardware acceleration.
I was left with having VT-x/AMD-V, Nested Paging enabled. My VM has 2 CPUs, 8GB RAM for reference.
After un-checking the issue is completely by-passed Gnome Ubuntu boots up no issues.
Running Virtual Box 4.3.18 r96516 on Windows 7 64-bit Host.
Comment: This only works because Grub also had legacy support (MBR).
Answer: Copy grubx64.efi to /EFI/boot/bootx64.EFIVirtualBox use that bootx64.efi to boot.Ref.: Archlinux Virtualbox wiki
Comment: ta. This works but if grubx64.efi is updated then bootx64.efi will be dated. link to a version of source code: https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/166037dcf8564e1d13a3750cd691d4e4597de16d/src/VBox/Devices/EFI/Firmware/IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.uni
Comment: This one is more seamless than editing _startup.nsh_ method, but indeed it won't be automatically updated and you can't use symlink either because it's a FAT32 partition.
Answer: I recently encountered this problem. Please check your virtual OS settings. Right click on virtual os-> system->Extended features-> Enable EFI(uncheck this).
Comment: How is this is a solution if one wants to use UEFI?
Comment: +1:  This solved my problem.  I had experimentally checked *Enable EFI* and forgot about it.
Comment: if i disable that option after that it's not  able to find bootable medium, even manually also it didn't worked
Answer: I could solve this issue by changing the cdrom device within virtualbox from IDE to SATA. I removed the standard mapping of the virtual cdrom drive within the device configuration.
Simply add a cdrom device to the existing SATA Controller which is to be used for your installation media.
Et voila, no further problems with EFI.
Answer: for this you need to write it like the following:
fs0:
cd EFI
cd ubuntu
grubx64

this is how i got it to work if you write it any other way it wont work.
Answer: Another work around:
In the uefi shell, boot temporarily in to ubuntu using:
fs0:
cd EFI
cd ubuntu
grubx64

Then, inside ubuntu, edit startup.nsh file like below:
Open terminal Ctrl+Alt+T.
Type:
sudo nano /boot/efi/startup.nsh

Enter your password.
Now delete all that is in there using del or backspace key.
Then type this exactly: (FS0- that is the numeral 0, not the alphabet O)
FS0:
\EFI\ubuntu\grubx64.efi

Now press Ctrl+O (That is alphabet O).
Then, Alt+D (To change text to msdos format).
Then press Enter.
Then Ctrl+X.
Now reboot.
sudo reboot

Everything should be fine now.
Answer: Using Ubuntu 16.04.4 with EFI enabled and while starting the virtual machine I found that it won't boot and just stay in the EFI interactive shell.
This is how I fixed the boot:
First, I found that the grubx64.efi is located in BLK2,
so for a one time boot I just typed the following in the interactive shell:
BLK2:/EFI/ubuntu/grubx64.efi

And viola, Ubuntu is up and running.
I order to permanently fix this issue, once the system was up I echoed the following line into /boot/efi/startup.nsh.
sudo echo 'BLK2:/EFI/ubuntu/grubx64.efi' > /boot/efi/startup.nsh

That's it, the system will boot correctly.
Answer: For ArchLinux on Virtualbox, following did the trick for me.
On EFI Shell enter the following
Shell> bcfg boot add 0 FS0:\EFI\GRUB\grubx64.efi "GRUB"

Here we are setting the EFI boot order.
I assume this works for any other Linux guests as well having EFI boot.
Note: Your directory structure might differ. You can do ls on EFI prompt to check your directory structure to reach grubx64.efi after entering FS0: and hit enter.
Hope this helps!
Answer: After installing Kubuntu15.10 in VirtualBox5 with UEFI, the reboot of the VM fails.
Adding the line FS0:\EFI\ubuntu\grubx64.efi in the UEFI-Shell doesn't help.
And the solution with creating a new startup.nsh file in Kubuntu15.10 in the chroot environment with sudo echo '\EFI\ubuntu\grubx64.efi' > startup.nsh  gives also no improvement.
I found the solution:
The problem was, that the directory  /boot/efi/EFI/ubuntu with the file grubx64.efi doesn't exist.
After booting a Live-CD and changing to the chroot environment, I installed the missing packets and create the needed NVRAM entry with:
sudo apt-get install grub-efi-amd64-signed shim-signed
sudo update-grub
Answer: On some linux guests , install process does not update the efi boot order. It  depends  on the distro version and  virtualbox/efi version. This issue had affected, for example, Debian in early 2020 . The solutions are:
1.manualy run efibootmgr
https://linux.die.net/man/8/efibootmgr

fix efi boot order. For that, type first "exit" in efi shell, after vm start
Answer: For defining or change of efi boot directory need to first run this command. This solved my problem.
sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/

NOTE: /dev/sda is the system hard disk.


Ramachandran Plot for Phi and Psi angles of peptides

Question: Why do we consider the normal and extreme limits for Ramachandran plots to be less than the Van Der Waal distances between two atoms?
Comment: I got the table itself as a part of a question paper, for reference material I suppose you could read this: http://skuld.bmsc.washington.edu/~merritt/bc530/local_copies/Ramachandran_article.pdf
Comment: The calculations are done on the basis of steric hindrance faced by the side chains when the angles are changed. For instance almost at all times (0,0) for (phi,psi) are not allowed because there is clash in between the side chains. This steric clash is calculated based on the normal limit and extreme limit the maximum and minimum distance allowed between the two atoms for the conformation to be deemed stable. Both these distances though are smaller than Van Der Waal distances.
Comment: Do you have a source for this algorithm? Which is the minimum and maximum distance? I am also confused by these definitions. It would help to have a source for the table. Where did you get these numbers?
Answer: A remarkable aspect of the Ramachandran plots is that the implementation of a hard-sphere potential with flexibility limited to the two backbone dihedrals proved sufficient to largely explain the conformational range sampled by real polypeptides. Take for instance the following map from a seminal article by Ramachandran (from Ref. 1; dashed line encloses the partially allowed region):

The map was generated with the following set of restraints:

In the article Ramachandran et al. explain how they selected the range of vdW distances used to generate their maps:

The next step towards working out the allowed conformations is to choose a set of permitted minimum contact distances between the different types of atoms. Only those conformations (4,4') which do not have any of the contact distances less than these minimum values now become allowed. Two such sets are given in Table II, termed "normally allowed" and "outer limit" contact distances. These are essentially the same as those given by Ramachandran, Ramakrishnan, and Sasisekha-ran (1963) arrived at from a study of the contact distances observed in structures of various organic compounds. Contact distances inbetween the two limits have also been observed in actual crystals, but not as frequently as the normally allowed values.

van der Waals radii are meant to define distances of closest approach. They are useful to identify conformational regions forbidden due to steric clashes. However, tabulated vdW radii are representative values. In real molecules the internuclear potential can vary somewhat depending on atomic types and the local electronic environment.
In addition, molecules are fairly flexible and can to a degree circumvent potential clashes by changing internuclear distances and angles, but a rigid model does not capture that. That a simple rigid model suggests a steric clash, because one or more vdW distance restraints are violated, does not guarantee that a conformation (phi/psi pair) is forbidden. Therefore, if you use a rigid model to generate a Ramachandran plot, that is, if only phi and psi are allowed to change, then you should allow "wiggle room", for instance by setting a lower threshold for the allowed values of the vdW distances. The use of "tolerances" in vdW radii should therefore not be surprising.
Close contacts can be energetically costly even with compensating rearrangements, so the associated configurational space - marked as "partially allowed" in a traditional diagram - is more sparse. In a modern approach a more descriptive potential for the protein backbone is employed, and ideally degrees of freedom other than the dihedral angles are relaxed, and energy isolines are displayed. The following, from Ref. 2, shows roughly how such a diagram might look:

References

G.N.Ramachandran, C.M. Venkatachalam, and S.Krimm. Stereochemical Criteria for Polypeptide and Protein Conformations II. Helical and Hydrogen-Bonded Polypeptide Chains. Biophysical Journal 6 (1966) 849-872.
ibid, 909-933.


I can't install VNC

Question: Recently I have been trying to install VNC on my raspberry pi 3 but it won't work. It may be because I used the incorrect name for the file. I have used: sudo apt-get install VNC,sudo apt-get install VNC connect, etc. How can I fix this?
Answer: You should learn to use the tools.
apt-cache search name will find all packages mentioning name.
apt-cache search vnc

Will show packages which mention VNC, and you then use apt-cache showpkg to explore e.g. apt-cache showpkg tightvncserver
There is already a VNC package installed by default, although IMO it is not the most flexible.
You will find hundreds of posts on this site tagged [vnc]

I can't install VNC


Why won't my Excel 2010 spreadsheet appear in my Word 2010 document?

Question: When I try to embed an Excel spreadsheeet in a Word document by clicking Insert → Table, "Excel Spreadsheet", a spreadsheet does not appear. Instead <code>{ EMBED Excel.Sheet.12 }</code> appears and Excel opens.
How do I fix this? I have had it appear in the document before and I was able to work on the spreadsheet right there and when I was done I could just click outside of spreadsheet but on the Word document and my spreasheet would be part of the document. It was really easy. I must have clicked on something along way.
Answer: Just press Alt+F9 to toggle Field Codes, that'll fix it.


How ethernet links can have a delay and loss

Question: In some simulation environment, such as mininet, you are given parameters when you define your virtual link between switches such as: bandwidth, delay, and loss. I understand a link has a bandwidth but I don't understand how a link can cause a delay or loss! Kindly, can anyone elaborate that?
Answer: All links introduce latency.  It's a trivial amount when passing traffic over a 2M Ethernet patch cable but it's substantial on a trans-Pacific circuit.
Some links also have packet loss.  It might be a function of the link being congested or there could be a physical issue like a flaky cable, RF interference on a wireless link or other anomalies.  This is particularly relevant when simulating the behavior of a network (or application) mapped over an Internet link, where occasional packet loss is pretty much expected.
So - if you're trying to simulate real-world network conditions then being able to model the what-ifs of different latencies and the possibility of packet loss can be a huge help.  It allows something closer to a real-world simulation as well as testing how various network protocols, designs and actual implementations respond under different kinds of stresses.
Answer: The link can experience delay and loss . If excess of traffic flows from links resulting in high bandwidth utlization  and congestion in networks , this will cause packets in queue further resulting in packet loss or delay in process of packets because packets are already in queue ..


What is the maximum number of modules I can connect to Raspberry Pi 2

Question: I am starting a pet project that involves Raspberry Pi 2 and I was wondering. What is the maximum amount of GPIO modules I can connect to a Raspberry Pi 2? I Basically my question does not involve only the amount of GPIO pins that the pi has but also regarding power. If the power that RPI2 takes in is only 5V how many modules can it support?
Comment: What is a GPIO module?
Comment: The Pi2 has 28 usable GPIO and can supply up to 2 amps at 5V via the microUSB power socket.
Comment: bluetooth module, proximity sensor, etc, aren't they connected to the Pi from GPIO pins?
Comment: There must be hundreds if not thousands of such modules all with differing GPIO requirements and differing power requirements.   I don't understand what you are trying to find out.
Comment: what is the maximum that RPi can handle, e.g. up to (random number here) V output to modules so I can use the information I have on each module and see if I can make my project :)
Answer: Your question doesn't really make a lot of sense. There is no "maximum number".
As long as none of your boards require conflicting uses of the same GPIO pins, and you don't exceed the maximum supply current of the GPIO power rails (USB power supply current minus board draw on 5V line [so, depends on your power supply, probably in the 500-1500 mA range], and I think 50 mA on the 3.3V line) then it's fine.
Answer: Each "thing or wire" you connect to a GPIO pin will act as a current load or source.  That is, they will pull current from the rPI GPIO pin or try to source current into the pin. Lets say, for ease, that the thing connected to the GPIO pin is acting as a load, wanting to pull current from the pin.  The rPI GPIO pin has a maximum current sourcing capability that you need to understand. Once you know how much current the GPIO pin can source (or sink), then you can get a handle on how many loads you can put on that one GPIO pin.  You don't want to exceed the maximum current load capability of the rPI.
Another thing to pay attention to is the capacitive loading you apply to the GPIO pin.  Each digital load or source you apply to a GPIO pin also has a bit of capacitance associated with them.  Putting many loads on a GPIO pin increases the total capacitive load and thus will distort and corrupt the slew rate of the rPI GPIO pin, not to mention meeting minimum CMOS voltage thresholds for the pin.  The effect could be that devices on the GPIO pin don't see a valid logic signal.  You may be turning the GPIO pin to a logic 1 but the devices don't see a valid logic 1 level.  An oscilloscope can help you here during debug, to look at your signal and make sure the logic levels and slew rate are correct.
Comment: Although i was covered by the answer i am selecting this one as it has more info that i need
Comment: Dang. At least I got to taste the glory of an accepted answer, even if only for a moment.


How should jogging with a stroller change your stride?

Question: I've recently purchased a double jogging stroller. I'm not a great runner to begin with—typically only lasting between 1 and 2 miles. I don't know much about formal form concepts, but I was told once that my arms shouldn't swing across my body because it leads to unnecessary core usage and ultimately you could tire faster. When running today, I noticed that my free arm was moving across my body and stopping myself from doing it took a great deal of effort on my part. Is this normal or should I continue to work on not swinging my "pumping" arm across my body when pushing a stroller?
Answer: I am personally a fan of the chi running technique. Here's a question/answer with how to adapt this technique to a stroller.
About the arms, this article says to have a relaxed arm swing and avoid crossing arms in front of body.
I think it is normal and that running/jogging with a technique takes practice to master recommendations that improve the running/jogging overall.


Plumbing issues

Question: My husband and I bought a house in July. During the home inspection, water was run for upwards of 20 minutes with no issues noted. When we moved in August 1st, we instantly noticed issues with the plumbing, such as gurgling in the toilet when the water ran in the shower. We had someone come drain the septic tank and they cleared the drainline as well. About a month later, we had similar issues, so my husband snaked the toilet out 100 ft finding nothing, and we used a drain cleaner. That seemed to work. Now, we're having trouble AGAIN. Same problem: bubbling in toilet when water is drained elsewhere, gurgling in pipes when toilet is flushed. What else can we do? My husband thinks it may be the toilet itself, because it has always been slow flushing. Thoughts?
Comment: I added an answer, but while researching that answer, I discovered that this may be a dupe of [What could cause a tubs drain to gurgle when the toilet is flushed](https://diy.stackexchange.com/questions/29276/what-causes-tub-drain-to-gurgle-when-toilet-flushed) or [Could our new plumbing be to blame for our new downstairs toilet and upstairs spare bath being clogged](https://diy.stackexchange.com/questions/66973/could-our-new-plumbing-be-to-blame-for-our-new-downstairs-toilet-and-upstairs-sp/)
Comment: Thanks, I appreciate it. We haven't tried the vent stack yet, so we'll start there
Comment: UPDATE: how long of a snake do we need for the vent stack? My husband ran a 15 foot one he had on hand down and didn't hit anything. We're wondering if that was long enough
Answer: This sounds like a vent pipe is partially blocked. Essentially, the vacuum has to be broken somehow - through the easiest path. If enough air can't come through the proper channel (the vent pipe(s)), then it comes through a nearby fixture.
You've been snaking, just in the wrong direction :)
Comment: If you snake the lines from the roof vents, you will get both the vent and line in one shot.  Plus, you don't have to worry about scratching the surface of the toilet.
Answer: Water gurgling down the toilet when other drains are used sounds like a clogged vent stack - the draining water can cause a vacuum that pulls water from other drains/toilets along with it.
You can snake the vent stack from the roof and/or hose it out to clear it. If you're not comfortable climbing on the roof, it should be an easy operation for a plumber.

Plumbing issues


Is there any adb shell command to focus camera?

Question: I would like to record some movie on my desk but camera doesn't focus so I would like to force my phone to camera focus. Is it possible?
Answer: if you know the exact position to touch for focusing the camera, you can use
 adb shell input tap <x><y> . This will simulate a touch on the particular (x,y) cordinates.
Answer: i would recommend you to download some camera manipulation app like Vintage Camera by Fine Droid Devs
though it would have been better if you had mentioned your device.
Answer: Before you take a video, focus the camera first.
I had a similar issue with a digital camera (Canon S95). Sometimes, I'd get a blurry video. It turns out that I forgot to focus the camera first, before pressing the record button. The concept would be the same with a phone camera.