Does downloading a file, requires the server to also upload it to the client

Question: Suppose I am downloading a file from a server. Now does downloading the file from the server mean, that the server is also simultaneously uploading the file to my computer. That is, apart from me using my bandwidth to download the file, the server is also using some of its bandwidth to upload the same file to my computer.  If not,  then why do in bit torrent protocol we say that the seeders upload the file and leechers download the file. This suggests me that upload and download for a file happens at the same time. Also, where do seeders upload the full file. Kindly help.
Answer: You should not confuse BitTorrent with regular downloads.
Yes, when you download a file from a server, there are two parties involved and they must cooperate. In the "real world" you could come and take something from me without my cooperation, but if you wanted me to give you an object across the room then I must pick it up, throw it to you, and you must reach out and grab it.
I throw, you catch; server uploads, client downloads.
BitTorrent is different because it is all about sharing. There may not be one "server". All the clients are peers, and everybody downloads the file from everybody else. So, once you have downloaded a piece of a file from the torrent, somebody else might download it from you. Hence, your computer does both download and upload simultaneously.
"Seeders" are merely client computers (people) who already have the whole file. They have therefore stopped downloading anything, but they continue to share which is, of course, an upload.
"Leechers" are clients that don't have the whole file yet, and are actively downloading data from the torrent (i.e. from the other clients). A "leecher" that has part of the file already may also be uploading ("seeding") the file at the same time (or the user may have disabled upload, but not usually) but we don't call them a "seeder" until they're only uploading.
So, seeders do not upload the file to anywhere in particular; they share sections of the data when a leecher asks for it, and otherwise merely sit idle.
When a file (or a video stream, or game data, or whatever) is transferred from user A to user B, that data usage will count against both users' data allowances. So, if, for example, you transfer 2MB between two of your own devices (via an external carrier) then you'll end up getting charged for 4MB of data usage (2MB for each device).
Comment: So while downloading a normal file from a server apart from my download bandwidth the server's upload bandwidth is also being used?  That means downloading a file just doesn't mean myself downloading it but also the server uploading it to each and every client. For a file of 2MB a total of 4MB data is involved.
Comment: Yes, both parties will have to pay their local ISP for 2MB of data, so if they have the same ISP then that company gets paid for 4MB of data (assuming some kind of pay-as-you go scheme, for the sake of example).
Comment: So suppose I download a 100MB file from torrent. Then I will be definitely charged for the 100MB I downloaded. But I might be charged for 200MB if I decide to seed the file(100MB for uploading). Correct?
Comment: It could upload less than 100MB, it could upload a lot more. It depends how many leechers there are, how long you allow BitTorrent to run, and how many other seeders taking the load. If data usage costs you money you can usually set upload limits in your BitTorrent client, or even disable upload completely. If you set it to stop when the "ratio" hits 1.0 and then let it run for a longish while then yes, you would use 100MB download and 100MB upload.
Comment: Okay. Now whenever I seed a file I see a progress bar that goes until 100% i.e until the file is completely uploaded. But what if there are no leechers for this file? Where will it be uploaded then?
Comment: If there are no leechers (besides yourself) then nobody will ask your client to upload anything.
Comment: So there will be no seeding. Right?
Comment: Right, not unless a new leecher joins the torrent.
Comment: @Shivamaggarwal, your question just got bumped to the main page.  Let me add a clarification on ISP charges.  It may seem like they are collecting twice for the same data moving once through the network.  The ISP doesn't own the network, they provide a service to the end user.  So the user at each end is being charged to move the data either into, or out of, their own local system.
Answer: For BitTorrent
Seeders will Upload the File Either from there System or a Seedbox.
And Yes the uploader and the Seeder are using the same bandwidth.
Now Seeding usually is from multiple People or their computers.
Each Person that downloads a file is Seeding it unless they stop it.
Now Each person that downloads the Torrent will Download Pieces off of each person.
So Yes Downloading From your computer means the Host is Uploading to you Bandwidth is being used both ways.
As For Downloading From a Site.
The site is uploading the file to you and you are downloading the file from them.
Some sites have Multiple sites the upload the downloads to that way you can select the best download for your region.
Comment: So while downloading a normal file from a server apart from my download bandwidth the server's upload bandwidth is also being used? That means downloading a file just doesn't mean myself downloading it but also the server uploading it to each and every client active. For a file of 2MB a total of 4MB data is involved. Am I correct?
Comment: Yes 4MB of Total data is being used. But you are only using 2MB from your ISP and whoever you are downloading from is using 2MB from their ISP.
Comment: Thankyou soo much for a clear answer :D.  So I assume that the server's upload speed must be fairly high to server multiple clients. Can you please give me in numbers the appropriate upload speed of the server.
Comment: I cant give you exactly the Amount coming from a Sever is all Depends on what the ISP allows. A lot of Severs you download from are Throttled per connection to allow Multiple users to download at once.
Comment: So if a server has very slow upload speeds then it should also affect my download speed, no matter how fast my connection is.  My maximum download speed will always be the maximum upload speed of the server?
Comment: The Sever is only going to let you download as much as it wants you to at once if your download speed is 75MB a second and you download from a file off a sever and you are get 1-5mbs then that is what you are going to get. Having a speed of 75mbs will allow you to have several users on your network download the same file at the same time as well as upload. So you will like you said at first you will only get what they let you no matter how fast your connection is.
Answer: What you download from your side (as a client) is automatically viewed as upload from the server side.
To take a very trivial example:
Consider it like a two way road between two points (your house and your grandma's house): an observer from your house will see your car roll away to your grandma's, while your grandma's will see your car approaching.
So you are completely right when you are saying that seeders are uploading what leechers are downloading.
Comment: Does that mean twice of internet traffic is used?
Comment: Not exactly. Each "side" has its own Internet traffic. For residential Internet access, providers often *only* talk about downloading speed in their commercials, which is often far superior. You should ask them how much do you have in upload speed to know exactly.
If you have 100 Mbit/s download / 10 Mbit/s upload on your side, this means that someone downloading a file from you will not be able to retrieve it at above 10 Mbit/s (which means approximately 1 Mbyte/s).
Comment: But in total twice is used,  right?.  Also if server's upload speed is slow then can it also limit my download speed no matter how fast my connection is?
Comment: You can consider it twice if you say that the bytes exchanged are counted as upload from one side and as download from the other side.
To answer your second question above, if the server's upload speed is low, you won't be able to retrieve the file faster, how fast your own connection is.
Comment: Each side is responsible of its Internet access. So if you are charged according to a data plan, for example with roaming mobile access, your provider will only count the data once.
Comment: You are welcome. Glad if I could help.


Ubuntu Linux and SCO UNIX OpenServer

Question: Can Ubuntu Linux run SCO UNIX OpenServer 5.0.7 applications like filePro?  Can I use CTAR to copy application directories from a CTAR backup tape to Linux Ubuntu?
Answer: Supposedly there is a binary emulation support that is available to the Linux kernel though it needs to be compiled in.  I've always found though that it is better to port the application or run a native alternative then try running through an emulator.
Comment: This binary emulation was dropped a while ago, before Ubuntu even existed. This has been discussed [here](http://unix.stackexchange.com/a/7884).
Answer: I never tried it, but you might have more luck with NetBSD, which has more powerful binary emulation features. It claims to support SCO UNIX binaries; you might need to supply your own libraries.
Answer: Linux and Sco unix are incompatible binaries,so the answer is not.
Is possible to emulate the entire sco system in Virtualbox(some version like 5,6 and even some old 3.2 works fine),but not using a sco binary
or entire app on linux.
Never heard of ctar,if you mean tar,the answer is yes,tar archives are portable between unix system,one of the few thing wich work on all unix os!

Ubuntu Linux and SCO UNIX OpenServer


What exactly is the meaning of "fine wine"?

Question: I read an article which was titled as:
Ageing like fine wine
I'm sill pondering over what does it mean? And, where does it trace it's origin from?
For context, the article talks about a person's achievement?
Comment: This is one of those words that can mean its near opposite depending on usage.  Compare "_This is a fine wine_" to "_This wine is fine_".  The first implies that it is of exceptional quality, while the second implies that it is merely acceptable.  The English language is screwy that way.
Answer: A good wine supposedly gets better with age. See https://en.m.wikipedia.org/wiki/Aging_of_wine
If this expression is used to describe a person ("aging like a fine wine") it is meant to compliment the person, saying the more they age, the better they become as a person, like a wine (and unlike most other things, which get worse with age).
Comment: @Vishal Ghulati no, "fine wine" means a very good (and probably very expensive) wine, as noted in other comments. Fine wines are intentionally aged and get better over time. Mediocre/cheap wines do not improve with age in the same way.
Comment: Yes - it's particularly relevant that the wine *gets even better* with age. And in fact, some kinds of wine (Rioja and other wines based on Garnacha
 or Tempranillo grape varieties come to mind) aren't actually particularly palatable *until* they've been adequately aged.
Comment: "Aging like (spoiled) milk" is the idiom's inverse I usually see.
Comment: Then, shouldn't it be just wine without "fine" preceding it ?
Comment: Neve heard that one but I understand the implication!
Comment: @VishalGhulati Not all wine is *intended* to be kept for a long time to improve its quality before it is drunk. Some wines are meant to be drunk "young" and would get *worse* with age.  One of the most extreme examples is https://en.wikipedia.org/wiki/Beaujolais_nouveau which is meant to be drunk only a few *weeks* after harvesting the grapes, not kept for many years.
Answer: To add to the existing excellent answer from Mixolydian, you may also be interested in the ultimate origin of fine. Etymologists don't seem to be 100% sure, but it seems to come from the same Latin root as finished, and was originally meant as complete, well-rounded, or indeed well-finished.
"Fine wine" typically means the best sorts of wine, though exactly what that means is subjective - though wine critics largely agree in practice. It also means they will be more expensive. I have heard it said that a truly fine wine is such a different experience from a typical supermarket wine that they do not really compare, not any more than wine to grape juice. I have never had what anyone would call a fine wine - and fine wines tend to be red more often than white, in my limited experience, so my opportunities to do so are limited by the fact that red wine gives me a migraine. I did once have a wine that was supermarket price, but superior to anything I've had before or since - including the next year's vintage from the same vineyard. If that's one tenth of the difference between typical wines and fine wines, then I can see why people pay a lot of money for them.
Whatever it is that makes a wine "fine" also tends to affect how it develops after bottling. Wines being produced for the supermarket or local wine shop are intended to be drunk after a short, set aging period, and are as good as they will get when you buy them - and after a few years, they will degrade. Wines that are being made to be as good as they can get them take far longer to "peak" - to reach their optimum drinking quality. Wine buffs even put a lot of effort into working out when it will be, or knowing when it has happened so they can drink it as soon after peaking as possible. Of course, one bottle won't age the same as another if they are kept in different conditions.
So, fine wines, unlike most foods or drinks, get better when they age, at least up to a point. To say something, or someone, has aged like a fine wine is to say that they have improved with age.
Comment: "my opportunities to do so are limited by the fact that red wine gives me a migraine" Well, it is common when tasting wine to spit it out.
Comment: You can't properly appreciate a wine just by tasting it. Plus some would get swallowed, it's inevitable.
Answer: This seems to be a pretty complicated question. Most wines actually don't age well at all. Only some wines age well, and it's not really true that wines that are more expensive before they are aged are the ones that age better. The aging process itself is expensive, so aged wines don't necessarily cost more because of the costs of growing those varietals or costs of making the wine from the grapes, it's the aging itself that drives up the cost.
The other tricky aspect of this question is the word fine. It doesn't just mean "good", especially in the area of wine-making. There is a process that is sometimes done to wine called fining, which is adding any of several substances that captures certain solutes and suspended substances in the wine and causes them to precipitate out.
So is it really that wine that has been fined ages better? Well not so fast, because over fining of wine can make it age more poorly, since some of the solutes that would be caused to precipitate by fining, like tannins, contribute to improvement of the wine when it's aged.
Very few wines improve with age, but those that do can become far more subtle and complex than unaged single-varietal wines, and while blends can be much more complex than single-varietals, an aged wine can have flavors that don't seem to be present in any kind of unaged wine. Then again, wines that age well often aren't very good when they have not yet been aged. Would they be called "fine" as in "good" before they have been aged? Probably not. At the same time, wine that ages well and has been well-aged, can easily be some of the best wine, and it makes sense to call it "fine wine" after it's been aged.
One possibility is that the phrase is just poetry. "Fine" and "wine" rhyme - and "aged like fine wine" rolls off the tongue quite well. Or it could spring from a misunderstanding of what it means for a wine to age well or be well-suited for aging. Even wine aficionados don't all agree on what "fine wine" means.


Difference between text-based image retrieval and natural language object retrieval

Question: I am working on creating a model that locates an object in the scene (2D image or 3D scene) using a natural language query. I came across this paper on natural language object retrieval that mentions that this task is different from text-based image retrieval in the sense that natural language object retrieval requires an understanding of objects in the image, spatial configurations, etc. I am not able to see the difference between these two tasks. Could you please explain it with an example?
Answer: Disclaimer: I can only answer for the NLP part since I'm no expert for image processing.
I assume that text-based image retrieval is the task of finding the image (or the part of an image) which corresponds to a short text which exclusively describes the object. Practically it means that any content word (i.e. excluding grammatical words like determiners) in the text refers directly to the object: "a bike", "a black cat", "the red car", etc. For a ML process it means that there's nothing to analyze in the text, every word can directly be associated with a characteristic of the image.
By contrast Natural Language object retrieval involves analyzing the text. For instance "the cat on the left of the picture" is different than "the picture on the left of the cat", even though the words are the same. Additionally there can be different ways to refer to the same object: "the book at the left of the shelf" may be the same as "the leftmost book" or "the book next to the green book". There are usually many ways to express the same meaning with language, and that makes the task much more complex. Additionally I would assume that mapping positional descriptions to the image characteristics can be tricky: "the man behind the tree" or "the second bridge" in a 2D image requires the model to "understand" depth. In a picture with two dogs, "the small dog" requires the model to "understand" size relation between objects. Humans intuitively know how to interpret these sentences, but for a machine Natural Language Understanding hasn't been solved yet (it might never be).
Comment: @Sid I don't know, apparently the paper you mentioned shows that it's possible so I guess you should try their method. In general joint learning often gives better results but requires much more instances. But I guess it mostly depends how diverse is the language: if most of the descriptions just use standard expressions like "left of, right of, above, below", it's much easier than if there are many different ways to express the same thing like in my examples.
Comment: Thanks for your response. If we have natural language descriptions where each description is annotated with an object label (or object id) from the 2D images or 3D scenes, and we also have bounding boxes of objects in the scenes, if we train a model using this annotated dataset, will the model be able to learn things like "spatial relations" between main object and other reference objects? What's the best way to train natural language descriptions and 2D/3D images? Is it by jointly embedding images and descriptions? Any advice to train such a model would be of great help!


Canonical Partners update problem

Question: I enabled canonical partners in software&updates and when it updated it saved everything into /boot partition which has only ~200MB and I can't see the partition now but remember making it when installing Ubuntu 14.04. So my question is if I can change the partition/folder/place that software and updates want to save stuff in?
Answer: First of all, you can try to clean some downloaded packages by running commands
<code>sudo apt-get clean
sudo apt-get autoclean
</code>
It looks like you mix up / and /boot directories. Software is not installed into /boot directory. But it could run out of place because of kernel image and headers update. You can remove old kernels by using synaptic.
Generally speaking it is not a good idea to make a separate /boot partition. This has no benefits for desktop computers, but may cause problems like you have.
There is no good way to keep kernel images anywhere ele, but /boot. I suggest to merge /boot with /, but it is not quite easy for a novice. Maybe it makes sense to reinstall the system, keeping your /home partition. I guess you have it separate. You can remove /boot partiton and increase / in gparted. You can do it after booting from LiveCD.
Comment: Thanks. I have a laptop and when I was installing Ubuntu making a /boot was (recommended) and I had problems with booting Ubuntu previously without a /boot. I would rather not have to go through all that horrible work again just to fail to boot Ubuntu again.

I did the 'autoclean' and now I didn't get a error message. But when I tried to type in Terminal

sudo apt-get clean

I had to enter my password. Which wasn't possible. I hit all the buttons but nothing was being typed. But the autoclean wasn't pasword protected so that worked.
Comment: It was never officially recomended to do a separate /boot partitions. Some people write this in forums for some reason. Passwords in terminal do not appear. Just type it. But you will have this problem again soon after some kernel updates. And it won't be fixed by clean. So think.
Comment: Can you steer me in a direction where I can find a good guide on how to merge '/boot' partition with '/'? Much appreciated.
Comment: I can't give a link to a guide. But you can boot from Ubuntu LiveCD (flash drive you installed from),  then run gparted. There you can delete boot partition and resize your / partition. Then install Ubuntu again. There must be some installation guides.

Canonical Partners update problem


Host headers for SharePoint foundation

Question: Can we configure host headers for SharePoint Standalone environment? without Active Directory?
Answer: Yes, you can. AD doesn't play a role here. Have you already created one, you can recreate it by removing SharePoint from the IIS Web Site on your Web Application in Central Administration. When that is done, extend your Web Application, chose an existing IIS Site but with a new Host Header.
Reference: How to properly change the Host Header URL of a web application in SharePoint 2010
Comment: I don't want to change any host header, I want to create a new web application with new host header, how will I do that while I don't have DNS? isn't DNS necessary to insert HOST A record?

Host headers for SharePoint foundation


How to check for an event and remove it?

Question: Is there a way to check to see if a PageEvent has already been added to a PdfWriter object?  If so, can you also remove said PageEvent?
Answer: In the Java version of iText, there's a method getPageEvent() available in PdfWriter. There should be a GetPageEvent() or PageEvent in iTextSharp that you can use to find out if there is a page event present.
To remove an existing page event, you need to set the page event to null. Adding an extra page event won't replace the existing page event, but add an extra event that will be triggered along with the original event(s).
Comment: Thank you very much.  That was exactly the issue with removing the previous event.
Answer: Here's a good example for adding total page number to every page.
http://www.mazsoft.com/blog/post/2008/04/30/Code-sample-for-using-iTextSharp-PDF-library.aspx
check this http://geekswithblogs.net/guilhermecardoso/archive/2010/10/19/itextsharp---use-header-with-events.aspx
Have a look at Page Events, in particular onStartPage and/or onEndPage to determine if you have to change the margins of the document. http://itextpdf.com/themes/keyword.php?id=204
.
Please note that these examples are for the Java version, but the conversion to iTextSharp should be straightforward.
Comment: This doesn't answer the question, does it?


Creating a warning in Excel when multiple pages are selected to prevent accidental overwriting of cells

Question: I am attempting to write a bit of Visual Basic code to prevent anyone from accidentally overwriting cells across multiple sheets when multiple sheets are selected.
I do however want the option of overwriting cells across multiple sheets, should that be required at any stage.
So, when I have multiple sheets selected I would like a pop up with 2 options, as follows:
"Are you sure you want to overwrite the cells across the sheets you have selected?"
Ok  Cancel
I think I am nearly there with the code below, but if I have 3 sheets selected then the pop up will appear 3 times (once for each page). Naturally I only want the pop up to appear once regardless of how many sheets I have selected.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   If ActiveWindow.SelectedSheets.Count > 1 Then
   If MsgBox("Are you sure you want to overwrite the cells across the sheets you have selected?", vbOKCancel) = vbCancel Then Exit Sub
       Application.EnableEvents = False
       Application.Undo
    End If
   Application.EnableEvents = True
End Sub

Or an even better solution would actually be:
"Are you sure you want to overwrite the cells across the sheets you have selected?"
Yes (to continue with all selected pages),
No (to select current page and continue),
Cancel (to cancel operation and keep current selection).
Answer: This solution validates if the event worksheet is the active worksheet in order to fire the Multiple Selection procedure.
Also if user chooses to update only the active sheet, the procedure leaves all other sheets included in the selection as they were before the action that triggered the vent, instead of the undesired effect of entering in all those cell the vbNullString value
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.EnableEvents = False
    If Sh.Name = ActiveSheet.Name Then Call Wsh_MultipleSelection(Target)
    Application.EnableEvents = True
End Sub

Private Sub Wsh_MultipleSelection(ByVal rTrg As Range)
Const kTtl As String = "Selection Across Multiple Sheets"
Const kMsg As String = "You are trying to overwrite cells across multiple sheets." & vbLf & _
    "Press [Yes] if you want to continue and overwrite the selected cells" & vbLf & _
    "Press [No] if you want to overwrite selected cells in active sheet only" & vbLf & _
    "Press [Cancel] to undo last action."
Const kBtt As Long = vbApplicationModal + vbQuestion + vbYesNoCancel + vbDefaultButton3

Dim iResp As Integer
Dim vCllVal As Variant
Dim bWshCnt As Byte

    bWshCnt = ActiveWindow.SelectedSheets.Count
    If bWshCnt > 1 Then
        bWshCnt = -1 + bWshCnt
        iResp = MsgBox(kMsg, kBtt, kTtl)
        Select Case iResp
        Case vbYes
            Rem NO ACTION!
        Case vbNo:
            Rem Select Only Active Sheet
            vCllVal = rTrg.Cells(1).Value2
            Application.Undo
            rTrg.Value = vCllVal
        Case Else
            Rem Cancel
            Application.Undo
    End Select: End If
End Sub

Comment: That's what you wanted that `No` only changes the `activesheet`, cancelling of the undo is the side effect you did not anticipated. How indecisive are your users?
Answer: This is very tricky, since by using the Workbook_SheetChange event the code will fire for every instance of a sheet change which you have to account for.
However, with some crafty use of public variables to use as a switch / counter and a separate sub-routine to process which cases to change all vs. active vs. no worksheets, I have developed code that has been thoroughly tested. I have also heavily commented my code to help understand the logic.
Option Explicit

Dim bAsked As Boolean
Dim dRet As Double
Dim iCnt As Long

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    Application.EnableEvents = False

    Dim lSheets As Long

    lSheets = ActiveWindow.SelectedSheets.Count

    If lSheets > 1 Then Check lSheets, Sh, Target

    Application.EnableEvents = True

End Sub

Sub Check(iTotal As Long, ws As Worksheet, rng As Range)

'use this is a counter to count how many times the sub has been called in the firing of the 'Workbook_SheetChange` event
iCnt = iCnt + 1

'if the question has not been asked yet (first time event is fired)
If Not bAsked Then

    dRet = MsgBox("Are you sure you want to overwrite the cells across the sheets you have selected? Click Yes to overwrite all sheets, No to overwrite the Active Sheet, or Cancel to abort the entire overwrite.", vbYesNoCancel)

    bAsked = True 'set to true so question will only be asked once on event firing

End If

'dRet will always be the same for each instance an event is fired
Select Case dRet

    Case Is = vbYes

        'set the value for each range to what user entered
        ws.Range(rng.Address) = rng.Value2

    Case Is = vbNo

        'only set the value the user entered to the active worksheet (the one the user is on)
        If ActiveSheet.Name = ws.Name Then
            ws.Range(rng.Address) = rng.Value2
        Else
            ws.Range(rng.Address) = vbNullString
        End If

    Case Is = vbCancel

        'do not set any values on any sheet
        Application.Undo

End Select

'if the total times the sub has been called is equal to the total selected worksheet reset variables so they work next time
'if the count equals the total it's the last time the sub was called which means its the last sheet
If iCnt = iTotal Then
    bAsked = False
    iCnt = 0
End If

End Sub

Comment: Be aware that if the user selects `No` this code still changes the cells in all other sheets...
Comment: @EEM - Yes, I realize that now, that the `vbNullString` may not be the desired results if the cell already had a value :(  I was almost there :)


Dumbbell weight training for distance running

Question: What weight training exercises can I do with dumbbells that will benefit me most for running 5-10ks? Are stomach crunches/sit ups worth doing too?
Comment: Ive had some success from dumbbell squats, snatches and swings. Use a fairly heavy weight such that you can do 4-5 sets of ~5 reps
Answer: Your aim with weight training for running is for strength and not for "bulking up".
There are a whole bunch of exercises that you can find just by Googling "weight training for running".
With dumbbells you will be looking at doing things like lunges, steps and squats to target the legs.
Again, just Google "dumbell squats" etc. and have a look on youtube to see videos.
I also suggest doing crunches and sit-ups for long distance running. You will find that strong abdominals helps improve balance and if your legs are quite strong you will notice the burn in your abs once you start running long distances.
Comment: Please try to avoid including "Google X" as part of your answers.
Comment: +1 it is useful though that you have mentioned **what** to google for.
Answer: I'd recommend going with a rapid fire style of workout using light dumbbells that is a hybrid of both cardio and strength training. For instance, see this video from Scott Abel.  The rationale for why you would want to do this workout is in the zentofitness.com article, too.
Comment: I disagree strongly. If someone is doing a 5 or 10k, they are getting their cardio from running. They need strength training, particularly for the lower body. Light-weight upper-body dumbbell work as described in the article is barely useful at all for improving running times.
Comment: I disagree with your disagreement because 1) the "cardio" in this type of workout is very anaerobic in nature and there are several benefits to anaerobic conditioning for 5k-10k runs 2) training the upper body increases posture and core stabilization - both important for running 3) you need *something* active for days where you give your legs a day off.
Comment: I still disagree, but updating your question with that reasoning is good enough to remove my downvote.
Answer: Running benefits from strength in the posterior chain, particularly the hamstrings, glutes, and lower back. Lower body strength generally will help as well. Dumbbell squats, squat-jumps, lunges, and deadlifts, done as heavy as possible, would be ideal for this goal.
Power and speed development is also important. For that purpose, dumbbell cleans, swings, and snatches are called for.
In the interest of balance, it might be nice--but not required--to add in some overhead presses and dumbbell rows for the upper body.
I don't see any particular reason to do sit-ups for a 10k race, particularly if you're getting stronger in the abs from heavy lifting. I prefer planks. But they would probably be fine.


How to install kernel on debian with no internet connection

Question: I'm trying to install a newer kernel version on my Debian (squeeze) machine as I need it to get my wireless card working. I have Debian on one partition of my hard drive, Fedora on the other. I'm looking for SIMPLE instructions on how to do this which I cannot find anywhere on the net. Any help would be greatly appreciated! I'm even wondering if it is possible to copy the kernel across from one partition to the next?
Answer: Assuming you have a machine that is connected to the internet, and that apt is properly configured on your squeeze machine, you can do e.g.
apt-get install --print-uris linux-image-2.6.32

which will give you a list of urls for packages to install. Then you can  use another machine to download them. On my machine, for example, this list starts with

'http://debian.csail.mit.edu/debian/pool/main/l/linux-2.6/linux-image-2.6.32-5-486_2.6.32-39_i386.deb'
linux-image-2.6.32-5-486_2.6.32-39_i386.deb 27475516
MD5Sum:be5608eefba4b7180d91b7888abde8da

Then you can download the packages on another machine by doing (for example)
wget -c http://debian.csail.mit.edu/debian/pool/main/l/linux-2.6/linux-image-2.6.32-5-486_2.6.32-39_i386.deb

Then copy them to your Debian machine. Then do
dpkg -i linux-image-2.6.32-5-486_2.6.32-39_i386.deb pkg2.deb pkg3.deb...

You need to give all the package files as arguments.
If you see errors, try running this command again. Sometimes dpkg, when called with a list of packages which are dependent on each other, has trouble with dependency resolution. If it still doesn't work, try
apt-get -f install

which will try to resolve your dependencies.
An alternative is gdebi
apt-cache show gdebi

Description: Simple tool to install deb files - GNOME GUI  gdebi lets
you install local deb packages resolving and installing  its
dependencies. apt does the same, but only for remote (http, ftp)
located packages.

Current versions of apt support the installation of deb files, and handle dependency resolution for them. So one can do, instead
apt-get install ./linux-image-2.6.32-5-486_2.6.32-39_i386.deb ./pkg2.deb ./pkg3.deb...

One needs to specify the location of the deb files, here, hence the ./, which of course means current directory here.
Comment: on my debian machine that is not connected to the internet the --print-uris command finds nothing. how will it know what packages it needs if its not connected to the internet?
Comment: @james: It uses the apt cache if present, but this does assume that it has at some point been connected to the internet, and that you ran `apt-get update`, so it has the cache. If not, you'll have to manually go through the list of packages it wants. How did you do the installation?
Comment: @james: Perhaps you could give more details about your setup, as in, which systems do you have connected to the internet, why you can't connect the Debian installation to the internet temporarily (which would be the simplest thing), and the history of the Debian installation, like how you installed it and whether it has ever been on the network.
Comment: i have installed debian cd 1 on one partition of my hard drive. i have a rtl8191se wireless card which will not work as of yet on debian, on my other partition i have fedora. no problems wireless is working fine.. recently i updated my debian kernel its now 2.6.39 and downloaded the drivers for the rtl8191se card. when i try to compile make keeps bringing up errors :/
Comment: @james: Ok. The drivers for the card are not included in the kernel I take it? I suggest you post the errors.
Comment: ok my kernel version was 2.6.34 my realtek 8191se firmware driver said it needs at least 2.6.35. so now thanks to below post i have 2.6.39-bpo.2-686-pae. but now when i try run make in the driver directory it says "make entering directory lib/module/2.6.39-bpo.2-686-pae//build, no rule to make target 'modules', stop." is there a problem with my make? if it helps i been installing i386 packages because on the debian site for squeeze there's no i686 packages. my kernel is in i686 however
Comment: @james: this is not a compile error. Sounds like you are have some kind of configuration error, or you are trying to compile in the wrong place, as it is not finding the makefile. Check that your module is not (a) already included in the kernel and (b) there are no Debian sources available for it. If that is the case, you could just compile a deb. As gilles suggests, repost, and include as much information as you can about how you are trying to compile the module. What is the name of the module?
Answer: It sounds like you need a more recent version of the kernel than what's in Debian squeeze. The easiest thing to try is the kernel from the backports. The kernel is in a package called linux-image-$VERSION-$FLAVOR. Pick the flavor from what you already have (e.g. 686 or 686-bigmem or amd64 or … and get the most recent version you can find. The sqeeze backports currently have version 2.6.39.
If that's recent enough for you, download the .deb file from the website and copy it to your machine however you like (e.g. on a USB stick). Also grab every package that's listed as a dependency; you'll need the package containing the actual kernel file (not just the linux-image-2.6-… metapackage) and updated initramfs-tools, and possibly more recent firmware-linux-free and other firmware as well. Install the packages by typing the command dpkg -iGE /path/to/*.deb as root in a terminal. This will automatically create an entry for the new kernel in the boot menu. Reboot and see if it works.
If you need to recompile third-party modules in addition to what's distributed ith the kernel, grab the linux-headers-… package alongside the -image- package.
If you find you need an even more recent kernel (3.0 or 3.1), it doesn't look like there's any readily available package for Debian squeeze at the moment. Try a 3.x kernel from testing or unstable (or even a 3.2rc in experimental). Note that this may require more effort; you may need more recent module and initramfs tools.
Comment: thanks for the advice. i got my kernel updated using your advice. only problem now is i still cant get my wireless card working :/.. if i type in ifconfig wlan0 up it says theres no such device. im having trouble makeing the drivers. if i go into the driver directory and type make it brings up an error
Comment: @james It's impossible to help you more without knowing what your wireless card is and what the errors are. I suggest that you ask a new question "How to make XXX wireless card work on Debian squeeze" (where XXX is the model of your wireless card), and mention what you tried (what kernel and driver versions you used, where you got them from, what commands you ran…) and copy-paste the error messages.
Comment: ok sure.. i'll repost. thanks for all the help. i at least go a new kernel package working :)
Answer: If you have following scenario, this may be helpful

Tried to install Debian Wheezy which have kernel without some WiFi driver which is available only in higher kernel (Not in 3.2 but available in 3.13 version of kernel). You may have found it out by running Debian jessie installation DVD.
You do not want jessie which is unstable
Now if you install Debian wheezy, you do not have working WiFi/wired connection. So you can not update to newer kernel.

=========Then do as follows (Thanks for above comments)=========

In a computer with Internet add jessie in /etc/apt/source.list
Example: deb http://ftp.iitm.ac.in/debian/ jessie main
apt-get update
To find if kernel 3.13 is available apt-cache search linux-image
wget -c 'http://ftp.iitm.ac.in/debian/pool/main/i/initramfs-tools/initramfs-tools_0.115_all.deb'
wget -c http://ftp.iitm.ac.in/debian/pool/main/l/linux/linux-image-3.13-1-amd64_3.13.10-1_i386.deb'
apt-get download linux-headers-3.13-1-amd64
copy files downloaded to computer with no Internet
dpkg -i
reboot and select amd64 kernel

Above instructions were helpful to me to install debian wheezy with kernel 3.13 on laptop ACER Aspire V5-123


Saleaforce IOT: ESP8266 IoT device facing 302 Http redirect instead of 201 when calling REST API because of insecure HTTPS call

Question: ESP8266 has been able to get OAuth token by Device Flow OAuth2.0
After getting OAuth token, I was hitting the REST API endpoint /services/data/v45.0/sobjects/Account
with a JSON body in the request:
HTTPSRedirect client;
client.setInsecure(); // does not validate Certificate of the server , this is needed as i do not want to store the fingerprint of the server as it changes  with certificate renewal
String access_token = (*tokenJSON)["access_token"].as<char*>();
String authorization_header_str = "OAuth " + access_token ;
const char* server = "ap8.lightning.force.com";
const char* host="ap8.lightning.force.com";  // Server URL
client.connect(server, 443)
String url="/services/data/v45.0/sobjects/Account";
String data ="{\"Name\":\"Raja\"}"  ;
client.println("POST " + url + " HTTP/1.1");
client.println("Host: " + (String)host);
client.println("User-Agent: ESP8266/1.0");
client.println("Content-Type: application/json");
client.println("Authorization: "+authorization_header_str);
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.println(data);
delay(10);
String response = client.readString();

The response given back is as follows:
Connected to server!
response->
HTTP/1.1 302 Found
Date: Sat, 16 Feb 2019 06:47:17 GMT
Strict-Transport-Security: max-age=31536001; includeSubDomains
Public-Key-Pins-Report-Only: pin sha256="9n0izTnSRF+W4W4JTq51avSXkWhQB8duS2bxVLfzXsY="; pin-    sha256="5kJvNEMw0KjrCAu7eXY5HZdvyCS13BbA0VJG1RSP91w="; pin-sha256="njN4rRG+22dNXAi+yb8e3UMypgzPUPHlv4+foULwl1g="; max-age=86400; includeSubDomains; report-uri="https://a.forcesslreports.com/hpkp-report/nullm";
Expect-CT: max-age=0; report-uri="https://a.forcesslreports.com/Expect-CT-report/nullm";
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: upgrade-insecure-requests  //// SEE THIS, it says to pgrade to https
X-Robots-Tag: none
Cache-Control: no-cache,must-revalidate,max-age=0,no-store,private
Set-Cookie: BrowserId=tlUX-F_cRg6EKM-qch5thw;Path=/;Domain=.force.com;Expires=Wed, 17-Apr-2019 06:47:17 GMT;Max-Age=5184000

Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: https://ap8.salesforce.com/services/data/v45.0/sobjects/Account
Content-Length: 0

So, how to solve this redirect problem?
It would be solved if :

If I could get the certificate fingerprint of https://ap8.salesforce.com by some API call or from somewhere(dynamically)
I can somehow upgrade the insecure https request to a  secure https request
Some how http to https proxy maybe?
Take something from the response header and some how verify certificate?

Any help is greatly appreciated.
Answer: I had a similar issue and solved simply by substituting the server URL with the location indicated in the response
const char* server = "ap8.salesforce.com";
const char* host="ap8.salesforce.com";  // Server URL


Serializer validate function is not called DRF

Question: class ChildSerializer(serializers.ModelSerializer):

    class Meta:
         model = Child
         fields = '__all__'

class ParentSerializer(serializers.ModelSerializer):
    """
    Serializer for task
    """
    def validate_title(self, data):
        if not data.get('title'):
            raise serializers.ValidationError('Please set title')
        return data

Validate Function is not called when Post ,Also how can i give custom errors to ChildSerializer ,
Comment: `validate_title()` won't invokes unless you call `serializer.is_valid()`
Comment: see this [DRF Serializer Validation Document](http://www.django-rest-framework.org/api-guide/serializers/#validation)
Comment: DRF has a validation level hierarchy, and field validation is at 4 or 5 level based on the [source code](https://github.com/encode/django-rest-framework/blob/1fa5bc31c0c047eb2109929b17f8e53e84b7d40b/rest_framework/serializers.py#L342). Your field validation may not be hit if DRF validations encounters errors first (i.e blank, null field validations...). There is no override!
Answer: I ran into a similar problem where my custom validation field was not being called. I was writing it to bypass an incorrect DRF validation (more details shown below, but not necessary for the answer).
Looking into the DRF source code I found my problem: DRF always validates your field using its code before validating with your custom code.
''' rest-framework/serializers.py '''

for field in fields:
    validate_method = getattr(self, 'validate_' + field.field_name, None)
    primitive_value = field.get_value(data)
    try:
        # DRF validation always runs first!
        # If DRF validator throws, then custom validation is not called
        validated_value = field.run_validation(primitive_value)
        if validate_method is not None:
            # this is your custom validation
            validated_value = validate_method(validated_value)
    except ValidationError as exc:
        errors[field.field_name] = exc.detail
    except DjangoValidationError as exc:
        errors[field.field_name] = get_error_detail(exc)

Answer: Custom validators cannot be used to bypass DRF's validators, as they will always run first and will raise an exception before you can say it is valid.
(for those interested, the validation error I hit was like this: ModelSerializer used for ModelA, which has a OneToOne relation to ModelB. ModelB has a UUID for its pk. DRF throws the error '53abb068-0286-411e-8729-0174635c5d81' is not a valid UUID. when validating, which is incorrect, and really infuriating.)
Answer: Your ParentSerializer validation method has some issues. Assumes that there is a title field in your ParentSerializer model. For field level validation, you will get the field instead of whole data. That is validate_title function should have title(title field of the data) as parameter not data. So you dont have to check data.get('title') for the existance of title. Reference
class ParentSerializer(serializers.ModelSerializer):
    """
    Serializer for task
    """
    def validate_title(self, title):
        if not title:
            raise serializers.ValidationError('Please set title')
        return title

Answer: In addition to @sean.hudson's answer I was trying to figure out how to override the child serializer validation.
It might be possible to "skip" or more accurately ignore children serializer validation errors, by overriding to_internal_value of the ParentSerialzer:
class ParentSerializer(serializers.ModelSerializer):
    children = ChildSerializer(many=True)

    def to_internal_value(self, *args, **kwargs):
        try:
            # runs the child serializers
            return super().to_internal_value(*args, **kwargs)
        except ValidationError as e:
            # fails, and then overrides the child errors with the parent error
            return self.validate(self.initial_data)

    def validate(self, attrs):
        errors = {}
        errors['custom_override_error'] = 'this ignores and overrides the children serializer errors'
        if len(errors):
            raise ValidationError(errors)
        return attrs
    class Meta:
        model = Parent

Answer: My problem was that I had my own custom to_internal_value method. Removing it fixed the issue.
class EventSerializer(serializers.Serializer):
    end_date = serializers.DateTimeField(format=DATE_FORMAT, required=True)
    start_date = serializers.DateTimeField(format=DATE_FORMAT, required=True)
    description = serializers.CharField(required=True)

    def validate_start_date(self, start_date):
        return start_date

    def validate_end_date(self, end_date):
        return end_date

    # def to_internal_value(self, data):
    #     if data.get('start_date', False):
    #         data['start_date'] = datetime.strptime(data['start_date'], DATE_FORMAT)
    #     if data.get('end_date', False):
    #         data['end_date'] = datetime.strptime(data['end_date'], DATE_FORMAT)
    #     return data

Answer: I would like to add what the official documentation says, I hope it can be of help.
Field-level validation
You can specify custom field-level validation by adding .validate_<field_name> methods to your Serializer subclass. These are similar to the .clean_<field_name> methods on Django forms.
These methods take a single argument, which is the field value that requires validation.
Your validate_<field_name> methods should return the validated value or raise a serializers.ValidationError. For example:
from rest_framework import serializers

class BlogPostSerializer(serializers.Serializer):
    title = serializers.CharField(max_length=100)
    content = serializers.CharField()

def validate_title(self, value):
    """
    Check that the blog post is about Django.
    """
    if 'django' not in value.lower():
        raise serializers.ValidationError("Blog post is not about Django")
    return value`

Comment: While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference.  Link-only answers can become invalid if the linked page changes. - [From Review](/review/late-answers/30070580)


When talking about the supply curve, does a price increase always result in an increase in quantity sold?

Question: I thought I had an understanding of the law of supply (i.e that when price increases supply should also increase) but we were asked a question on a recent homework sheet that kind of puzzled me. the question is as follows "true or false, Since supply curves slope upwards, we would never see an outcome in a market where the price increases and the quantity sold decreases.?". My initial thoughts were no as the laws of supply dictate a sales increase but the question made me second guess so I thought I would ask if indeed there are any exceptions which make this question false because the prof said something like this could come up on the final.
Answer: The answer should be false.

Law of supply states that quantity supplied increases in price.

Quantity supplied $\neq$ quantity sold.

For example if we have supply given by:
$S= 10 +p$,
then if price 1 quantity supplied is 11, when price is 10 quantity supplied is 20 and so on. So clearly, quantity supplied increases in price.
However, quantity sold does not depend just on supply but also demand. For example, if demand is given by:
$D=100-p$
at price 1 quantity demanded is 99 units, but at price 1 firms are only willing to supply 11 units, so demand cannot be satisfied and there is a shortage of 88 units, since only 11 units can be sold.
However, at price 60, quantity demanded is 40, but quantity supplied is 70, so we have surplus. Quantity sold is 40, because even though firms are willing to supply 70 units only 40  can be sold. Quantity sold is always given by an interior point along demand supply, so above equilibrium price quantity sold is determined by what consumers demand, and below equilibrium price by what firms are willing to supply.
Answer: It is possible to see an outcome where equilibrium quantity sold decreases and the price increases when the supply curve is upward sloping. Consider an increase in price of input labor from $w_0$ to $w_1$. This increase in input prices will lead to a leftward shift of the supply curve. The reason is that the producer would like to supply a smaller quantity at any given price because of the higher cost of production. This would lead to increase in equilibrium price and fall in equilibrium quantity sold, given that the demand curve is downward sloping. Here is the picture:

As we can observe, as a result of an increase in the wage rate from $w_0$ to $w_1$, the equilibrium price has gone up from $p_0$ to $p_1$, but the equilibrium quantity has come down from $q_0$ to $q_1$.
Answer: This is a trick question, apparently with an educational intent.
Supply and Demand curves are curves that reflect intentions, not realized events.

Statement A: Supply curves slope upwards

is translated "at higher prices suppliers are willing to sell more ("willing" = intention)
while

Statement B: The price increases and the quantity sold decreases

is a realized event.
This event is certainly influenced by the previously stated intention, but it is not fully determined by it, so they can certainly co-exist, as the other answers exemplified.


Scaling Sprites in Cocos2d

Question: I'm trying to scale a sprite with "ScaleTo" and "SpriteBy" but as it's growing it's "floating away". For example let's say I have a circle, and I would like the circle to double it's radius each time it's clicked.
Right now my circle is growing, but it looks as though the circle is scaling about the origin/bottom left corner of the sprite. I tried changing the anchorpoint to
<code>circlesprite.transformAnchor = cpv(mysize.width/2, mysize.height/2 );
</code>
but that didn't work either. Any ideas?
Answer: Got it, I was just confused. The bug had nothing to do with this part of the code.

Scaling Sprites in Cocos2d


Currency with 3+ decimals in words

Question: How would you express currency that has over 2 decimals?
For example if you said €65.37 that would be "sixty five euros and thirty seven cents".
If you have €65.375 would you say "sixty five euros and three hundred seventy five cents". I guess that is wrong though since  "three hundred seventy five cents" is actually €3.75
Comment: Welcome to EL&U! Do you have a specific currency in mind? I cannot find a currency that subdivides into a thousand, though a hundred is rather common. I'm also not entirely sure whether you'd say "sixty five euros and three hundred seventy five cents", since that has never occurred to my knowledge.
Comment: In the US, we have the term "mill" for 0.001 dollars.  It is not commonly used nowadays, though.  (Except in expressing property tax rates).  See https://en.wikipedia.org/wiki/Mill_(currency)
Comment: Note that in English, when you write "€65,375", you are writing _sixty-five thousand three hundred and seventy-five euro_. Decimals are written with points in English, unlike most other European languages (that's why the Germans say _drei **komma** fünf_ while the English say _three **point** five_).
Comment: Hello, and thank you for the welcome. I was thinking specifically about euros. I know that this is extremely uncommon. However, when talking about being paid per hour and you want to be very specific and this needs to be on an contract it may be necessary. Or for example in currency exchange rates, where again you may have multiple decimals.
Comment: Since this is an English language forum, I changed your commas into decimal points. Feel free to revert the edit.
Comment: @ALambentEye here's one https://en.m.wikipedia.org/wiki/Bahraini_dinar
Answer: If you're using the comma where we in England would use a decimal point, we'd say, "Sixty-five point three seven five euros per hour. This would represent the figure of €65.375/hour.
Comment: As you note, schoolchildren in the UK (I don't know about elsewhere) are taught to say a decimal as "point" followed by the digits of decimals separately - e.g. "two six" or  "three seven five". Saying "twenty-six" or  "three hundred and seventy-five" would be considered a mistake and corrected by the teacher. Interestingly, they do not do this in French, where the decimal part is spoken as a number, unless it is very long, so that 123,102 is "Cent vingt trois virgule cent deux" (One hundred and twenty-three comma one hundred and two).
Comment: In some European languages longer strings of figures, such as decimals, phone numbers, etc. are often 'grouped' into pairs when spoken, so that pi to eight decimal places, 3.14159265,  would be said as the equivalent of "three [separator - point/comma etc] fourteen fifteen ninety-two sixty-five".
Answer: You can also say sixty five euros and thirty seven point five, or thirty seven and a half, cents. In general, the value is just a number. You can say sixty five point three seven five euros, or six thousand five hundred and thirty seven and a half cents. If you always want the number of cents to be less than 100, and the number of euros an integer, then for example 65.76543 euros is sixty five euros and seventy six point five four three cents.
You can also say it any way you would express a fractional number. You could say seventy six and five hundred and forty three thousandths of a cent, etc.
Comment: @KJO I see what you mean. Agree with the updated answer?
Comment: Except a comma would not be used in English.
Comment: @Spencer It would not be used in American English, certainly. I cannot comment on other English speaking areas because I have no knowledge. I was just using the OP's notation.
Comment: @MattSamuel It's not used in any English that I know of. The OP carried it over from their own language (many European languages use commas).
Answer: I would read <code>€65.375</code> aloud as "sixty-five euros,  thirty-seven cents and five tenths of a cent".
It is hard to find authoritative references in writing for how a figure should be read. But it is an established form when writing sums in legal documents - for example:

... there shall be paid unto the said Matthew and Peter, or either of them, the sum of one cent and seven-tenths of a cent per page for each and every page of said work so printed and published by them or either of them, ...
Report Made to the Hon. John Forsyth, Secretary of State of the United States ...
the gold coins of Croat Britain, Portugal, and Brazil, of not less than twenty-two carats fine, at the rate of ninety- four cents and eight tenths of a cent per pennyweight ;
A Dictionary Practical, Theoretical and Historical of Commerce and ...
Answer: There used to be a country whose currency actually did have three decimal places: Cyprus.
After decimalisation of the Cyprus Pound in 1955, it was divided into 1000 mils. (This was simplified in 1983 to 100 cents before Cyprus joined the euro in 2008.) £3.456 was read as "Three pounds, four hundred and fifty-six mils".
The only other currency I know of where there were subdivisions of a "cent" is the Pound Sterling, where prior to 1971 a penny was subdivided into four farthings and from 1971 to 1984 into two halfpennies. However those fractions were actually represented as fractions like ¾ and ½, and were read as "x pence three-farthing" or "x-and-a-half pence".
Comment: According to ISO-4217, there are 7 countries using 3 digits for their currency minor units: Bahrain, Iraq, Jordan, Kuwait, Libya, Oman and Tunisia.
Comment: Regardless if such a subdivision exists as as physical unit of currency, such quantities of money can be transacted. For example, gasoline is always quoted as a usual price then has a cleverly disguised 9/10 on the sign. So if the first three digits on the sign say 2.71, then the actual price is 2.719. You get some number of units, then when you actually need to pay it is rounded. That 0.009 racks up cents quickly of course since it is not far off from 0.01.
Comment: @michael.hor257k Interesting. There are two with 4 decimals (Uruguay and Chile).

Currency with 3+ decimals in words


What are persistent cookies? How long do they exist?

Question: I heard cookies are stored in my browser. But what are persistent cookies? Where they are stored? What is the use of those cookies?
Comment: Above guys are right is their answers. In addition to above is that by default, a cookie remains till the browser session ends.
Answer: A persistent cookie is one that remains on your machine past the point of session expiration.  It is stored on disk, and used for websites to remember you (or other information about you, or other information it deems necessary to store) between visits.  For example, this is how Amazon knows who you are even if you shut down your machine and come back another time.
These are the cookies that get removed when you access your browser's preferences and select the "delete cookies" option.
Usually persistent cookies are created by setting an expiration date on the cookie, so that the browser doesn't remove it at the end of the session by default.
Also, it's not quite right to say that cookies are stored "in the browser".  A browser is just a running application, which may load cookie data into memory when it needs to.  All cookies are stored in the same space; what makes a cookie persistent is just whether it gets removed when your session is over.
Answer: Persistent cookies are stored in your webbrowser once you closed it. It can be used to track users or just to let them stay signed in (as may know from many webapplications). Those are stored as long as a webpage choose to (Google even used to set that date 30 years in advance!). If the website doesn't set an expiration time it is deleted once the browser is closed. You may also delete the cookies manually using the browser menu.
The Adobe Flash player has it's own machanism called LSO. These are hard to delete. You may use an Adobe tool for that. Such cookies are mostly used to track users cross-site for advertising reasons.
Answer: Cookies are basically used so a website can keep track of who you are.  There are many different reasons why a website may need to know who you are.
For example if you are visiting a website with a shopping cart it needs to know who you are so it can keep track of the items you have added to your card.   When you login to a website and see an option that says "remember me" the website is placing a persistent cookie on your computer so you don't have to type your username and password every time you visit the site.
Each web browser stores cookies in a different places. A cookie is just a simple text file that contains information about what website sent the cookie and what information was in that cookie (usually just a unique id number).
Comment: cookies are not only for this purpose. They can just be a variable stored on user's machine to remember the webpage's state.  The information does not necessarily go back to the company of the website unless they've scripted the page to do so.


What could be possible reason for accuracy in convnets being constant while training error keeps decreasing?

Question: Just for sanity checks, I am checking that, can my network overfit over some 50 examples of cifar-10. But every time I see that my training accuracy is not going above 40% but training error decreases with every iteration. I am using lasagne and vgg type network. Any help for choosing hyperparameters like learning rate, momentum, regularization parameter could be bonus for me.
Thanks for your attention.
Comment: This may be a dumb question: but which accuracy are you referring to? You mean the accuracy on the training batch of size 50? Or the accuracy of your CNN on some validation/test set?
Comment: @IndieAI fine, seems dumb question but answer it and it is training accuracy.
Comment: You'll need to be more specific about exactly what you mean by "training error" versus "training accuracy"; they typically mean one minus the other.
Comment: @Dougal training accuracy is the fraction of correctly predicted examples from training set and training error is cost function which is cross entropy.
Answer: What you're calling "training error" would more typically be referred to as "training loss."
Call your training set $\{ (x_i, y_i) \}_{i=1}^n$, where $y_i$ is an integer from 1 to the number of classes $m = 10$; then your model predicts $\hat p_{ij}$ for each data point $i$ up to $n$ and each class $j$ up to $m$.
Your training accuracy can be written as $$\frac1n \sum_i \begin{cases}1 & y_i = \arg\max_j \hat p_{ij} \\ 0 & \text{otherwise}\end{cases}.$$
And your training loss is
$$
-\sum_i \log\hat p_{i y_i}
.$$
So, what your network is doing is probably driving up $\hat p_{i y_i}$ for the cases it's sure about, without changing the relative ordering for the "difficult" cases. You could diagnose this further by looking at the probability outputs over time for your training set, since there are only 50 of them.
So, why doesn't it get more of them right? There could be a lot of reasons for that, but my guess is probably that it's because you're just giving it the same input batch every time, so the gradient it steps along never changes, and it's stuck in a local minimum of sorts that it could probably get out of if you have it some different inputs. It could also definitely be something related to the regularization you're using, an adaptive step size scheduler getting confused, or other problems related to the exact specifications of the problem that you haven't told us and may be difficult to figure out even so.
Answer: Well to put it in simple way this happens when your model learns to recognize the right answer as well as the WRONG ANSWER.For example, if you classifying amongst 3 classes namely "apple", "mango", and "banana".Let say the output prediction for 3 classes in same order is  [0.6,0.55,0.5].Lets also assume your threshold is 0.6 .Now assume the first label is apple, BAM!! u got correct answer i.e your model detected "apple" in the first iteration by yielding a prediction probability of 0.6 which is equal to the threshold.Lets say the same process gets repeated with same kind of output values for next few iterations.
assuming everything going right including your predictions, you will see your accuracy boosting up.but loss almost same.Why? Because it gave u correct answer it is not very confident on wrong values as well as the correct values by giving value like 0.6, 0.5,0.55  which is not very far from threshold.At this point we say that model is not very good at determining wrong answers. had we got the values like 0.9,0.3,0.2 , now these kinda values suggests that model is becoming better at determining not only correct answer with full confidence but also what is wrong with full confidence.
A prime reason for such kind of behaviour is BAD WEIGHT INITILIZATION. There are lot of papers related to it.Refer https://arxiv.org/abs/1704.08863


How do I install my custom plugin into an Aragon DAO?

Question: I have built my own custom plugin for Aragon OSx, but I'm unsure how to install it into my Aragon DAO.
Answer: In order to use your plugin, you want to install it in your DAO. Installation is done through a proposal action - so that when the proposal passes, executing the action installs the plugin. You can understand "installation" as calling on the prepareInstallation function from your plugin's PluginSetup contract and granting the required permissions to the DAO so it can connect with the plugin.
Here's how to do it:
1. Prepare the plugin installation item:
In order to apply the installation, we will need to first prepare the plugin install item. We can do this through using the SDK function called prepareInstallation item. https://devs.aragon.org/docs/sdk/examples/client/prepare-installation
2. Encode the action to apply the installation:
In order to create a proposal with the installation action, we need encode the prepareInstallation action. You can do this through using this SDK function.
https://devs.aragon.org/docs/sdk/examples/encoders-decoders/apply-installation
2. Create a proposal with an action: Now that the action is encoded, we can use it to pass it when creating the proposal. The easiest way to do this is to use our createProposalWithAction SDK function.
https://devs.aragon.org/docs/sdk/examples/tokenVoting-client/create-proposal-with-actions -- keep in mind, depending on the governance mechanism you're using, you may want to check out the multisig version of "create proposal with action" also found within the docs
3. Approve proposal: Getting proposal approved by DAO members is the next step after publishing the proposal. This can happen through the Aragon App.
4. Execute action: Once the proposal is approved by members, you'll be able to execute the action into the DAO and your plugin will be installed! You can execute it through the Aragon App as well.
5. Using the plugin: To use the plugin, you can call on it's Plugin contract's address using a tool like ethers.js or wagmi hooks.

Ethers: https://docs.alchemy.com/docs/ethers-js-contract
Wagmi: https://wagmi.sh/react/hooks/useContract

-- updates coming on the developer experience side to streamline this process.
Answer: As a reference, plugins consist of two key contracts:

the Plugin contract itself containing all the logic used to extend DAOs' functionalities
the PluginSetup contract which contains the installation/uninstallation logic for the plugin into the DAO

So - plugins can be installed in two different ways:

When you create your DAO

Via proposal when the DAO already exists

If you want to install your plugin upon DAO creation, you will need to pass the params that you want your PluginSetup to receive.
You can find detailed explanation about this here.

If you want to install on an already existing DAO, you will need:

Run an unprivileged prepareInstallation() function (found in the PluginSetupProcessor contract) so that your PluginSetup deploys the needed stuff and adds the "installation request" to the PluginSetupProcessor.
Use an existing plugin on the DAO (multisig, token voting, etc) to create a proposal that executes applyInstallation(...) on the install you started before.

The concept of a Proposal, is something that every plugin decides to handle in its very own way. There is no DAO-level concept of a proposal.
Plugin's have permissions, that's all the DAO knows.
So, if you want the DAO to execute something like applying the installation of a plugin, you'll need to ask a plugin with EXECUTE_PERMISSION to go and handle it (via proposal, via dictatorship, via calling whatever address, etc -- this is based on the governance plugin of your DAO).
Regarding the SDK, there are two types of scenarios:

The general purpose Client, which handles things that affect all DAOs
The plugin-specific Clients

Future versions of the UI will greatly improve and expand on the case of a plugin using another one to create proposals.
But as of today, the use case of installing a plugin after a DAO is created requires some manual handling on the SDK side still.
Comment: In part 3 of your answer, the docs seems to be missing a critical part.  The TokenVotingClient is coming from the sdk, but where do we import or define the specific plugin that has been custom built and deployed?
Comment: Hey @YanDigilov, I'm not sure I'm following your question.
You need to `prepareInstallation` of your custom plugin and then pass the encoded installation into the `plugins` attribute when creating your DAO.
You can find an example of how we do this within the SDK for our own plugins: https://github.com/aragon/sdk/blob/develop/modules/client/src/tokenVoting/internal/client/encoding.ts#L46


Live in Oregon and work in Washington: Do I need to file Oregon state taxes?

Question: I am an Oregon resident but earned all my income in Washington state in 2011 - do I need to file an OR tax return since I didn't earn any money in Oregon ?
Answer: Yes. Here's the answer to this question from oregon.gov:

3. I am moving into Oregon. What income will be taxed by Oregon?
As an Oregon resident, you are taxed on ALL income regardless of the
  source of the income. This includes, but is not limited to:

Wages;
Interest and dividends;
Retirement income, even if earned prior to moving to Oregon;
Rental income;
Partnership and S-Corporation income;
Business income;
Unemployment benefits.

You may need to pay estimated taxes if you don't have Oregon
  withholding on your income.
Answer: Unfortunately, you are required, but most states do have agreements with neighboring states that let the states share the collected taxes without the person having to pay double taxes. So being as this is your first tax return in your current situation, you might be wise to have a professional fill it out for you this year and then next year you can use it as a template.
Additionally, I really would like to see someone challenge this across state lines taxation in court. It sure seems to me that it is a inter-state tariff/duty, which the state's are expressly forbidden from doing in the constitution.
Comment: It is not across states. Oregon taxes **Oregon** residents on worldwide income (the same as the Federal Government does, and so many other states). The OP is Oregon resident. Washington charges taxes on WA-derived income, so the OP has to pay WA taxes as a foreigner earning money in WA, and OR taxes as a resident. WA taxes are credited towards the OR tax liability (refundable credit, IMHO), so there's **NO** double taxation involved.
Comment: @Dunk I think the tin foil obstructs your view. How Oregon taxing Oregon resident is across any state lines? Where the income is derived from is irrelevant. If you let that criteria in - no-one will pay any tax because all the income will be channeled through non-taxing localities. **If you tax the person for the same earnings in 2 states** - you just asked me where you said there was double taxation. Well, there:-) But even that is not across state lines. WA would tax WA-derived income, nothing crossing state lines. OR taxes OR resident, no state lines crossed, again.
Comment: For that matter, there is no WA state individual income tax, so there's certainly no double taxation.
Comment: @littleadv:I don't see where I said there was double taxation. However, it definately is a tax across state lines. There are a number of ways to look at it. If you tax the person for the same earnings in 2 states then that is by definition across state lines. If you only tax based on where the money was made then that is a tarrif on the person as it is a charge on the person which could potentially limit their ability to import their product (theirself), which is the whole reason that states are prohibited from imposing tariffs between states.


Is audio recording a promise made by another person legal in the US?

Question: If a person made a promise to do or not to do something, and I'm telling the person that I'm audio recording his verbal promise (because I wanted to use this as evidence in court in case that person fails to acknowledge his promise, but I did not tell the person explicitly), is this legal in the US? In addition, can this audio recording be admitted as evidence in court?
Comment: @HelloDarkWorld a valid contract must have a consideration, meaning both parties must get something from it.
Comment: You should recognize that a promise by itself is not legally binding.  A promise as part of a contact may be.  If I lie and tell you "I'll give you $1000 next Monday" you have no recourse when I don't.
Comment: @TigerGuy If we both signed a written document saying you will give me $1,000 next Monday, with no compensation for it, that would not be legally binding either.  At least that is my naive understanding.
Comment: @Evorlor that is correct
Comment: @TigerGuy Why is Evorlor correct?
Answer:
I'm telling the person that I'm audio recording his verbal promise . .
. is this legal in the US?

Yes. Obviously so. Why wouldn't it be?

can this audio recording be admitted as evidence in court?

Generally yes.
Certain kinds of promises are only legally valid if made in a signed writing, however. A requirement that a certain kind of promise be made in a signed writing is called a "statute of frauds."
A recorded verbal promise generally does not overcome the requirement that a promise be in a signed writing to overcome the statute of frauds, although if someone makes a recorded verbal promise and denies doing so, this could support an action for fraud and might make proving a promissory estoppel case easier.
Also, something called the "parole evidence rule" makes a verbal statement made prior to signing a written contract inadmissible for the purpose of varying the terms of the signed contract.
Comment: @HelloDarkWorld - If you tell them that you are recording them and they continue negotiating the contract, they have given you consent to record.
Comment: @HelloDarkWorld - Your question says you told them which means that they consented to the recording.  If you are recording secretly, that is a different question
Comment: Do I have to have another's consent before recording his or her audio recording? If not, is it still admissible in court?
Comment: @JustinCave But what if I told them I'm recording them, but they never said they consented or not, is that legal and be admitted as evidence?
Answer: If you tell them you are recording, and they keep talking, they have consented to the recording
This means that, in places which require the consent of both parties to record a conversation (which is not all places), you are not breaking any laws.
Whether they are admissible in court depends on the specific rules of evidence. First, the recording has to be relevant to the case. Beyond that, some jurisdictions will treat audio recordings as "documents" and others don't; documents have different rules.
However, that all begs the question: promises are not legally enforceable unless they are consideration for a binding contract. I can promise, for example, not to see your sister, but if I then bang her every day and twice on Sundays, there's nothing you can do.
Comment: your example works even with consideration, in case you are blindfolded.
Comment: Is there a difference between admissible in court vs. legally enforceable?
Comment: @HelloDarkWorld if you are trying to prove a non-enforceable promise exists then there is no case and, incidentally, the evidence of such a promise is irrelevant, and therefore inadmissible.


How do I remove the feature where newly written text in editor is highlighted?

Question: Whenever I write something new in the overleaf editor on my laptop it highlights it (see attatched image below) and I have to manually click somewhere else in the editor in order to remove it. I haven't been home in a couple of months but I don't remember having this feature on my desktop computer. I find this very annoying as it's harder to read what I'm currently writing and would like to disable this feature if possible. Is there a way to do that?
Comment: This is not really a latex related question, and thus you're probably better of asking the overleaf support.
Answer: I use Overleaf as well, and I don't seem to encounter that issue in the same way. For me, it's just that generally my lines are highlighted in gradient until I click away.
There is no way to remove it, because it is how Overleaf tracks change history of the document, since the latest click away, or auto-save. Unfortunately, you're just going to have to work with it.
Answer: In overleaf, if you make changes while the track changes feature is turned on (located under the review tab) then it'll highlight the changes permanently. If you turn the feature off it will no longer highlight new changes; however, sadly there's no way to remove text highlights that appeared while the feature was turned on.
edit: It's worth noting that track changes is a premium feature on overleaf


Making Textbox type into a textbox?

Question: I'm a noob to VB.NET and I was wondering how to make something you type into a textbox on the application type that text into a website textbox and submit whats in the textbox by pressing a button? I am using visual studio 2008.
Answer: That is a little tricky to do, but it is possible. However, without more details on the specific browser or what you are trying to copy over, you aren't going to get a lot of answers on here.
Better Suggestion: Have you considered instead of trying to control the browser via "voodoo", that you might just have your VB.NET application submit the form/request directly to the web server and cut out the middle-man (the browser)?
Comment: the application actually contains a web browser and i am just trying to make an external textbox because the box on the website is all the wasy at the bottom of the page and i want to make it easy to access
Answer: I'm assuming you're trying to POST data to a web form from some other application.  Check this out; it's in C# but you can translate it to VB.NET.  It uses a WebBrowser control and the SetAttribute method to set input values on the web form.

// C#
WebBrowser browser;
...
browser.Document.GetElementById("username").SetAttribute("value", "MyUsername");
...
form.InvokeMember("submit");

Making Textbox type into a textbox?


Can get and be be interchangeable or not?

Question: Actually I am confused between get and be as there are so many sentences in which get can be replaced with b without changing their meaning. So I just want to know what are the differences between get and be? And when can I interchange them without changing the meaning of the sentence?
Answer: In many contexts to get (followed by [adjective] or Past Participle] used adjectivally) is simply an equivalent alternative to to be [ADJ]. But note that to some speakers in some contexts, it will be seen as a somewhat "colloquial" usage that should be avoided in formal contexts.
If the "adjectival PP" element refers to an "internal" state, rather than the result of the subject being acted upon by an external agent, the get form isn't usually very idiomatic...

1: If I fail I will be disappointed  - natural English)
   2: ? If I fail I will get disappointed - an "unusual" construction

