How would I go about solving for $x$?

Question: How would I approach this problem? (Solving for $x$)
$$x^{x}=e^{\Omega}$$
I tried using logarithms and rearranging, but it didn't seem to help:
$$x=e^{\frac{\Omega}{x}}$$
$$\ln(x)=\frac{\Omega}{x}$$
$$x\cdot\ln(x)=\Omega$$
Where do I go from here? Is this a bad approach?
Comment: Do you know about the Lambert $W$ function ? https://en.wikipedia.org/wiki/Lambert_W_function
Comment: This does not look like it has a closed form. You could try using the Lambert-W function to get an answer, or use something like Newtons method to get an approximation
Answer: The Lambert W function comes in handy, just set the equation up so that $x=W(x)e^{W(x)}$ can be used.
$$x^x=e^{\Omega}$$
$$\Rightarrow x=e^{\frac{\Omega}{x}}$$
$$\Rightarrow \Omega=\frac{\Omega}{x}\cdot e^{\frac{\Omega}{x}}$$
Now you can apply the Lambert W function:
$$W(\Omega)=\frac{\Omega}{x}$$
$$\Rightarrow x=\frac{\Omega}{W(\Omega)}$$
This can still be simplified by rearranging $x=W(x)e^{W(x)}\Rightarrow e^{W(x)}=\frac{x}{W(x)}$.
$$\boxed{x=e^{W(\Omega)}\approx1.47058}$$
Comment: How do you get a numerical value out of the final expression? Are you assuming $\Omega$ represents a particular constant, like $W(1)$?
Comment: No, but you are.
Comment: Then how do you justify $e^{W(\Omega)}\approx1.47058$?

How would I go about solving for $x$?


The opposite of "technical skills"

Question: If technical skills include things like familiarity with certain software packages, programming languages, CAD, etc., what is a general term for the other kind of skills, such as fluency in foreign languages, media relations, internet marketing, etc.?  I wanted to suggest "soft skills" for a friend's resume, but that doesn't seem to fit, according to the dictionary ("personal attributes that enable someone to interact effectively and harmoniously with other people").  What term can I use for the section of the resume where skills such as foreign languages, media relations, internet marketing, etc., are listed?
Comment: The ones you list are all communication skills.... and rather specialized skills at that.  I might suggest "Specialized Communication Skills" or "Advanced communication skills".  At some point (very quickly so) this becomes more an exercise in best "resume' writing" practices more than English ... and choices like how many subheadings are ideal etc.
Comment: Have you tried [workplace.se]?
Comment: I definitely agree with the statement about it being really more about resume skills. There are so many good options. The ones Tom suggested are just as good as the ones I suggested.
Comment: You can list foreign languages in an **Other** section.  Sometimes it makes sense to make a section called **Education and Other** and list languages there, after education.  Normally it's better to emphasize skills like *media relations*, *Internet marketing*, etc. in **Work Experience** - the bullets under the various jobs should include this kind of work.  Employers will accept *technical skills* in a separate section but they want to see the non-technical, non-language skills you mention coming through in the work experience.  They won't just accept a person claiming to have them.
Comment: Related abilities.
Answer: Soft skills. More details on Wikipedia:

"Soft skills are a combination of people skills, social skills, communication skills, character traits, attitudes, career attributes, social intelligence and emotional intelligence quotients among others that enable people to navigate their environment, work well with others, perform well, and achieve their goals with complementing hard skills."
Comment: Any reason why you voted -1? Just voting -1 without a reason is itself worthy of -1.
Answer: Language/Media Skills, Other Skills, Auxiliary Skills, Additional Skills, Supplementary Skills.
And, yes, you are correct, do not use "soft skills". That relates more to a persons ability to interact and socialize.
EDIT: Adding a link
"Additional Skills specifically listed under the Formatting Section of the page

Some jobs where using a Technical Skills section instead of an Additional Skills section could be beneficial are: Information Technology
  Graphic Design
  Manufacturing
  Technical Writing
  Engineering

EDIT I have 25 years of resume writing experience and I'm a software manager who has worked in the technical field for that amount of time as well. I have written hundreds of resumes for friends, myself, and other colleagues over the years. There are literally tons of other good examples too. Tom22 mentioned some great ones in his comments. These options are good, but it's definitely best if you can keep sections focused on specific skill categories (i.e. Language/Media Skills or Specialized Communication Skills).
Answer: Non-technical skills would simply be the exact opposite, and it has countless usage examples on Google; and a lot of the search results lead to resume writing "tips and tricks" websites.
For further help on resume writing, do check out the The Workplace and see what's on topic there. Please see if your question has already been asked before asking new.

The opposite of "technical skills"


How do I enter the backticks for contexts as inline code?

Question: Contexts have backticks, which conflict with the normal way to enter inline code.  How do I enter an inline context, since the initial approach:
`System``

doesn't work ( `System`` ).
Answer: This is so common in Mathematica that I suggest this should be specially included in the editor help or the FAQ on this site.  Let me list the most common usages:

Contexts, for example, Global`.
Markdown: ``Global` `` (note the space before the closing ``)
Precision of numbers, for example, 2.3`40.
Markdown: ``2.3`40``
Accuracy of numbers, for example, 2.3``3.
Markdown: ```2.3``3```
StringForm expressions, for example, StringForm["x = ``", x]
Markdown: ```StringForm["x = ``", x]```
And here the question comes up, how to include a double backtick (``) in inline code?  Generally, if you want to include n consecutive backticks, surround the inline code span with n+1 backticks.  For this reason, if the inline code has a backtick at the very end, you need to put a space after it.  Don't worry, this space will be stripped when the MarkDown is rendered.
Answer: You can also use the HTML markup .... This has the advantage that you can bold and italicise inside it, like so:
f[x_*Pattern*]:= 50.`**watch out**

Results in
f[x_Pattern]:= 50.` watch out
And as you can see, you don't need to count backticks.
Answer: According to this MSO question, you can use double backticks set off by spaces to surround a code snippet:
`` System` ``

produces System`.
Answer: Backslashes before backticks seem to work too. For example,
`?Global\`*`

in the comment below:
Comment: `?Global\`*` It works in comments, but not in answers. Hmm...


tmux randomly changes cursor position

Question: Sometimes in tmux, when I have split my window and have a command which spans more than 1 line I experience problems with editing the command. Specifically, if I move mu cursor using the arrow keys to some position, and then start editing, by pressing backspace or by adding some text, the cursor randomly jumps to another position and inserts the edits there.
Other times, when I am inside a python terminal and I have a single line command, when I press the home key and try to edit it, the same problem happens. If I instead move my cursor using only the arrow keys, everything is fine.
Both of the above problems happen at random and are not consistent. Also I have experienced them when my window is split in several panes.
I am on Slackware 14.2 and tmux version is 2.1. Here are the relevant parts of my ~/.tmux.conf and ~/.bashrc:
~/.bashrc:
LGreen='\e[1;92m'      # Light Green
NC="\e[m"              # Color Reset
export PS1="\[${LGreen}\]\u@\h: \w \\$ \[${NC}\]"
export PS2='> '
export LANG=en_US.utf8
alias tmux='tmux -2'

~/.tmux.conf:
set -g default-terminal "xterm"

# Set the history scrollback limit.
set -g history-limit 20000

# Set the border color
set -g pane-active-border-fg colour38

# Set the window navigation commands
bind -n C-Left select-pane -L
bind -n C-Right select-pane -R
bind -n C-Up select-pane -U
bind -n C-Down select-pane -D

# Set the window splitting commands
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# Set the kill pane and kill session command
bind x killp
bind q kill-session

# Set shortcut to reload config on r
bind r source-file ~/.tmux.conf

# Enable the mouse
set -g mouse on

# Enable mouse scrolling
bind -T root WheelUpPane   if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"

# Set the tmux-better-mouse-mode extension options
set -g @scroll-in-moused-over-pane on
set -g @emulate-scroll-for-no-mouse-alternate-buffer on
set -g @scroll-speed-num-lines-per-scroll 5
#set -g @scroll-without-changing-pane on

# Load the tmux-better-mouse-mode extension
run-shell ~/.tmux_plugins/tmux-better-mouse-mode/scroll_copy_mode.tmux

Answer: Found the problem. As stated in the documentation, tmux requires that TERM is either screen or screen-256color. This fixed the issue.

tmux randomly changes cursor position


Is there any way to have a reset button in the SSRS parameter window?

Question: Is there any way to have a reset button in the SSRS parameter window?
Answer: Users can reset the parameters by clicking the "Refresh" button in the web browser.
Answer: No, or i haven't heard how to do it. But you can simulate it.
One way to do this is to create a textbox that has an action set to jump to itself. You can or jump to the default values, or jump to itself with some parameters already assigned.
Comment: But is it possible to have a reset action button?
Answer: Modify the ReportViewer.aspx...
I came across this article on how to do it but didn't try it as I was only looking into whether it can be done/has been done before and need confirmation before I can develop it:
https://github.com/MagnusJohansson/CustomSSRSReportViewer


Policies for Password Administators

Question: I am looking for policies/guidelines for businesses that have administrators for passwords for necessary websites so management can access administrator rights in case of emergency.
Comment: Please elaborate and give examples. Also, is this a real-world need you have or is it for academic study?
Comment: The examples point still stands.  For example ( :) ), are you starting from zero?  i.e. right now, is there a password policy?  Half of a password policy is its implementation, and moving from one password policy to a new one is part of the implementation of the new one.
Comment: It sounds like you're looking for a "password manager" or "password vault" product.  Although I'm not sure if you want product recommendations or just policy language you'd use to implement alongside a solution like this. You may want to do some research on these and update your comment if you need more specific guidance.
Comment: Just like this website.  It required a password.  I am the only one that has it.  I am researching for upper management.  I am looking for a policy for securely housing passwords to websites that are for mutual company purposes. I also administer a website for all employees to give them access to a City Agency where status of our projects and input is necessary.  So if I don't ever come back to work after today, the company would not be able to add or remove access for the employees.  So I am looking for guidelines to work from for a policy to collect these types of passwords.
Comment: **Many vendors provide use cases, whitepapers, and feature lists.**  Most (All?) business pwd managers provide some form of user (person/employee) account, shared (project, client, limited subscription, site) account, roles (pwd admin, project admin), privs (read-only, checkout), and emergency ("break box/glass", death) access to at least shared accounts (e.g., 2 of 4 preselected people agree, possibly after waiting period &/or email/text notification).  Some products allow pwd admin access to every stored pwd except usermasterpwd; others have segregated "personal/home" vaults.
Answer: A personnal password should only be known by one person. This in the one of the holy rules is security, and not respecting it might cause more harm that help.
That being said, in one key action is only allowed to one single account, an old but still valid usage is that the account owner writes his credentials on a paper, puts it in a sealed enveloppe and deposits the enveloppe in his company safe. That way, if for any reason, the company needs to use the account when the normal user is not available, it is enough to designate a new account owner, give him the enveloppe and ask him to immediately change the password and deposit the new one in an enveloppe in the safe.
Never underestimate the good old physical ways...
Answer: In business context, the expectation is that any website/application should allow multiple equal top-level users (admins) over all the content. Admins should be able to disable each other. Admins shouldn't share passwords (credentials).
The vault comes for these deficient apps which require a single top-level password. If it's a software implementation of vault, I would propose this practice:

