Is it normal for a Nikon lens to make noise when zooming in or out?

Question: I read a lot of reviews when buying Nikon D5100 but no where did I hear this. Check this video on youtube. When you zoom in/out you can clearly hear the lens itself. This is highly undesirable. Is it normal with any DSLR or with Nikons only? Is this a genuine flaw? Canon Guys, do you hear this zoom as well?
Comment: serious camera users, thus the people writing serious reviews, don't use dslrs to make videos, they use them for their intended purpose of making photographs. And as hinted already, any camera will cause some noise on the sound channel when using an on-camera microphone, whether a dslr or dedicated videocamera.
Answer: Noises on the camera, such as the zooming of a lens or even an IS/VR motor, are often picked up by on-camera microphones.  That's the disadvantage of an on-camera microphone and isn't specific to this camera or the Nikon brand.
The solution is to use a better mic that's either mounted off-camera or is a shotgun-style mic on the hotshoe where it won't pick up camera noise.
Comment: 0 down vote accept

I would accept it as answer as I don't have experience with any other DSLR. But I wonder how things will be on Nikon D3100 where you cannot connect an external mic. This seams to be a real drawback for serious video shots at wedding, picnic trips for example. You can't have the zoom make noise
Comment: @enthusaist Serious video shooters aren't going to be using an entry-level camera.
Comment: Or a DSLR at all, for that matter.


Remove grub and keep only Ubuntu

Question: I used to use Windows and Ubuntu on my pc. But I'm no longer a Windows user, now only Ubuntu. I tried to instal Ubuntu over the Windows, but grub still installed and asks every boot which system should it start. Theres a way to remove completly and start straight on Ubuntu?
Comment: Nope. GRUB is still needed to load Ubuntu, irrespective of what else you have installed.
Answer: Grub is still needed, it tells the OS what kernel to load. You can hide Grub by changing its settings and make it so that it immediately boots to ubuntu and never shows you any options. An easy program to do this with is grub-customizer and then going through settings to make it so that the autoboot is ubuntu and the time delay is 0.
Comment: Please do not suggest grub-customizer unless its necessary. OPs needs can be easily achieved without using grub-customizer. Just by changing `GRUB_TIMEOUT=0` in `/etc/default/grub` .

Remove grub and keep only Ubuntu


How to import Krita art into Blender?

Question: I downloaded Krita to create a 2d portal for a project. Now I can't figure out how to import the portal into Blender, because none of Krita's file types match any of Blender's import ones. Is an add-on required to connect the two applications?
Comment: Svg is the only compatible with Blender
Comment: Just save as jpg or png and you can import, it all depends on what you want to do with these images
Comment: I'm using the portal as part of a 3d scene. Blender doesn't seem to have a .jpg import option.
Answer: See the import/export menus as for importing/exporting 3D data into/out of the scene. You won't find most videos/audio/imagesfile formats there, because it's not the primary way to get any of these in the scene.
The only real exceptions are SVG/PDF formats because it can be converted into mesh data. And you can enable the addon Import Images As Planes, which allows you to automatically create a mesh plane with an image texture on it.
To enable it, go in the menu Edit > Preferences, category Addon, search for it and check its checkbox:

Then you can use the menu File ‣ Import ‣ Images as Planes, select the image you need to import (or the sequence of images, or the video file), verify the import options in the sidebar, and validate.
If for any reason you want to "import" images manually, they are not imported from that menu at all. Images are most often "mapped" on 3D objects via their material. See moonboots' answer
Answer: It all depends on what you want to do, if you want to import a sequence of images for example, switch your 3D view to Rendered or Material Preview, activate the Node Wrangler addon, create a plane, give it a material, select the Principled BSDF and press Ctrl to get an Image Texture plugged into, click on its Open button and select your image sequence, the node will switch to Image Sequence mode, you now need to tweak the node a bit: enable the Auto Refresh option, Frames will determine the number of frames of your image sequence you want to play, Start Frame will determine when you want the play to begin in the Timeline, and you can Offset the beginning of the sequence with the Offset value. When you're good open the Timeline and press Spacebar to launch. you can keyframe all the node values of course.

How to import Krita art into Blender?


How do I unselect items in GIMP?

Question: I'm currently using GIMP to add text captions and lines into a screenshot. The problem is that once I finished one caption I couldn't add any more lines (using the Paint Brush tool). If I close the GIMP window and reopen it, I can add more lines with no problem, but as soon as I start adding captions these dotted boxes appear and I can no longer add any more lines. How do I overcome this problem?
Answer: It is very likely that these "boxes" are layers, text layers in this case.
Assuming this is it, the following might be the answer:
Layers have a finite size in GIMP, and this size doesn't change automatically. If you want to paint somewhere, then you have to make sure that:

there is a layer at this location
this layer is active in the layers dialog

This is the layers dialog (also part of the default UI layout):

If in doubt, you can create a new layer of the same size as the image. Layers are a fundamental concept of many more complex image manipulation tools, so you should familiarize yourself with them - almost anyone you are going to ask for advice will assume you know how to use them in GIMP.

How do I unselect items in GIMP?


WCF Service Sharing Types

Question: I am writing a WCF service and code to consume it and I want to share data types between these services.
I have a WCF library with the types I want to share defined in it. My WCF service and my WCF client both reference the assembly from the library. Classes look like this:
<DataContract()> _
Public Class MyEntity

    Private _culture As String = String.Empty
    Private _name As String = String.Empty

    <DataMember()> _
    Public Property ID As Integer
        Get
            Return _id
        End Get
        Set(ByVal Value As Integer)
            _id = Value
        End Set
    End Property

    <DataMember()> _
    Public Property Name() As String
        Get
            Return _name
        End Get
        Set(ByVal Value As String)
            _name = Value
        End Set
    End Property

End Class

What I would like to do in my consuming application is create an instance of MyEntity and assign it's value to the return value of a method in my service that, naturally , returns an instance of MyEntity.
So when I add a reference to my service from my client and give the service namespace the name "MyWCF" I would like to something like:
Dim entity as new MyEntity
dim srv as new MyWCF.MyServiceClient
entity = srv.MyMethod()

Right now when I do this the compiler gives me an error because it cannot implicitly convert type  myclientnamespace.MySCF.Myclass to myclientnamespace.MyClass. I have read the posts here and the article here - which was referenced in another stackoverflow thread. These state that if my client code is referencing the same assembly as my service code and I have that assembly reference in before
I create the service reference the client code should not create proxy classes and rather use the classes in the referenced entity assembly. I have tried this and it is not working. I even made sure that the "Reuse types in all referenced assemblies" radio button is checked when I create the service reference.
My questions are :
Can anyone see what I am doing wrong here? Should creating the service reference after the entities assembly reference was made not result in reusing the types?
Is it possible to reuse types in this fashion?
Any advice would be very much appreciated. Thanks!
Answer: It is entirely possible to reuse your types in this fashion.  If you create your client proxy by hand you'll have more control over this behavior, including the namespacing.  The proxy doesn't need to do anything with your shared data types, they can be excluded from the proxy and thus exist in only one namespace in the shared assembly.

WCF Service Sharing Types


Is this intuition correction?

Question: For simplicity sake, let's assume I am the only supplier in a market and have the same goal of making profit as other firms do. Let's say I produce 300 units of some good. I look at the demand schedule to gauge what consumers are willing to spend and see the following figures: when price is 50 dollars, 300 units are demanded, when price is 100 dollars, 200 units are demanded, and when price is 150 dollars, 100 units are demanded. Now, if we multiply each price by its corresponding quantity demanded, we'll find that I'll make the most money selling 200 units at 100 dollars (20,000 dollars). If I sell 300 units for 50 dollars or sell only 100 units for 150 dollars, I will only make 15,000 dollars. So clearly the right move here should be to sell 200 units for 100 dollars each. But wait. I have produced 300 units. This will leave 100 unsold. I would assume the next step is to drop the price down to 50 so I can sell the remaining 100. Is my intuition correct?
Answer: Your intuition is correct, provided this is a one-time situation that the buyers do not expected, nor a situation the company is trying to repeat every time production occurs. If a company wanted to operate in this way every month, customers will quickly learn that if they wait and don't buy the merchandise right away, the prices will eventually drop, and they can get it for cheaper.
What you are describing is the problem of "price discrimination". In general a firm would want to be able to sell the same good at different prices, for example, if you could sell the first 100 units at \$150, the next 100 units at \$100, and the last 100 units at \$50, you would make even more money than the strategy you proposed above (\$30,000 vs. \$25,000), but this is not a sustainable strategy, at least not in a naive way. There are some well known ways to implement price discrimination, for example, airlines do it all the time, selling seats to the same flight for very different prices, etc.

Is this intuition correction?


How does snapping work for Scale tool?

Question: When I try using snapping for scale it works only with Increment type (when Snap button is turned off and I keep Ctrl key pressed, with Snap button turned on snapping for Scale tool doesn't work at all). My question is: is there a way of snapping to vertex, face and edge while scaling in Object or Edit mode. Why does snapping work for Move tool and doesn't work for scaling? I don't believe that it can be so.
Comment: Hi, Vitalii. I hope you don't mind my edit. I hope that makes the question a bit clearer and I did not change any of the meaning you intended. If you don't think any part of it is helpful please forgive me and use the edit link to edit the question again.
Answer: Changes have been made to improve the way snapping works.
You can now choose which type of snap affects transformations.
In the snap popover towards the bottom activate Scale to use vertex snapping while scaling objects.
Comment: Ow man thanks, people in Blender community are brilliant)

How does snapping work for Scale tool?


Does it make a difference if I buy AC4 second hand vs buying a new copy?