I'd say the reason for that is because to get [verbed] more strongly alludes to undergoing the process of being "verbed", whereas to be [verbed] normally references the end result [of having been "verbed"]. So if we compare...

3: The turkey will be cooked at midday tomorrow
    4: The turkey will get cooked at midday tomorrow

...I'd say #3 is more likely to carry the sense of the cooking process being finished (that's when the turkey will come out of the oven and be ready to eat), whereas #4 is more naturally understood as a reference to when it'll go in the oven (and start to be cooked).

The second "distinction" given above is perhaps easier to see with continuous verb forms...

5: Please put the children to bed. They're being tiresome1
   6: Please put the children to bed. They're getting tiresome

...where #5 is more likely if the children have been "acting up" for some time, but #6 more strongly implies they're just starting to become unruly.

1 Arguably my first distinction above is undermined by the fact that They're being overexcited isn't very idiomatic here, whereas They're getting overexcited is perfectly natural. Maybe this reflects a third distinction, whereby we avoid two consecutive instances of [TO BE] in favour of plain They are / They're overexcited, unless the context strongly implies some outside agency currently causing the altered state. For example,...

7: They're being overexcited by Grandpa, who's getting a little drunk and playing boisterous games with them.
Answer: Get has many meanings, one of those is become.
This is different than be.  When you say X gets Y or X becomes Y, you are concerned with both the previous and current state of Y and you are also expressing that a change is happening.
When you say X is Y you don't have a concern with any previous state, and aren't trying to say anything is changing.


