Is there a way to pass parameters at run time in Chef?

Question: I wanted to pass some attributes to chef-client at runtime. Is there a way to do the same?
I was looking into chef-client -j option, but to my knowledge it can be used to specify run_list. Can I pass some attributes in it? If yes, how?
Answer: Yes, you can use the -j json file option to populate node attributes.
{
  "my_attribute": "I like attributes!"
}

This will make an attribute named my_attribute available in your cookbooks. For example,
Chef::Log.info(node['my_attribute'])

Or,
if node['my_attribute'] =~ /like/
  package "foo-likes-attributes" do
    action :install
  end
end

Setting an initial run_list is the most common use of the json attributes file for Chef Client. If you're using Chef Client + Chef Server, though, you can simply modify the node object on the server either through the webui (Open Source Chef Server) or management console (Opscode Hosted/Private Chef), or through knife node edit if you're using the command-line tool, knife.
Note that using the JSON file is like modifying the node object on the server, the attributes set here "normal" priority like when they are used in a recipe, and these attribute values will be saved to the Node object on the server at the end of a successful run.

Normal attributes applied on a node directly in a recipe (from the documentation)
Comment: Thanx for the reply. Can i somehow use them in my attribute file.?? My exact use case is like - I want to run a service at a specific port for a specific node and i want to provide it at run time ( chef-client -j ). –
Comment: You absolutely can set attributes in a cookbook's attributes file.
Answer: The ideal way to use attributes is to write them into your cookbook or into a data bag. Here are the file locations for either:
Chef Repo Directory Layout
|- chef-repo
|---- cookbooks
|------- attributes
|---------- default.rb
|------- recipes
|---------- default.rb
|---- data_bags
|------- users
|---------- john.json
|---------- susan.json
|------- databases
|----------- master.json
|----------- slave.json

You can store data in your data bag files in basic JSON format ( knife create data_bag users).
Create user data bag for john:
$ knife data bag create users john

{
  "id" : "john"
  "age" : "27"
  "height" : "60in"
}

Using Data Bags
If you choose to use data bags (I recommend them if you have a lot of different users or database servers (in this context)), you can view more information at https://docs.getchef.com/dsl_recipe_method_data_bag.html. Additionally, it's easier to create a users directory in your data_bags directory, and create the user .json files in there (~/chef-repo/data_bags/users/john.json) with the content above, then upload the data bag to the chef server: knife data bag from file users /path/to/data_bags/users/john.json
Using Attributes
You can also store the data in your attributes file:
attributes file
$ vi ~/chef-repo/cookbooks/my-cookbook-name/attributes/default.rb

default['my-cookbook-name']['user-1'] = "John"
default['my-cookbook-name']['user-1']['age'] = "27"
default['my-cookbook-name']['user-1']['height'] = "60in"

cookbook recipe
$ vi ~/chef-repo/cookbooks/my-cookbook-name/default.rb

template "/root/user-list" do
  action :create
  source "user-list.erb"
end

user-list.erb
$ vi ~/chef-repo/cookbooks/my-cookbook-name/templates/default/user-list.erb

 <title>My User List</title>

User List

User 1: <%= node['my-cookbook-name']['user-1'] %>
User Age: <%= node['my-cookbook-name']['user-1']['age'] %>
User Height: <%= node['my-cookbook-name']['user-1']['height'] %>

Answer: you can do it on the command line, but - especially in a knife run - it'll start to look reeeally ooky:
chef-client \
  -o vmware-tools \
  --force-formatter \
  -j '<(echo {\"vmware-tools\":{\"style\":\"rpm\"}})'

But here we're leveraging -j and a <(notation) to create the JSON file on the fly, as artefacts tossed in via knife (or ssh-i, here). If you must do it, the risk is the conflicting delimiters will drive you insane at about the time you get it to work.


Is there a single app that allows testing of your site in multiple different browsers of varying version?

Question: I am a backend developer working on a solo project. I am trying to up my front end skills as well as my 'eye' for good design and user experience. I am looking for software that easily integrates testing of your app in all the main browsers and versions. Is there a one stop shop for this or is it necessary to download IE versions as well as the other browsers separately.
(I use OS X)
Comment: If this question is only about how the website looks in different browsers, the same question got already answered here http://webmasters.stackexchange.com/questions/21/how-can-i-see-what-my-web-site-looks-like-in-various-browsers
Comment: IE dev tools can render any page in any version of the browser.
Answer: As far as I know there is no such tool yet available, but there is an awesome website, quirksmode, which will show you compatibility:
http://www.quirksmode.org/compatibility.html


Finding remainders.

Question: I just incurred a question which asked me to find the remainder when $41^{77}$ is divided by $7$. I just saw $41$ and then the number $6$ striked to me as $41-35=6$. I chose $35$ as it was nearest to $41$ but I think the way I solved it is wrong. For example we want to find the remainder when $35$ is divided by $6$. If someone uses this method he will end up with $1$ as he would split $35$ as $7×5$ and as $6$ is nearest to $7$ and $7-6=1$ so remainer is $1$ bur actually remainder is $5$. Please help me to get an appropriate method to solve such questions. Also such questions can be framed in a more complex way like "find the remainder obtained when $41^{77}$ is divided by $7^{21}$. So what would one do in that case? Any help is appreciated. Thank you very much.
Answer: You have
$$41\equiv -1 \mod 7$$
$$41^{77} \equiv (-1)^{77} \mod 7$$
$$41^{77}\equiv -1 \mod 7$$
the remainder is $6$.
Comment: bur can u also list out a method for the next part of the question

Finding remainders.


How to speed up your movement in counter strike?

Question: I watched other players with some good skills: They move and shoot and their movement is so quick, that I can't aim on them. Can someone please confirm as to how I can move equally as fast?
Comment: A loooot of practice. If you really want to become a pro, it's not only practicing untill you can do the things pro's do, but also understand the tactics of the game behind it. It's not just shooting. You may achieve the same level pro's are, when you practice around 5-10 hours a day, every day. But if you are asking yourself whenever you have to move or not when you are shooting, then.. well.. you might wanna pursue other dreams.....
Comment: Please only ask one question at a time. Cvars with `sv_` typically are server-side and thus out of your control as a player
Comment: http://www.youtube.com/watch?v=a9qXbgrx9rg#t=81s
Comment: Practise makes Perfect. Being good at something is time-consuming. Think to yourself if this is what you'd like to spend your time concentrating on - or whether other ambitions can be achieved.
Answer: There are many ways to move faster that other players in Counter Strike. The easiest is to use "fast" weapons such as Steyr Scout, with it you will run with speed of 260 units/second.
The second fastest weapon(s) is(are) knife, pistols(all of them) and SMGs(all of them except for P90), with them you run 250 units/second. After that it's P90: 245 units/second.
The slowest weapon is AWP, you will only run at 210 units/second, second slowest is M249: 220 units/second.
The other option to move faster is to move sideways(not completely strafing, just a bit askew). I don't remember how to do it exactly, but if I remember correctly it was like that: go forward + strafe left/right + move mouse to the left/right. With knife it's possible to get a speed of 274 units/second.
Or, as SaadBen said, you can try learning how to BunnyHop, there are gazillion lessons in the web. With BunnyHop you will go fastest, but it's extremely difficult to learn it.
Answer: A movement technique called bunny hopping will enable you to move with a lot more agility and make you a lot harder to kill in game. If done correctly it can be used to maintain an above normal speed while holding a knife. I suggest learning to bunnyhop down a slope first. It provides a massive speed boost and makes you impossible to shoot down :)
Also, some players use scroll ducking which can be done by entering
"bind mwheeldown +duck"
or
"bind mwheelup +duck" in the game console(~). On flicking the scroll button you will jerk up and down and almost move at maxspeed while maintaining an irregular motion and also making less footstep noise.
This technique is commonly banned at competitive levels.
Answer: As far as I remember in CS 1.6, you might want to learn how to bunny hop and understanding how weapon weight affects your movement speed (knife is the "fastest").
Comment: no, scout is the "fastest"
Comment: Yup, that's true. There's a 200gr difference, but carrying a scout is an endgame change, not something you can do all the time.
Answer: Scout is 10% faster than knife/pistol (which are the same, all pistol and knife are 250 u/s, scout is 10% faster than that)
Answer: just use bunny hop and type those cheat :-
sv_aira + tap 99999999999
sv_spe + tap 999999999999
sv_maxs + tap 9999999999
sv_airm + tap 99999999999
cl_sid + tap 9999
cl_ups + tap 9999
cl_for + tap 9999
cl_backs + tap 9999
cl_yaw + tap 9999
fps + tap 151
dev + tap 1
you will move very very fast with bunny hop just learn it. sorry for my english
just like that :-


root locked out of EC2

Question: I was in the process of disabling root logins on an AWS EC2 instance. Right after setting PermitRootLogin no and restarting sshd, I closed the terminal on accident -- before setting up users with sudo privileges. The result is that my key to get into the instance as root does not work (sshd forbids it) and when I log into the instance using my regular user I can't gain root privileges (the root password was never set). The instance is running ubuntu 8.10. Anyone have any idea how can I fix this?
Answer: No, don't terminate the instance, all is not lost!!

boot another instance and shut down the bad instance.
detach the EBS volume from the bad instance and attach it to the new
instance.
Mount it in the new instance (i.e., something like sudo mount
/dev/xvdf1 /mnt/ )
chroot into it (sudo chroot /mnt) and type passwd.
reset the password or make any other changes you like (vi
/etc/ssh/sshd_config, for example!)
Press control-D or type exit to exit the chroot.
umount /mnt
detach the EBS volume from your temporary instance
re-attach or take a snap and create a new AMI based on that snapshot
Boot the fixed box back up!