Question: Does it make a difference if I buy a console version of AC4 2nd hand? Is there anything you get when you buy it new that I won't get if I buy it 2nd hand?
Answer: Every copy of Assassin's Creed IV: Black Flag comes with a Uplay Passport, giving you access to the Uplay store, which is used to redeem Uplay rewards that can be used in singleplayer or multiplayer mode.
Redeeming the Uplay Passport also gives you access to some of the multiplayer features, such as the ability crafting system, which is available after reaching Prestige level 1.
Every copy of the PS3 version of the game also comes with a voucher that'll allow you to purchase the downloadable PS4 version of the game at a reduced price. That particular voucher has a limited validity, however. In order to play the PS4 version, you'll have to keep the PS3 version of the game disc in your PS4's drive.
The Xbox 360 might have a similar voucher; feel free to edit this answer, should you know more about it.
Exclusively for the PS3 version (possibly also the future PS4 one), there is the Aveline mission DLC.

There is always a chance, that the previous owner didn't redeem one or several of these items, although you shouldn't exactly count on it.
In case your second hand copy is missing any of these: both Uplay Passport and Aveline DLC can be purchased separately. The voucher, however, can only be obtained if not already redeemed by a previous owner.
Comment: The uplay passport can be downloaded free of charge from psn/xbl.
Comment: @Charkz No, you don't. Playing online only requires a copy of the game, no code.
Comment: The Aveline content is also in the PC "Gold Edition" [according to the presale description on Steam](http://store.steampowered.com/app/242050/).
Comment: Do you need any specific code to play online?
Comment: So future people are not confused Ubisoft made this change within days of the game being released.  So don't be shocked if a new copy does not even have the insert.


How do I include custom fields of an entry type in the Guest Entries form?

Question: I want any visitor to be able to submit links to my blog via the Guest Entries plugin, but how do I include the custom fields of my "Links" entry type in the Guest Entries form? For example, a category field, text fields...
Comment: OT: Rafael, do yourself a favor and get the client license. Entry types is definitely no useful solution to separate blog entries, a designer directory and user submitted links. Or is this "Links" entry type in fact one type of your blog entries?
Comment: Yep it is ;) Links will be part of the main blog page!
Answer: if you're using an Entry Form - [entries/saveEntry] you'll need to pass them in as fields.
For example if you had a text field called "Links" you would need an input like this
<code><input type="text" name="fields[links]" value="{{ entry.links }}">
</code>
Passing in inputs with the name fields[your_field_name] allow it to be picked up and populated correctly.


What is the gender distribution of nouns in the German language?

Question: I want a rough estimate of the percentage of nouns that belongs to each gender category
Comment: While it is not really addressed in the answers, I have a hunch the rough estimate will vary considerably depending on which set of "systematically constructable" nouns you include. For instance, by including verbs converted to nouns (das Sein, das Wollen, das Gehören, ...) and/or diminutives (das Geschlechtchen, das Verteilungchen, das Substantivchen, ...), the percentage of neuter nouns would rise drastically.
Comment: Do you want to count each word exactly once or do you want to count every occurance?
Answer: According to a footnote in this study (Warning: PDF file):

The distribution of the three genders in German is as follows. There
  are 4164 monomorphemic nouns listed in the CELEX database (Baayen,
  Piepenbrock, & Gulikers, 1995). Fifty-one of these have multiple
  genders (e.g., der See [the lake]vs. die See [the sea]). Of the
  remaining 4113 entries, 1758(42.74%) have masculine gender, 1567
  (38.10%) have feminine gender, and 788 (19.16%) are neuter

which means you can roughly say that 40% are feminine, 40% are masculine and 20% are neuter
Comment: @O.R.Mapper The fact that there are only 51 of them in the database means it's adequate to ignore them (and every argument about them).
Comment: While the rough estimate may be there, in the context of this question, it does not appear adequate to exclude nouns that work with several genders - least of all if these could be described as "two distinct nouns that match neither in gender nor in meaning, but that happen to be written and spoken the same", as the mentioned pair "der See" + "die See".
Answer: I have been self-studying German by reading the German press for the past 27 months. In the process, I'm writing out almost all unfamiliar German words, including nouns. As of May 10, 2016, there are 23.000 words in my German word list. Today I counted the nouns in my word list and looked into their gender distribution.
It turned out that my list contains around 10.375 nouns, of which about 44% are feminine, 36% are masculine, and 19% are neutral. 47 nouns can be used with any of two genders (e.g. der/das Kalkül or die/das Soja) and Joghurt can be used with either of the three genders: der/die/das Joghurt
Comment: My hat is off to you. That's dedication!
Comment: If you only write out uncommon nouns, I would almost expect a skewed result towards feminine since many of the nominalised adjectives have feminine genus and they tend to be 'unusual'.
Comment: Although for the aim of this question it's an irrelevant percentage: *Kalkül* cannot be used with two genders. It's two words: *Kalkül* in *der Funktionalkalkül* is not the same word as in *ins Kalkül* *ziehen*. So is *Moment*: neutrum is the physical quantity, masculine it's *Augenblick.* Or even *Partikel*.
Comment: @Jan's is an excellent catch
Answer: According to the duden.de, %46: die; %34: der; %20: das
Two genders existence is 1.3%.
See: https://www.duden.de/sprachwissen/sprachratgeber/Die-Verteilung-der-Artikel-Genusangabe-im-Rechtschreibduden
Answer: Here are some statistics from Canoo.net
Link
weibliche Nomen: ca. 68'000 = 40%
männliche Nomen: ca. 52'000 = 31%
sächliche Nomen: ca. 49'000 = 29%
Answer: An interesting addendum (or extension to all words) to idober's answer:
If you assume that none of these three categories is favoured, and you look at the distribution of articles used, you get a similar result:

masculine 47%
  feminine 40%
  neuter 13%

Now this is very rough, because you only take into account "der,die,das" while "die" is used in more feminine inflections than "der". There are more inaccuracies, but the rough picture is a nice estimate, I believe.
However, I find it interesting that you get a result that is very close to the study based on CELEX data.
Comment: Won't counting only articles get you misleading data, because *die* is used for all plurals, *der* can be masculine nominative or feminine dative/genitive, and *dem* and *des* can be either masculine or neuter?
Comment: I understand the question as asking for the number of masculine words in the dictionary - not the number of words used in texts. They don't need to match. Some words are used often, some are used rarely.
Comment: @userunknown: Surely they are. However, my assumption was, that a word wouldn't be used more often simply because it is masculine (I even highlighted this *assumption*). Under this assumption, the number of uses in texts should match the number of words in the dictionary.
Comment: @userunknown: No I am not. However, my choice of words might have been a bit ambiguous there :)
Comment: Yes. I even pointed this out in my answer! However, it's an indicator for what you can expect. It is to be taken with extreme caution, though. I think this leads to the question: "What's the distribution of cases?"
Comment: Distribution of cases would be interesting. I'd expect mostly nominative & accusative, a smaller amount of dative, and very little genitive (especially in spoken or informal contexts).
Comment: I think you're confusing causation and correlation here. I can assume that the usage of nouns is correlated with the gender, but not caused by it.


Can genetics be an answer to our human flaws?

Question: Ok I have been thinking genetics is that part of biology wich has the ability to change the genes of an organism as such it changes their abilities as well if so why cant we use this technique to change the problems that we face for example:
The cells of plants contain chlorophylle as such they can create their own food thanks to sunlight+water+CO2 what if we take the gene responsible for this and transfer it to a human being like this he will not have any need to eat(but he still can if he wants for more energy like meat-eater plants) however a downside would be green skin but I think is worth another one would be the lizards wich have the ability to regenerate limbs and other body parts that were lost this can help those who suffer from absence of body parts. Wouldn't this be amazing like a human with different abilities to adapt and survive these that I mentioned are simply core of our problems these days there can still be more to it.  SO why isn't this technique used for a solution to our problems?
Comment: Making green humans wouldn't work, as a human doesn't have nearly enough surface area to collect the energy they need to survive - even if they lay on a sunny nude beach all day :-)  It takes roughly an acre (about 4000 m^2) to support a human.
Comment: Related http://biology.stackexchange.com/q/17676/3340
Comment: It would be much easier to make a glow-in-the-dark human with some GFP as it has been done with cats already.
Answer: Here are three elements you want to consider

we are not able to make genetic manipulation of all the cells in a grown-up individual. There exist a whole bunch of treatment making use of genetic engineering in adult humans but they are typically quite costly.
The phenotypic traits that you mention are extremely complex. There is no simple gene that will allow a lizard to regenerate a lost limb. You will have to learn more about cell specialization in order to understand why lizards have a power of regeneration that we don't. Similarly, you can't just transfer a few genes and expect a human to be able to photosynthetize. Photosynthesis is a very complex process which require the ability to perform a whole bunch of reaction, which require organelles we don't have for the reactions to take place, which requires the ability to gather and concentrate lots of $CO_2$, etc... It is really really not that easy. You should learn more about the specific traits you are mentioning to get a notion for why it is not that easy.
Genetic manipulation on human is vastly illegal for ethical reasons. But these ethical reasons are to be discussed on philosophy.SE.


How do you calculate standard errors for a transformation of the MLE?