What is the difference between Linux's root privilege system vs Windows' administrator privilege system?

Question: People say Linux is safe because system changes can only be made having root access and therefore blocks viruses or other malware from being executed. But doesn't windows administrator user system (asuming that the user also made a standard user account) also do the same thing? So isn't it fair to say that Windows is equally as safe?
Comment: There isn't a great deal of difference.  The reason there are not more malicious files on Linux is because of the user space is smaller.
Answer: The short answer is yes, both root on Linux and administrator on Windows are the same.
On both Linux and Windows, malware can be injected into processes running with root/admin permissions, and hence get full computer access. This is actually how a lot of malware works.
The difference comes with the user base - Linux is run on less than 2% of computers, while Windows is run on more than 92%. Hackers are more likely to target Windows due to the greater impact their malware will have.
Personally, I don't care much about malware. I install beta OSes on my computer every couple of months, so if something does go wrong, I simply reinstall the OS. (I have never, by the way, gotten malware on my computer, at least not that I know of.)
Answer: On a windows computer, everything is based on the registry, which does not require administrator privilages to modify.  Therefore, theoretically any application you install can do anything to your computer.  On a unix based system, there is no registry.  If you do not have permission for a file, then an administrator account is required to modify that file.  Sure there are workarounds, but they are far less reliable and obvious.
Comment: Windows Registry uses the same permissions systems as files. So you can prevent write (even read) access to certain hives. Normal (non administrator) user does not have access to `HKEY_LOCAL_MACHINE` hive for instance.