The single password should not be shared between multiple people.
The vault should not show a password to humans.
When using the vaulted password, admin is required to go trough a vault software.
The vault software logs into destination app automatically and the first thing it does is it automatically changes the password to a new auto-generated one (this requires a quite complex vault-to-app integration).
The human then acts inside application.
The vault software displays the information "password checked-out by admin jsmith at 10:55" and disables the entry to app.
After a configured time or on human request (any admin), the vault automatically logs off the current session (or otherwise stops the current admin's interaction).
Optionally, the vault could log in and auto-generate a new password, say each month, even if nobody used it.

Unfortunately the vault integration is not possible for some uses like a Linux root password. In some critical cases, Linux requires the root password to be entered on the physical keyboard - it's quite impossible to integrate without revealing password to humans. So this requires substantially weaker procedures, like proposed by Serge.
Answer: Have a look at hasicorp's vault. It can be made to only unseal if a minimum amount of people enter their keys. When unsealed, you can manage your secrets, and seal it again afterwards. If you are more into having one person full access, put the important stuff in a plaintext file and encrypt it with RSA. Print the password-protected private key on paper and tell your boss the password. If you were to get hit by a toilet falling from space, the boss would input the private key on a computer, use the password you told him to remember to decrypt it, and then use the decrypted private key to decrypt your plaintext password file. Using your public key you can update the file safely at any time.

Policies for Password Administators


What happens if you run out of CQ points to pay test fees?

Question: In Splatoon 2 Octo Expansion, it so far costs at least 100 CQ points to enter a level with 3 lives. You gain some throughout the level, and get a bonus at the end, but what happens if you completely run out? Is there any way to farm enough to get back into the game? Or is this a game over?
Answer: Pearl takes some Money from her Dad. Marina transforms it into CQ points. You get 3000 Ponts and you can continue. But you have to pay it back later.
Comment: If you continue to run out of CQ Points, can you continuously borrow money and rack up a huge debt?


Is MPPT used with very small panels

Question: Say for example an inexpensive solar calculator or other such similar device with what appears to be lets say a single 2.4V 6uA (microwatt) panel?  Is an MPPT used to get the most panel rather than using the panel directly?  Is there another solution for this class of panel?
Comment: was hoping someone would know off hand what alternatives land in between panel diode cap and load vs panel mppt cap and load for this class of product.  Clearly I need to buy some different mcus as the one I have runs fine with a dozen or two uA, but has a startup requirement that one panel cannot deliver (unless you charge the cap up before applying the load).
Answer: When you're talking about "inexpensive" consumer devices like solar powered clocks and calendars the answer (in general) is no.
However, there is a new generation of energy harvesting devices that are very high efficiency designed to extract much more of the energy from devices like a small solar panel.
You can see an example of such a device here:  TI Energy Harvesting Device
Comment: Yeah, was thinking along those lines, the almost free calculators, some are if it is trade show swag.  At that level is it something like a panel a diode and a super cap perhaps?  or something more complicated...thanks for the link...
Answer: You have to balance:

Price of the MPPT circuitry (which is not that cheap) versus...
Price of a larger solar cell

For a solar calculator, which draws very little power, the extra solar cell area required is likely much cheaper than a smart MPPT circuit.
For other devices which use energy harvesting, like a dynamo-crank flashlight, this is also likely... because you're going to buy the whole thing for $2 on aliexpress or in a supermarket, which will purchase it at a cost of about $1 from china. And their manufacturing cost does not change if you got to crank it a little harder because it is inefficient.
Now if you have $200 worth of solar panels, then it is extremely likely that the addition of a MPPT circuit worth a few $ in quantity will be highly profitable.
Comment: No prob, it's all about price/performance! These calculators draw µA so it's just a tiny panel and a cap, not a supercap mind you, for such a low current a cheapo cap of a few hundred µF is plenty... you can disassemble one of these calculators if you have on lying around.
Comment: I have a uamp mcu now, problem is with this mcu at least the startup power is too much for the panel, once up and running then it works just fine, maybe its only a problem with the mcu I am using...and this is an mcu that came out in the last year or two, claimed lowest power on the market (seems like everyone bests the last one every year or so many months these days).
Comment: note, these are all good answers, could only pick one as when I read my question cost is the correct answer when I was really curious more of the solution, thanks for the reply!
Answer: To add to @peufeu's answer in addition to cost issues there is the fact that MPPT can only improve the efficiency by a limited amount - say 10-20% and it takes power to run.  If it takes more power to run than the additional power it provides there will be a net loss.
With high power arrays the overhead of the MPPT circuitry is acceptable, I doubt if you could run any MPPT circuitry on the 10uW or so you mention in the question.
Comment: Good to know, thanks.  With the power (or lack of) consumption of the current "lowest power" mcus for example, trying to understand still how decades ago, calculators, clocks, etc were able to run.  Some had a hole in the case which could imply it was charging a cap when not in use, but most do not.  Custom chips, yes I get that as being part of the solution.
Comment: I assume there is more than the panel, blocking diode, cap for storage and the load.
Comment: note, these are all good answers, could only pick one as when I read my question cost is the correct answer when I was really curious more of the solution, thanks for the reply!

Is MPPT used with very small panels


Measure Line while editing in Edit Mode (Workaround?)

Question: It's unfortunate that QGIS does not allow the use of the Measure Line tool while activiely editing something with Add feature or Vertex tool. As soon as one of the latter tools are switched on the measured line disappears along with the measure window. In some cases however it is necessary to place a point or a line in a certain distance off another object. Therefore it would be handy to see the measured line while editing. Is there a workaround maybe or an alternative to the standard Measure Line tool or maybe any configuration which allows the Measure Line tool to stay open during editing?
Comment: I didn't believe you until I tested it.  It wasn't like that in QGIS 2 was it?  I seem to remember the lines remained visible until you closed the Measure window.
Answer: When creating line objects the Advanced Digitizing window shows you distance (d), angle (a), x coordinate and y coordinate.
To use it, switch on both the Advanced Digitizing panel and toolbar and click the icon for 'Enable advanced digitizing tools' when you are editing
Comment: Interesting Panel which I haven't used before. To make it a useful alternative to the measure line tool, can I configure the advanced digitizing to:

- Angle indicator to have zero mark in North direction (not horizontal)
- Distance given in Nautical Miles
- snapping to common angles less than 5°


step down 6 V 3AMP to 5 V 3AMP

Question: I have this old power adapter with a rating of 6V 2.4 Amp. I used a voltage divider circuit made of two 1000 ohm and one 10000 ohm resistors. when i measured the voltage across the 10k resistance, I got an exact drop of 1 volt, i.e., it was reading 5 V.
i connected the ends to the micro USB and connected to my windows phone.
The phone was not charging. When i read the voltage with charger, the voltage was only 2.5 V instead of 5 V.
What just happened here? the adapter was a 6 V adapter that was used for a router, why did stepping down voltage result in drop in voltage on connecting load.
thanks for helping me out. How would i get a 5V to charge my cell phone from this adapter?
Comment: No, a 7805 needs more than 1 V of overhead, it won't work with 6 V input.
Comment: 1: https://hackingmajenkoblog.wordpress.com/2016/08/30/why-you-cant-use-resistors-as-a-voltage-regulator/ 2: Get a 5V UBEC. Alternatively do it right and use the proper charger. (although I'd class a windows phone as a disposable brick)
Comment: Your resistors are far too high in value to deliver the current you require.
Comment: Sorry, I wanted to add.. since my 6V is regulated, do i simply use the L7805 with the 6V adapter and not use any capacitors? will the 2.4 AMP maintain in the output?
Answer: The basic assumption of a resistor divider is that the current flowing through both resistors is the same. When the current is not the same, the resistor divider equation does not work.
6V is pretty close to 5V. You almost don't need a regulator. Instead of a normal resistive divider, make a divider with a diode "on top" and a 1k resistor "on the bottom." An ordinary silicon diode. A nice big one that can dissipate lots of heat without a separate heatsink. Look for something rated at 10A or something.

simulate this circuit – Schematic created using CircuitLab
Comment: thank you. will the current output be the same in this case? i am passing 2 amp, will i get 2 amp from this circuit?
Comment: You should be able to get 2A if you follow my advice on choosing a diode. The only problem is that the voltage might be a bit too high under no-load conditions. I guess you can try it, but measure with a volt meter before connecting anything expensive.

step down 6 V 3AMP to 5 V 3AMP


How to calculate change in pressure from LN2 state change (constant volume)

Question: I am trying to calculate the increase in pressure caused by liquid nitrogen at the moment it changes from liquid to vapor within a closed, constant volume at atmospheric pressure. Do I need to include the heat of vaporization? How can this be done?
Comment: What exactly are the initial conditions? Is the volume 100% full of liquid N2 or is there some liquid N2 and some gas and is the gas all N2 or a mixture of N2 and something else? Whatever, nothing is going to change unless you supply some heat to vaporize more of the N2.
Comment: Volume is 100% full. Gas is all LN2. Heat is supplied to vaporize the LN2.
Comment: Welcome to engineering stack exchange!  Kind of inconsistent here - either you're at closed volume, or you're at atmospheric pressure.  Note, it's not an easy situation.
Answer: Assume ideal gas conditions in a container at constant $T_o, V_o$. The change in pressure by adding an amount $\Delta n$ of gas is $\Delta p = \Delta n R T_o / V_o$.
Comment: For delta n, would I use the density of LN2 as liquid for the initial condition, and density of LN2 as gas for the final?
Comment: No. You would use the amount of gas that evaporates. Do you know how to get that amount, or is that also an unknown?
Answer: You have some assumptions, so it's important to clarify the mechanism you are describing.  I'll be assuming that you are describing a container filled with LN2 at the boiling point of LN2 under 1 atmosphere of pressure.  Then this container is then left out in a room temperature environment while sealed off.  The end result is - your container explodes.  Proving it is complicated, but you wind up at pressures that far exceed most container's withholding pressure.  While I know some thermodynamics, it's not my strongest area, so this may not be technically correct, but it gets a good ballpark estimate.
We begin by considering the phase diagram of nitrogen:

Link here and here because images are broken as I write this.
We would begin our journey at point "g" on the ST diagram.  The two phases can be considered by considering a fraction x at point "h" on the diagram, at gas phase.  We put a permeable barrier between the two phases and begin a set amount of heat flow into the system.
As the internal energy increases, some portion at "g" crosses the barrier into "h".  The result increases in pressure and entropy.  As such, we move further up the dark red lines, since each phase can cross the barrier.  After enough energy, the system reaches the critical point, at top of the dark red peak.  I'm not sure how to write the equations to calculate how much energy or what the time it would take, but once we reach this point, we've reached supercritical nitrogen between 20-50 bars.  This difficulty is resolved easily in practical engineering via the use of a steam drum, a piece of process equipment that safely separates the phases while preventing bumping.  However, advanced techniques today allow the resolution of multi-phase flow and multi-phase heat transfer.
From this point, the process would follow an isochoric process.  While hard to describe using a TS diagram, a similar diagram for steam will confirm that isochoric processes gain relatively little entropy compared to the pressure they gain with a rise in temperature.  Doubling the temperature nearly has a 10-fold increase in pressure.  With such a significant rise, the only conclusion I can arrive at is that you would be at a pressure that would be best measured in units of GigaPascals (GPa).  In short, this would most likely destroy your container.


Google Analytics not displaying goal conversion

Question:
I have created a goal  when i click verify it shows conversion rate, but Analytics shows me 0% conversions for the past 7 days.
Why is it so..?
Comment: If you just created it, there are no metrics yet. It can take some time.
Answer: The predicted goal conversion rate (ie. 0.78% in your case) is an estimate of the rate of conversion if your configuration were to be applied to past data, which of course it will not do. Also, data processing of goal conversion (and all GA) data takes some time, usually up to 24 hours, so your reports will still show 0 until the data has been processed.


Nvidia gpu not selected on ubuntu 20.04

Question: Installed using software update ->additional drivers ->using nvidia driver metapackage from driver-460 (prop,tested).
On nvidia x server settings i see  prime profiles -> nvidia performance mode checked.
On settings-> about i see my integrated gpu not my nvidia graphics card.
If i run sudo nvidia-settings the output is
ERROR: NVIDIA driver is not loaded
ERROR: Unable to load info from any available system
(nvidia-settings:2417): GLib-GObject-CRITICAL **: 16:13:57.998: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 16:13:58.001: PRIME: Requires offloading
** Message: 16:13:58.001: PRIME: is it supported? yes
** Message: 16:13:58.027: PRIME: Usage: /usr/bin/prime-select nvidia|intel|on-demand|query
** Message: 16:13:58.027: PRIME: on-demand mode: "1"
** Message: 16:13:58.027: PRIME: is "on-demand" mode supported? yes
HELP PLEASE !
EDIT: mokutil --sb-state says that secured boot is enabled but on the BIOS is Disabled(???) .
Answer: Fixed by disabling secure boot from the terminal following this guide :
METHOD 2
https://wiki.ubuntu.com/UEFI/SecureBoot/DKMS

Nvidia gpu not selected on ubuntu 20.04


Signature Mint on Solana for update metadata

Question: So hi i have a question so im currently trying to figure out if lets say someone minted an NFT from a candy machine and once the mint the NFT it needs to update the metadata since the image is generated lets say from an AI. But when in the frontend how would i verify if the minted NFT that the metadata we are trying to update does belongs to that person ?. Since what i have in mind was using a signature verification but how would the flow be in this case.
Answer: To ensure that the owner of a particular NFT is the one interacting with your frontend you need to complete these steps:

Learn their public key
Assert that the owner of the NFT matches that public key
Ask the user to sign a unique message with their private key
Verify their signature using the message and the public key

Steps 3–4 are what passes for 'authentication' in crypto. Protocols such as SIWS (Sign In With Solana) can be used to make authentication ergonomic for both developers and users.


How to prove an inequality using the Mean value theorem

Question: I've been trying to prove that $\frac{b-a}{1+b}<\ln(\frac{1+b}{1+a})<\frac{b-a}{1+a}$ using the Mean value theorem. What I've tried is setting $f(x)=\ln x$ and using the Mean value theorem on the interval  $[1,\frac{1+b}{1+a}]$. I managed to prove that $\ln(\frac{1+b}{1+a})<\frac{b-a}{1+a}$ but not the other part, only that $\frac{1+a}{1+b}<\ln(\frac{1+b}{1+a})$. any help?
p.s: sorry if I have some mistakes in my terminology or so on, I'm not totally fluent in english.
Comment: Use MVT in the form $\frac{\ln (1+b) - \ln (1+a)}{(1+b) - (1+a)}$ ..
Comment: The two inequalities are practically identical; once you've proved one, you've proved the other.  See my answer below for a simple explanation of this point. ${}\qquad{}$
Answer: You apply the mean value theorem to the function $f : x  \mapsto \ln (1+x)$ on the interval $[a,b]$. Note that $f$ fulfills the hypothesis of the theorem : being continuous on $[a,b]$ and differentiable on $]a,b[$.
On this interval the function $f'$ is bounded below by $\frac{1}{1+b}$ and above by $\frac{1}{1+a}$, so that $$\frac{1}{1+b} \leq \frac{f(b)-f(a)}{b-a} \leq \frac{1}{1+a}.$$ Replacing $f$ with its explicit definition and $f'$ by what I let you calculate, and "multiplying the inequalities" by $b-a$ gives you the wanted result.
Answer: Suppose you know $\displaystyle \ln\left(\frac{1+b}{1+a}\right)<\frac{b-a}{1+a}$.
If you rename $a$ and $b$ so that the number that was called $b$ is now called $a$ and vice-versa, then this says:
$$
\ln\left(\frac{1+a}{1+b}\right)<\frac{a-b}{1+b}.
$$
Multiplying both sides by $-1$ necessitates changing $\text{"}{<}\text{''}$ to $\text{"}{>}\text{''}$ and we get
$$
-\ln\left(\frac{1+a}{1+b}\right)>\frac{b-a}{1+b}.
$$
But $-\log\dfrac p q = \log\dfrac q p$, so that is the same as
$$
\ln\left(\frac{1+b}{1+a}\right)>\frac{b-a}{1+b}.
$$
Answer: We begin from the integral definition of the logarithm function
$$\log x=\int_1^x \frac{1}{u}\,du\tag 1$$
for $x>0$.
Note that $1/x$ is monotonically decreasing on $[1,x]$ for $x\ge 1$ and monotonically increasing on $[x,1]$ for $x\le 1$. Then, from $(1)$ and the Mean Value Theorem for Integrals, along with the Intermediate Value Theorem, we obtain the inequalities
$$\frac{x-1}{x}\le \log x\le x-1 \tag 2$$
Letting $x=(1+b)/(1+a)$ in $(2)$ reveals
$$\frac{b-a}{1+b}\le \log \left(\frac{1+b}{1+a}\right)\le \frac{b-a}{1+a}$$
thereby establishing the coveted inequality!
Comment: Please let me know how I can improve my answer.  I really want to give you the best answer I can. - Mark
Comment: Please let me know how I can improve my answer.  I really want to give you the best answer I can. - Mark


Question about reflecting telescope

Question: In a reflecting telescopes, light is reflected from a primary concave mirror to a secondary mirror. But the secondary mirror is never placed at the focal point of the primary mirror. Why is that?
What would happened if it is?
Is it because the image would be flipped upside down?
Comment: Have you given any thought to the role of the secondary mirror? It not only folds the path of the rays, it does something else too. You want to do imaging at the focal point - if you put a mirror there, how do you see your image?
Comment: Part of the rationale for the secondary mirror is to lengthen the effective focal length to mitigate optical aberrations. An interesting optics problem is to figure out what kind of mirror to use a secondary mirror. As @Floris mentioned, you do imaging at the focal point.
Answer:
In a reflecting telescope... the secondary mirror is never placed at the focal point of the primary mirror. Why is that?

In a telescope (or microscope... any visual optical system),
the image will be seen clearly and in focus.  So, if that image is
at or near a mirror surface, you'll see, clearly and in focus, every
speck of dust that is on the mirror.
Similarly, the bulk of glass lenses (glass might contain small
flaws, bubbles, inclusions) is commonly not the site of any image.
The exceptions are a reticle (a scale or pattern intended for
size/angle/shape comparison), or an image-boundary defining
'stop' (usually a hole in a blackened metal disk).
Answer: The telescope is afocal system meaning that they both the objective and the eye piece share same focal point.
If you place the eye piece at the focus of the objective you will pretty much have just objective lens. It is still a magnifier but one lens.
Answer: The secondary mirror is used to get the light out of the tube and into the focuser. The light cone produced by the primary mirror continues to expand after it converges at the focal point. If the secondary mirror is placed there the light cone will have expanded too wide by the time it exits the tube and enters the focuser tube. The mirror's location is chosen by determining the optimal diameter of the light cone as it exits the tube. You want the focal point to be outside of the tube just shy of an adjustable eyepiece. Of course there are exceptions but as a general rule this is how it works on most Newtonian reflectors.
Comment: You should mention earlier that this is for Newtonian reflectors, doesn't apply to e.g. Cassegtain designs.
Comment: @KyleOman Imagine a cassegrain. Place the primary's focal point onto the secondary. A problem is now created. The now expanding light  cone will be too large to exit through the primary.

Question about reflecting telescope


What are the usability test cases for given scenario?

Question: I have three fields: username, password and confirm password. Next to those fields there is a submit button.

Explain all possible usability test cases I can make out of it.
If i got an error even after entering correct values in all fields
and submit the form, what could be the possible reason?
Comment: This question is covered under what not to ask in the FAQ.
Comment: Why do you ask? Is this something you have to do or an interview question?
Answer: The scenario you are asking is a "classic" one. This question is one of the most frequent asked questions at QA interviews. Maybe this is why quite many articles, blogs are discussing about the possibilities and scenarios, like this, this or this.
I think, for your first question you can give yourself the answer by reading those pages. Just a suggestion: there always is another test case which can be run.
As for the second question, I think, that is the scenario which is named bug or failure. There is a "path" which can be found in any testing documentation: a failure or a bug is the result of an error. An error causes a fault which results a failure. Now, it seems that you found one. So the next step is to report the problem: report ID, date, version, name of the tester, environment specification, steps and the result vs expected result.
Comment: I am not sure this relates to usability.


SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

Question: I am currently new to robot framework.I am currently using latest window version of chrome and chromedriver which is 80 but when i try to run the test it gives the message "SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81" in pycharm but currently beta version of 81 is only available. I have tried uninstalling everthing and reinstalling it again but nothing works can anyone help me with this.Thank you!
Screenshots below:
Comment: In my case all I had to do was open my normal chrome browser, go to menu `Help -> About Google Chrome` and then it started updating chrome to the latest version (I had 81 and updated to 83).  Restarted chrome and when I reran the chromedriver it worked.
Comment: Same issue running E2E tests in selenium (Angular 8.2.x)

  (Driver info: chromedriver=81.0.4044.20 (f006328e39a9769596eb506c8841c3004b24e747-refs/branch-heads/4044@{#244}),platform=Windows NT 10.0.18362 x86_64)
    at Object.checkLegacyResponse (..\node_modules\selenium-webdriver\lib\error.js:546:15)
    at parseHttpResponse (..\node_modules\selenium-webdriver\lib\http.js:509:13)
    at ..\node_modules\selenium-webdriver\lib\http.js:441:30
    at processTicksAndRejections (internal/process/task_queues.js:94:5)
[08:54:47] E/launcher - Process exited with error code 100
Comment: Why don't you use version 81? It won't work with version 80.
Comment: only beta version available and it is not supporting it.
Comment: You need to simply update ChromeDriver. [I wrote an easy article on medium for it.](https://medium.com/@scottlydon18/how-to-update-your-chromedriver-5abdb3bd269a)
Comment: Does this answer your question? [Error message: "'chromedriver' executable needs to be available in the path"](https://stackoverflow.com/questions/29858752/error-message-chromedriver-executable-needs-to-be-available-in-the-path)
Answer: I solved these kinds of problems using the webdrive manager.
You can automatically use the correct chromedriver by using the webdrive-manager.
Install the webdrive-manager:
pip install webdriver-manager

Then use the driver in python as follows
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

This answer is taken from https://stackoverflow.com/a/52878725
Comment: Thanks, @dylanvanw, while  need to download the image everytime?
Comment: @EspoirMurhabazi you don't need to download the image every time. There is a caching  mechanism in in webdriver_manager so if possible it will use the correct driver on your machine that the webdriver_manager downloaded in a previous run.
Comment: Didn't work for me.  I think this won't work unless the path is correct.
Comment: For people on C#, the solution is the same, just use the [webdriver-manager Nuget package](https://github.com/rosolko/WebDriverManager.Net). See their Readme for usage.
Comment: @ScottyBlades the nice thing about this solution is that you do not have to provide a path yourself. What about this solution did not work for you?
Comment: In case you get this error: `ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_117.0.5938`. This solved the problem for me: https://stackoverflow.com/a/76851809/13641358
Comment: As of Feb 2024, Selenium (I have 4.17.2) automatically downloads the latest chromedriver to run on my windows machine. I don't need webdriver-manager.
Answer: I got the same message on MacOS:

"selenium.common.exceptions.SessionNotCreatedException: Message:
session not created: This version of ChromeDriver only supports Chrome
version 81"

Then I run this command, it's gone:
# Homebrew 3
brew upgrade chromedriver

# Homebrew < 3
brew cask upgrade chromedriver

Comment: For homebrew 3, just `brew upgrade chromedriver`.
Comment: This fixed the error in my Ruby framework as well :)
Answer: Do below steps :

Check the version of chrome browser.

download chromedriver of same version from https://sites.google.com/chromium.org/driver/home

Give correct path in the pycharm and run the code.
Comment: Worked fine to me. I found the correct path into the error message itself and replaced the file with the one I just downloaded. Hope this helps too
Comment: How do you find the correct path? Edit: I figured the path out. On mac, cmd+shift+g then /usr/local/bin
Answer: This error message...
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

...implies that the ChromeDriver v81 was unable to initiate/spawn a new Browsing Context i.e. Chrome Browser where is version is other then 81.0.

Your main issue is the incompatibility between the version of the binaries you are using as follows:

You mentioned about using chromedriver=80 and chrome=80 but somehow while your program execution ChromeDriver v 81.0 is used.
So, it's quite evident your have chromedriver=81.0 present within your system and is present within the system PATH variable which gets invoked while you:
driver = webdriver.Chrome()

Solution
There are two solutions:

Either you upgrade chrome to Chrome Version 81.0 level. (as per ChromeDriver v81.0 release notes)
Or you can override the default chromedriver v81.0 binary location with chromedriver v80.0 binary location as follows:
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
driver.get('http://google.com/')

Reference
You can find a couple of relevant discussions in:

How to work with a specific version of ChromeDriver while Chrome Browser gets updated automatically through Python selenium
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80
Ubuntu: selenium.common.exceptions: session not created: This version of ChromeDriver only supports Chrome version 79
Comment: Thanks for your response @debanjan. Also I tried with firefox browser by installing and adding path of geckodriver
Comment: How do we get the path?
Comment: `executable_path` seems to do nothing. My `/usr/local/bin/chromedriver --version` matches the exact version it's looking for and it still complains that the version doesn't match.
Answer: this works for me
brew cask upgrade chromedriver

Above is deprecated on MacOs, use:
brew install chromedriver (if not already installed)
brew upgrade chromedriver
Comment: Brew is by default available in MacOs. You have to install it in Windows
Answer: Go to your Chrome settings -> About Chrome -> Check version
and download chromedriver from Below according to your Chrome version
https://chromedriver.chromium.org/downloads
Answer:
First of all check latest Chrome version (This is your browser Chrome version) link

Download same version of Chrome Web Driver from this link

Do not download latest Chrome Web Driver if it does not match your Chrome Browser version.
Note: When I write this message, latest Chrome Browser version is 84 but latest Chrome Driver version is 85. I am using Chrome Driver version 84 so that Chrome Driver and Chrome Browser versions are the same.
Answer: The solution (at least on OSX) is:

Download the latest chromedriver file.
Unzip the downloaded file.
Search the location of the old chromedriver file on your computer and replace it with the new chromedriver file.
Right-click the chromedriver file and click open. Do not double click as Mac will not open it the proper way.
Once the file runs for the first time, you can close it and the update will have taken place.
Comment: @KonstantinVahrushev use command `which chromedriver`
Comment: how to find location of my chromedriver?
Comment: I opened a Finder instance and typed "chromedriver" in the search bar (make sure the search is set for "This Mac" and not "Recents"). With the results on sight, scroll down and when you see it just right click it and select "Show in Enclosing Folder". Replace at will.
Comment: @casper123 how to use command which chromedriver?
Comment: @Čamo if you're on mac, the default path for chromedriver is /usr/local/bin/chromedriver
Comment: I am on Ubuntu / Win 10 But the problem is solved.
Answer: Chrome version is updating everyday so you need use exact chromedriver version according chrome version
https://chromedriver.chromium.org/downloads in this website you can download chromedrivers
Answer: Your Chrome Driver version needs to match your Chrome Browser version

Get you Chrome Browser version, by typing chrome://version

enter image description here

Download Chrome Driver version that matches you Chrome Browser version, form this website
https://chromedriver.chromium.org/downloads
Comment: Don't duplicate answers please. It has already been answered can you read before posting.
Comment: I answered it on another page and thought I should probably add it here and I didn't bother to see answers here, will care next time
Answer: With Laravel (PHP) you can fix this with:
php artisan dusk:install

It will download and install the new driver.
Documentation: https://laravel.com/docs/9.x/dusk#installation
Answer: If you are getting this error when you run stuffs on automated cluster and you are downloading the stable version of the google chrome every time then you can use the below shell script to download the compatible version of the chrome driver dynamically every time even if the stable version of the chrome gets updated.
%sh
#downloading compatible chrome driver version
#getting the current chrome browser version
**chromeVersion=$(google-chrome --product-version)**
#getting the major version value from the full version
**chromeMajorVersion=${chromeVersion%%.*}**
# setting the base url for getting the release url for the chrome driver
**baseDriverLatestReleaseURL=https://chromedriver.storage.googleapis.com/LATEST_RELEASE_**
#creating the latest release driver url based on the major version of the chrome
**latestDriverReleaseURL=$baseDriverLatestReleaseURL$chromeMajorVersion**
**echo $latestDriverReleaseURL**
#file name of the file that gets downloaded which would contain the full version of the chrome driver to download
**latestDriverVersionFileName="LATEST_RELEASE_"$chromeMajorVersion**
#downloading the file that would contain the full release version compatible with the major release of the chrome browser version
**wget $latestDriverReleaseURL**
#reading the file to get the version of the chrome driver that we should download
**latestFullDriverVersion=$(cat $latestDriverVersionFileName)**
**echo $latestFullDriverVersion**
#creating the final URL by passing the compatible version of the chrome driver that we should download
**finalURL="https://chromedriver.storage.googleapis.com/"$latestFullDriverVersion"/chromedriver_linux64.zip"**
**echo $finalURL**
**wget $finalURL**

I was able to get the compatible version of chrome browser and chrome driver using the above approach when running scheduled job on the databricks environment and it worked like a charm without any issues.
Hope it helps others in one way or other.
Answer: You need to install webdriver manager. Make sure webdriver manager it is also updated.
If you use npm:
npm install -g webdriver-manager
webdriver-manager update
Comment: Very simple and worked solution. Thank you
Answer: What worked for me is this command:
pip install chromedriver-binary==your_chrome_version

This will uninstall the current chrome-driver that you have installed and will install a chrome-driver that matches your chrome version.
Answer: The case when your Chrome is in the middle of its update also causes this exception. In my case chromedriver was already updated, while the chrome itself was v81 instead of v83.
Answer: You can also download the correct chromedriver version from:
https://chromedriver.chromium.org/downloads
https://chromedriver.storage.googleapis.com/index.html?path=81.0.4044.138/
Answer: I too had a similar problem. And I've got a solution .. Download the matching chromedriver, and place the chromedriver under the /usr/local/bin path. It works.
Answer: The way I solved this issue was quite simple, I checked my chrome version and I had an older chromedriver in my PATH variable, so I downloaded the chromedriver version that matched my browser and replaced the old one in the PATH, so when the webdriver module looked for a chromedriver in my PATH, it would find the matching version
Answer: I had already been running a local server at the same port the session wanted to run on, and this caused the error. Shutting down that local server fixed this for me.
Answer: There are driver-specific NuGet packages, that copy the driver binaries to your bin folder. For example in my .NET Core project I use the latest stable NuGet from here https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/.
Basically the NuGet contains the chromedriver.exe and copies it every time to your assembly folder (\bin\Debug\netcoreapp3.1 in my case). This is the line I have in my project:
"<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="*" />"

You can add it using:
dotnet add package Selenium.WebDriver.ChromeDriver --version *

When I first added this reference, I saw a warning for this particular package, but it disappeared after I closed and reopened my Visual Studio 2019.
The star means the latest (highest number) stable package will be used as explained here.
Of course you can install the latest version manually (without the wildcard, but selecting a specific version), and then on each 2 major Chrome versions to update the NuGet package reference so that is matches your Chrome version. (87 chromedriver works with 87 and 88 Chrome, but not with 89).
Then the driver is instantiated with this lines:
var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

This approach removes the need to specify concrete path to chromedriver.exe that will have to be updated.
Reference:
https://www.automatetheplanet.com/webdriver-net50/
Answer: If you're getting this error in Visual Studio 2019 and using Selenium.WebDriver.ChromeDriver by jsakamoto, check the version you're referencing in the packages.config file.
  <package id="Selenium.WebDriver.ChromeDriver" version="89.0.4389.2300" targetFramework="net45" />

Update your NuGet package to the appropriate version and resolve the issue.
Answer: I resolved this issue by simply running Firefox (geckodriver) instead of Chrome:
rsDriver(browser = "firefox")

Comment: As a Firefox user did not know this was possible, great alternative solution.
Answer: I got this error after a recent chrome upgrade, and also I recently updated my Mac to Big Sur. Seems cask is not part of brew command, need to use it separately.
brew install --cask chromedriver

Answer: You can handle this exception
from selenium.common.exceptions import SessionNotCreatedException

Add this function
def update_chrome():
try:
    print("Updating chrome driver")
    download_chrome = "wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
    unpack_chrome = "sudo dpkg -i google-chrome-stable_current_amd64.deb"
    install_chrome = "sudo apt-get -f install"

    file_path = os.path.join(os.environ['HOME'], "google-chrome-stable_current_amd64.deb")
    if os.path.isfile(file_path):
        print("{} found\nremoving {}".format(file_path, file_path))
        os.remove(file_path)
    else:
        print("File does not exist {}".format(file_path))

    old_chrome_ver = os.popen("/usr/bin/google-chrome --version").read().strip('Google Chrome ').strip().split(".")[0]
    print("Current Chrome version: {}".format(old_chrome_ver))

    os.system(command=download_chrome)
    sleep(2)
    os.system(command=unpack_chrome)
    sleep(5)
    os.system(command=install_chrome)

    crnt_chrome_ver = os.popen("/usr/bin/google-chrome --version").read().strip('Google Chrome ').strip().split(".")[0]
    print("Current Chrome version: {}".format(crnt_chrome_ver))

    if crnt_chrome_ver == old_chrome_ver:
        print("Chrome version is same as before")
    elif crnt_chrome_ver > old_chrome_ver:
        print("Chrome version is updated from {} to {}".format(old_chrome_ver, crnt_chrome_ver))
    return True

except Exception as e:
    print("Error while updating chrome: {}".format(e))
    return False

then call this function
try:
    # Your code here
except SessionNotCreatedException as snce:
    print("Session not created: {}".format(snce))
    chrome_update_result = False
    if recurrences == 0:
        chrome_update_result = update_chrome()
    if chrome_update_result:
        recurrences += 1
        print("Chrome updated successfully")
        erisapedia_bot(state, download_dir)
        return True
    else:
        print("Chrome update failed")
        return False

Answer: For Laravel Dusk
For anyone running into this issue on Laravel Dusk for Chrome/Chromium versions after 114, this is likely caused by Google changing the upstream URLs.
Specifically for Laravel Dusk, this seems to have been fixed in this Dusk issue here, so theoretically all that's needed to fix this properly is a composer require laravel/dusk --with-all-dependencies, but at least in my case, this would update a lot of dependencies and seems highly likely to break my application. I've asked on that issue what the best course of action is for a legacy Laravel application (Laravel 8 in my case), but in the meantime: downgrading both the Chrome/Chromium browser and the Chrome driver to v114 should be a good enough workaround.
This is easier said than done and it's taken me over a day to figure out how to do it successfully on GitHub Actions, but adding the following to your workflow file should be all you need to get your builds running again:
  - name: Downgrade Chrome browser to v114
    uses: browser-actions/setup-chrome@v1
    with:
      chrome-version: 1134343 # Last commit number for Chrome v114
    id: setup-chrome
  - run: sudo ln -fs ${{ steps.setup-chrome.outputs.chrome-path }} /usr/bin/google-chrome
  - name: Downgrade Chrome driver to v114
    run: php artisan dusk:chrome-driver `/usr/bin/google-chrome --version | cut -d " " -f3 | cut -d "." -f1`

Answer: If you are using Javascript then you can also delete  the node_modules folder and also delete the package-lock.json file from the folder.And change the package.json file
define the chrome driver version you want to use ---------

"dependencies": {
    "async": "^2.6.1",
    "aws-sdk": "^2.380.0",
    "chromedriver": "^120.0.0" // like this I have Chrome version 120 so I define 120.0.0
    }

And Now run
npm i
This is worked  me
Thanks
Answer: The solution is:-

Check out the chrome version of your chrome.From chrome://settings/help
Check out which version of ChromeDriver is compatible with your current
chrome version from here
download the compatible one and replace the existing ChromeDriver with
a new ChromeDriver.
Now run the code
Answer: It didn't feel like folks were answering the issue here which is: being on the latest version of beta Chrome/Chromium and not seeing the matching chromedriver version
For example, currently as of writing this, Chromium for Mac is Version 86.0.4190.0 (Developer Build) (64-bit) however the latest chromedriver versions listed are
Current stable release: ChromeDriver 83.0.4103.39
Current beta release: ChromeDriver 84.0.4147.30
If you go to https://chromedriver.chromium.org/downloads/version-selection, they provide some pointers on getting a compatible version. One of the last lines near the end mentions trying the ChromeDriver Canary build which leads to how to get it from Chromium browser snapshots.
Of course this goes without saying that using the latest experimental version is likely to have bugs
Answer: I faced this problem even after using webdriver manager. I was able to resolve the issue after specifying the exact version of chromedriver that I needed in the webddriver manager.
I was using chrome version 84 and the webdriver manager was installing the latest version of chromedriver, which was 85.0.4183.38.
I made webdriver manager to open the chromedriver version 84.0.4147.30 by writing the following command.
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager(84.0.4147.30).install())

Comment: Hi, just wondering where are you running this command? I'm facing an issue where my version of ChromeDriver only supports Chrome version 85. When I check my version of CHrome it is 84, but it says that version is up-to-date.
Comment: @user9847788 I have a base file with a method to start a browser and specify the URL. It goes like this,
`def startBrowser():
    global driver
    if Browser == "chrome":
        driver = webdriver.Chrome(ChromeDriverManager("83.0.4103.14").install())
    elif Browser == 'firefox':
        driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
    else:
        driver = webdriver.Chrome(executable_path = "./Driver/chromedriver.exe")
    driver.get(Application_url)
    driver.maximize_window()
    return driver`
Answer: Steps I took to make it work

Check your current Chrome version e.g. 81
Goto tools/nuget package manager
Select selenium chrome driver
upgrade/downgrade to the same Chrome-version you have.

Restarting the application should work.
Answer: I got this error when the chrome driver was not closed properly. Eg, if I try to find something and click it and it doesn't exist, the driver throws an exception and the thread ended there ( I did not close the driver ).
So, when I ran the same method again later where I had to reinitialize the driver, the driver didn't initialize and it threw the exception.
My solve was simply to wrap the selenium tasks in a try catch and close the driver properly
Answer: It is not python related but for C# or dotnet users you might specify driver version in nuget packages. For instance Selenium.WebDriver.ChromeDriver is a good start point. It should match browser version. In chrome you can check version by accessing
chrome://settings/help
Be informed that it will also affect chrome version on pipeline agents and other developer's computers.
Answer: For mac users, this is the best way to solve,
Download the chromedriver
and then paste that chromedriver in this directory
/usr/local/bin

If this directory is not found to you then from finder
click on go
then select computer
then press command+shift+. (this shows the hidden files in mac)
then definitely you will see these directory easily
Answer: Find out your current chrome version Go to settings->About chrome
Go to URL https://chromedriver.chromium.org/downloads
Download and use the compatible version.
Answer: you just need to uninstall or delete protractor from node_module and reinstall it.
npm uninstall protractor
npm install protractor

Answer: As dylanvanw replied in the "accepted" answer above, a good solution is to install webdriver-manager.
For C#/ASP.NET Core:

Nuget > Browse > webdriver-manager > WebDriverManager: Automatic Selenium WebDriver binaries management for .Net

Example usage:
public abstract class SeleniumTest {
    protected static IWebDriver driver;
    ...
    protected static void InitTestClass (string url, string waitForId) {
        if (driver == null) {
            string driverPath = new WebDriverManager.DriverManager().SetUpDriver(new ChromeConfig());
            driver = new ChromeDriver(driverPath);
            driver.Navigate().GoToUrl(url);
            ...

Answer: For java, using pom.xml webdriver version 5.4.1,
//not working with chrome version 116...(main version), so we are going to hard code for now;
//Next, we will pass it as variable with try catch statement to by bypass the hard coding after its fix
//WebDriverManager.chromedriver().setup();
//hardcoded the chrome version
WebDriverManager.chromedriver().driverVersion("116.0.5845.96").setup();
      ChromeOptions options = new ChromeOptions();
      options.addArguments("--remote-allow-origins=*");
      options.addArguments("--start-maximized");

      driver =  new ChromeDriver(options);

Comment: As it's currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer).
Answer: What worked for me in Linux Mint -->
Download Google Chrome Browser from official web (.deb file) and install it.
(In my case I did not have Google Chrome installed (just Chromium))
Answer: I got a similar problem, i was using Vs code integrated terminal.
The solution was to create a venv environment, install selenium in it and do the commands from that.
Answer: Referring to @dylanvanw answer. You might still out of luck. I found that you might have a different path that you have installed Python. In my case, I have to move Chromedriver.exe from the cache path (C:\Users\Poom.wdm\drivers\chromedriver\win32\84.0.4147.30) to C:\Python38 then it work!
Answer: I found a workaround to download latest version of ChromeDriver via WebDriverManager
You could try something like,
WebDriver driver = null ;
boolean oldVersion = true;
String chromeVersion = "";
try {
    try{
        FileReader reader = new FileReader("chromeVersion.txt") ;
        BufferedReader br = new BufferedReader(reader) ;

        String line;

        while ((line = br.readLine()) != null){
            chromeVersion = line.trim();
        }
        reader.close();
    } catch (IOException e ) {}

    WebDriverManager.chromedriver().version(chromeVersion).setup();
    driver = new ChromeDriver() ;
} catch (Exception e) {
    oldVersion = false;
    String err = e.getMessage() ;
    chromeVersion = err.split("version is")[1].split("with binary path")[0].trim();
    try{
        FileWriter writer = new FileWriter("chromeVersion.txt", true) ;
        writer.write(chromeVersion) ;
        writer.close();
    } catch (IOException er ) {}
}

if (!oldVersion){
    WebDriverManager.chromedriver().version(chromeVersion).setup();
    driver = new ChromeDriver() ;
}

driver.get("https://www.google.com") ;

Answer: Simply Update the Chrome browser to the latest version available.


LibGDX How can I draw a line at a specific angle

Question: I'm working on a 2D platformer, shooter game and I'm attempting to draw a line to serve as a guide to indicate where the player is shooting. The line should be drawn from the player's sprite to the mouse's position. I need to draw a line between the player and the mouse, at the angle from the player to the mouse, how can I do something like this? Here is a concept picture to explain what I'm talking about:
Comment: Which aspect do you have a problem with? Do yoh want the line to always have the same length?
Answer: you should use ShapeRenderer for this.
In your draw loop
<code>batch.begin();
// Draw sprites and stuff here so the line will be draw on them and not under
batch.end();

shapeRenderer.begin(ShapeType.Line);
shapeRenderer.setColor(1, 0, 0, 1); // Red line
shapeRenderer.line(player.x, player.y, mouse.x, mouse.y);
shapeRenderer.end();
</code>
This will let you draw a red line between the player and the mouse, the angle will be determined automatically by the x,x2 and y,y2. (You can still compute it if you want to).
I let you the implementation part (draw only on some conditions etc)
Answer: Accepted answer is good, but I couldn't use ShapeRenderer as it need to be used on closed batch.
In that case you can use ShapeDrawer which is ShapeRenderer that can be used on open batch.


How to delete first user (admin)

Question: For security reason, I want to delete the first user (which has all rights, event without the admin role) and login only with the drush uli command. How can I do that? From the backoffice it say I can't remove that user
Comment: it's not possible but if you insist that, just need to delete it on database manually, go to users table and remove the user with uid =1 :|
Answer: I doubt that's possible, or at least not without messing with a lot of core code.
User 1 is synonymous with the root user in linux. It can be disabled, hardened, made virtually impossible to access, but not removed.
See Securing user #1 for more information.

How to delete first user (admin)


Does CQL requires bringing the data on the client?

Question: I want to use ECQL in order to filter some data on my browser. I have a postgis table which will have around 300k of rows.
Bringing this layer at once might make things a bit slow.
I was wondering how ECQL works. When you filter something, does it bring the whole layer on the client and then filters it? Or it sends requests to the server and returns only what is asked?
Comment: it would depend on how you use the filter
Comment: Can you please be a bit more specific. I don't intend to load the whole layer initially and then use the filter. I want to create the layer as invisible and then upon writing a CQL request to click a button to update results. When a layer is invisible then is not loaded, right? And in this case when I click the button, I will only get the features requested. Am I correct?
Comment: is this a wms or a wfs request? why not write a short test and see what happens?
Comment: Its a WMS request. Yes I will write a test. But as I am quite short in time I was trying to save some time. Thanks anyways.
Answer: A WMS request returns an image that is generated on the server so the CQL filter must be executed there. If you have a supported query then GeoServer will pass the CQL filter down to the PostGIS (or other) database for further speed savings (unless it's Oracle when it may slow down :-( ).


Gem to crop image to multiple sizes in rails

Question: When the user updates an image, I would like to crop it to different sizes to suit different specifications in the application like a bigger size image for profile page, a smaller image for comments etc. Is there any gem available for this in rails?
Answer: I would advise you to use the Paperclip gem for this. With it, you can define several sizes for your image. You do need to have ImageMagick installed for this to work. Your ruby model would have a line like this:
has_attached_file :image, :styles => { :small => "150x150>", :medium => "400x400#", :large => "640x640" }

The default behavior is to resize to the smallest dimension and keep the aspect ratio. You can use some options to change this:

trailing #, thumbnail will be centrally cropped, ensuring the requested dimensions.
trailing >, thumbnail will only be modified if it is currently larger requested dimensions.

In your code you can then request the image using image_tag @model.image.url(:small) in your view.
Ryan bates has an excellent railscast on this if you want more information. Paperclip also has an extensive wiki on GitHub.
Answer: Try paperclip gem or carrierwave to work with attaches
Also you can checkout ImageMagick, RMagick or ImageScience projects
Answer: The most lightweight image manipulation library/gem that I know of is Devil. ImageMagick/Cairo can be a pain to install. I've never had any problems with DeviL. Cheers.


Free Group generated by S is actually generated by S.

Question: Consider the definition of free groups via the universal property:

Definition. We say that the group $F$ is the free group generated by the set $S$ if there's a map $f:S\to F$ such that whenever there is another map $g:S\to G$ from $S$ to a group $G$, there exists a unique homomorpshism $\psi:F\to G$ such that $\psi\circ f = g$.

Using this definition, can we show that $f(S)$ generates $F)$?
One way is by first observing that $F$ is unique upto isomorphim since it is defined by a universal property  (the configuration $f:S\to F$ is an initial object in the category of all maps from the set $S$ to a group $G$ with $\psi\in \text{Hom}(f_1:S\to G_1,f_2:S\to G_2)$ if $\psi\circ f_1=f_2$ and hence is unique upto a unique isomorphsim).
Then, construct $F$ by "bare hands'', that is, define $F$ to the set of all the words formed by elements of $S$ and define multiplication in an appropriate way and finally show that such a construction satisfies the universal property. Clearly, this construction shows that $F$ is generated by $S$.
But it seems to me that there must exist an argument which doesn't require us to explicitly construct a free group.
Can somebody help me with this?
Thanks.
Answer: Let $F$ be free over $S$ and $G=\langle f(S)\rangle$ the subgroup generated by (the image of) the set $S$.
Let $X$ be any group and $g\colon S\to X$ a map. Then there exists a homomorpshism $\phi\colon G\to X$ such that $\phi\circ f=g$. With $F$ in place of $G$, this would immediately be unique. But also with $G$, uniqueness is clear because homomorphisms that agree on a generating set are equal. We conclude that $G$  (with $f\colon S\to G$) is free. Then the unique homomorphisms $F\to G$ and $G\to F$ show that $F,G$ are canonically isomorphic. Especially, since $G$ ids generated by $f(S)$, so is $F$.
In general, the "bare hands" construction of free groups (and other universal objects) is only required to show that free groups exist for any set $S$.
Comment: Thanks. That seems like exactly what I was looking for. Give me some time and I will accept this answer.
Answer: You already construction one free group for which the image of $S$ generates $F$. (Words etc...) Now, to show that the image of $S$ generates $F$ for any free group $F$ (that is, for any $F$ equipped with a map $f$ such that bla bla) you just have to show that any such $F$ is isomorphic to the one you constructed (not even up to unique isomorphism, even it is the case), and this is dued to the very definition of the free group by a universal property.
Important remark : the fact that the image of $S$ generates $F$ is not a consequence of the universal property. The situation is the same for tensor product of two modules over a ring $A$ : the tensor product is generated by simple tensors because one can construc at least one version of it for which it is true that simple tensors generate the tensor product.


Website just installed something to tor browser without my permission

Question: This is an assumption, but as i was connecting to a website I saw the alert 'so and so website wants to install something to tor browser' and there was the 'Allow' button. I was going to retreat but the alert showed for just a second and went away on its own. It's probably safe to assume that my browser just got violated right?
Answer: It is hard to determine exactly what happened when you say:

It flashed for just a second and went away

While on normal web browsers such behavior may be indicative of malicious or unsolicited installation or download attempts by shady websites, on something like TOR it is unlikely. TOR was developed for user security and privacy and is meant to block or deny all such attempts (see: https://www.torproject.org/download/download). For example, 'NoScript' installed on TOR would not let common JS scripts to execute on your browser. It is unlikely that something got installed in the background on TOR implicitly.
So yes, while theoretically it is possible, practically, it is unlikely unless you explicitly allowed an add-on or plugin to install (which it does not seem like you did).
Comment: It's how fast the Allow prompt showed up and disappeared that made me wonder. It looked like keystroke injection on windows with the allow admin privileges prompt
Answer: There is always the possibility of your browser being attacked by multiple means including the websites you visit having malicious code right on them. The best thing you can do when you notice odd behavior such as your momentary pop-up is to run antivirus with internet protection, of which there are many. It's also a good idea to have anti-malware running as well.


"Awaiting AE recommendation" before first notification of acceptance or rejection

Question: What does "Awaiting AE recommendation" mean for the first notification (not after revision)? I sent my paper to an IEEE Transactions journal and I am waiting for the first notification and the status is now "Awaiting AE recommendation." Could I conclude that my paper is accepted?
Comment: @jakebeal While you and I may be able to identify the relevant stage in the "canonical" workflow, I don't see how someone who doesn't know what "Awaiting AE recommendation" means can. When voting to close with "canonical" question like this, I think it's appropriate to point the OP to the specific part that is relevant and/or edit the canonical answer so it explicitly addresses this question.
Comment: Possible duplicate of [What does the typical workflow of a journal look like?](http://academia.stackexchange.com/questions/55665/what-does-the-typical-workflow-of-a-journal-look-like)
Comment: How long did it take to get this status from the time of submission?
Comment: @jakebeal: To our knowledge the answer may a subset of the post you prescribed, but this question seems to be more specific. It isn't a duplicate of that post.
Answer: AE stands for Associate Editor. According to the process described in IEEE Transactions, "Awaiting AE recommendation" status means that the AE has collected all reviews from the reviewers who were assigned to review your manuscript and that the AE's decision for acceptance is pending.
After this phase, the AE would send her/his report to the EiC (Editor in Cheif), for the final decision on accepting the manuscript for publication in the journal based on the review results and the report from the AE.
You would find more detail of the process here.
Comment: @Coder: When it comes to IEEE or Elsevier, 15 days is not a long time at all (unless you are communicating with journals that come under Letters). You could wait up to a month before thinking of sending a polite reminder. The acceptance for IEEE Signal Processing Letters did not take much time for me. I don't think it would take considerably longer for the Transactions on Signal Processing, either. This is because the Signal Processing Society (SPS) in IEEE has a strict schedule to follow.
Comment: For my case, the status is same for last 15+ days? What could it mean? Like OP, it would be my first notification after initial submission.
Comment: Yes, I should wait at least a month. This transaction is taken care by Computational intelligence society, which usually takes longer for everything.


Boomerang torque and angular momentum

Question: I'm building a boomerang for a project, but I've made it a goal for myself to have a boomerang which can fly at lest 200 feet, so how would I increase the flight path. Angular momentum increases in the direction of the torque, but why? Is there a way I can increase the angular momentum through a longer path?
please help, thank you for your time.
Comment: It would be helpful if you showed the equations for boomerangs that you have found so far. 200 feet is a considerable distance - to overcome the air drag for the round trip you clearly need a lot of kinetic energy, so presumably a heavy boomerang and a strong arm - and sufficient angular momentum to maintain the lift during the path. "Big and heavy" is a first step.
Comment: But if I increase the area wouldn`t I have to increase the force I apply to increase the lift, plus more weight means more drag.
Comment: Drag is a hydrodynamic property that is completely independent of the weight (what you really mean is mass) of an object. It only depends on the shape. I think what you want is higher moments of inertia. Moments of inertia can be increased (for a given mass) by placing the mass further outside while leaving the center of gravity the same. I would suggest a tungsten tipped carbon fiber design. Good luck!
Answer: A full exposition of the equations of motion of a boomerang can be found at this link - it is really quite hard work to read through. Let me try to summarize the main points:

A boomerang derives "lift" from the winged shape and its rotation
The boomerang returns because the lift is asymmetrical: when you add the velocity of linear motion to the velocity due to rotation, you can see that the leg that is moving forward is experiencing greater lift than the leg moving backwards
The differential lift results in torque on the boomerang, and will cause it to start tilting; this results in an approximately circular path
If you throw the boomerang so it has a vertical component of velocity, it will lose linear speed as it "climbs" - this makes the flight path less circular

So what do we learn for getting the boomerang to go far? First - we need to slow down the rate at which it turns in its path: this means that the linear velocity needs to be small compared to the wing velocity (less differential lift), so we need fast rotation and a wing with small angle of attack. Second, we need a large moment of inertia so the boomerang maintains rotation during flight - @CuriousOne's suggestion of a tungsten tipped blade is certainly interesting (consider a 3 legged boomerang to give a more favorable construction). Finally - throw it hard.
But I think that keeping the lift small and the rotation fast are the keys. Do google "equations of motion of boomerang" - you will find quite a treasure of papers with more detailed analysis. Probably the most accessible are http://plus.maths.org/content/unspinning-boomerang and  http://large.stanford.edu/courses/2007/ph210/moon2/
Comment: but how are you a reliable source I can cite in my bibliography?

Boomerang torque and angular momentum


Committing fouls during celebration time

Question: If a player scores a goal and in the time between the goal and the kick off again, if an opponent player pushes or punches the goal scorer, what kind of action is taken? (The conceding team might do this because they're salty) After a goal a free kick cannot be given because a center start is done.
Comment: Hi Abhinav, and thanks for your question. I'll allow you to make this edit yourself, but the term generally used for members of the other team is "opponent", not "enemy player". Despite some matches suggesting otherwise, we are all (supposedly) friends when we come together to play football, regardless of whether we may be on opposing teams. :)
Answer: Punching a player would most likely result in a red card, which would be harmful to the "enemies" as much as a free kick. See Foul After a Goal (possible duplicate).
Answer: With two very specific exceptions (cf. Law 14 and Law 15), a free kick (or penalty kick) cannot be awarded for an offence committed with the ball out of play. Therefore, despite any misbehaviour by either team after a goal is scored, the correct restart is always a kick-off.
Law 12 - Fouls and Misconduct, Introduction:

Direct and indirect free kicks and penalty kicks can only be awarded for offences committed when the ball is in play.

Law 12 - Fouls and Misconduct, Section 4 - Restart of Play After Fouls and Misconduct:

If the ball is out of play, play is restarted according to the previous decision

However, this does not prevent a referee from taking disciplinary action.
Law 12 - Fouls and Misconduct, Section 3 - Disciplinary Action:

Cautionable Offences
A player is cautioned if guilty of:
...

unsporting behaviour

...
Cautions for Unsporting Behaviour
There are different circumstances when a player must be cautioned for unsporting behaviour including if a player:
...

commits in a reckless manner a direct free kick offence

...

shows a lack of respect for the game

...
Celebration of a Goal
...
A player must be cautioned for:
...

gesturing or acting in a provocative, derisory or inflammatory way

...
Sending-off Offences
A player, substitute or substituted player who commits any of the following offences is sent off:
...

biting or spitting at someone
violent conduct
using offensive, insulting or abusive language and/or gestures

The referee has many grounds on which to sanction players (from either team) for inappropriate behaviour after a goal has been scored. In addition to the above, the referee may also choose to have a quiet word with or publicly warn any players involved, if they felt that this was more appropriate than a formal sanction as listed above.


Do abandoned sewers and underground tunnels really exist like portrayed in movies?

Question: In movies there are man-size tunnels where criminals or main characters are hiding or living. Do such tunnels exist in real life and, if so, why are they not controlled. Why is there still power on?
Comment: *All* tunnels are underground... *Power* is usually not on, unless the enterprising criminals made an illegal connection (not hard to do). But, yes, many cities have an awful lot of disused tunnels under them. from the narrowgauge [coal delivery tunnels](https://en.wikipedia.org/wiki/Chicago_Tunnel_Company) of Chicago to the abandoned underground (metro) tunnels and stations in Paris, Moscow, New York and so on. Not counting many abandoned freeways and railroads around the world, complete with tunnels and sometimes spectacular viaducts. Please do at least a little bit of research.
Comment: Why are *abandoned* tunnels not controlled? Maybe it's because they're *abandoned*?
Comment: Of course they exist. Have you done any research at all on this? Search for these queries: "urbex", "draining", "mole people", "utility tunnel", "cartel tunnel", "Gaza Strip tunnel", "Paris catacombs", "scuba diving missile silo".
Comment: You are expected to show some attempt to answer a question on your own before asking, You are also expected to stick to one question at a time.
Comment: Hi Michael --- please check out the [help] and [tour] so can get a better idea how things work here, why your question is being closed, why you're not being treated like a delicate snowflake, etc.
Answer: As others pointed out, lots of such places exist. Cities usually try to keep them locked, mostly so kids don't get lost in there. Where they fail, it's usually hobos who occupy them or adventurers who explore them - loads of videos for that.
Unlike the movies, criminals are usually not interested in them - difficult to get friends or employees there to protect your stashes or produce your goods, difficult to escape if the police comes for you, easy to have 'accidents' happen to you (Methane, CO, crumbling ceilings...) and so on. Also, a criminal who makes good money can have a villa with lots of bunnies, a big swimming pool and a place for a yacht instead - so why go underground?
The same with Batman's batcave, evil scientists' hide-outs in James Bond movies and so on. In reality very unrealistic, but makes for good movie scenes.
However, governments, sometimes with evil intent, do that regularly - mountain fortresses (Gibraltar and many others), mountain airbases (Germany in Czechia), subterranean production facilities (everyone) and so on. They have lots of money to spare and have less difficulty motivating people to work in such a place.
Comment: Yes. Germany in particular during WW2 built lots of tunnels. The purpose of most was to protect the manufacture of aircraft, munitions etc. from bombing by the Allies. https://www.urbanghostsmedia.com/2017/03/abandoned-underground-factories-ww2/  In London there are many abandoned Underground stations - Photos here - http://www.abandonedstations.org.uk/


What are some good resources for web page composition?

Question: I'm looking for resources on the composition of web pages.
I'd like to learn about pros and cons of different page layouts and techniques for moving the eye around a page.
Answer: The question can have a quite wide answer that needs days and days of studying, but I'll give a try on something short.
You have to design your layout following an invisible grid, like in paper so on the web that will help you on keep everything on the right alignment and tidyness.
The difficulties are that on the web, sizes and proportions are changeable, and content is dynamic on many aspects (setting preferences, monitor calibration, illumination, monitor size, browser, operative system, etc...).
For this reason let's not consider proportion between things, but let's concentrate on a classic setup. A classic layout is header on top, footer on the bottom, and 3 columns on the centre (with the left and right smaller than a centre).
That could be website on two columns or more columns, it all depends on how much information you have, and how much you want to display or how much "air" (aka: white space) you wants to put between the informations that you have.
Note: Be aware that there are some technical CSS limitations like aligning columns (that are on the same horizontal row) on the same height when they have different content that fill the column. People are trying to fix with creative solution until browser will update their CSS rendering on the newest standard
There are 4 possible layouts:
1) Fixed layout: You define every div in px that fit inside a specific size that will be visible inside a browser (for example inside: 800x600)
pro: the design is stable
con: you could have to much white space depending on user screen
Of this solution you can decide to left (knowing that a big gap will be on your right and you could play with a graphic background), or align center (dividing the white space on left and right, reducing its amount than left alignment).
2) Fluid layout: The page will adapt to the size of the screen, moving and adapting content around
pro: it always will fill the page not leaving uncontrolled white space
con: you will loose control on the proportions and the grid where you position your content (example: one paragraph on more lines that become one long single line sentence on higher screen resolutions)
Technique Example or another one more complex
3) Original layout: They are based on breaking the rules of layouts and grids. They don't use the a classic column layout and are based mostly on graphic design effects, like displaying information all over the website, and they are using more absolute positioning than any other solution. Good for artistic fun on the web or crazy portfolio and nothing more (I am not against it, but they require knowledge of the rules of web design communication, technical and good creative effort).
I don't find an example at the moment, sorry.
pro: great aesthetic and original
con: you cannot use this for commercial websites, or for blogs or for anything with a big amount of info.
4) Dynamic fixed layout: It is what I use nowdays for my personal websites, and for client websites that have time to spend in make a website flexible but under control.
It is nothing more than a fixed layout, but with a javascript that is constantly checking your screen size (in case of resizing or to determine which size is it) and pass the appropriate css for that size. So no matter what is the size of your screen, you will always have a good control. For example if I have a 3 column layout, if I resize down the browser I can decide that the third column will disappear and go on the bottom of the content, before the footer.
pro: Complete control + flexibility
con: A lot of effort in designing and debugging time to spend to check that everything it is ok, thinking even ahead because you will add new content later in the future and everything has to work fine.
Article where I did take inspiration
(Nowadays jquery does a great job with resize(), 3 years ago I had a long long script for that :) )
A last note
There is nowadays a new trend on graphic web designers (people that are more graphic designer than programmers), that using fixed layout they are designing each single page og their blog as magazine do with their articles. Creative, and designing every article with his own style.
An exponent is Jason Santa Maria
Other articles:

In search of the holy grail
Css positioning
Conflicting absolute positioning
Fluid Grids

There are more articles out there. Look for "css layouts". Or follow places where talks about usability and design like Signal Vs Noise
All that there is to know on composition is experience and study, or usability testing (trial and error). Put someone on front your website and see how they react on your designing. Or an Eye tracking device :)
I am self-taught so I cannot suggest about books on composition, but a good book about grid layout can help you a lot.
Comment: I am happy to be of help :)
Answer: If you want a good system for laying out web designs then have a look at the 960 grid system. It is what I use for most of my layouts. I think there is also a good selection of templates for using in different packages, such as Photoshop and InDesign as well as some printable ones for all your website doodling needs.
Also a good example of differing layouts can be seen here: http://designshack.co.uk/articles/layouts/10-rock-solid-website-layout-examples


Can members pay renew fees early?

Question: Can members pay their dues early? Basically before the system has them as expired.
Answer: If they renew early, it should just extend their membership. (e.g. if it is an annual membership and they have 2 months left when they renew, they should have 14 months on their membership afterwards).
Answer: If you are using memberships with fixed dates (e.g. calendar year memberships), then there is a setting "Fixed Period Rollover Day" that will control at which point a membership for the following period can be added.

Can members pay renew fees early?


Is it "Vay-SHA-vucha" or "Va-YASH-vucha" in Anim Zemiros?

Question: Is it "Vay-SHA-vucha" or "Va-YASH-vucha" in Anim Zemiros? I've heard both, and seen both in different siddurim. Any insight?
Answer: Vayshavucha is a simple verb, vayashvucha is causative.  So, from what I can tell, vayshavucha would mean the neviim directly "summed up" Hashem by describing his works.  Vayshavucha would mean the neviim described Hashem's works, and that caused Hashem to be "summed up".
In short, I don't see why someone should have an hakpada for one over the other.
Comment: It seems both words mean "they equated You" as a transitive verb referring to the human effort to express and comprehend God's actions metaphorically because He is by nature removed from direct observation. Most lines of the song are allusions, so perhaps even if the meaning would not change, a search for the precedent for these words could at least yield the word more likely intended by the author.
Comment: WAF, if you're saying that the author is alluding to a pasuk, that is significant and identifying the original form would be important.  If that's not what you mean, in what way would you distinguish between the two to say that the author favors one way over another?


Is it possible to use Shibboleth 2 with Nginx + Passenger?

Question: Do you know if it is possible to use Nginx with Shibboleth?
Answer: Not until FastCGI supports "authorizer" mode. The Shibboleth 2 documentation describes a FastCGI SP application but explains that it doesn't work with Nginx because it lacks the "authorizer" mode needed for the filter.
An Nginx thread shows that many people want the "authorizer" mode but it's too difficult to implement. When people try they give up.
Poster Alex on this Rails thread shares Ruby code for Shibboleth auth but appears to have used Apache. Other posters using Nginx still couldn't make it work.
Answer: Yes, it's possible.  Install and configure the nginx-http-shibboleth module for nginx, which provides the ability for nginx to understand the parts of the FastCGI authorizer spec which nginx can support; enough for Shibboleth authentication to succeed.   Your installation will require FastCGI build of the Shibboleth Service Provider (SP) and appropriate configuration of nginx to communicate with the shibauthorizer and shibresponder FastCGI applications.
All backend applications and environments can be supported in some manner, assuming they support either HTTP headers or environment variables set from nginx.  Passing Shibboleth attributes to your application is either via nginx environment variables (via shib_request_set) or else via shib_request_use_headers on; for HTTP headers (be careful of spoofing).  I've never used Passenger to host an app, but in your case, it appears you could use passenger_env_var and shib_request_set to get Shibboleth attributes into your application.
The full setup process is found in the GitHub repository at https://github.com/nginx-shib/nginx-http-shibboleth.
Disclaimer: I am the current maintainer of that module.
Note: this module supersedes all previous blog posts or wiki entries I might have written previously.
Answer: I haven't yet tried this myself, but checkout David Beitey's entries on the Shibboleth wiki.
Comment: Welcome to Server Fault!  Please add relevant excerpts from the link that address the question.  Link only answers are frowned upon here.


Blocking hard and master reset or internet access permanently on Samsung Galaxy phone

Question: I have a porn problem and I want to either disable the ability to do hard or master resets on the Samsung Galaxy phone (the only way to get by certain site blockers of which I have setup an undecipherable password), or simply block all internet access on the phone while still allowing calls to be made. How can this be done so that I will never again be tempted to view obscene material?
Comment: I doubt blocking resets can be done. And even if you could block internet access probably a reset would enable it. If your habit is affecting your day-to-day life you don't need a technical solution, you need to talk to a professional.
Answer: 1.You can install one of parental control apps and ask your friend to set password for you (if you are ashamed you can tell that this is e.g. for your son or sister...).
2.If you have rooted phone that topic is for you ! Made this application as the system app and then unroot your phone.
I think in your case best solution is using both methods above.


Can an airplane on an SVFR clearance land when visibility is less than 1 mile?

Question: Let's say I'm on an SVFR clearance and the flight and reported ground visibility deteriorates less than 1 mile, what happens?
Answer: If the pilot is on an SVFR clearance, the weather inside the surface area deteriorates below 1 mile visibility, and the pilot has the airport in sight, he can inform the controller that he has the field in sight and will be cleared to land. The pilot is responsible for continuing to the airport or exiting the surface area in order to remain visual.

NOTE− Clear an aircraft to land at an airport with an operating
  control tower, traffic permitting, if the pilot reports the airport in
  sight. The pilot is responsible to continue to the airport or exit the
  surface area. 14 CFR Section 91.157 prohibits VFR aircraft (other than
  helicopters) from landing at any airport within a surface area when
  flight visibility is less than 1 mile. A pilot could inadvertently
  encounter conditions that are below SVFR minimums after entering a
  surface area due to rapidly changing weather. The pilot is best suited
  to determine the action to be taken since pilots operating under SVFR
  between sunrise and sunset are not required to be instrument rated,
  and the possibility exists that flight visibility may not be the same
  as ground visibility. 14 CFR Section 91.3 authorizes a pilot
  encountering an inflight emergency requiring immediate action to
  deviate from any rule of 14 CFR Part 91 to the extent required to meet
  that emergency. Flight into adverse weather conditions may require the
  pilot to execute the emergency authority granted in 14 CFR Section
  91.3 and continue inbound to land. Air Traffic Control Handbook, 7−5−4
Comment: And if you are instrument rated and current, you can get a popup  instrument clearance.
Comment: @Kamran it's allowed and encouraged, it helps SE become a good reference for questions like that.
Comment: Did you just answer your own question? *Confused*
Comment: @ratchetfreak Got it, I haven't been here long. I need to get to grips with the rules! I can think of a few questions now! I'm glad you cleared this up!
Comment: @casey in these circumstances, you can't get a pop-up. the only place you can get a pop-up in the surface area is on the ground. If you're in the air in the surface area with viz less than 1sm, and you call up the tower and ask them for a pop-up, they will tell you to "maintain VFR" (while they call Approach to coordinate), which you already know you can't do. Even if you can get a clearance, they will ask you if you can provide your own terrain and obstacle clearance while you climb to the MIA or MEA, which you know you also can't do. maybe you can try to fly a DP if you can find the runway:)