Question: I need to make inference about a positive parameter $p$. To acomodate the positiveness I reparametrized $p=\exp(q)$. Using MLE routine I computed point estimate and s.e for $q$. The invariance property of the MLE directly gives me a point estimate for $p$, but I am not sure how to compute s.e for $p$. Thank in advance for any suggestion or reference.
Comment: Can't you use the same MLE routine to compute a point estimate and s.e. for $p$ directly?
Answer: The Delta method is used for this purpose. Under some standard regularity assumptions, we know the MLE, $\hat{\theta}$ for $\theta$ is approximately (i.e. asymptotically) distributed as
$$ \hat{\theta} \sim N(\theta, \mathcal{I}^{-1}(\theta)) $$
where $\mathcal{I}^{-1}(\theta)$ is the inverse of the Fisher information for the entire sample, evaluated at $\theta$ and $N(\mu,\sigma^{2})$ denotes the normal distribution with mean $\mu$ and variance $\sigma^{2}$. The functional invariance of the MLE says that the MLE of $g(\theta)$, where $g$ is some known function, is $g(\hat{\theta})$ (as you pointed out) and has approximate distribution
$$ g(\hat{\theta}) \sim N( g(\theta), \mathcal{I}^{-1}(\theta) [g'(\theta)]^{2} ) $$
where you can plug in consistent estimators for the unknown quantities (i.e. plug in $\hat{\theta}$ where $\theta$ appears in the variance). I would assume the standard errors you have are based on the Fisher information (since you have MLEs). Denote that standard error by $s$. Then the standard error of $e^{\hat{\theta} }$, as in your example, is
$$ \sqrt{s^{2}e^{2 \hat{\theta}}} $$
I may be interpreting you backwards and in reality you have the variance of the MLE of $\theta$ and want the variance of the MLE of $\log(\theta)$ in which case the standard would be
$$ \sqrt{ s^{2}/\hat{\theta}^{2} } $$
Comment: Just a side note: there are also appropriate multivariate extensions whereby the derivatives are replaced by gradients, and the multiplications have to be matrix multiplications, so there's a bit more headache in figuring out where the transpose goes.
Comment: Thanks for pointing that out StasK. I believe in the multivariate case the asymptotic covariance of $g(\hat{\theta})$ is $\nabla g(\theta)' \mathcal{I}(\theta)^{-1} \nabla g(\theta)$
Comment: (+1) I added a link to the regularity assumptions (and some other things) since it isn't clear whether these are satisfied in the OP's problem. I might have said that $\hat{\theta}$ is _asymptotically_ normal and not _approximately_ normal, since the convergence rates can be slow at times.
Comment: Thank you @MånsT, I also did clarify that I meant asymptotically when I said approximately :)
Answer: Macro gave the correct answer on how to transform standard errors via the delta method. Though the OP specifically asked for the standard errors, I suspect that the objective is to produce confidence intervals for $p$. Besides computing estimated standard errors of $\hat{p}$ you can directly transform a confidence interval, $[q_1, q_2]$, in the $q$-parametrization to a confidence interval $[\exp(q_1), \exp(q_2)]$ in the $p$-parametrization. This is perfectly valid, and it may even be a better idea depending on how well the normal approximation used to justify a confidence interval based on standard errors works in the $q$-parametrization versus the $p$-parametrization. Moreover, the directly transformed confidence interval will fulfill the positivity constraint.


Why an event cannot be dragged above 11:00 pm in Google Calendar?

Question: I post an event in Google Calendar, say for example from 12:00 am - 1:00 am. I tried to extent that particular event to the whole day till 11:30 pm, but I couldn't extend it more than 11:00 pm. Is there any specific reason for that?
Answer: I do believe you've found a small bug related to how the drag extender works.
However, this may be as designed to prevent display weirdness from happening since events longer than 24 hours automatically go into the all-day event area of the calendar regardless of being marked as all-day.
Here's what I found:

Cannot drag extend an event past the midnight hour of the current day (regardless of start time)
If you start an event at midnight today initially created to last 1 hour, when you drag the event down you cannot go past 11pm
If you start an event at 1am today initially create to last 1 hour, when you drag the event down you cannot go past 0:00 next day
If you manually edit the event to go from 00:00 today to 23:59 today and then drag extend it, it pops back to 23:00 as the maximum end time for dragging.
If you manually create an event starting 00:00 to 23:00 and drag & drop the whole event past the midnight hour you cannot drag the event past the 23 hour long mark. Even though the event is spanning across days.

Extra Notes:

if you manually create an event to go from 00:00 today to 00:00 (or longer) tomorrow it ends up in the all-day events area of the calendar without having the all-day event flag. However, you cannot drag extend an event to be longer than the today's time without manually editing the event.
Answer: It's probably because, if you wanted a whole-day event, you can create this sort of thing by clicking in the zone just under the day's date.
Otherwise you can create your event, click it, select "edit event" and change the end time to whatever you like.


questions about link aggregation

Question:
How many interfaces can we group as a link aggregation on a Cisco
switch?
How many interfaces, if they all are full duplex?
Can we check the value of used bandwidth of ether channel group?
How many groups can we make on a Cisco switch?
Comment: Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
Answer:
Up to eight ports in a channel group.
Up to eight ports in a channel group.
Yes you can (see below); it's an interface.
It depends on the switch model (see below).

For #3:
Interface Commands (show interfaces - show interfaces vg-anylan):

Examples
The following is sample output from the show interfaces port-channel
  command:
<code>Router# show interfaces port-channel 1

Port-channel1 is up, line protocol is up
  Hardware is FEChannel, address is 0000.0ca8.6220 (bia 0000.0000.0000)
  MTU 1500 bytes, BW 400000 Kbit, DLY 100 usec, rely 255/255, load 1/255
  Encapsulation ARPA, loopback not set, keepalive not set, fdx
  ARP type: ARPA, ARP Timeout 04:00:00
    No. of active members in this channel: 4
        Member 0 : Fast Ethernet1/0/0
        Member 1 : Fast Ethernet1/1/0
        Member 2 : Fast Ethernet4/0/0
        Member 3 : Fast Ethernet4/1/0
  Last input 01:22:13, output never, output hang never
  Last clearing of "show interface" counters never
  Queueing strategy: fifo
  Output queue 0/40, 0 drops; input queue 0/75, 0 drops
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     223 packets input, 11462 bytes, 0 no buffer
     Received 1 broadcasts, 0 runts, 0 giants
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 watchdog, 0 multicast
     0 input packets with dribble condition detected
     192 packets output, 13232 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out
</code>

For #4:

System Requirements to Implement EtherChannel on Catalyst
  Switches
Catalyst 6500/6000 Series Switches That Run CatOS

With software release 6.3(1) and later releases, the maximum supported number of EtherChannels is 126 for a 6- or 9-slot chassis
  and 63 for a 13-slot chassis due to how the spanning-tree feature
  handles port IDs.

Catalyst 6500/6000 Series Switches That Run Cisco IOS Software

With Release 12.2(18)SXE and later releases, a Catalyst 6500 series switch supports a maximum of 128 EtherChannels. With releases earlier
  than Release 12.2(18)SXE, a Catalyst 6500 series switch supports a
  maximum of 64 EtherChannels.

Catalyst 5500/5000 Series Switches
[not specified]
Catalyst 4500/4000 Series Switches That Run CatOS
[not specified]
Catalyst 4500/4000 Series Switches That Run Cisco IOS Software

Catalyst 4500/4000 switches support a maximum of 64 EtherChannels. You can form an EtherChannel with up to eight compatibly configured
  Ethernet interfaces on any module and across modules in a Catalyst
  4500/4000 switch.

Catalyst 3750 Series Switches

The Catalyst 3750 series switches support a maximum of 12 EtherChannels with configuration on a stack if the switch runs Cisco
  IOS Software Release 12.1. The Catalyst 3750 series switches can
  support a maximum of 48 etherchannels on the switch stack if the
  switch runs Cisco IOS Software Release12.2 or later.

Catalyst 3560 Series Switches
[not specified]
Catalyst 3550 Series Switches
[not specified]
Catalyst 2900XL/3500XL Series Switches

The Catalyst 2900XL/3500XL series switches support a maximum of 12 EtherChannel port groups in the switch.

Catalyst 2970 Series Switches

The Catalyst 2970 series switches support a maximum of 12 EtherChannels with configuration on the switch.

Catalyst 2960 Series Switches
[not specified]
Catalyst 2950/2955 Series Switches

Catalyst 2950/2955 series switches allow up to six port groups. The port groups can all have source as a basis, all have destination as a
  basis, or be a combination of source and destination bases. All ports
  in the group must be the same type. For example, the ports must all
  have source as a basis or all have destination as a basis.

Catalyst 2940 Series Switches

The Catalyst 2940 series switches support a maximum of six EtherChannels with eight ports per EtherChannel.

Catalyst Express 500 Series Switches

Catalyst Express 500 support up to 6 Fast EtherChannel or Gigabit EtherChannel groups.

Catalyst 1900/2820 Series Switches

Catalyst 1900/2820 series switches support only two port FECs.

Catalyst 2948G-L3, 4908G-L3, and 4840G Switches

Catalyst 2948G-L3 switch router supports up to 16 FECs with up to four adjacent Fast Ethernet ports per channel and one GEC.
Catalyst 4908G-L3 switch router supports up to four GECs with up to    four Gigabit Ethernet ports per channel.

Catalyst 8500 Series Switch Routers and Cisco 7000 Series Router

Catalyst 8510 Campus Switch Router (CSR) supports up to four port    FECs as one Layer 3 forwarding path.
Comment: You cannot have port-channels until you run out of ports, each series has a specific limit of total available port channels it can keep in it's table. Ref: https://www.cisco.com/c/en/us/support/docs/lan-switching/etherchannel/12025-49.html
Comment: I was going to say, it depends on the platform. There are various things that create a limit, but I don't recall Cisco hard coding a number within IOS -- like there's no hard limit on subinterfaces; eventually, you'll run out of idb space.
Comment: I stand corrected. On the Cisco 4500 series which I have used in the past, there doesn't seem to be a limit on that like the other switches list, and the 3750 series, which we also use, has a limit of 48, but that is basically all the ports in a two switch stack, and the 3560 switches don't seem to have a limit, but 48, like the 3750 would be one on each port. I will correct the answer.

questions about link aggregation


Creating 3D model in QGIS?

Question: Can I create a 3D model in QGIS or is there some model for 3D city models?
Comment: There is a similar question with an answer that may help here  http://gis.stackexchange.com/questions/27937/features-to-3d-from-2d-in-qgis
Answer: QGIS 3.0 will support rendering of 3D models out of the box. Install the latest nightly build of QGIS using OSGEO4W or another installer for your platform.

Add 3D Canvas from main menu View > New 3D Map View
Add your 3D model as new layer
In style panel, enable 3D renderer.
Comment: What type of 3D models does this feature support?  I'm trying to use a .dae file and it doesn't seem to be working.  QGIS isn't offering any advice.
Answer: There is QGIS Globe. You'll need to run QGIS on Linux though (Source http://sourcepole.ch/the-state-of-qgis-globe).
To see QGIS Globe with PostGIS 3D in action check http://vimeo.com/54776907.
Answer: There is indeed a plugin based on a JavaScript library link here
This plugin will generate an html page where you will be able to pan in 3d
Comment: I try to use it, but it gives bad results for me. It's make 2d features 3d based on attribute for example "height", and after export to JS, I cant work with features geometry. And it will be html document instead QGraphicsView, so I can't add some objects dynamically, for example pictures. I want to add models to map with roof, windows and other building attributes. Something like Google Earth. It also show 2d map and 3d models of building over it.
Comment: You can use 3d shapefiles, you dont need to have a height attribute. And yes it is limited ATM. I'm afraid that QGIS doesn't propose anything like this.
Comment: Thank you. I will try it. After using 3d shapefiles I need to make export to js, or add it to scene? Scene is 2d, so i cant turn it and see building from all sides, just from top?

Creating 3D model in QGIS?


How is geometry optimization of small molecules different from the protein folding problem?

Question: My layman's understanding is that finding the ground state geometry of small molecules is "hard". I don't have a good sense of how hard though. I suppose there are applications where methods like VSEPR are good enough, and other situation where some sort of ab initio calculations are required. But isn't the problem of protein folding essentially the same problem, albeit at a much larger scale? Yet we have methods like Alphafold which can produce good results in many cases. So what am I missing here? Why can't something like Alphafold give us ground state geometries of small small molecules if it can do something similar for much larger molecules?
Comment: It's not entirely the same problem imo. Small-molecule geometries are often very easy to get *approximately* right (think molecular models), and quantum chemistry is used to fine-tune lengths/angles etc. On the other hand, the primary issue in protein folding is not precision, it's more about the overall large-scale, tertiary structure, which is not really a thing in small molecules (except in highly conformationally flexible molecules, where DFT does tend to suffer). That said, it doesn't mean you can't train ML models to do small molecules - search e.g. 'machine learning potentials'.
Comment: VSEPR is hardly a method in this sense. Getting geometry of small molecules calls for different methods than folding, but you got it backwards. You certainly could try using what is used for small molecule in a much bigger one. Trouble is that would make the calculation terribly long, that's about that.
Comment: @Mithoron And use lots of memory. Lots and lots of memory. That is a likely to be the limiting factor as time.
Comment: Questions about AlphaFold have also been well-received [here](https://mattermodeling.stackexchange.com/a/3851/5) (for example).
Comment: Well, if you keep adding more molecules, you'll have to consider interactions between many, many more particles. Like if you had two 'particles', it would be 1 interaction, but if you have 10 particles, it's not just 10 interactions, but 9 factorial. Although that is a simplified view, I think that's why.
Answer: tldr: For small rigid or semi-rigid molecules (e.g., 0-2 rotatable bonds) we can do a good job. For larger, more flexible molecules it's still hard.
One of the challenges with getting a good ground-state geometry is the accuracy of the methods to optimize the geometry.
AlphaFold and the various alternatives that have cropped up after its release, work in part from the vast amount of data in the Protein Data Bank (PDB) and similar databases. At the moment, there are almost 200,000 released structures. Moreover, because of the size of proteins, there's a lot of information that can be deduced from the secondary and tertiary structures.
There have also been numerous "blind tests" such as CASP, which started in 1994. The challenge is to predict the geometry / fold given the sequence. Such open challenges have definitely driven the field forward, since there's great prestige.
Add in that there has been a lot of work on bimolecular force field methods, such as AMBER, CHARMM, etc. Many groups around the world run molecular dynamics simulations with these methods and validate against experimental data, such as NMR.
One might expect that small molecules are easier – after all they are smaller!
Often that's true. For small molecules with zero "rotatable bonds" we have no conformers to predict and can often use quite accurate quantum mechanical methods to optimize the geometry. Bond lengths and angles are often very accurate when compared to experimental crystal structures, and the overall root mean square displacement (RMSD) of non-hydrogen atoms is often under 0.5Å. (Hydrogens are omitted because they usually are not available in crystal structures.)
For example, from our recent preprint we find the GFN2 semiempirical quantum method provides excellent agreement with crystal structures for zero or one rotatable bond (e.g., median RMSD ~0.2-0.3Å and mean RMSD ~0.5Å). That means for most of these molecules, atoms are only a small fraction of an Ångstrom out of place!

The challenge comes from a similar problem to protein structure prediction. There are lots of possible conformers for larger more flexible molecules. Many of these are not low-energy conformers and gas-phase optimizations neglect potential intermolecular stabilization in solution or a crystal structure. That's partly why the plot shows a slope for RMSD with increasing numbers of rotatable bonds. (Also, in large molecules, small errors in angles, etc. will add up.)
So why has AlphaFold done such a good job with protein structures, but small molecular conformers are still hard?
I can think of a few possible reasons:

More resources have been devoted to protein structure prediction. AlphaFold devoted a big team and lots of GPU/TPU time to attack it.
Proteins have fewer possible rotatable bonds. A recent paper by the Rarey group yielded a library of over 500 possible small molecule torsions with preferences.
Small molecule force fields are likely not as good as protein force fields, in my opinion. While faster approximate quantum methods like GFN2 (and some newer ML methods) exist, they're still fairly new and not as accurate as DFT on conformer energies.

There are many conformer sampling methods out there for small molecules. Unfortunately, very few support use with quantum methods.
Put that all together, and .. flexible small molecules are still tricky.
Comment: Oh, I completely forgot to mention ring sampling. That's usually ignored in protein folding, but ring flexibility, especially in macrocycles is still tricky (e.g., you can't just change one torsion angle, because the torsions in the ring are correlated).
Answer: The combinatorial complexity of large structures means that simpler methods can never solve the problem
Guessing the structure for small molecules can require a variety of techniques that work reasonably well for small molecules. Even some very simple techniques can do a good job for molecules where the bonding is not complex. Simple molecular mechanics techniques, for example, ar often good enough to give moderately good 3D structures for molecules with dozens of atoms especially if the bonds don't involve complex electronic interactions (so chemical drawing tools often apply simple force-field models to estimate plausible 3D structures).
These tools use simple information on bond-lengths and spatial interactions (atoms far apart in bonding terms can't overlap in 3D space and van der Walls interactions can explain that and reduce spatial overlap). They sometimes give results that are not ridiculous.
It might seem that protein folding could be "solved" with similar approaches. After all the constraints on folding are often not long term electronic interactions but simple spatial overlaps (I'm simplifying a lot as there are some important interactions with specific amino acid residues a long way apart in from each other on the protein backbone but this doesn't affect the argument). Don't we just have to try a bunch of bond rotations in the backbone of the protein and residues and see whether we can find plausible structures where the spatial overlaps are minimised?
But, even ignoring those complex interactions, this is an essentially impossible task. While testing the overall structure by running through many bond-rotations and testing the spatial overlaps that result works when the number of rotations are small (perhaps dozens), the number required to test protein structures is far larger. The difficulty rises exponentially with the number of bonds that have to be tested. Imagine we can explore the configurations of a molecule by testing 10 different rotations of each rotatable bond (and doing some simple calculations for each). For a molecule with just one rotatable bond this takes 10 calculations. For one with 10 rotatable bonds this takes 1010 calculations, which is a lot more. For 100 rotatable bonds (very small for a protein) this grows to 10100 calculations, which is not just a big number but an unimaginably big number vastly exceeding the number of particles in the known universe.
The combinatorial complexity grows exponentially with the number of bonds that need to be tested. This pretty rapidly exhausts the computer power of whatever computer you throw at the problem. Never mind that this is an extremely simplistic view of the complexity of the problem. We will never have the computer power to solve these problems.
What about Alphafold?
One might question that analysis by mentioning that Alphafold has made big progress on the protein folding problem so things can't be as bad as I suggest.
But this is to misunderstand how machine learning algorithms like Alphafold work (the saem applies to their similar achievement at Chess and Go both of which are intractable to brute force techniques largely because of their combinatorial complexity). Alphafold (and its equivalent for Chess and Go) does not attempt to calculate every possible configuration of the problem. It studies a very large number of known structures and tries to find common patterns that repeat across many structures. Machine learning is very good at spotting common motifs that are not very obvious to people in known structures. It then applies those to unknown protein sequences and tests whether they work. This is a far, far simpler approach than trying to work through all possible options and results in a higher, but still imperfect, guess as to the likely structure of the unknown protein.
What makes this work is that there are common features in many known structures that are very likely to repeat in others. And many of those are not easily spotted by people or other, existing, algorithms. But it is not a perfect method and does not solve the protein folding problem: it just does a much better job than other algorithms.
So the "success" of Alphafold does not undermine the argument that the fundamental barrier to using small molecule techniques to solver bigger problems is combinatorial complexity. The problem grows faster than increases our computing power as molecule size grows.


tool for documenting database and software changes

Question: I'm currently working on a php project with 3 other people. I need a free software which can help me document the changes/revisions on the database and on the application that were developing.
Comment: Could you not just use git? Or is there some special functionality that is required?
Comment: Maybe you want to be a bit more specific. If you are working with other people, is the revision control system you're using not enough?
Comment: @slotishtype: I'll try using Git, thanks for the comment.
Answer: As slhck suggests,  I would use a revision control system to record changes, whenever you check in a change you have an opportunity to type in a message stating the reason for the change.
For database structure changes I use a revision control system to manage a set of SQL DDL commands "create table ...; create index ..." which I edit whenever I make a change (even if I normally do so by "alter table" etc). This then preserves a history of changes to the database structure. I use end-of-line comments in the DDL to record the purpose of the fields.
If this is insufficient for you, you might consider editing your question to clarify what you need.


How to compile C files in terminal

Question: Question
Can someone please tell me how to compile from the command line in a clear, concise way. Preferably, my programs will be written in a real text editor (such as leaf pad).
Background
I am a complete n00b when it comes to Linux, C, and the Raspberry Pi. So, the three have come together in a perfect storm to attack!
I have created a C file called main.c in a folder. The directory is:
/home/pi/Desktop/Data Base/main.c

The C code is a simple Hello World program - I don't need to explain it here. So, I have naturally decided to compile my C code, and it is here that I come to a loss. I type in
gcc -o hello main.c

as told in this tutorial, but I come to an error:
gcc: error: main.c: No such file or directory

When I did the nano stuff, I came to a weird window, but I didn't know how to save what I wrote.
Thanks so much - this has been bugging me hugely.
Comment: Perfect storm is right, lol. The save on nano is `ctrl-o`, but it also asks you to save when you exit via `ctrl-x`.  Learn to use the `ls` and `stat` command for reading directory contents, also maybe `pwd` and `cd` as you could be getting confused about where you are.
Comment: Nano is the easiest terminal text editor to use. There is vi or vim, or emacs but their use is a little tricky. Someday you'll have to learn them. But in the meanwhile nano is pretty straightfoward. Most important commands are listed in the bottom of the window, instead "ctrl" key, you will see a '^' character, so ^c means ctrl-C to cancel,  ^x means ctrl-x to exit, and so on.
Comment: Another thing to note is that spaces in directory and file names should be avoided. You can use camel case or underscores/hyphens instead.
Answer:
Do NOT use nano (or another text editor to put your code into) with root/sudo permissions (ie. do not edit with sudo nano, only use nano) if all you are doing is personal stuff that does not need superuser permissions.

Answer
To compile from the command line (assuming yourcode.c is the name of your C file, and program the name of the resulting program after compilation):

Write your code in your favorite editor:

In the terminal, type nano yourcode.c (assuming you want to use nano);
Or use your Leafpad editor (and make sure to know where your file is saved).

Back to the terminal, navigate to where your C file is stored.
(Reminder: ls to list directory contents, cd to change directory.)
Compile your code with gcc -o program yourcode.c.
Execute it with ./program. Done!

Bonus method
If you intend on compiling/executing your program quite a lot, you may save yourself time by writing a Makefile. Create this file with Leafpad (or, in terminal, nano Makefile), then write:
all:
    gcc -o program yourcode.c
    ./program

(Make sure you presently use Tab for indents, and not spaces.) Then every time you just type make in the terminal (or make all, but let's keep things short!), your program will compile and execute.

Testing
Want to make sure your GCC installation works? Copy-paste the following to your terminal:
cd /tmp
cat <<EOF > main.c
#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}
EOF
gcc -o hello main.c
./hello # Press Enter to execute your program

If it echoes "Hello World", then you're good to go.
Comment: This is a really great tutorial and deserves way more upvotes.
Answer: Compiling C programs on the raspberry pi is rather simple. First, create your program in a text editor and save it as <insert name>.c It should be saved on the Desktop.
Next, open terminal. In it type:
cd Desktop

This changes the directory that the terminal is looking at to Desktop. This is also where our program is stored.
gcc -Wall <myName>.c -o <compiled name>

This is where the interesting stuff occurs. GCC is the compiler - it makes your code executable. -Wall activates compiler warnings - this is extremely helpful for debugging. The next line <myName>.c tells the computer where the code is stored. -o is an option - it tell GCC to compile. Lastly, <compiled name> is the name of your new program.
Comment: +1 if you add `-Wall` to this.  Opening a terminal by default puts you in $HOME, not `$HOME/Desktop`, and most things don't save anything to Desktop (there may be some that do, but it is false to imply that in general a text editor saves a file to ~/Desktop.  I've actually never seen anything put a file there, and I've been using linux for a long long time.)
Comment: To explain further: I believe ~/Desktop is used by window managers that allow drag and drop of files on the root window.  That's all.
Comment: @goldilocks I added `-Wall`
Comment: @goldilocks: why add -Wall? That can be kind of a scary thing for beginners if you don't tell them why they suddenly have a bunch more errors.
Comment: :/ Point taken about explaining it, I guess.  But they should be using if they aren't yet no matter how new they are.   The sooner, the better, and the best = every time including the first.  Or maybe you figure they should wait a few years?  I'd recommend `-Wextra` too, although it includes things that might be a bit irritating for beginners esp. w/ C++ (namely unused parameters in subclass methods).   There's no such excuse for `-Wall` unless you are really dead set on using as few parentheses as possible.
Comment: @Jacobm001 I do draw the line at `-Wpedantic`...
Comment: @goldilocks: I'm all for using -Wall, but since most tutorials don't use it, and books often encourage less than ideal practices, I avoid it in places like this. If it's given to a user here, I just think it needs to come with a disclaimer.
Comment: Actually I just noticed there is an explanation of `-Wall` in the answer \O/ IMO you are not ever doing anyone a favor by neglecting to tell them about warnings given the chance.  In all the languages/compilers/interpreters I've ever used the base level (e.g. `-Wall`) is akin to errors in the sense that they are never ambiguous or unavoidable; without exception properly written code in C can/will pass `-Wall`.  That being the case, there's no point in not using it, or in educating someone to write bad code for no reason.  You're better off learning to do things right from the start.
Answer: Your "Not found" error is caused by not having a ./ in front. So:
gcc -o ./hello ./main.c
Comment: it would help if you explained what this does and how you new this was the problem.
Comment: The `./` would not be needed.
Comment: Could use also add some code formatting, to differentiate the example solution from the text? Nevertheless, welcome to SE RPi - please take some time to have a look at the [tour](http://raspberrypi.stackexchange.com/tour) and take a look at some other people's answers to get a good idea of what constitutes a complete answer.

How to compile C files in terminal


Site topic scope

Question: For the purposes of asking questions on Computer Science Educators, what is basic knowledge that would be taught to beginning programmers, and why for each part. (This is not a list question because I expect that there would be one short answer that is generally agreed.)
Comment: Related Question: [The Two Doctrines Truth - meta](https://cseducators.meta.stackexchange.com/questions/436/the-two-doctrines-truth) Buddhism has something called *The Two Truths Doctrine*, well worth a look.
Answer: I'm not sure I understand the question.
Questions about how or what to teach in a computer science classroom are site-topical, questions about site governance are meta-topical. To the extent that your question is about what should be taught, it is for the site.  To the extent that it's about "asking questions on Computer Science Educators", it would be meta.  There is not a huge amount of overlap between the topicality of the two sites.
Whether questions are about beginners or not is immaterial to topicality.
Comment: I'm asking about what is on topic for asking questions. If I know what people consider on topic for questions about beginning teaching, then I can stay on topic.
Comment: [Im doing now what I find annoying when others do... complain about English...Hopefully its a venial sin!] You are using "extend" where (I would use) "extent". Given that @ScottRowe was protesting your moving aka extending -- his other question from here to main there is some actual ambiguity here
Comment: @Rusi Ugh. I'm using Swype on my mobile keyboard, so I have to proofread carefully.  What an embarrassing typo. Thanks for the catch!
Comment: "Ugh"?? I can see some 5-10 typos/grammo-goofs in my below answer right now. After I correct them, more will magically appear
Comment: @Rusi I often wonder why we create software that thinks it is smarter than the person using it. Or perhaps it is the programmer who created the software that either thinks they are smarter, or is not smart enough to anticipate how their software will be used. Which problem is worse?
Answer: What's the connection between basic knowledge and asking questions? Ask anything about teaching CS, whether basic or not. I thought the recent question about programming assignments in theoretical CS was interesting, but it was surely not basic.
Comment: @ScottRowe I agree with you that indirection is hard. It's the only time that I draw a picture of memory contents and addresses. But I don't see much problems with variables. (Of course I may very well teach at a higher level than you do. I teach undergrad students. You?) But other stuff about machine instructions handling I've never had a need for.
Comment: Thank you. At the moment I am most concerned about basic introductory lessons. When I "ask anything" it does not tend to go well, because the first thing that happens is people question the basis and reason for the question, then they declare it too broad, unclear what I am asking and then finally, off topic for the site, and it is closed. Asking in meta doesn't always help because my attempt to get clarification is sometimes migrated to the main site or even another site entirely. Where it gets closed as being off topic. (Understandable because I didn't ask it there.)
Comment: Y'know, the only "anything" I've seen you ask about is your insistence of teaching architecture basics as a prerequisite for programming languages. If that works for you, more power to you, but a lot of people disagree with you on the necessity. Can we move on to a next topic?
Comment: I have read that many students have difficulty with the concepts of variables, assignment and indirection. It seems to me that showing how these function in a very direct way would prevent that. If there is any specific knowledge that sets programming apart from other fields, I think these are the starting point, and are crucial. My experience of being a student and an educator over decades leads me to feel strongly about getting these facts clear at the beginning. I have been perplexed, and watched people fail needlessly. Should I stop being concerned, in your view?
Comment: Perhaps there is no need to teach the things I think make it obvious. I am wondering if there is an alternative way of introducing these concepts at the beginning which makes it equally clear, so that no one comes away not understanding. The ideas I have heard so far about labels instead of locations and so on do not seem to be working. A concrete picture, even if it is a "lie to children", might serve better than something more abstract and disconnected from a visual metaphor.
Answer: My Grandpa-dear could:

Could hear a car in the distance and say Valves need adjusting
Diagnose the health of the clutch even sitting in the passenger seat
And as for carburetors .. Hoo boy! Not only did we ordinary muggles not know how to adjust a carburetor, we dont even know what exactly that is!!! Height of illiteracy (in his view)

Towards the end of his life he reluctantly admitted that though there was a thousand-fold increase in the cars-on-road in his lifetime, there was simultaneously a hundred-fold decrease in the number of people who know what a carb is.
The last time he looked into a bonnet (hood in some parts of the world) -- PCB where he expected a carb etc -- he sadly admitted: I dont know whats going on in these modern cars..."
He would see me hunched -- too hunched for my good! -- over a computer and expostulate: Whats so interesting about a typewriter?
It was sad: A man who was regarded as a genius about X (cars) was hopelessly clueless about Y (computers).
Particularly sad because it was his genius itself that became his obstruction to the changing world,
Its not (chronological) age or even health that makes us old Scott! Its the our refusal to recognize changes.
I was seeing a comment on some SE site very kin to my gpa's carb: In earlier time the car instructions said how (and what not) to fill a battery with. Now the instructions say Dont drink the battery water!
Speaking of which:
Note 1: I think this commenter is also a bit past tense. Dunnno what exactly has changed about car-batteries but I dont see ppl worrying about the water at all as we used to.
Note 2: Progress means: Peanut packets contain :
Allergy Warning: Contains peanuts!
I wonder whether the message should be:
WARNING Species heading for IQ-extinction?
Which is to say I am very much in your boat Scott.
Which is also to say the saddest thing I find about your going-on is not its wrongness but your inability to hear responses. I know very well how hard it is when 90% of it is <expletive-deleted>.  Trouble is the 10% matters.  And one loses by not paying attention. Note
I personally find this video soothing when I am in your frame of mind: To our sensibilities the cool Jan air of today and a year ago are about the same. In fact the world has shifted by about 8 billion km (5 billion miles if you prefer) may be worth remembering
More precise numbers easy enough to work out from here
Even more mind-boggling is this simulation... Frankly I find it hard to even think that that bounce ... which a ping pong ball takes a millisecond to do takes a billion years for our galaxy.
Perhaps the atoms in the ping pong ball find it as hard to cognize how they are contributing to that bounce as we are to the changes we are witnessing...???
Because we are that bounce???
Comment: I too can diagnose many car problems, decide how urgent they are and estimate the cost. I've even fixed some in dress clothes, so that I or someone else can get home. A car is an expensive piece of equipment. So, hon, I say that either you use technology or it (and they) use you. No one should be creating things for others to use without understanding. Too many bridges have failed lately killing many for me to be sanguine about vastly larger and more complex systems used by (and attacked by) far more people. *Unacceptable*, it has nothing to do with time, age or change. It is Professionalism.

Site topic scope


Yellow leaf bush

Question: Are there any Mulberry bushes that have bright yellow leaves in the summer if in the sun? There is a bush where I live that has brilliant yellow leaves on top of the bush but underneath growth is green. I was told it was a Japanese Mulberry. I haven't found any info to verify that. The bush is large about 8 feet.
Comment: Do you remember the shape of the leaves?
Answer: Japanese mulberry is Morus australis - new leaves are not yellow, but the leaves do turn yellow as the weather cools and goes into Fall/autumn, see here for info and images: Japanese Mulberry – Morus australis.
Depending where you live, if overnight temperatures have fallen recently, or the weather has been very dry this summer as well as turning cooler, that might explain yellow leaves at the top. Otherwise, please add photographs  of the whole plant and a close up of the foliage to your question for correct ID.

Yellow leaf bush


How to run a task daily from Java?

Question: How can I run a task daily at a specified time (say 11:00 am) using java.util.Timer? I'm using JDK 1.4.2, I know it's old, but it's what the project requires.
Answer: Quartz is the most well known solution to schedule processes in Java environments, but you have a lot of options. Check this list:
Quartz is an open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application. Quartz can be used to create simple or complex schedules.
Jcrontab is designed to be extended and integrated with any project. Reads and stores the tasks to execute in a file, a database or an EJB and provides a web UI and a basic swing GUI.
Essiembre J2EE Scheduler is a simple task scheduling mechanism for J2EE applications. This library can be considered a wrapper around the Timer and TimerTask classes found in the standard Java API. Configuration for tasks to be executed and their frequency is XML-based.
cron4j is a scheduler for the Java 2 platform which is very similar to the UNIX cron daemon.
Oddjob's goal is to provide some order and visibility to all the batch files and cron jobs that tie an enterprise's critical business processes together.
Fulcrum Scheduler provides a scheduler service. It is based on the TurbineScheduler provided with Turbine, but all older stuff has been removed. Currently ONLY the non persistent Scheduler is done. It loads scheduled jobs from the component config xml file.
Gos4j -Goal Oriented Scheduling for Java- is a way of organising processing priorities based on goals.
Job Scheduler is a batch program operating as a demon, and can be controlled using a graphical user interface. The Job Scheduler uses an XML configuration for the scheduled programs, scripts and for the timing and frequency of task processing. An API is available  that hands control of events and logging to your jobs.
JDRing is a lightweight Java scheduling library that is simple and small, but still supports ringing alarms at specified intervals, as one-time events, or on complex schedules with full cron-like control.
jBatchEngine is a batch job spooler written in Java. In constrast to time driven schedulers like Cron, jBatchEngine is event driven.
MyBatchFramework is an open-source lightweight framework designed to create easily robust and manageable batch programs into the Java language.
Super with SuperScheduler and SuperWatchdog is a Java job scheduler with rich GUI for all applications. It is platform neutral. Especially good to be a job scheduler for Linux and Solaris. It provides a super set of functionalities of the Scheduler of Microsoft Windows. It provides event-triggered scheduling. It can schedule tasks in a distributed environment. A task will be executed once and only once among all machines in the network. All tasks are holiday adjustable. Even every job is a STANDBY job, the history will be a good trace for important tasks. It supports Internationalization.
source: Open Source Job Schedulers in Java
Answer: Look into TimerTask and Timer - both are in that version of the JDK.
Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

Set it to run the first Date you want then the number of milliseconds in one day as your delay.
Answer: Is it possible for you to use a library such as cron4j? It will make your job much easier!
Comment: this seems like a possibility depending on whether this library will be allowed to be used
Comment: I second this suggestion -- cron4j is a delight, and works like a charm, is much simpler than quartz (which works, too, it's just rather big and often more than you really need; and has some kinks for simpler use cases)
Answer:
Java Timers can run an arbitrary job at intervals, pre-fixed times, etc.etc.
Quartz library
If you really want to be bare-bones about it, wrap it in a shell script and put in in cron.
Answer: You have to use Quartz
I have never know who launches Quartz in first place though.
If you have an application server or similar artifact you can configure the Quartz job there and have it run your task at the given time.
Comment: Quartz has a lot of fancy features, so if your requirements are elaborate, it may be a good choice. But if you have a simple "fire this off at 5:00 every day", I'd just use Timer.
Answer: Maybe, that recent post helps you:
Will this pause my Java thread for a minute?
My response for that question is use a java built in implementation based on java.util.Time and java.util.TimerTask classes:
Will this pause my Java thread for a minute?
Or, you can use the crontab service for *nix platforms (available for Windows platforms too). That's the simplest and light-weight style to run a standalone job periodically.
[]'s,
And Past

How to run a task daily from Java?


Primitive roots

Question: If Artin's conjecture on primitive roots is true, then 2 generates $(\mathbb{Z}/p\mathbb{Z})^\times$ for infinitely many primes $p$. Can one at least show that $(\mathbb{Z}/p\mathbb{Z})^\times$ is generated by 2 and 3 for infinitely many primes $p$?
Comment: Hej, I've changed $\mathbb{Z}_p^*$ to $(\mathbb{Z}/p\mathbb{Z})^\times$, because the generally accepted meaning of $\mathbb{Z}_p$ is the $p$-adic integers (though I don't think anyone was confused about what you meant), and because after changing that aspect, the asterisks gave me trouble with the markdown.
Comment: Or indeed $\text{lcm}(j,k)<p-1$. But that would only be one counterexample - is there an intuitive reason why we should expect it to occur for all but finitely many primes?
Comment: +1 by the way - neat question.
Comment: I am going to guess "probably not" - if you can find a prime $p$ and positive integers $j,k$ with $2^{j} \equiv 3^{k} \equiv 1 \, \mathrm{mod} \, p$ and $j*k < p-1$, then you've found a counterexample.
Comment: @Hej: although your question is quite clear, I think it's natural that people are misreading it (as you mentioned in a comment below). Namely, a primitive root mod p is a generator of (Z/pZ)^*, so it is natural to (mis)read your question as: "Are there infinitely many primes p such that 2 or 3 is a primitive root mod p?" especially if you know about the result of Heath-Brown which is "slightly weaker" than this. You are weakening APR in a somewhat unexpected direction by allowing more than one generator. (Anyway, good question!)
Comment: I agree, the title should be changed. "Primitive roots" is not specific enough.
Answer: I think the best approximation is due to Heath-Brown: for infinitely many primes $p$, one of $2$, $3$, $5$ is a primitive root mod $p$. Actually, this result works with any three primes in place of $2$, $3$, $5$.
Comment: Thank you. I was aware of that result. Maybe my question was not clear. So what I am asking is whether the group generated by 2 and 3 in $\mathbb{Z}_p^*$ is all of $\mathbb{Z}_p^*$. Equivalently, is it true that for infinitely many primes $p$, every number $m$ is congruent to some $2^a3^b$ mod $p$, with $a,b$ natural.
Comment: Heath-Brown's proof goes by first showing that given three primes, they will generate $(\mathbb{Z}/p)^*$ for infinitely many $p$ and current technology does not allow us to reduce the number of primes to two. His method was inspired by an analogous result of Gupta and Murty on elliptic curves, where you ask if a given set of $m$ rational points (satisfying some obvious necessary condition) generates the group mod $p$ for infinitely many $p$ and this can be proved as long as $m$ is big enough (5 for CM and 8 for non-CM? I forget). The conjecture would be $m=1$, but current tech is not enough.
Comment: However, $n_1,\ldots,n_k\in\mathbb{Z}$ could still generate $\mathbb{Z}/p\mathbb{Z}^\times$ even if none of them is a primitive root mod $p$. It seems like Hej's question might not require such hard results.
Comment: @Felipe: Amusing, I think we were composing our answers at the same time, with more-or-less the same material.
Comment: There is also a nice presentation by Murty, "Artin's conjecture for primitive roots", the Mathematical Intelligencer, vol 10 (4) (1988), 59-67.
Comment: I wonder whether there is a reasonably simple elementary argument showing that for a fixed, sufficiently large integer $N$, the set $[-N,N]\setminus\{0\}$ multiplicatively generates $({\mathbb Z}/p{\mathbb Z}$)^\times$ for ininitely many / positive proportion of all primes $p$.
Answer: This is an interesting question. More generally people have considered the following. Let $\Gamma$ be a subgroup of $\mathbf{Q}^*$ generated by $r$ primes. What can one say about
$$
  N_\Gamma(X)=|\{p < X : \Gamma \bmod p \textrm{ generates } (\mathbf{Z}/p
    \mathbf{Z})^{\times}\}|.
$$
There is also a natural elliptic analogue. Thus let $E/\mathbf{Q}$ be an elliptic curve and let $\Gamma\subset E(\mathbf{Q})$ be a subgroup of rank $r$. Then we can consider
$$
  N_\Gamma(X)=|\{p < X : \Gamma \bmod p \textrm{ generates } E(\mathbf{Z}/p
    \mathbf{Z})\}|.
$$
Gupta and Murty give a number of results, both conditional and unconditional, in their paper Primitive points on elliptic curves, Compositio Math. 58 (1986), 13–44. For example, if $r\ge6$ and $E$ has complex multiplication, then they prove unconditionally that $N_\Gamma(X)\gg X/(\log X)^2$. In the non-CM case, assuming the GRH, they prove that if $r\ge18$, then $N_\Gamma(X)\gg X/(\log X)$.
It would be interesting to investigate similar questions on higher dimensional algebraic groups, either abelian varieties of dimension $\ge2$, or even on $(\mathbf{Q})^{\times}\times(\mathbf{Q})^{\times}\times\cdots\times(\mathbf{Q})^{\times}$.

Primitive roots


Can potion ingredients that are multiplied after casting Doubling charm be used to create potions?

Question: This question has been on my mind for a while. Wizards can multiply food. It is implied by Ron that Molly has used similar charm.
Answer: Possibly, but with drawbacks.
The Doubling charm does indeed replicate various objects and I suppose that theoretically you might be able to use the materials just as used to make food. However, there are possibly a few drawbacks to this.
In the following chapter, Hermoine uses the Doubling charm to create a copy of the locket to fool Umbridge.

'I know that, Harry, but if she wakes up and the locket's gone – I need to duplicate it ... Geminio! There ... that should fool her ...'
Harry Potter and the Deathly Hallows, Chapter 13, The Muggle-Born Registration Commission

The passage implies that Hermoine's duplicate was "good enough" to fool Umbridge - i.e. unable to create a fully identical copy. With magical objects like potion ingredients, it is entirely possible that "good enough" may be dangerous or even fatal.
For another problem, we could refer to this quote by JKR in an interview in 2000 (credits to Valorum from this comment)

Q: It seems that the wizards and witches at Hogwarts are able to
conjure up many things, such as food for the feasts, chairs and
sleeping bags. . .if this is so, why does the wizarding world need
money ? What are the limitations on the material objects you can
conjure up ? It seems unnecessary that the Weasleys would be in such
need of money...
A: Very good question (well done, Jan!!). There is legislation about
what you can conjure and what you can't. Something that you conjure
out of thin air will not last. This is a rule I set down for myself
early on. I love these logical questions!

Thus we can possibly infer that 1) Doubled ingredients (and potions) vanish and must be used quickly and that 2) this process is potentially dangerous or even fatal.


Recursively list files with file names, folder names and permission

Question: Is there anyway I can list files by typing a command in the shell which lists all the file names, folder names and their permissions in CentOS?
Comment: Hi, thanks for the reply. Yes for example, if I have the following structure: Folder A > File 1, File 2, Folder AA [File AA1, File AA2] etc, so I wish to list all folders and all files inside these folders along with their permissions in a text file. I hope that makes sense?
Answer: Have a look at tree, you may have to install it first. Per default tree does not show permissions, to show permissions next to the filename run
tree -p

which will recursively list all folders and directories within the current directory including permissions.
Answer: ls -lR lists the contents of directories recursively. The output is hard to process automatically, but for manual browsing it may be good because it's what you're familiar with.
The find command lists files recursively. You can customize its output, for example the following command prints permissions like ls -l does before each file name:
find -printf '%M %p\n'

This output can be processed mechanically if there are no newlines in your file names. If you replace \n (newline) by \000 (null byte), you can process the output with tools that support null-separated records.
Both ls and find only print traditional unix permissions, not access control lists. For a recursive listing of all file permissions including ACL information, run
getfacl -R .

The output can be processed mechanically (special characters are sorted); in particular, it can be fed to setfacl --restore to replicate the permissions to another tree with the same file names.
Answer: You want find for this.
find some/dir -ls > output.txt

From the find man page:

-ls
True; list current file in ls -dils format on standard output.

From the ls man page:

-l
use a long listing format
Answer: The stat command executed by the find command will give you permissions and a whole lot more:
$ find . -exec stat {} +

  File: '.'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 10306h/66310d   Inode: 1326677     Links: 3
Access: (0775/drwxrwxr-x)  Uid: ( 1000/    rick)   Gid: ( 1000/    rick)
Access: 2020-06-24 17:00:52.131209006 -0600
Modify: 2020-06-13 09:21:40.489850096 -0600
Change: 2020-06-13 09:21:40.489850096 -0600
 Birth: -

  File: './.eyesome-sunset'
  Size: 8           Blocks: 8          IO Block: 4096   regular file
Device: 10306h/66310d   Inode: 1323438     Links: 1
Access: (0666/-rw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-06-23 04:32:44.808321580 -0600
Modify: 2020-06-02 16:37:33.282346160 -0600
Change: 2020-06-02 16:37:33.282346160 -0600
 Birth: -

Answer: ls is a command to list computer files in Unix
ls -l list items in directory
ls -R recursively list file
ls -lR

Comment: This was in Gilles answer.  Also your explanation of `ls -l` doesn't explain what the `-l` is at all.


Who was the Maharal influenced by in his seforim?

Question: Where did the Maharal source his knowledge of nistar from in his seforim? Was it other seforim or rabbis?
Answer: Rabbi Yehoshua Hartman, in the article called "The Maharal: His Approach, His Innovations and His Position as a Teacher of Posterity", originally posted in the fall 2009 issue of "Jewish Action" explains that the Maharal was influenced by many sources. He writes:

We shall find some points of interest in their words that might seem far-fetched; they are indecipherable in their context, but their secret is clearly revealed elsewhere—for example, the Midrash on Sefer HaZohar, or the Midrash HaBahir by Rabbi Nechunya ben Hakanah, and other books of wisdom that are kept hidden in the libraries of the wise. And these works reveal concealed aspects of Torah that the Sages spoke of in hints.

This is why the Maharal became known as Geviha ben Pesisa, a spokesman of the sages, as Rabbi Hartman explains. He used many sources for writing his seforim. From Midrashim to Kabbalastic sources, such as the Zohar.
The Maharal also often cites the Rambam, and refers to the Rambam as רבי הגדול - the Great Rabbi (Be'er HaGolah, Be'er 4, p. 49) 1
See alto this research, where a few of Maharal's teaches are identified, including the Rosh Yeshiva of Maharal's shul, Rabbi Shalom Shachna: Admiration and Fear: New Perspectives on the Personality of the Maharal (Sladek, P, 2017, p. 8) - see also here: Kotzk Blog: new research on Maharal of Prague. The research shows that Maharal did not have a specific teacher.

1 Maharal's Be'er ha-Golah and His Revolution in Aggadic Scholarship — in Their Context and on His Terms (Chaim Eisen) (p. 154)
Comment: That doesn't really answer the question because no-one else reads the kabbalistic sources like the Maharal reads them. The Chassidim would probably tell you that the Maharal came from nowhere, i.e. Hashem sent down a *neshama* to *olam hazeh* to reveal a new way of learning Torah.
Comment: @TheGRAPKE It does. I don't know if you had a look at the paper from Sladek, P (2017, p. 8), but there it clearly explains what the OP was looking for.
Comment: The basic point is that the Maharal's thought widely differs from *anyone* who came before him. So guessing which teachers had an influence on him is entirely redundant. Further, in the paper you mention there is a story in which the Maharal offered his own explanation to a subject under discussion by a group of rabbis *when he was 7 years old*, which makes it abundantly clear that he didn't really need to be *mekabel* from anyone, וכנ"ל.


How to Make a graph of consecutive values in Prometheus

Question: In a Debian Os target, I want to calculate BandWidth utilization "%" on a 1-minute interval and generate a graph of these BW values over 1Hr time window using Prometheus.
"60 minutes = 60 different values of BW"
I configured snmp_exporter to scrape snmp_agent metrics such as ifHCInOctets from the target server and here's the equation:
Interface In Utilization % =
((( [Total Sent packets in Bytes "ifHCInOctets_time2" - Total Sent packets in Bytes "ifHCInOctets _time1"] * 8 "Bytes into Bits") / ▲time "60s") / Maximum-Bandwidth "in bits/sec") * 100 "%"
How can I apply this equation in ▲time=60s intervals and apply it for a 1H time-window and depict these 60 values of BW consecutively in a Prometheus graph
Answer: PromQL expression should looks like this:
(rate(ifHCOutOctets[1m]) * 8) / (ifHighSpeed * 1000000) * 100
If you want to restrict to particular interface, add filter like
(rate(ifHCOutOctets{ifIndex="0"}[1m]) * 8) / (ifHighSpeed{ifIndex="0"} * 1000000) * 100


Gas fireplace turning itself off

Question: I turn the switch on the wall on to light my gas fireplace. It turns on for a short while then turns it self off.  What is the problem? Thanks!
Comment: Could be a safety mechanism. Model #?
Answer: I just had a fireplace guy come fix the exact same issue.  It cost me $190 total, and it should have only cost me $3.  Here's what he did:  he replaced the switch.  That's it.  a $3 switch was the solution to a fireplace that keeps turning itself off.
According to the repairman, over time, a tiny amount of corrosion (or even just plain wear) will affect the connection inside the switch, creating increased resistance.  Since the switch is delaing with millivolts, even a small amount of resistance is enough to essentially "shut off" the fireplace, just as if you'd turned it off at the switch yourself.
A new switch has no wear and no corrosion, so there's little or no extra resistance, and the millivolts flow just fine, thus keeping the fireplace turned on.
Before you blow a ton of money on an expert, try replacing the switch.  It's low voltage, so there's no risk of shock... just buy a new switch at Home Depot and replace it yourself.  I wish I'd known about this before I wrote a fat check! :)
Comment: Hello, and welcome to Home Improvement. Thanks for the answer; keep 'em coming. And, you should probably [take our tour](//diy.stackexchange.com/tour) so you'll know how best to contribute here.
Answer: This might be automatic shut-off because a safety thermocouple is not holding the valve open.
To prevent explosive buildup of fuel in the air, most gas appliances have a thermocouple that provides electricity to hold a magnetic valve open. In a water heater, for example, the pilot light heats the thermocouple, and should it blow out, the gas is shut.
Perhaps there is a thermocouple that needs a minute or so to get warm, and you're not holding the valve open long enough to heat it. Read the instructions for your fireplace.
Answer: For others that might be looking...not quite enough info in OP, but this might help.  A lot of gas FPs have 2 sensors; a thermocouple and a thermopile. If both the main flame and the pilot go out, the problem is likely on the side of the thermocouple (could be thermocouple itself, or the solenoid in the main valve). If the pilot stays on, but the main flame goes out, the most likely (but not only possible) issue is the thermopile (you should be able to test this easily with a multimeter - lots of videos online regarding testing a thermopile). It may just need a good cleaning (again, lots of videos on how to do this online) or possible replacement (not a fun job, but can be done by a diy'er). Hope that helps.
Comment: Hello, and welcome to Home Improvement. Thanks for the answer; keep 'em coming. And, you should probably [take our tour](//diy.stackexchange.com/tour) so you'll know how best to contribute here.

Gas fireplace turning itself off


Prevent call from going to voicemail after after blocking it on Android Phone

Question: We are programmaticaly blocking the incoming calls on an Android phone. We are successfully able to block the calls. However, the call goes to voicemail as soon as it is blocked. How to I prevent the blocked call from going to voicemail?
Answer: The only way I can think of is actually answering the call and disconnecting it immediately therefore "fooling" the mobile network and avoiding the voice mail
Answer:
How to I prevent the blocked call from going to voicemail ?

Step #1: Raise a lot of money.
Step #2: Buy a mobile carrier
Step #3: Order the engineers of the mobile carrier to allow app developers to block calls going to voicemail
Step #4: Repeat steps #1 through #3 for each mobile carrier operating on Earth
In other words, voicemail behavior is up to the mobile carrier, not to you.


Linear-time approximation to kernel SVM?

Question: Scaling kernel support vector machines to large datasets is a very challenging problem. For linear SVMs, PEGASOS is able to learn efficiently online, so training time scales linearly with the size of the dataset. However, PEGASOS works with the primal formulation of an SVM, and so it can't be extended to kernel methods. To do exact learning of a kernel SVM you must construct the entire Gram matrix, which takes quadratic time in the size of the data. Are there approximate methods for learning kernel SVMs in linear time that don't require the full Gram matrix but still have theoretical guarantees like PEGASOS? Or is this still an open research question?
Answer: Update. I just noticed that kernel SVM are now implemented in the Vowpal Wabbit library. The algorithm used is the LASVM algorithm of Bordes et al. (2005)
The following paper: Streamed Learning: One-Pass SVMs remains an interesting reading though.
It does not rely on primal formulation, but on the Minimal Enclosing Ball (MEB) formulation of the problem and proposes a clear algorithm, that trains the SVM in only one pass.
However, the selection of the support vector is not really clear. Besides, no experiment is conducted on the kernelized versions. But it remains the best paper I have read regarding streaming kernel SVM.


Pi3 Webserver WiFi Connection

Question: Looking to use Pi3 as a webserver (Apache, PHP, MySQL).
I need it to allow other devices to connect to it via WiFi to access the hosted web site, Is WiFi-Direct the best way of doing this as there is no router, if so are there any instruction on how to do it?
Answer: I think the most straighforward way to achieve your goal would be to setup your Raspberry Pi as an access point. I would suggest you follow the official how-to from the Raspberry Pi foundation.
As your Raspberry Pi is standalone and no routing is needed, you can stop before the part ADD ROUTING AND MASQUERADE of the tutorial.
Now your other devices can simply connect to the SSID you have specified in the hostapd.conf file, using the passphrase (pre-shared key) defined there.
Comment: I just saw this answer, the day after I posted my own question about ROUTING and MASQUERADE.   I thought I could stop there, but wasn't sure.  You answered that.  They should modify the tutorial so it is more clear those other steps aren't necessary if all you want to do is connect a laptop to a pi via wifi.

Pi3 Webserver WiFi Connection


Consequences of jumping from one 0% interest credit card to the next?

Question: What are the negative consequences (if any) of moving from one 0% introductory rate credit card to the next, every 12-15 months (whatever the rate period happens to be). This is for someone with great credit, who will properly use those cards during that time and leave with no balance.
Comment: Define "properly use those cards".  Because my cards have a very high APR, but I don't care since I pay them off every month.
Answer: One huge risk is that for some reason (lost job, unplanned expenses) you can't pay off the balance when the intro period ends. Many cards will retroactively charge interest on the balance, leaving you with a massive interest charge.
This type of risk is called "picking up pennies in front of a steamroller". When it goes well you get a little benefit, but when it goes bad you get crushed.
Answer: Some of the usual suspects here: If you have a history of running up balances on credit cards, opening new ones fairly constantly seems like a poor idea. If you are also not a fairly meticulous records-keeper, a constant changing of accounts is a lot of work -- especially if you have a large number of accounts charging your card every month (subscription services like Netflix, cable bill, phone bill, etc.)
If you have a long-standing relationship with a financial institution, you may not want to be cancelling an account with them. There is also probably some hit to your credit score in terms of more frequent inquiries and checks and shorter than usual age of accounts.
But, all that said, a fair number of people do activities like this. There is a subreddit dedicated to discussions on it, see reddit.com/r/churning.
My personal opinion is that it is not worth the effort -- mostly because I almost always pay my balance in full each month and get a pretty decent set of rewards as is -- but to each their own.
Answer: I think this depends a bit on what you meant by someone "properly using" the cards during that time frame.
All cards essentially give you a grace period during which you pay no interest, regardless of the APR on the card, as long as you pay the balance off in full before the grace period ends. So, if you are going to "properly use those cards" and pay them off in full every month anyways, you have nothing to gain by having a zero percent promo rate, since you're getting zero percent anyways by paying it off before the grace period ends.
But, if what you meant was that you will carry a running balance and transfer it from card to card, that will likely not work after the first few transfers. When a credit card issuer is asked to do a balance transfer during the process of opening a new account, they typically perform some validation on where that balance is coming from. If they suspect that you're trying to game the system by constantly shifting balances from card to card, they may reject your transfer (and even refuse to give you a card).
As a third potential plan, if you're intending to use the cards for single major purchases and then treat them like a zero percent loan for the duration of the promo, it may be an OK idea depending on the size and scope of the purchase. If you're talking about a $500 dishwasher - the kind of purchase made through a "normal" retail outlet (who isn't going to get upset over losing interchange) and it's a small enough amount that you're 100% positive you can pay it off during the promo - it's not a bad idea. You just really need to be sure you understand the terms of the promo and you're completely confident you can pay it off before the period runs out.
But if you're talking about a $20,000 car, it's probably not a good idea. Dealers or other merchants selling large items may refuse cards for large payments (they lose a significant portion to interchange) and you have a huge risk of suddenly being hit with a heap of interest if something happens and you're unable to pay it off prior to the promo being over.
Finally, it's important to note that many "promos" aren't as good as they look, when you read the fine print. Few cards that offer zero percent rates for any significant length of time, or zero interest on transfers during a promo period, are actually "free." They may have annual membership costs, or other fees or methods of extracting income from you. And the banks will be very aggressive at those sources of income on those cards.
Comment: No balance transfers; as it stated, I'd leave with no balance. The purpose would be to basically use a 0% credit card like a 12 month long free loan for single major purchases, initiated at the beginning of the card.
Comment: I wrote a comment to respond, but I'm going to edit it into my answer based on your comment.


Adding same description to many files in Lightroom

Question: How do I add the same caption/description to multiple files using Lightroom?
I tried to select all the photos and edit the caption in the Metadata panel but it only applies the changes on a single image.
Answer: If you want to add/change meta information to more than one photo (when more than one is selected) you should select "Selected Photos" in Library module, specific meta window:

Unfortunately this setting is not stored in the library data so you should set it every time you start new instance of Lightroom (even with existing library)


Triggers executed multiple times for simple field update in process builder

Question: Our org has recently got many transactions with 101-soql error and apex CPU time error (and many other performance problems). On analysing we found that its basically because of process flows. We found some queries running upto 24 times.
Here is what I analysed:
Created a new dev org and implemented process builder on Account to update its Description = Name + ' Some description'. Implemented Account trigger on before/after update and debugged only some info - no logic in trigger.

Lets consider 1 trigger cycle is before update and after update together.

Observed following:

When Recursion - Allow process to evaluate a record multiple times in a single transaction? - YES

On Account update, there were 7 trigger cycles.

When Recursion - Allow process to evaluate a record multiple times in a single transaction? - NO

On Account update, there were 2 trigger cycles.
Now, this does'nt make sense. If I simply want to update description field, why would trigger get invoked 2/7 times? For example, if I do the same thing in trigger code (in before trigger), only 1 cycle is run.
Salesforce keeps highlighting go for declarative approach if available or else go for code. And so many companies implement process builders for simple to medium complex tasks like above. But this appears to be hugely affecting performace when apex triggers are there.
Does this mean when triggers are there, we should never implement process builder? Or
For what use cases can we implement processes without hampering performance?
----- added -------
According to apex steps of execution (https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm), processes run after before and after triggers. So it makes sense that trigger cycle has run 2 times when Recursion - Allow process to evaluate a record multiple times in a single transaction? - NO. When Recursion is enabled, it should ideally run for only 1 more time (3 times total), but why 7 times.
Answer: In the process builder, have one more criteria to the node of the process builder, such as update description only if it is null or if the field has changed. Having these kind of checks prevents multiple updates in one transaction.
Comment: @salesforce-sas, did this actually resolve your issue? Was it side-effect executions due to not protecting the update with a condition?