Möbius function on atomistic (modular) lattices

Question: I have read in a paper that $\mu(0,1)\neq 0$, for the Möbius function $\mu$ on an atomistic (finite, modular) lattice with $0$ and $1$. Could someone provide me with a reference for this claim? Many thanks in advance.
Answer: More generally, the Möbius function of a geometric lattice is never 0. Although not stated explicitly in the text of Enumerative Combinatorics, vol. 1, 2nd ed., it is a simple consequence of equation (3.33) on page 277, as mentioned in the solution to Exercise 3.100(b). It also follows from Exercise 3.98 (where the displayed $\leq$ should be $\geq$) and from Exercise 3.99.
Comment: Great! I took a quick look through your book but didn't find it explicitly, so these pointers are very helpful.
Answer: (Disclaimer: I am not an expert in this area.) I expect there is more than one way to see this, but the literature on calculating $\mu(0, 1)$ for finite geometric lattices $L$ (which includes your case: a geometric lattice is a finite atomistic semi-modular lattice) is pretty extensive. In this paper by Anders Björner, it is shown that $|\mu(0, 1)|$ counts the number of neat base-families for $L$ (see section 3 for the definition), so in view of that it's just a matter of showing that neat base-families for $L$ exist, and I think that follows pretty readily from the atomisticity.