P.S. next time try Userify to manage your users' keys :)
Comment: Note: this will not work if you launched the instance from the AWS marketplace (those instances cannot have their root volumes mounted elsewhere). This includes certain open source distros such as CentOS.
Answer: Without finding a vulnerability, the only way to gain root access on a Linux machine is to boot into single user mode and reset the password.  However, you don't have KVM-level access on an EC2 instance, so this is not possible.
You'll need to terminate that EC2 instance and launch another one.  But disabling root logins is against the general paradigm at EC2.  Amazon suggests that you provide a public-key at instance launch time and have an init script install that into /root/.ssh/authorized_keys, with sshd configured to 'PermitRootLogin without-password' to force keypair logins only.  This way you can never accidentally lock yourself out of your root account (provided you don't lose your private key).
In the future, I suggest that you create a user with sudo access and then start a 'screen' session as soon as you log in so that a disconnect won't stop/break your work.  After you configure and install your app, bundle, upload, and bundle your AMI so that you can launch new instances when required.
Comment: +1 for the screen suggestion, although I prefer [tmux](http://tmux.sourceforge.net/).
Comment: Solution below- mounting EBS volume would work in this case- assuming the instance has a EBS that is.
Answer: Do you have an AMI saved with whatever changes you made to your instance before you disabled root logins ?  If not, you will have to go back to the base AMI that you started with and create a new EC2 instance.
Answer: One way to do it is to find local vulnerabilities in your system which can grant you a root shell. Get list of software which are installed in the box and google/securityfocus each of it.
Comment: Please dont do this.

root locked out of EC2


Cadence PCB designer How to extract the ground plane shape

Question: how to extract the shape of the ground plane metal (only the gnd net) in dxf format from cadence PCB Designer?
Note that the ground plane is a autogenerated dynamic shape so if I move it I lose the shape of traces, vias and so on.
Answer: Save the .brd file to a new name. Change the shape type to static. Then z-copy it to a newly created etch layer and display only what you want to be exported into the DXF file.


Posting jobs on "last 3 employers" of job application?

Question: I'm looking at a job application that asks to post "last 3 employers." Would I be able to include independent contracting work and self employment?
Answer: Yes, you can include contracting work and being self employed. However, the question asks for your last three employers, so whatever you list should be your most previous three employers without gaps.
The recruiter/hiring manager will also see your resume, which you can use to highlight the most important previous roles, even if not the most recent.
It's up to you whether you aggregate freelancing/self-employed work together into a single item or break it up into additional details - do what you think enables you to list the recent roles you're most excited to share.
Comment: Thanks! I actually was working 3 jobs at once and included them in order to the best of my ability.
Answer:
Would I be able to include independent contracting work and self
  employment?

Yes. If that's what you were doing then why would you not be able to include it?
Answer: I've been a contractor, both W2 and corp-to-corp (aka self-employed), for nearly 30 years now. When I list them on my resume, what I put depends on the type of job. I nearly always put the company I was contracted to because it's more likely to be a company that is recognized instead of the staffing/consulting company that actually pays. me. I will then often put "(via SuperRecruiters)" where the silly name I put there is actually the company that paid me. My current situation is even more complicated.  I put the Fortune 50 company I worked for for 3.5 years and put (Via UberConsultants) but they're not the ones that paid me. It can all get very complicated but the bottom line is that you want to put where you did the work but you can also put who employed you, because even if your work-quality reference isn't from them, they'll be the ones to verify your employment for a background check.
In the cases where I'm self-employed, I just put the name of the company I was working for and merely put something like (contract) in parenthesis.
The above info is for resumes in particular but can be used for applications.  BUT if you've already submitted your resume and this is just for either a background check or following an HR procedure, put the people that paid you or "self-employed" and leave it at that.  For a background check you might get the BC company calling you asking for whom you did work, but that's all.
Good luck!

Posting jobs on “last 3 employers” of job application?


What's the aperture/sensor size for the mid-2011 27" iMac FaceTime HD camera?

Question: I'm working on a project where I need to convert from pixels to mm and need to find the aperture or sensor size on the FaceTime HD Camera.  Specifically, I have the mid-2011 27" iMac.  I can't seem to find any detailed technical specifications on the newer FaceTime camera.  Anyone privy to these details?
Comment: If you use the camera to take a picture of a ruler, you can then measure the distance between the glass covering the camera and the ruler to make a start on your project. However, unless you are controlling for the 3D position and alignment of whatever you are measuring, you might find distortion and off-axis positioning have measurable effects on the image rendering even assuming you have a parallel placement of whatever you are measuring (both vertically and horizontally).
Comment: I'm using OpenCV for the project.  Specifically, I'm looking to find the apertureWidth and apertureHeight parameters for the [calibrationMatrixValues](http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#calibrationmatrixvalues).  Rereading the documentation, it looks as though these parameters are poorly named as they're actually looking for the physical width and height of the sensor.
Comment: Makes sense - we will be a good place for people to help document what hardware is used, but if you want to ask that exact code level question on our coding site, [Stack Overflow would be a good place to ask if other developers have found good values you might be able to reuse rather than engineer a solution.](http://stackoverflow.com/about)
Answer: tl;dr - As a starting off point, eyeballing it I'd estimate around ƒ/2.2 - ƒ/2.8 aperture.
This isn't an exact answer, I put the iPhone 7+ front camera (which has a ƒ/2.2 aperture and a 'focal length in 35mm' of 32mm) next to the 720p FaceTime HD camera on a macbook. Eyeballing it, the image on the mac seems to be the same or maybe ~5% smaller in FOV. So I estimate around ƒ/2.2 - ƒ/2.8 , maybe ƒ/2.4 in aperture.
Answer: On the iMac's features page it is stated that:

The built-in 720p FaceTime HD camera lets you make video calls that are so clear, it seems like everyone's in the same room.

This means that the FaceTime HD Camera can offer you a 1280x720 resolution as a hardware maximum, but, it's the software you'll be using it with, which will decide the resolution.
Comment: That's not an appropriate answer. Unfortunately its hard to find the Specs. Its important o know the Aperture size / Sensor / Pixel Size / Focal Length / ISO etc. for specific studio interview requirements.


ASP.NET custom config entries / ConfigurationSections + business logic validation?

Question: i've got some custom config entries in my .config files. All loads/works fine. I was wondering if there's a proper way to check the data that has been provided -- adding some business logic. For example...
<code><logFileSettings>
    <logFile fileName="foo.log" uniqueName="log1">
        <alerts>
             -= snip =-
        </alerts>
    </logFile>
    <logFile fileName="bar.log" uniqueName="log2">
        <alerts>
             -= snip =-
        </alerts>
    </logFile>
</logFileSettings>
</code>
Now, i want to make sure the uniqueName for each custom sections are unique. Do i need to do this manually outside of my custom class which impliments ConfigurationSection or can i do it in there? (eg. sorta like a delegate to after it's read the config file or something?)
Answer: This sounds like a job for the consumer of the data, not the data store (in this case, the web.config).
It is possible to read/write the web.config from code, but this is almost always a very bad idea (for one thing, writing will always restart the web application, and even reading will too sometimes). I understand that this is not what you are asking, but I wanted to point it out because I am horrified by the number of people who read/write web and app.config files with reckless abandon.
To your original question of whether or not there is an event raised when the file is parsed, I did some reading and couldn't find anything.  However, you probably could modify the Visual Studio XML schema for the web.config, and at least you would have a design time error.
Or more importantly, I would suggest moving the validation logic to the consumer of the data (looks like a logging class).


Holding a pair and two pair are on the board. Who wins?

Question: I have a question. In Texas holdem if someone has a pair and two pair are on the board who wins the hand?
Comment: If the pair matches one of the pairs on the board they win for sure
Answer: TL;DR: It's always the best five-card hand that wins at showdown.
Who wins? It depends.  The Five Card Rule applies.  You make the best hand you can from your two hole cards and the five board cards. Your opponent does the same with their cards.  The best hand wins.  If the hands are the same, then the pot is split.
First example:
You: K♥K⋄
Opponent: Q♥Q⋄
The board comes 5♥5♠7♣7♠A♣
Your best hand from the 7 available cards is K♥K⋄7♣7♠A♣.
Your opponent's best hand is Q♥Q⋄7♣7♠A♣.
You have two pair, kings and sevens. Your opponent has two pair, queens and sevens. Your hand is best, so you win the pot.
Second example, using the same board cards but different hole cards:
You: 4♥4⋄
Opponent: 3♥3⋄
The board comes 5♥5♠7♣7♠A♣
Your best hand from the 7 available cards is 7♣7♠5♥5♠A♣.
Your opponent's best hand is also 7♣7♠5♥5♠A♣.
You both have two pair, sevens and fives with an ace kicker, so you split the pot.
Third example:
If one of your cards can play as the kicker (i.e., a single high card that plays in the set of five total cards), one player can still have the best hand even if the pocket pair is no good.  Say you both have the same hole cards from the previous example, but the final board card is a 2...
You: 4♥4⋄
Opponent: 3♥3⋄
The board comes 5♥5♠7♣7♠2♣
Your best hand from the 7 available cards is 7♣7♠5♥5♠4♥.
Your opponent's best hand is 7♣7♠5♥5♠3♥.
You both have two pair, sevens and fives, but your 4 kicker is better than your opponent's 3, so you win the pot. (Pocket 3's happens to be the worst possible hand on this board.)
It's always the best five-card hand.
Comment: Nut low implies a good thing, though. That's the term used for the best possible low hand in a high-low split game.
Comment: +1 The other opponent with 32 also loses the third hand. She must be the opponent you're talking about that played the 3 of clubs ;)
Comment: Oh, yeah.  23 is another one.  I'm not sure how I screwed up those suits when copy-pasting.
Comment: Is there a name for the worst possible hand?  Like the anti-nuts or something?
Comment: @Michael it's sometimes called the _nut low_.
Comment: What if the board has `AA KK 2` and I have `3 3` and my friend has `3 4` then who wins in this case
Comment: The 34 hand wins in the last example, because it's then AAKK4 vs AAKK3.  The pair of threes is counterfeited.


What are Apocalypse's original mutant powers, and what abilities did he gain from the Celestial technology?

Question: I was always a bit uncertain of the difference between the two. I checked around, and got some good ideas, but nothing concrete. Most followed the format (or at least, maintained the same level of general discourse) of this video:

Same problem arises; speaks to all of his powers, but not directly separating what he was born with, and what he gained via the alien tech.
Complicating matters is that Apocalypse can apparently retain the powers of mutant bodies he has inhabited before, making his original abilities even murkier.
Can anyone please clarify this? Specifically, we should look at:

What are ALL of Apocalypse's powers
What powers he has as a mutant, i.e. his original abilities
What powers he got from the Celestial technology and how those affected/augmented his natural abilities.
What powers he retains from other mutants
To what degree his powers are amplified due to this blending.

Canonical sources may be best, but considering there are a number of sources in various media, and different versions, if evidence is provided, it can be pulled from all of them.
Comment: Useful: https://www.youtube.com/watch?v=dBsSMpkXPHg&t=454s
Answer: I believe his only true mutant power was the ability to alter his molecular make-up.
This effectively gave him access to many different kinds of power. Shapeshifting, fast healing, more strength, and many others.
The rest really depends on which storyline you choose. His powers and origins of those powers vary with each one.
Comment: Nice answer. However, can you add some sources that support your answer ?


Undoing permission change of my entire drive

Question: For some stupid reason I excecuted sudo chmod -R 755 /. Now none of my software will run. Can I fix this without reinstalling? And if yes, how?
Comment: `bash` should have prevented you from operating on `/`... but often computers will do this sort of thing if they detect that you don't have a backup of your data.
Answer: there's no real undo to chmod. If yours is a reasonably new install we could give you a list of all main files/directories and you could try to restore permissions one by one, but sincerely that would be a hell of a job.
You could better boot from live CD, backup all your stuff and re-install.


Were Accounts Purged?

Question: I participated early on in the beta, but found that when I logged in after the official launch I didn't have any reputation or history. Are/were accounts inactive for a period of time purged?
Comment: same user name? SE doesn't typically purge users. Is it possible you were unregistered and have lost your cookie?
Comment: So that I know where to look, did you post anything or add any comments?
Comment: Not to my knowledge.
Comment: Yeah, same username. I even went through the effort of trying each combination of account login I could think of, but no dice... they all asked to confirm that I wanted to create a new account.

I doubt I posted anonymously, unless there was no other way to do so. But it's definitely possible (I definitely wouldn't have that cookie still in my cache).
Comment: I can confirm that in the database there is no "Mad Brew" before yesterday. I will have to check re purging... I wouldn't have thought so, but I'm not usually involved in new site creation etc. Also... you have 2 accounts now... that is abnormal.
Comment: I can definitely remember answering/commenting and voting things up. The only other name/pseudonym I could imagine is "Mad Brew" with or without spaces, possibly appending "Labs" to that (my blog's name) or using "Michael Brewer."

It's not a big deal, I was just wondering at not having my account persist. I appreciate the investigation though, thanks.
Comment: @MarcGravell Not sure if you saw the comment response here, so... ping. :)
Answer: Yeah, I have to say as I'm looking around at old Q&A's I'm seeing a lot more greyed out accounts than I'm used to. We used to just have a couple.  Now, like How do you help players not focus on the rules? - there's two expired user accounts there.  Even as a mod I can't see anything about them.  But it does seem like a sharp noticeable increase. We used to have just a handful and we knew them all (malcontents who demanded to be deleted).
Comment: Heheh, I am sure I was never a malcontent, my limited attention spanned was drawn elsewhere. Thanks for poking around.

Were Accounts Purged?


Verilog structural CORDIC implementation for sin/cos calculation

Question: Does anybody have a reference to an in depth explanation of hardware implementation of CORDIC algorithm for sine/cosine calculation? I'm looking for a way to model it in Verilog on structural level. I was able to do it on behavioral level, but when code got synthesized, I got way to many gates, so now I want to optimize the design by describing it structurally. I would appreciate any help.
Comment: Working out this algorithm can be fun and very educational if at times frustrating project.  I might suggest starting with a C program or similar modeling the calculation with relatively few bits until you understand how it works.  If you just need a solution though, silicon vendor's tools may provide one as a configurable function.
Comment: I did the simulation in both C and Matlab -- it works. Coding is not a problem. I understand algorithm. Also this is a school project so I can't use ready made solution. Instead, I would like to understand better how real hardware would work. Some sites (like en.wikibooks.org/wiki/Digital_Circuits/CORDIC provide RTL schematic, but direct implementation doesn't work. I probably missing some small detail (probably on initialization stage), that's why I want to read something describing functioning of existing hardware and figure out what I'm doing wrong
Comment: Try to represent the algorithm in terms of shifts, additions, and conditional control logic.  Also, try to keep the pipelining natural, ie, your output will be delayed from the input by the number of pipeline stages.
Comment: Ray Andraka wrote a very good survey on [CORDIC implementations on FPGAs](http://www.ee.ic.ac.uk/pcheung/teaching/ee3_DSD/crdcsrvy.pdf). Implementation of barrel shifters (or variable delays) can be costly, depending on platform, but dual port RAM blocks can do the trick with a clever addressing scheme. I have a good bitserial design for Altera's Cyclone IV (2 RAM blocks for 23 bit precision).
Answer: As Chris suggested, the best would be to use a macro provided by the technology vendor. Otherwise, you would need to study alternative structures for implementing a CORDIC core.
From your description of having too many gates, you might just be using an architecture that is not suited for hardware implementation.
Your Verilog model needs to be based on hardware building blocks (RAM, multipliers, logic) instead of software algorithms. HDL synthesis tools do not magically convert algorithms to hardware blocks efficiently.
Comment: In actuality the whole point of CORDIC is that it is an efficient algorithm for hardware implementation, without needing a "multiplier" - actually, you can multiply an input value by the calculated sin/cosine for free (except for a scaling, which you can generally move to a preceding or following stage), which is often what you want to be doing with the result anyway
Comment: Yes, as I said, I was using behavioral code and what I'm trying to do now is to use hardware building blocks, but I don't know how.
Comment: @user6266 - sit down and work through your algorithm and think in terms of hardware instead of software. It requires a paradigm shift in thinking - physically instead of virtually. Then, you should be able to figure out how e.g. if you need an array as a look-up-table, this could be implemented as a ROM, and write the code for a ROM.


Is there any convention for where one stores installed software?

Question: I'm installing some software by cloning a git repo onto my local machine. I plan on creating a soft link to the binary made from the source in the repo to  /usr/local/bin. Where should I put the git repo on my local machine? Is /usr/local/src the place?
Answer: Since you tagged this question "Darwin", I assume you use macOS. In which case, Xcode clones repositories by default to ~/Documents.
Another convention used to be used by System V, was to create individual project (or application distribution) directories in /opt. MacPorts does store its working directories in /opt/local by the way.
The "File Hierarchy Standard" has other recommendations.


Is it usable to put the shopping cart icon in the app bottom bar?

Question: I am designing online grocery  mobile application, I do not know what is the best location to put the shopping cart icon in the app bar or in the bottom tab bar.
Much of applications and website put the shopping cart in the top left of the screen but some have redesigned the app and put it in
Answer: Whenever you have to include some widely used functionnalities like the cart system, I think it is in your interest to stick to the mental model of your users.
Where do your users think the cart is whenever they have added an item to their cart?
Cheaper option is to browse a couple of apps similar to yours and notice where did they chose to place it.
Better option is to run a design walkthrough test on 3 to 5 participants and specifically ask this question when they have just added an item. The discussions you will have with these tests will help you understand your users better and make a rationale design choice.
I would also recommend including some micro-interaction to hint where the item is going.
It is difficult to give a straight answer as it depends on various elements (webapp or native, mobile system, type of shopping...). Yet, I hope I have managed to give you a clear idea on how to get these answers.
Answer: You will make it easier for users if you stick to the convention that 'most' sites use.
A site with more traffic will have a bigger influence on the convention than a site with a smaller traffic.
Comment: This is not necessarily true in all cases - **Most** people use Windows yet OSX is just as easy (if not easier) to use but uses very different conventions for a lot of major UI components.
Comment: If you put someone who is used to Windows in front of OSX their productivity will go down and they will go through a period of stress as they learn a new interface. Things are only easy when you know how.
Comment: You said "stick to the convention that 'most' sites use" not "stick to the convention that most of the sites *your users are familiar with* use" - Two very different concepts and the second one could prove very difficult to measure accurately. I was just trying to point out that 'convention' isn't always correct.
Comment: I agree with the clarification.  However it requires knowing quite a lot about your users (or if you don't yet have users, your potential users)


Inserting a table made with ERT into a float in LyX

Question: Is it impossible to insert a table made with ERT into a float in LyX 2.0 such that I can edit the height and placement of the table in my document?
Comment: Is this the same table as your previous question?
Comment: In my previous question i could not get the table to work.. Now it works but now i want my table inside a float, so that i can control the size and placement of the table in my document.
Answer: Looking at the table code you posted in your previous question, I'll give some explanation of it, and how it relates to LyX.
\begin{table}[ht]
\caption{Nonlinear Model Results}
\centering
\begin{tabular}{c c c c}
\hline\hline
Case & Method\#1 & Method\#2 & Method\#3 \\ [0.5ex]
\hline
1 & 50& 837 & 970 \\
2 & 47 & 877 & 230 \\
3 & 31 & 25 & 415 \\
4 & 35 & 144 & 2356 \\
5 & 45 & 300 & 556 \\ [1ex]
\hline
\end{tabular}
\label{table:nonlin}
\end{table}

The table environment, i.e.
 \begin{table}[ht]
 ...
 \end{table}

This is a float, and it is what you get when you do Insert --> Float --> Table in LyX. The optional argument, i.e. [ht] is the placement specifier, and equivalent to choosing Here if possible and Top of page in the float settings.
The caption, i.e. \caption{...}. This is the same as the caption-box that is placed in floats in LyX by default. You can also get it in LyX with Insert --> Caption.
Centering of the content of the float, i.e.
\centering

This is (almost) the same as changing the paragraph settings inside the table float to centered alignment, via right-click --> Paragraph settings.
The difference is that LyX inserts a centering environment, instead of the \centering switch.
The tabular enviroment, i.e.
 \begin{tabular}{c c c c}
 ...
 \end{tabular}

This is what actually produces your table, and is what you get when doing Insert --> Table in  LyX.
The label, i.e. \label{table:nonlin}. This is the same as labels in LyX, so you can insert this with Insert --> Label.

The point
If you would like to edit your tables such as this with code rather than the LyX GUI, you really don't need anything more than the tabular environment in an ERT, the rest can just as well be added via the GUI. That could also make cross-referencing easier, as the label will be listed in the GUI. For example as seen in the screenshot below:

You don't have to use the GUI though, you could just have the complete code as above in an ERT. Just don't place it inside a second float, which won't work, and doesn't make sense.
Finally, note that floating environments have nothing to do with the scaling of their contents, so having your table in a float won't help you change its height.
Comment: That was the solution to my problem :-)
Comment: @Lasse Glad it helped. Perhaps you'll consider accepting the answer by clicking the checkmark on the left. This marks the question as answered, as well as rewarding some points to both yourself and me. See our [starter guide](http://meta.tex.stackexchange.com/q/1436) or the [help center](http://tex.stackexchange.com/helpcenter) for more information on how the site works.


Shell script on "read" accept via both enter key and tab key

Question: in shell script when you have the following :
read my_variable

Enter is the key that saves your input.
is there a way to make Tab accomplish the same as Enter without removing Enter's functionality?
Comment: Using `read -d $'\t' variable` would use a tab _instead_ of a newline as the delimiter, but that's not what you want, right?
Comment: no I'd like both ideally. but thanks for the tip!
Answer: It may be overkill but you could obtain that by using read -e, which enables the Readline facility on the read utility. At that point your desired result would be only one key-binding away.
Careful though that Readline brings along many other functionalities too, like completion, history, etc., which you might not want for a simple read my_variable. If those are undesirable, you have to explicitly clear the key-bindings and disable the functionalities you don't want for your read -e.
Sample proof-of-concept from command-line:
(bind 'TAB: accept-line'; IFS= read -re var && echo "$var" || echo ko)

You can do that in a script too, although bind will give a warning (which you can still mute by redirecting 2>/dev/null).
An alternative to bind commands in a script is to provide a custom inputrc file prior to invoking the script that you want to be affected. It's not necessary to have a real file, a Here Document suffices.
The above example made through scripts:
#!/bin/bash

export INPUTRC=/dev/fd/3

script2.sh 3<<EOF
TAB: accept-line
set history-size 0
EOF
# this example 'inputrc'-like file also disables history support

The above script prepares the custom inputrc file as a Here Document on file-descriptor 3, which the shell running script2.sh will read as indicated by the INPUTRC environment variable.
Then script2.sh:
#!/bin/bash

echo start
bind -q accept-line 2>/dev/null  # shows which keys are configured to accept input
IFS= read -re var && echo "$var" || echo ko
echo end

Before waiting for input on the read, the script will print something like:
accept-line can be invoked via "\C-i", "\C-j", "\C-m".

showing that Tab (i.e. Ctrl-I shown above as \C-i) accepts a line just as well as a Return (i.e. Ctrl-M, carriage-return) or a newline (Ctrl-J).
For a more "real world" example:
#!/bin/bash

bind 'TAB: accept-line' &>/dev/null

echo "enter your name:"
IFS= read -re var

echo "your name is: $var"

If you go down this path, have a look at Readline user's guide, at least the reduced one in your man bash. The set convert-meta off setting among others may worth a particular mention in order to have better support for non-ascii characters.
Comment: @tatsu try without the `IFS=` and see what happens when you type leading or trailing spaces ;-) Actually, I had also forgot a worthy `-r` to the `read`, which prevents it interpret backslashed characters. (Normally one wants them untouched in cases like yours)
Comment: here's what I used : `#!/bin/bash; bind 'TAB: accept-line' &>/dev/null; echo "enter your name:"; IFS= read -e var; echo "your name is: $var"` thank you very much. It blows my mind that this is actually possible, yes there are caveats but I think I can work around them. what does `IFS` do?
Answer: The way that could be done in general is by setting the termios(3)/stty(1) VEOL/eol special char ("alternate end-of-line") to Tab. On systems which support it, VEOL2/eol2 could be used, too.
Unfortunately, the read shell built-in will always try to read up to a newline (or another delimiter in bash if -d was used, with no support for multiple delimiters).
One way that could be worked around is by using a var=$(dd count=1 bs=big) command substitution instead of read. Here is an example of such a kludge:
while :; do

        t=$(stty -g)
        stty eol ^I
        trap : INT
        var=$(dd bs=10k count=1 2>/dev/null; echo x)
        stty "$t"
        trap - INT
        var=${var%x}
        [ "$var" ] || break
        var=${var%[$'\n\t']}

        printf '{%s}\n' "$var"

done

The t=(stty -g) and stty "$t" will save and restore the terminal settings.
The trap : INT and trap - INT will prevent a Control-C from killing the shell/loop (with all the complications and shell-specific behavior that that entails) and let it only kill the dd and the command substitution.
The $(...; echo x) followed by ${var%x} is a trick to prevent a trailing newline from being stripped from the command substituition; this is necessary in order to be able to differentiate between the user having pressed just Enter for an empty variable, and Control-C or Control-D to exit the loop.
Finally, the ${var%[$'\n\t']} will remove the trailing newline or tab from the variable. In shells which do not support $'...' strings like dash or yash, that could be replaced with:
nltab='<literal tab here>
'
...
var=${var%[$nltab]}


how can this sentence be translated to English " Ich bin beim Sport"

Question: I was watching a video about preposition in German and the comparison between the uses of "in" and "bei", and how "bei" can be used with "Personen/ Firmen/Aktivitäten"
and they used "Ich bin beim Sport" as an example for activities, but sadly I didn't get it. Some help please
Comment: I might help to link to the video to see exactly what they're saying and what might be confusing about it, and generally to provide some context.
Answer: In addition to what Ruruko wrote, there can be a spatial meaning involved. In this case,

Ich bin beim Sport.

could be compared to something like

Ich bin beim Bäcker.
I'm at the baker's. / I'm at the bakery.

Then, the meaning would be something like

I'm at the place where I (usually) exercise.

refering to a gymnasium, for example.
Comment: I think this would be the usual way, this phrase would be said and understood
Answer: This grammatical form is called "Verlaufsform" and is similar to the English progressive form, so it describes a process that is currently taking place. It can also be used with "am" (then it is called "am-Progressiv") or "im".
The sentence has the same meaning as "Ich mache gerade Sport." = "I'm doing sports."
Some more examples:

Ich bin beim Essen. = Ich esse gerade.
Ich bin am Arbeiten. = Ich arbeite gerade.
Ich bin im Weggehen. = Ich gehe gerade weg.
Comment: It may help to make the connection if you note that "Ich mache gerade Sport" can also be expressed as "Ich bin gerade dabei, Sport zu machen". This phrasing is quite close to "Ich bin beim Sport".
Comment: "Ich bin beim Sport" can be translated in two different ways:
1. Is the place important? If so, something like: "Ich bin im Fitnesstudio" (I am at the gym).
2. If the activity is important, present progressive ("Verlaufsform") is the way to go, so something like: "Ich mache gerade Sport" meaning "I am doing sports right now".
From a semantic standpoint "Ich mache gerade Sport" and "Ich bin beim Sport" mean they same; they are just two different grammatic ways to do it.
Comment: as a German native speaker, "Ich bin beim Essen" sounds like "I am eating at a restaurant" while "Ich bin am essen" sounds like "I am having a meal".
Answer: This is a vague expression and Sport is a large category encompassing both 'sports' and 'fitness / working out' in American English.
So I'd translate it as either "I'm at practice." or "I'm working out." — depending on whether the 'fitness' meaning of Sport is intended, or the 'team sport' meaning. Those two sentences have different information in them (place vs. activity), but that's colloquial Am. English.


Name of this kind of design element?

Question: Maybe a dumb question, but is there a name for this kind of design element? Zoom, preview or something along those lines?
Comment: This is not a comment about your naming question but a remark about your example illustration: Since the enlarged detail is showing the entire screen of the phone, your "link" or "funnel" between the full photo and the phone screenshot should rather not end in one single point in the middle of the phone. It would be better if the "link"-start would show from where to where the detail view is taken. I.e. you could widen the link at its origin to make it entirely self-explanatory.
Answer: In German I call this "Detailvergrößerung", so an English equivalent might be "view with detail magnification"; and there is no need for a cute "magnifying glass" to call it that.
Mind that "zoom" can be in or out so is not a precise name. And this element normally is not used for previews but to show more details of actual data or screen objects.
Comment: In english engineering documents its usually called "detail view"
Comment: Thats a very clear answer - good points about zoom & preview.
Comment: @alxmntrvl I've also seen  it called a "detail enlargement",  - but call it what you want!

Name of this kind of design element?


Stiff differential equation where Runge-Kutta $4$th order method can be broken

Question: Is there a stiff differential equation that cannot be solved by the Runge-Kutta 4th order method, but which has an analytical solution for testing?
Answer: How about "impractical"?  Here's an example from Numerical Recipes in C, Second Ed., Sec. 16.6:
$$u'=998 u+1998 v$$
$$v'=-999 u -1999 v$$
where $u(0) = 1$ and $v(0) = 0$.
Then
$$u(x) = 2 e^{-x}- e^{-1000 x}$$
$$v(x) = -e^{-x} + e^{-1000 x}$$
Runge-Kutta 4th order would require a stepsize of less than $0.001$ for any accuracy, which is obviously aggravating for the one of the solutions which could be acquired with a far coarser step.
Comment: Thanks, I like your equations and the book that was referenced, but if you calculate eigenvalues of the Jacobian, you will find $ \lambda_1 = 2560 $ and $\lambda_2 = -1559$. A system of differential equations is stiff, when \begin{equation} S = \dfrac
 {max_{1 \leqslant i \leqslant n} \vert{Re(-\lambda_i)}\vert}
 {min_{1 \leqslant i \leqslant n} \vert{Re(-\lambda_i)}\vert} >> 1. \end{equation} For this equations $S = 1.64$, please correct me if I wrong.
Answer: Cleve Moler, in this note, gives an innocuous-looking DE he attributes to Larry Shampine that models flame propagation. The differential equation is
$$y^\prime=y^2-y^3$$
with initial condition $y(0)=\frac1{h}$, and integrated over the interval $[0,2h]$. The exact solution of this differential equation is
$$y(t)=\frac1{1+W((h-1)\exp(h-t-1))}$$
where $W(t)$ is the Lambert function, which is the inverse of the function $t\exp\,t$. (Whether the Lambert function is considered an analytical solution might well be up for debate, but I'm in the camp that considers it a closed form.)
For instance, in Mathematica, the following code throws a warning about possible stiffness:
<code>With[{h = 40}, y /.
     First @ NDSolve[{y'[t] == y[t]^2 - y[t]^3, y[0] == 1/h}, y,
                     {t, 0, 2 h}, Method -> {"ExplicitRungeKutta",
                                             "DifferenceOrder" -> 4}]]
</code>
Comment: @Ron, maybe the asymptotics might make things clearer for you: $$W((h-1)\exp(h-t-1))=\exp(h-t-1)(h-1)-\exp(2 h-2 t-2) (h-1)^2+\frac32 \exp(3 h-3 t-3) (h-1)^3+\cdots$$
Comment: But why is it a stiff problem, beside the fact that Matlab says so?
Comment: @Ron: the working definition of "stiff" that I use is ["...equations where certain implicit methods, in particular BDF, perform better, usually tremendously better, than explicit ones"](http://www.pnas.org/content/38/3/235.full.pdf+html). Having also tried this out with my own implementations of explicit and implicit RK with stiffness detection, I agree with the assessment of Shampine and Moler.
Comment: I don't disagree with that assessment, it is just very nonobvious to me, especially given that I have a very dim grasp of how the Lambert W function behaves.  Perhaps it is also that my numerical education came from, for better or worse, *Numerical Recipes*.  There, the definition of "stiff" - and one that agrees with that given in the reference you provide - is when there are two dimension scales in a problem that are vastly different.  I of course may be missing something, but this is why the stiffness here isn't clear to me.
Comment: Thank you for the pretty cool equation, but it is required an additional research.


Can I install a pre-downloaded image of Raspbian Stretch with NOOBS Lite?

Question: I have downloaded Raspbian Strech OS and also I have downloaded NOOBS Lite. Can I install Raspbian Stretch through NOOBS Lite offline?
Answer: Yes you can download NOOBS_Lite (https://downloads.raspberrypi.org/NOOBS_lite_latest), unzip it and write all files and folders to the SD card. On the SD card there is a folder (directory) os. Create another folder (directory) Raspbian and/or Raspbian_Lite in the os folder (ie os/Raspbian and/or os/Raspbian_Lite). Download the following files from https://downloads.raspberrypi.org/raspbian and/or https://downloads.raspberrypi.org/raspbian_lite.
Raspbian.png, boot.tar.xz, os.json, partition_setup.sh, partitions.json, and root.tar.xz
And place then on the SD card in folder os/Raspbian and/or os/Raspbian_Lite.
This SD card should boot up in the Raspberry Pi as mine did.
NOTE: The SD card should have only one DOS (VFAT) partition for the whole card. New SD cards 32GB or less are formatted this way.
Answer: Yes, if you create a custom OS version.
You can create a custom OS version for use with NOOBS, and include that with NOOBS Lite. This custom OS version will include the image, so no network connection will be required. The documentation specifies that a Linux PC is required to do this, and provides step-by-step commands that you may follow.
Note that if you don't do this, though, according to the NOOBS documentation:

The full version has Raspbian included, so it can be installed from the SD card while offline, whereas using NOOBS Lite or installing any other operating system requires an internet connection.

(emphasis mine)
You will need the full version of NOOBS, not NOOBS Lite, if you wish to install Raspbian offine, unless you add a custom OS version to NOOBS Lite.


How can I use cloud-based text-to-speech services as native voices in Mac OS?

Question: I want to be able to use cloud-based TTS services (like AWS Polly or Google Cloud Text-to-Speech) as if they were locally-installed voices. I've found the native voices to be inadequate for some accessibility needs and the cloud-based TTS services appear to offer the most pleasing and affordable way of addressing these. However, I can't find any tools that can help with this (e.g. creating a system voice that connects to a service on a cloud platform and facilitates the functionality). How might I be able to do this?
Comment: hi @james ! In which apps do you want to use them ?
Comment: Hi @ankii - Primarily Claroread at the moment, although I would perhaps make greater use of TTS with other applications (like Word) if the functionality I'm asking about can be achieved.
Answer: https://cloud.google.com/text-to-speech/docs/quickstart-protocol
This article lists all the steps required.

Enabling the service's trial in Google Account.
Installing SDK

^ This is one time setup. The following is to be repeated.

Make the curl command that a shell can execute. This has three parts, two of which are fixed: voice type and audio config. The third one, input needs to be changed. *
Get the JSON response and save it to text file.
Decode the text file, to mp3 using
base64 synthesize-output-base64.txt --decode > synthesized-audio.mp3

Play it.
Bind all of this in a shortcut for the preferred app as a service.

Most of your shell task can be done via "run shell script" in automator.
* For changing the text part, you can find multiple questions, or even ask one to know how to get selected text in an automator variable. Another option would be to copy paste text in an Automator's app's popup.
Next, put that text variable in the shell script.
Then make a dedicated folder for all the text and audio files that will be made in an action. Save the received JSON response there. The command to decode it will be fixed, since the file location and name is the same.

All of this can be put in an Automator app which displays a popup that has a text field and a Submit/ Play button.


Windows Active directory log

Question: I'm trying to log all the failed and successful logins from my users accounts for audit purposes (only username and time). Is there a way I can do it with my windows active directory?
Answer: First, make sure auditing is enabled. How to enable Audit Failure logs in Active Directory?
Next, use the Security Event Log, filter for account logon events. (You can start with 4624 (logon) and (4625 (logon failed))
Check out https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/Default.aspx?catid=1 and https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/Default.aspx?catid=2 to figure out which events are useful for the auditing you're trying to accomplish for your organization.
You'll have to filter out service accounts, etc. or just filter in your user accounts. You can do this in the event viewer if you write a custom XML filter.
If you're looking specifically for interactive logins, Event 4624/4625 have "login type" as a field, you'll want to filter for type 2: interactive login. It might be type 3: network login if you're collecting from the DC. (I'm away from the office, someone else please verify, I'm losing my sanity after reading Windows Domain Controller Authentication Logon Logging and Forensics)
See https://blogs.technet.microsoft.com/askds/2011/09/26/advanced-xml-filtering-in-the-windows-event-viewer/ for how to do that part.
Comment: You also want to double check that auditing is enabled (use the domain controller GPO).

Windows Active directory log


Electrical work and Coulomb's law

Question: In some text books I've encountered the calculation of electrical work done on a point charge moving in an electric field (e.g. when demonstrating that electric force is conservative) is done by making use of Coulomb's law. However, Coulomb's law is not valid in case of moving charges, and therefore, cannot be used for this purpose. There's clearly something I am missing, but can't figure out what.
Comment: Does this answer your question? [How can moving electrons participate in electrostatic interaction?](https://physics.stackexchange.com/q/411612/)
Comment: Neglecting Bremsstrahlung Coulomb's law is valid for moving charges as long as the electric field they are moving in is constant. For classical slowly moving charges this is an excellent approximation.
Comment: Also in these derivations one can think of "infinitely slow" movement, allowing arbitrarily close approximation.
Comment: So it's just a low velocity approximation. I wish it were mention in those books... Thanks
Comment: No it is not an approximation: PE is *defined* as  the work in infinitesimally slow motion.
Answer: Technically you are correct, but the magnetic forces generated by a slowly moving electron (slow compared to the speed of light) are quite small in comparison a robust coulomb force so its a good approximation to neglect the magnetic forces. A good example is the quantum treatment of the hydrogen atom.  If you solve the Schrodinger equation for the Coulomb potential, you get very close to the Balmer spectrum.  The magnetic effects are called fine and hyper-fine structure because of their small magnitude.
Answer: The relativistically correct way of treating a moving electric point charge is by using the Liénard–Wiechert potentials. These incorporate terms with retarded time which is connected with electromagnetic radiation.

Electrical work and Coulomb's law


Is is possible to cancel a bounty?

Question: Is it possible to cancel a bounty if I found the answer to my question?
Comment: You're allowed to answer your own question though you won't get your bounty back!
Comment: Do you mean you want to cancel your bounty or how to award it to someone who answered your question?
Comment: I originally meant how to cancel a bounty if still anybody hasn't answered the question and in the meantime i found a answer to my question on my own. But acutal the question is done, because someone answered the question and i will going to award him the bounty i started. Just in general, can a bounty be cancel if anybody hasn't answered so far?
Comment: If the answer you found is very different from any existing answer on that question, you should also post an answer yourself.
Answer: Details on the bounty system are here: How does the bounty system work?
At the bottom of the answer you'll see that you can't cancel a bounty. I assume you're referring to this question. ændrük's answer will at least get the automatic bounty for half of the rep at the end of the period.
Personally I would just give him the full bounty for the effort (since once you spend the 50 it's gone for good). It's a good answer with nice screenshots so the next person will get a easy to use answer.
Comment: thanks for the answer, yes that was my plan. I stated this in the comment to my question above, that i definitly will give him the award. Did it some minutes ago, because i had to wait the system waiting time for transfer rewards.

Is is possible to cancel a bounty?


How to test if the probability of one category is larger than another in the same sample?

Question: I have a multiple choice problem with 4 options, A, B, C, and D. I know the number of people choosing each of the four options. How should I test the null hypothesis that the probability of choosing A is the same as the probability of choosing B? Thanks!
Answer: To address the null hypothesis, you want to use the counts of responses for each of the options.
To assess if the distribution across all options is equal, typical omnibus tests would be a chi-square goodness-of-fit test or a multinomial test.
If you want to compare A and B specifically, you could use either a chi-square goodness-of-fit test or a binomial test.
To compare among the 4 options, you could use the tests mentioned above in a pairwise fashion.  But it might make more sense to construct confidence intervals for each option.  Be sure to use a method that is applicable for a multinomial situation, such as the Sison-Glaz method.


Statistics Software Survey?

Question: Does anyone know of research showing the different types of statistical software used?  I'm looking to find out things like what percentage of people use SAS vs. Stata, R, or other packages.  I'm be happy to see references not only for statistics users but users in other science fields that make heavy use of statistics.
Comment: Take a look at the links in my answer [here](http://stats.stackexchange.com/a/115588/7071). Also, it is Stata and not STATA.
Comment: Yes of course.  I think I got a little carried away with capitalization there!  Thanks!
Comment: It is very domain specific, e.g. SAS is very popular in finance, SPSS in social science, python for machine learning etc.
Comment: You can find an overview of such packages in [this blog](https://jwork.org/home/popularity_of_programs_for_data_science) posted on jWork.ORG (2018)
Answer: Number of users is very difficult to determine for free software like R, since there are servers all over the world, so even if one kept track of downloads on one site, the rest would be unknown, and people can share copies around; a single download of R might potentially be used by hundreds of people. One can perhaps get some idea by tracking discussions on various sites or mailing lists, e.g. by looking at volume of questions on Stackoverflow (and various other fora, especially since some programs have dedicated discussion)
Bob Muenchen produces regularly updated measures. At the time of posting the most recent one was October 2015:
http://r4stats.com/articles/popularity/
There's also other surveys. For example, David Smith posted about two such surveys in Novenmber 2015, here:
http://blog.revolutionanalytics.com/2015/11/new-surveys-show-continued-popularity-of-r.html
Comment: The measurement problems are everywhere dense in this space. Suppose there is a university licence for some software. Companies could hardly cite anything except the number of students who in principle have access to that software. I download R, which I use about once every 3 months,  more frequently (because it changes so much) than I install the software I use daily. All vendors and producers have understandable biases to stress the measures that show their wares in a good light.
Answer: This site is primarily of concern for users of software for statistical purposes On this site as of today, 2019-01-19, the following package tags have the listed number of followers:
<code>r           19572
Matlab       1158
Python       2253
Mathematica    43
SAS           597
SPSS         1613
Stata        1091
Fortran         5
C++            39
Excel         359
Perl            5
Oracle          8
</code>
Any others you can think of, just search the tags for it.
Comment: It's only an anecdote -- but I don't follow any software tags on the grounds that software details are off-topic here any way. So I don't even follow the software I use most. A bigger deal is how far CV is the most likely forum even for statistical questions faced by those using particular software. That may be so for R; I doubt it's true for SAS, SPSS, Stata. or any software where there is software-specific support that also covers statistical questions.
Comment: @NickCox We have that same anecdote in common, so $n\geq2$.
Comment: Very helpful, @Carl.  Now why didn't I think of that!?  Thank you!
Comment: If so, you might just accept the answer. It does not affect reputation because @whuber made this post into a community wiki on Jan 14 '16 at 2:02.
Comment: @NickCox All surveys are anecdotes in that there is a difference between a first guess as to meaning of a survey's results and a second guess about its meaning. One can, I suppose, more easily correct for bias than obtain unbiased results, but in this case the value of the post was to point out that CV is a source of information about the question, with its own peculiarities to be sure.
Comment: The anecdote referred to is just my personal story on software tags.
Answer: The KDNuggets blog does surveys of software used as reported by participating data scientists. Typically, these surveys are annual. Note that the percentages they report are not the same thing as market share of software sales, it's just a proxy for that metric. Moreover, it may or may not reflect the specific languages that interests you.
Here is a link to the results from a recent survey report:

But they have many more trendable polls available. Check on their site.
Comment: As with all surveys, the question of what are the _target population_ and the _sampled population_ is paramount. I have no evidence -- that is all part of the same big problem -- but my guess is that thousands if not millions of students and researchers using statistical software would never even hear of such a survey.  But what is the aim here? If it's to catch every student user of some software using a university site licen{s|c}e who did one or two statistics courses and then moved on, it's probably going to fail.
Comment: None of that is to deny that little indications of what's hot and what's not aren't interesting, even intriguing. Comments on social media about different statistical or related software that I stumble against often seem dominated by memes on what is in, is out, going up, going down, regardless of inherent merits or whether the person making the comment has deep or wide experience on which to base a comparative opinion.
Answer: You can find an survey of data-analysis and statistical software in this this article. The result of this survey is shown in this image. Note that it is based on various blogs
Comment: Hmm.  Thanks for posting, this but I consider this very suspect and would urge users caution when examining this graphic.  For one, it seems to be a very small sample size, although it's tough to tell since there doesn't seem to be a sample size reported.  Nor can I find anywhere where the methodology is explained.  This appears a bit more like a marketing ploy, masquerading as potentially useful data.

Statistics Software Survey?


How to compose like Liszt?

Question: I've been trying to compose like him for a long time but I've got no idea where to start. What are some of his most used chord progressions? Info like this would help.
Comment: Do you play any of Liszt's music? A huge aspect of his music is the virtuosic piano technique.
Comment: Grow bigger hands. ;)
Comment: Step one is almost certainly to learn to play everything he ever wrote.
Comment: You don't have to play Liszt, but you definitely have to look at and analyze his piano scores. Once you understand a concept, write little exercises for yourself.
Answer: First of course you have to master the sonata form, which Liszt used and bent to his purposes. Also learn the cyclical form--the repetition and development of themes-- to unify works.
Liszt was a virtuoso and he played:

rapid and intricate passages in octaves
complex and fast arpeggios, scale runs and trills
with crossed hands
the sustain and damping pedals to create lush textures.

Liszt would also free improvise, and some of these free improvisations were transcribed and released as compositions.
Use chromatic harmony to create complex chord progressions and dissonant, dramatic effects. Learn how to create tension with augmented, diminished chords and extended chords (9ths, 11ths, 13ths) in all inversions.
Learn harmonic ambiguity, where the tonality or key center of a piece is not clear or is constantly shifting.
Learn modulation (changing from one key to another) and modulate suddenly and unexpectedly.
Answer: You could start with this video by Nahre Sol: How To Sound Like Franz Liszt.
Some of her other videos, like the "Happy Birthday in the style of" series, may feature Liszt too.
Comment: Could you expand on what advice the video gives? The problem with a link only answer is that it becomes useless if the link goes away.
Answer: Liszt also liked to use a rather uncommon (at the time) method of development. He would take a theme and continually modify that theme. Each version of the theme was based on the previous version. There's a Wiki explanation, https://en.wikipedia.org/wiki/Thematic_transformation.
The process used by Lizst (and others) is somewhat (in my opinion) smoother than the processes used in a "theme and variations" composition.

How to compose like Liszt?


What is special about pierogi dough?

Question: I wanted to make home-made pierogis. Is there a special dough that needs to be used?  I wanted the pierogis to be fairly thick - what type of dough would work best?
Answer: Some pierogi recipes include sour cream in the dough; they also often have more egg than a typical basic pasta dough.
Answer: You should be fine using a regular homemade pasta dough.
I learned to make perogis with a standard egg dough - egg, flour, water, and oil.  The filling is dry curd cottage cheese, salt, and eggs.  To shape them we use a nifty hand tart cutter that I can't find online anywhere.  Then we boil them in water for about 10 minutes to cook.  Serve with melted butter.
Answer: Like @justkt said you should be fine using regular homemade pasta dough. If you want something more specific though I used this recipe from Food.com. Its super good. Especially since I also made the cottage cheese myself as well.
Comment: wait, wait, you made dry curd cottage cheese yourself?  I can't find it anywhere where I live and you have no idea how happy it would make my spouse if I were able to make it.  Pointers?
Comment: @justkt I am unsure if this is dry curd but I found the cottage cheese recipe here http://www.food.com/recipe/cottage-cheese-382707. In your opinion is this dry curd?
Comment: looks like it may well be, as long as you didn't add extra dairy to it.  See here: http://www.news-leader.com/article/20070228/COLUMNISTS19/702280317/Dry-cottage-cheese-can-be-found-or-made-at-home
Comment: @justkt - I didn't add anything to the cottage cheese so it must be. Thanks for clearing dry curd cottage cheese up. :) Hope the recipe helps. :D
Answer: Quite often pierogi doughs are vegan, especially if you are making the peirogies for X-mas eve (where in many sects, you don't eat meat the on X-mas eave, and fish is not considered a meat).

2 cups flour
  ~1/2 cup warm water
  1/4 cup vegetable oil
  1 teaspoon salt
Mix all together, and give it a little knead to make it consistent, but no
  more - otherwise you'll make the dough tough

Then you roll out the dough, cut circles with a large mouth jar or a glass, stuff and pinch closed. Boil till dough is cooked or par-boil and then fry in a pan. Add onions, butter and bacon to taste.
Typical fillings include mashed potatoes (sometimes with cheese), cottage cheese (dry), sour kraut, fruit (desert), rarely cooked meat - anything you can stuff in it.
(yah I know, I mentioned vegan earlier, but vegan tastes a lot better when you add butter and bacon *rim-shot*)
Answer: Here's how you make'm.
5 cups of flour
5 eggs
8 oz's of sour cream
1/4 cup of water....
That makes the dough, cover it with a towel for 10 minutes.
Answer: Here is a generation recipe for a light pierogy dough;
4 cups flour
2 eggs
5 TBSP sour cream
3 TBSP oil
3/4 cup water
as noted above, add you filling and toss in boiling water. When they float their done.
I use a Chinese basket brush to retrieve from the water and toss in fried onions and butter to prevent sticking.

What is special about pierogi dough?


How do I find players and game sets in my area?

Question: I need help finding d&d game sets. I also can't seem to find any players. What do I do?
Comment: Welcome to the Stackexchange network and more specifically the RPG one. You should read the [About](http://rpg.stackexchange.com/about) section to help you enhance your question. We're not a forum but more like a huge database of questions and answers.
Comment: By game sets do you mean manuals and such?
Comment: Yes, character sheets,  ect.
Comment: See also: http://rpg.stackexchange.com/questions/27459/where-do-i-go-from-the-red-box
Answer: Your question is sort of multifaceted, so I'll answer each aspect individually.
Materials for D&D
I'm not 100% sure what you mean by "game sets," as well as what you already have, so I'll just list the things you need to play D&D: rulebooks, dice, maps, miniatures, and probably an adventure.
Books
Since your post is tagged D&D 4th Edition, I assume you already have some books for this edition and that you'll want to stick with it. If you are a player, all you really need is one of three books: the Player's Handbook, "Heroes of the Fallen Lands," or "Heroes of the Forgotten Kingdoms". If you want to run a game, you'll want the Dungeon Master's Guide or the Dungeon Master's Kit and a monster book (I recommend the Monster Vault as it is the most recently updated, but if you have the Monster Manual that should work fine). If you want to start a group of completely new players, the "Red Box" starter set is a self-contained introductory game that comes with everything you need to get started - rules, dice, an adventure, maps, and tokens to represent characters and monsters. Once you play a few sessions with it, however, you'll want to move on to the more expansive books. Figuring out what game books you need can be difficult, but this question explains it pretty well in more detail.
Character Sheets
For character sheets, the Wizards of the Coast site has some downloadable ones here. If you have a player book, you should be able to photocopy the one in the back.
Adventures
If you are running the game as a Dungeon Master, you may want to start off with a pre-prepared adventure (so you can focus on learning the rules and not worry about ). The Dungeon Master's Guide has a short dungeon adventure inside it, and there's a longer free adventure for download on the Wizards website (search for "Keep on the Shadowfell"). The Red Box also comes with an adventure geared toward newer players. That said, a lot of the fun of running a game is coming up with your own ideas for plots, so if you want to try that just follow the guidelines in your DM book, taking monsters from your monster book, and you will be all set!
Maps
More so than previous editions of the game, D&D 4e requires the players to use a map grid for tactical positioning in combat scenes. You can improvise with graph paper, but likely you'll want something with 1-inch squares sooner or later. The "Red Box," Dungeon Master's Kit, and Monster Vault all come with pre-made maps to go along with their adventures. If you want to draw your own maps, you can print out and tape together 1-inch grids, or you can buy something like Gaming Paper (basically thick wrapping paper with a map grid) or a Chessex Wet-Erase Battlemat.
Miniatures
Similarly, it is often helpful to have miniature figures to represent the characters and monsters in a tactical combat. You can improvise using dice/chess pieces/pencil marks to show positioning, but if you want something a little easier on the eyes you have a lot of options. There are 3-D figures you can buy in gaming stores or online (just search "Miniatures" or "D&D miniatures"), but those can be expensive. Paizo Publishing sells a "Bestiary Box" and "NPC Codex Box" that provide lots of good-looking cardboard "pawns," for monsters and player characters/non-player characters respectively. If you picked up the Red Box, Dungeon Master's Kit, or Monster Vault, each should have lots of nice circular tokens that represent the same thing.
Finding a D&D Group
To be honest, many experienced roleplayers have trouble with this. First off, try talking to family and friends who like board games or are interested in fantasy things like Lord of the Rings. You'd be surprised how many people either play D&D or would like to try it!
If you live near a gaming store or a comic book shop, that'd also be a great place to ask around. Generally speaking, gamers are welcoming and would be happy to help a new player into the fold.
If neither of these options work out, you could always try playing online through "virtual gaming tables" like Roll20.net. They often have "looking for group" forums - post and you might be surprised at the breadth of your options!
One thing you should know if you're looking for a D&D group is that many gamers tend to be very territorial about their favorite edition of the game. Some love 4E above all else, while others enjoy 3rd edition, "AD&D" (2nd/1st editions), "Pathfinder" (a re-printing of third edition by Paizo Publishing which expands the game), and many other versions or similar games. With time, you'll develop your own personal preferences, but every version of D&D can be really fun to play. Don't sweat it.
Good luck, and may you always roll 20s (unless you're the Dungeon Master, because you need to give your players a break SOMETIMES).


Loops at low level

Question: When programming with high level languages like Python or Matlab, it is always better to model the problem such as the solution is some kind of vector or matrix multiplication, to avoid loops. But this vector multiplication will itself take each elements from both arrays and multiply them so basically there must be some loops at some level. Is that the case or is there special methods at assembler level that make multiplications of memory blocks with no loops?
Answer: When you are using vectorized operations in a high-level language such as Matlab or python, you are not avoiding loops, but rather pushing them from the high-level language (Matlab or python) to a low-level language (C or fortran) which can execute these loops much faster. Loops in Matlab or python are slow for several reasons, the main ones being that these languages are interpreted, that typing is dynamic, and that even basic data types involve a lot of overhead.
Some old supercomputers had a vectorized architecture (for example Crays), but this is no longer the case. Nowadays there are small-scale vectorized instructions which operate on a small number of data points at once (as mentioned in EvilJS's answer), though their use could be rather specialized.
Loop unrolling, mentioned by EvilJS, can be used to cut down the number of conditional jumps, which slow down the execution of the code. The body of the loop is repeated a small number of times, thus reducing the frequency of conditional jumps at the expense of code size (which could be important due to the existence of code caches). Such tricks are better left to the implementors of standard libraries.
Comment: Additionally, memory locality reduces cache misses.  Leaving it up to the interpreter to perform this allows it to iterate in the best order
Answer: Underneath there are normal loops, or vectorized instructions (SIMD instructions where possible).
It is not possible to avoid loops at all - you can unwind them if you know number of iterations in advance, otherwise basically you cannot get rid of them.
For example in Matlab if you want to check yourself - after exporting to C there are normal loops, and for those functions that are not exported - they are using some reduction methods to speed up (which should work, but for some reason Matlab is very slow).
As Yuval Filmus correctly stated, loop unwinding is degrading performance, it was only for educational purpose of avoiding loops, never optimise like this (your compiler probably does better job, or you should exhaustively test the code in case you know better).
Also there are some optimisations under the hood, for example taking some matrix features or some kinds of decompositions, so it is hard to tell what is used at the moment.
So if you try to implement straightforward method it may differ from these languages.
Normal loops should use register to loop counter, sometimes they don't.
Side note, you should use Matlab compiler, this speed ups a lot.
Answer: Consider the following simple python3 script:
import numpy as np
import numpy.random as npr
import timeit

# Naive implementation of inner product
def inner_product(vec1, vec2) :
    dot = 0
    for ii in range(N) :
        dot += vec1[ii]*vec2[ii]
    return dot

N = 10000
v1 = npr.rand(N)
v2 = npr.rand(N)

# Print v1 dot v2, computed three different ways. There are others.
print (inner_product(v1, v2))
print (sum(v1*v2))
print (np.inner(v1, v2))

# Time those three approaches.
setup="from __main__ import loop_inner_product,v1,v2"
print(timeit.timeit('inner_product(v1, v2)', setup=setup, number=100))

setup="from __main__ import v1,v2"
print(timeit.timeit('sum(v1*v2)', setup=setup, number=100))

setup="from __main__ import np,v1,v2"
print(timeit.timeit('np.inner(v1, v2)', setup=setup, number=100))

The first three print statements print the same value; after all they are computing the same thing (to within numerical precision). However, the results of the next three print statements are very, very different.
On my computer,

sum(v1*v2) is three to four times faster than is inner_product(v1,v2).
That's not bad, but it's not that good either.
np.inner_product(v1,v2) is almost 1000 times faster than is inner_product(v1,v2).
Now that's an improvement.

There are a number of things that make inner_product so very slow. One of them is the loop itself. Each iteration calls a generator function that creates a new python object that contains the integer. All of those objects need to be garbage collected. Another issue is the indexing. This involves a call to the numpy.array.__getitem__ function. This function is rather complex; there are lots and lots of ways to slice and dice a numpy array. Compare that to the C equivalent:
for (int ii=0, size=v1.size; ii < size; ii++) {
    sum += v1[ii]*v2[ii];
}

Here, no new objects are being constantly created and destroyed. No functions are being called over and over again to increment the iterator or to access an element of the array. An optimizing compiler will most likely keep the index, the size, and the sum in registers.
Whenever you find yourself writing a loop in a language such as python or matlab, you should rethink what you're doing. If you rewrite it without a loop and the speedup is only a factor of three or four, you should rethink what you're doing. There's probably a library function implemented in C, C++, or Fortran that does exactly what you want, and that might well result in a speedup of a factor of 1000.
Answer: Wrong. You should write your solution (with or without loops) to be as clear and natural as possible. If it is a bunch of nested loops, so be it. This makes your program/script easier to write, easier to check it is correct, and easier to modify later on when the need arises.
If after getting it right you see that it is too slow, then you can start worrying about rewriting those parts you measure to take up most of the running time for speed. This is a judgement call, your time is much, much more valuable than the computer's.
Comment: This is wrong, at least in the world of numerical / scientific programming. In a high order language such as python or matlab, one should know how to use the language and its massive libraries. A naive matrix*matrix function in matlab would use a triply nested loop. Much better is use matlab's powerful multiplication operators. Compared to the loop form, that code would be much shorter, even more obviously correct, and orders of magnitude faster. Loops in high order languages are something to be avoided. They are not pythonic. (What's the matlab equivalent of pythonic?)
Comment: @DavidHammen, in such a case the most most natural program (for somebody in the know, at least) *will* use the libraries.
Comment: In some cases you can't even start to think about making a loop because you know it is too slow and won't achieve real-time speeds for processing for example camera images coming at 30 Hz, and loops over pixels in image processing would be qualified as "stupid"
Comment: Often you can tell in advance that it is necessary to vectorize your code. Even when it's not clear, in the future you might want to reuse your code with more data, at which point vectorizing becomes necessary.
Comment: @YuvalFilmus, "bum the code today because you *might* someday use it with milions of elements" is a classical case of [premature optimization](http://c2.com/cgi/wiki?PrematureOptimization)...
Comment: @vonbrand It depends on the context. Scientific computing is different from other kinds of programming. The skilled programmer knows how to write vectorized code and does so routinely. It would be a big headache to vectorize code at a future stage. Better get it right the first time.

Loops at low level


Download stuck at 100 mb every time

Question: I downloaded 600mb Dota 2 the first time then paused and shut off my PC. The next day the download started from 100 mb. I resumed the download, it went till 800 mb, but the next day when I opened steam on offline mode it showed 1.6 GB downloaded. I restarted steam in online mode then it resumed from 200mb.
Comment: Bad internet connection or hard drive? Try to add some details about your PC and internet connection.
Comment: Maybe the Steam downloader.  I don't trust Steam myself, so I never use it, but I see a pattern there.  How big is the resultant file locally as per Windows' `Explorer.exe` or `cmd.exe`?
Comment: Did you check for integrity of the game files, through Steam, so as not corrupt the existing files when you pause and resume download?
Answer:
Delete Dota 2 and download it again.
Check if your disk is somehow fragmented; if it is, launch Defragmentation.
Make sure you have a stable internet connection.

If none of the above work, try to download it on another computer/laptop at your home with your internet.

Download stuck at 100 mb every time


Node MySQL: Return a value from a column

Question: I'm using mysql in a Node application, Discord bot. I want to select a value from a column but am having trouble in doing so. This is my code:
let prefix;

connection.query(`SELECT * FROM guilds WHERE guildid = ${message.guild.id}`, function(error, commands) {
    if (error) throw error;

    if (commands.length) {  // the guild is in my database
        commands.forEach(value =>
            prefix = value.prefix;
            console.log(value.prefix) // doesn't fire
        }
    }
});

message.channel.send(prefix.length) // crashes [Cannot read property length of undefined]

I now set prefix in line 1 to "3"and it works as expected ( I think ), printing out the value in my database, which looks as follows:
| guildname | guildid | ownername | ownerid | prefix |
------------------------------------------------------
| MyServer  | 7373732 | Rusty     | 636363  | !      |

Answer: The console log event not firing would imply empty result set from the query.
Although it looks like this isn't the exact code you are using, the parameter list to forEach looks wrong.
    (value =>
        prefix = value.prefix;
        console.log(value.prefix) // doesn't fire
    }

Try letting the sql engine include the variable value via sql parameters instead of using string interpolation. I mean something like:
connection.query('SELECT * FROM guilds WHERE guildid = ?',[message.guild.id], function(error, commands) { ...

https://www.sitepoint.com/using-node-mysql-javascript-client/
What is the value of message.guild.id?


Trying to connect Access 07 for use as a front end to a SQL Server 2008 Express database

Question: Relevant background-
I'm a noob working my brains out for over a year into trying to make a database in MS SQL Server 2008 Express with the end idea for the front end being Access. After tons of reading and slaving over my schemas and three major revisions I'm finally ready to connect it to Access and I'm just striking out all around. The Microsoft Access IN and OUT book says it has instructions for this but they're on the included CD in the bonus material which seems to be the only part of the CD that will not work. Everything I've found on the internet hasn't gotten me there. The best I think I've found was an answer on this site but even the list of things to do given as the answer have me hitting some walls that I just haven't the foggiest of how to get through.
I'm going to lay these out and mention what I have and haven't done with each.
Just for background I'm running Access 2007 on a Vista machine that I'm pretty sure is up to date on the service packs (I should have 7 in a few days, it's in the mail finally) and I'm running SQL Server 2008 Express with the management studio.
Here's the answer that I was referencing--
The answer was given by the user "Renaud Bompuis" at the following link
Connect Access 2007 to SQL Server 2008 Database
There should be no issue with connecting Access 2007 to a SQL Server 2008 database.
You need to make sure that:
1.
<code>  Your SQL Server 2008 database is accessible, ie that it isn't locked down and that it is accessible to the machine(s) where you will have your Access 2007 application.
  A few things to check:
      * In SQL Server 2008, go to Properties > Connections > Check "Allow remote connections to this server".</blockquote>
</code>
I checked and the check box is checked to allow remote connections. Since this is on the same machine I don't know if this is vital, but whether or not it is it's taken care of to the best of my understanding.

          * Enable TCP/IP in the Configuration Manager.

didn't think this was necessary since it's on the same machine but I did it all the same.

          * Make sure the firewall allows incoming connections on TCP port 1433.

This is one thing I didn't do since I really couldn't see how a firewall would get in the way if both instances (the SQL Server Express and Access 2007) are on the same machine under the same admin login. But if I'm wrong on this please tell me how to go about altering things.

          * You can also start the SQL Server Browser Service so your SQL Server instance can be found.

I did this, and I even restarted the machine, but I still can't get Access, nor the ODBC, to pull up the SQL Server 2008 instance on the machine. Nothing.

   2.
<code>  You have created an ODBC DSN (a System DSN) using Windows ODBC administration tool. If you're running on a 64 bit system, make sure that you're using the 32 bit version of ODBC to create your DSN, otherwise it will never be visible to Access which is a 32 bits application.
</code>

I went in there to make the system DSN and when I choose the SQL Server Native Client 10 thing and go to hit the drop down menu to choose the data source it pauses and then nothing comes up, nothing to choose from at all.

   3.
<code>  Once you have created the ODBC link (and tested it works) on the machine where Access is installed, you can just link the tables: In Access 2007, in the External Data ribbon tab > import > More > ODBC Database.
  Then select the DSN you create for your SQL Server 2008 database and chose which tables you want to link.
</code>

So clearly this last part I can't even try since I can't even get an ODBC link.
I have a feeling, being a self taught noob and all, that I'm probably missing something obvious to a professional or seasoned amateur but regardless of what my problem is it's driving me nuts. Having a good portion of the last year of my life put into this I'd really like to be able to make progress finally on the front end so that I can finally get some utility out of all my effort beyond just writing queries in SSMS.
Thanks in advance for any and all help anyone can give.
Answer: OK, so you're obviously having trouble creating the DSN. Have you tried using "SQL Server" or "SQL Native Client" instead of "SQL Server Native Client 10.0" as the driver? I've found a webpage with a few screenshots on creating an SQL Server DSN (scroll down to the section "Creating a ODBC DSN"), maybe they can give you some guidance.
If it all fails, could you provide a screenshot of the part of the DSN creation process where you get stuck?
Answer: I appreciate all yer'allz help. Even though I didn't really see much new and nothing directly helped me I did end up looking in the SQL Server Configuration Manager and the 'VIA' (whatever that means) was the only thing I hadn't enabled (since I hadn't read anything about it in all my investigations--I usually shy away from making modifications to settings that I don't have someone specifically telling me to modify) I hadn't previously touched it nor thought much of anything about the fact that it was the only thing I'd yet to enable.
Well I enabled it, restared services and YAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!
I'm now able to (and have successfully) created a ODBC DSN AND I've got Access connected to my database!!!!
I like this site!
Thank you all for caring and for presenting me stuff that led, however fumblingly, to a solution!
Be glad we are only connected through the internet otherwise I'd kiss ya!


Can I change the "strength" of perspective for camera?

Question: I want the grey cube to match the blue 2D-overlay, but as you can see, the right face of 3D-cube cannot match the right face of the 2D picture, because perspective is "stronger" on the blue drawn cube. Is there a term to describe the "strength" of perspective and more importantly, can I increase this "strength" so the grey cube could match the blue overlay better?
Comment: Try adjusting focal length on the camera object
Comment: @AllenSimpson, it doesn't quite work here the way I want it to. The cube just gets closer or further. What I want to do is to make the farthest to camera part of cube go further, while the closest part to remain on place
Comment: I think that's a 'dolly zoom'
Comment: Yeah, or more like the final frame of it. Never thought that applying it would solve the problem
Answer: As mentioned in a comment, the focal length is an important property. However, it may not be the only property you need to adjust, as the dimensions of the camera's sensor are equally important. And to get an exact match you may need to consider not only the size of the sensor, but also its physical aspect ratio (your reference image may well have been taken using a camera with a square sensor and then cropped to a 4/3 aspect ratio).

You may also need to move the camera object to get a better match, e.g. zooming in while moving away from the cube, or zooming out while moving closer to the cube. And last, but not least, you need to view your cube from the same angle as the cube in your reference image.
If your reference image is hand painted, it may not have correct perspective. The error may be subtle, but it may still make it very difficult to get an exact match.
Comment: Yes, making cube really close and decreasing focal length helped to distort it the way I need. Thank you!