Could the thermal cut-off and high temperature thermostat be swapped in Kenmore electric dryer?

Question: I have cleaned all air ducts related to an electrical Kenmore dryer, washed the lint screen etc. Still, the thermal cut-off keeps tripping. Since there is a thermal gradient along the heating element I wonder if it would be safe to swap the high temperature thermostat and the thermal cut-off so that the thermal cut-off position is closer to the heating element's plug-in end while the high temperature thermostat is located closer to the tumbler's inlet (where the temperature is higher). Thank you!
Comment: Why do you think the thermal cutoff is not broken?  Even your appliances break.
Comment: Have you actually taken off the back of the dryer to do a **full** cleaning?
Comment: As I have stated in my question, I have cleaned all ducts related i.e. outer and inner. I have bought two new sets. The cut-off still  goes off while the thermostat remains on. It is not rocket science!
Comment: Did you buy the correct thermal cutoff?  I ask because I have made the mistake of buying one that 'looked' like the right one but had a much lower temperature cutoff.
Comment: I have bought the ones for Kenmore 90 Series. They look exactly like the ones I had installed before
Answer: Thermal cut-offs can go bad. Have you considered replacing the one you have installed?
Those parts are installed as safety devices and moving them around from their designed positions is not a good idea. It would void any warranties and possibly create a safety hazard.
Comment: @DragosBandur  Makes sense but you'd have to know why the manufacturers did it in the first place. I can't give a reason.
Comment: Thanks Jack! Probably this is the reason I had purchased two new sets. Thermostat and cut-off are serially connected and it would make more sense to install the one with lower threshold (the thermostat) where the temperature varies more for better control. If this is not a good idea please provide a technical reason. Regarding the warranties - if still valid - would be void even for opening the dryer for cleaning.
Comment: Jack, the dryer is a Kenmore 90 Series, probably discontinued now. The vent was cleaned from one end to the other with brush. All inside cleaning for this series is being done from the front as the back seems welded or glued somehow. The thermostat is at the cold end of the heating element. This is why I think it never senses the heat built at the other end therefore, the cut-off tripping before the temperature increases enough to be sensed by the thermostat at the cold end.
Answer: You start fires at the hottest place, where the duct feeds the rest of the dryer, after the air has passed along the heating element.
So you put the thermal trip where the air is going to be hottest.
If the thermal trip is tripping , it is most likely that you still have not cleaned all of the lint from the dryer, or that the dryer air intake is hot.
Also consider your installation : is the outlet air heating up the inlet air, or has an output hose become disconnected near the dryer leading to hot air recirculating.
Comment: So, if I understand correctly, the hot end can get hotter without the thermostat sensing it, probably due to the cold air coming in. Therefore this may be the reason the cut-off (high threshold thermal fuse) is at the hot end. Switching them would place the thermostat in the hot area and the increase will be sensed before the temperature gets too high. Wouldn't it make sense to have the thermostat at the hot end? That would make the thermostat cycle more often though.


what is the nikon equivalent to canon lens L series EF 24-105 f4?

Question: I'm thinking of going full frame and I can't decide between nikon and canon. The Nikon d610 would be my preferred choice because of lower price compared to canon 5d III, however the latter has that great 24-105 lens which I'm not sure has a match on the nikon side.
What would be its equivalent?
Comment: The Canon EF 24-105mm f/4 L IS is built like a tank! Mine has stood up to all kinds of abuse in the field and just keeps on performing.
Comment: The Canon 6D is also available with the EF 24-105mm f/4 L IS as a kit lens. It is far more comparable in features, performance, and price to the Nikon D610 than the Canon 5DIII is.
Answer: There are close lenses but part of choosing between brands is selecting the lens lineup. Nikon has a top quality 24-70mm F/2.8, similar to Canon's 24-70mm F/2.8 but for something longer, they offer the 24-120mm F/4G VR. It gives you the benefit of image-stabilization and a slightly longer reach while it does compromise on image-quality.
Another great alternative is the Sigma A 24-105mm F/4 DG OS HSM which is reputed to be excellent. It also offers stabilization but not weather-proofing as with Canon and Nikon's offerings.
Answer: Nikon's equivalent to the Canon EF 24-105 f/4L IS USM is kinda/sorta the AF-S Nikkor
24-120mm f/4G ED VR.  It's newer, though, and costs quite a bit more, as well as having more reach. The kit lens on the D610, though, is the AF-S NIKKOR 24-85mm f/3.5-4.5G ED VR, which is lower end than the 24-105, but not as high end as the 24-120.
AF-S = USM
VR = IS
I've owned the 24-105 for a while and it's a great lens, but it's a compromise in many ways, and possibly one of the weakest of the Ls.  It's f/4 to make it smaller, and higher quality over a larger-than-optimal zoom range. The wide end displays C/A, distortion, vignetting, and a little bit of softness. It's a terrific versatile walkaround zoom, but it's not great for available light with moving subjects.  No lens is perfect. It's still just glass that has to obey the laws of optics.
You can find equivalent (if not identical) glass on the Nikon side; especially when it comes to walkarounds and ultrawides. In fact, Nikon's ultrawide selections might be better.  But make sure you're willing to give up Canon's supertelephoto selection...the prices for 400mm+ glass on the Nikon side are a tad different...
Comment: yes, Nikon's wide angle lenses are simply the best out there. 400mm+, hmm. Great lenses, but if you're going to spend $10k+ on a lens, you're unlikely to be thinking of a consumer body :)
Comment: @jwenting That's what I meant. Canon offers f/5.6, f/4, and f/2.8 400mm prime lenses, while Nikon decides you just want f/2.8 in a prime. There's a little more selection on the Canon side of the fence is all, just as there's a crop fisheye on the Nikon side, not the Canon. And you might prefer having $1100 and $6500 choices alongside the $10k+ ones. I'm a birder. I live and die by my 400/5.6L :)
Comment: same with my Sigma 70-200 f/2.8 with 2x TC. I went with Nikon bodies for the ergonomics and control placement, Sigma lenses for the quality and value (though I do have some Nikkors as well).


How can I add resistence to prone cobra movement?

Question: I use prone cobra exercise for thoracic spine and lower traps. I want to apply progressive overload to this exercise. How can I add resistance properly to this exercise? Resistance bands, dumbbells any ideas are appreciated...
Comment: It isn't exactly clear what your goal is.  Is your goal to strengthen your back (erector spinae)? If so, there are lots of variations of the superman exercise which we could talk about.  On the other hand, if your heart is set on doing the cobra pose and keeping your hands on the ground, then you are more limited in your options.
Answer: To answer your question you could try a weight vest to put more weight on your shoulders increasing resistance off of the ground. You could also try this position on top of a bosu ball to add instability.
That being said I would recommend trying other exercises that can work the same muscles. One particularly good exercise is the back hyperextension but this requires a specific machine. Personally I have have a lot of success in the past with this and you can increase load by adding a plate.
A no equipment version that will also help with shoulders is the superman. Basically instead of holding the position you keep arms straight and rotate them until they meet above your head and then rotate them back behind your back. Do 30 straight of these and you'll feel it in your lower back and shoulders. Aquamans are also effective. (My descriptive skills are lacking but check out youtube.)
Answer: The Bodybar, also know as a weighted workout bar, is an under-utilized exercise prop.  My gym has a set of them, and I'm the only person who utilizes them.  I've incorporated them into many movements, such as squats and lunges.  I think you could use a bodybar in the superman. I would grip it wider than your shoulders, straighten your arms, hold it out in front of your head as high off the floor as you can, then go into the superman position.  At the gym tommorrow, I'll try it out and tell you how it works.
When you do a superman, you want to protract your scapulas.  If you use a dumbell in the superman, with the dumbell in front of your head, then your scapulas will rotate upwards (towards your head), which prevents protraction. (You can't do scapular upward rotation and protraction at the same time.)  The advantage of a body bar is that you can grip it wider than your shoulders, and as a result you'll be able to minimize scapular upward rotation, and you'll be able to pull your scapulas deep into protraction.