Is there any relation between tyre pressures and quality of the tyre?

Question: I'm looking to renew one of the tyre on my MTB as it's on a dying stage. I see some tyres those have 40 PSI tyre pressure level and some have 60 PSI. They are both 26x2.00 so it can't be about width. Why would one manufacturer suggest much lower tyre pressure than the other? Does that show they have bad quality tyres?
Comment: @Ender Yes - I would expect that road riding would be easier with higher pressures (to a point)   Off road riding requires a larger contact patch/area.   Don't go so hard that the tyre is a rock, need to find the happy medium.   But none of this is related to quality.  Consider joining [chat]
Comment: Does it say if it's maximum or recommended pressure? Generally low pressure is good for off-road riding so high maximum pressure doesn't do much good and high recommended pressure implies that they aren't really for off-road riding.
Comment: They recomment 40 PSI for all sizes of bicycle tyres; 16", 20", 26" and 28". I understand it is a superficial thing. It is sad for me that a manufacturer from my own country doesn't take their job seriously. They can never achieve anything with this mentality.
Comment: What kind of riding do you do?  It's an MTB, but are you riding on mountains or paved roads ?
Comment: Very likely those tubes are designed for different types of riding. Tubes designed for MTB usage tend to be closer to the 20-40 PSI range, hybrids tend to be closer to 40-60 PSI range, and ones designed for road usage tend to be in higher ranges (and track tires have eye-poppingly high ratings). The rating though is (usually) just a matter of what the tubes are tested for unless it's a _very_ high pressure tube.
Comment: @Criggie I ride on paved roads. I think I should go for the higher pressure tyres, right?
Answer: No, the relationship you suggest is not the case. The opposite is almost true, but not in all cases.
The use cases where a 2" or 50mm wide tire should be ridden at 60 psi exist but are relatively uncommon. An example of such an application would be a cargo e-bike, tandem, or other very heavily loaded bike, or the disciplines that involve extreme drops. But in a lot of other cases where someone fills a 2" tire to that kind of pressure just to ride around casually, they're making the ride unnecessarily harsh and bumpy for no benefit.
Limits to pressure suggest a lightweight and supple casing, which is desirable as long as it's balanced well with durability for the application. High pressure limits suggest a very strong or even overbuilt casing, which again has applications where it's desirable, but not usually in performance-oriented riding other than the gravity disciplines.
So, in other words, there are some good 26x2.0 tires that say max 60 or 65, such as a trekking/cargo/touring/tandem/commute/ebike tire where the emphasis is on toughness and therefore the casing can handle that pressure whether it's useful or not. But meanwhile, many bad or mediocre tires have high nominal max pressure ratings simply because they're cheap and heavy.
The other thing about the relationship between quality, strength, and nominal max pressure is manufacturers have choices to make about how conservative to be in the number they make up. When casings do bulge or warp from pressure it's usually not all at once, but happens over time and is a result of load, pressure, rim width, environmental conditions, what kind of minor damage they're picking up, etc. The question then arises of whether they turn to rigorous testing, the lawyers, or the dartboard to actually come up with the number. All are possible but since we're talking about the bike business, it's probably usually lawyers and dartboard competing for first place and testing third, in order of likelihood or share of influence. But that said, lighter tires are more apt to show a max pressure that is closer to a real hard limit and possibly even pushing it, because light bike parts do their thing by flying closer to the sun.
Comment: Just commenting for interest's sake: I wonder if track tires are the edge case where quality might be correlated with max pressure. We know that on smooth tracks, higher pressure = lower RR without worrying about impedance losses (from going over non-smooth surfaces). We know that track racers run what everyone else would consider absurd pressures.
Comment: Nathan's Answer might be true, but not for the reasons stated.

To whom is it not obvious that there is a definitive relationship between pressure and quality ?

The specs in Question clearly show that the manufacturers boast different expectations for their products.

All other things being equal, the pressure of 40- or 60 PSI pressure should be the deciding factor, but are all other things equal?

I'm guessing that as with any tyred vehicle, less pressure will be better sometimes, more pressure in other circumstances.
Answer: Don't take the pressure specifications on tyres as anything more than an "idiot guide": if you pump it to that value then you can be pretty sure it will neither spontaneously explode nor have unduly high risk of pinch flats – but that's about it. In most cases, the numbers will be far from ideal for whatever kind of riding you intend to do with it.
Typical pressures that make sense for MTB riding are between 1.5 and 2 bar / 20-30 psi. It's totally possible to go outside of that range, but you should only do it if you have a good reason for it. I variously run pressures between 1 bar and 4 bar in the same MTB tyres. For example, in mud and snow very low pressure makes sense.
This applies somewhat orthogonally of inherent tyre quality / reliability. With different tyres there may be different reasons for choosing particular pressure values. For example, light XC-oriented tyres are easily damaged. If you use them in gnarlier terrain than they were designed for, or with a heavily loaded bike, pumping to higher-than-ideal pressures helps somewhat protecting them from pinch flats. For downhill tyres this wouldn't be as much of a concern, on the other hand those have the problem of very high rolling resistance on tarmac or hard-pack, which can also be somewhat ameliorated by high pressure. In both cases, you sacrifice grip and riding comfort, but it may be worth it. And at least if using inner tubes, you can usually expect that a good-quality tyre will also cope with a lot more pressure than the manufacturer voiches for.


Is contempt factor used as a way to make engine games more interesting?

Question: Chess is believed to be a theoretical draw. So top chess engines, which are not too far off from theoretical optimum, tend to reach drawn positions, which are not too exciting.
My understanding is that to combat this, engine tournaments like TCEC force an "interesting" opening on the engines.
What I don't understand is why this should be necessary, when there is a seemingly more natural way to reach the desired effect - which is to use a contempt factor, i.e. a lower score for draws, for both players.
With high enough contempt, both engines will strive for complex, tactical, interesting positions for which neither is sure who will win, but are unlikely to result in a draw.
With the advent of ML-based engines like Alpha Zero and LC Zero, this is even more natural - the contempt can be baked into the training, so the engine doesn't just avoid draws in-game, the learned network treats drawish positions as inferior.
But I've not seen references to contempt being used that way - rather it appears to be a tool to maximize the traditional scoring, when there is reason to believe a difference in level between the engine and its opponent. Its goal is not to make games more interesting for us human observers.
So - am I correct that contempt is not currently an accepted way to make engine games more interesting? And if so, why not?
Comment: How do you know that "top chess engines . . .  are not too far off from theoretical opeimum? How could anyone know that, unless chess has been solved?
Comment: "...which are not too exciting." Objection, Your Honor :-) Just fix the first moves to 1.e4 e5 2.Nc3 Bc5 3.Na4 Bxf2+ so we finally find the truth about Hamppe-Meitner. Or take *any* (good) draw study.
Answer: Engine competitions don't use contempt to make games more interesting because engines that have high contempt are weaker than ones with low contempt. Put Stockfish (with handcrafted eval) with c = 100 against Stockfish with c = 0, and the latter Stockfish is likely to win. Therefore, if you force all competitors to use high contempt, then you don't actually have the strongest engines playing, and you cannot call your competition the "Top" chess engine championship.


Securing our browsing history and data

Question: Can our ISP's view our traffic and browsing data even when we are using HTTPS protocol? Is it the same for VPN? How can we secure our data from our ISP's?
Comment: https://security.stackexchange.com/questions/102357/how-do-vpns-bypass-isp-monitoring | partial related: https://security.googleblog.com/2018/04/dns-over-tls-support-in-android-p.html
Comment: https://stackoverflow.com/questions/3968095/how-does-https-provide-security
Answer: You're ISP (internet service provider) is your internet provider, so the short answer has to 'yes', they can monitor all traffic you generate on their network...because it's their network.
Now, encrypting traffic (HTTPS) can secure the CONTENT of that data, stuff like bank logins, blog posts, etc. Ideally this security works, but you don't really have any of confirming that fact with the ISP.
VPNs (virtual private networks) basically move you outside your network to someone ELSEs network. All your ISP should see from this is that you are connected to a VPN. At the other end of that pipe, however, your VPN provider has an ISP. It's nearly impossible to know how much that data is secured if it wasn't encrypted to begin with.
Hope that helps.
Comment: Can you clarify the meaning of _"but you don't really have any of confirming that fact with the ISP"_?
Comment: Your answer conveys a feeling of suspicion about how secure HTTPS is.  It's misleading.
Comment: I had in mind SSL stripping/MITM while I was writing that bit, but the necessary details to that seemed out of scope. That is probably not something an ISP would concern itself with unless warrants were involved, but I did not want to leave @multithr3at3d with the false impression HTTPS was completely secure. Make sense?
Answer: Yes ISPs can see network routing information as well as unencrypted data (such as DNS and HTTP). Some ISPs, also by law in the UK, will log some of this data. Some of this data is also transparently cached for faster browsing.
A VPN will effectively tunnel your network traffic down a padded connection to a third-party provider network, resulting in your ISP just seeing the network routing and protocol information (depending on VPN protocols used).

Securing our browsing history and data


Do most mortgage lenders refinance on the amount owed or the house value?

Question: Similar to previous mortgage question, but related to the amount that is financed.  If one owes 200K on a home worth 400K, what value does the lender use for the amount you have to borrow?  In other words, can one refiance an existing mortgage with a 200K balance by only borrowing enough to pay off that note, so that the new note will be for the previous balance - or do they force you to borrow at the appriased value?
Answer: The limit you can borrow will be based on the home's current value, but they do not force you to cash out equity (borrow more than you owe).
In your example you could refinance for just the 200k remaining balance, you'd typically do that if your only goal was to benefit from lower interest rates. You could also borrow up to ~80% of the home value if you wanted to trade some of your equity for cash on hand, maybe to pay for renovations.
Similarly, the duration/term of your new mortgage is flexible, some people choose to lower payment amount but extend the payment duration, others take a shorter term to further reduce interest rate and pay off their home faster than originally planned.
Answer: I am basing my answer on the United States.
Before you apply for the new mortgage:
 - Estimated House value: 400K
 - Current mortgage: 200K
 - Estimated equity: (400k-200K) or 200K
Most lenders will put a maximum limit on the new mortgage of 80% of appraised value. What you borrow depends on your income, your credit history, and what you want to do with any cash out.
The 80% rule means the most you can borrow is 80% of 400K or 320K. This assumes that the appraisal equals the estimate. If the appraisal is different the maximum loan will change.
So if you want the whole $320K that is fine. They will take $200K to pay off the old loan and send it to the old mortgage company. If you only want to borrow $200K to pay off the old loan, because the new rate is lower than the old rate that is fine also. You may decide to only borrow $250K to pay off the old loan and upgrade the kitchen.
Note that in late 2017 the rules changed about destructibility of interest in cash-out refinancing. How you use the extra funds impacts if it is deductible interest.
Answer: Lenders, have what's called Loan to Value- and they used this for creating loan decisions on refinance. The loan to value affects the interest rate, and usually the lower the LTV with best credit, income, etc will yield you the best rate and options to better loan programs.
Loan programs have specific lending criteria; for example minimum fico score 780, Full documentation- and verifiable income/taxes, loan; more importantly in your question is loan amount, and you guessed it- loan to value.
The LTV is simply the loan amount / value.  So a 100,000 loan amount (20K debt + an original loan debt of 80K) and an appraised value of 300K the LtV would be (100/300 = 33%). A 33% LTV can now be used to loan on. A lender may have a specific criteria that say's don't go over 70%, 80%. So they lend on the appraised value and the loan debt as a ratio, and as a criteria to the max allowed LTV in that loan program.
In terms of the loan, you (the borrower) can cash out for anything reason but a lender will use the max LTV in the criteria to determine if you are allowed to refinance, the goal is to be under that LTV to meet the program criteria, else if this doesn't work out you as a borrower has to find a new program with a higher LTV- which means finding another investor (lender) who is comfortable with taking on more risk. This is why mortgage brokers exist, they find you the best deal based on your scenario, opposed to a cookie cutter lender who will only work on easy credit loans such as good fico, low LTV, low loan amount, straight cash out refi- or low LTV purchase.


Stepper motor Weight

Question: I working on a project and witnessed that there are different stepper motors with same NEMA DD but different weight and different amp rating.
what does these different notations with same NEMA signifiy and how does these affect torque?
Answer: The NEMA number specifies only the physical size of the motor. Motors with the same size can have different torque / current rating / voltage rating etc.
Generally, motors with the same number of steps which dissipate more power (amp rating multiplied by voltage rating) will have more torque since you're putting more energy into the rotor to make it travel the same angular distance.
All of these parameters should be noted in the motor's datasheet, so when you need a motor with a specific torque, look for its torque rating.

Stepper motor Weight


I don't program in my spare time. Does that make me a bad developer?

Question: A lot of blogs and advice on the web seem to suggest that in order to become a great developer, doing just your day job is not enough. For example, you should contribute to open source projects in your spare time, write smartphone apps, etc. In fact a lot of this advice seems to suggest that if you don't love programming enough to do it all day long then you're probably in the wrong career.
That doesn't ring true with me. I enjoy my work, but when I come home from the office I'm not in the mood to jump straight back onto the computer and start coding away until bedtime. I only have a certain number of hours free time each day, and I'd rather spend them on other hobbies, seeing friends or going outside than in front of the computer.
I do get a kick out of programming, and do hack around outside of work occasionally. I'm committed to my personal development and spend time reading tech blogs and books as a way to keep learning and becoming better. But that doesn't extend so far as to my wanting to use all my spare time for coding.
Does this mean I'm not a 'true' software developer at heart? Is it possible to become a good software developer without doing extra outside your job? I'd be very interested to hear what you think.
Update: thanks everyone for your comments & answers. A lot of good thoughts and advice!
Comment: @Orbling What's this "real life" you're talking about like? Is it similar to WoW? Does it run on a 64 bit OS?
Comment: I think that just makes you more normal, you probably have more connection with what us geeks call "real life".  **Value that.**
Comment: @ChaosPandion: Quests suck in r/l, long, dull, and the loot is definitely not epic.
Comment: @biziclop - Its like WOW with better graphics and game play that is a lot more tedious.
Comment: For efficiency's sake, I recommend experimenting with new things and working on personal projects when you're supposed to be working. That way you still have your limited free time. :-)
Comment: Real Life is a cheap spinoff of Second Life, with a twist that you don't need to be in front of the computer to play.
Comment: It's more like The Sims, but you don't lose half your day using the restroom and showering.
Comment: @Orbling, RealLife is a web comic.
Comment: I sense a false dichotomy here when I read about spending all your spare time. Passionate, professional developers can work in their spare time within reason, without spending all of it.
Comment: No, that makes you an average developer. If you do passionate coding in your spare time you become a good developer.
Comment: You can't hoard in RL.
Comment: Figured it was worth saying - I don't always program in my spare time, because really, people need to have lives - but I love reading articles about programming, I hang out in developer environments (like SO), and I will often find myself reading about programming paradigms, design patterns, data structures, productivity blogs, etc...so although I'm not always __programming__, I'm almost always __learning__. I think that it's important to note that.
Comment: @Orbling I guess you have to wear special glasses for them.
Comment: @biziclop: Aye, though I've heard that actually makes them appear further away, increasingly so as you try to look.
Comment: @Michael: Tell that to the bankers!
Comment: @Brian And you also don't live in a house with no doors and set yourself on fire while making dinner. ... What? >.>
Comment: Personally, if I didn't do it for work, I would do it as a hobby. However, since I it for work, I do other things for hobbies. Something to consider.
Comment: @Chad: That's a [very good looking website](http://www.reallifecomics.com/).
Comment: I code exclusively in my spare time
Comment: Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds
Comment: I absolutely LOVE programming but I don't program in my spare time, mainly because when I'm given the choice about what to program I'm utterly paralysed by the opportunities.
Answer: IMO this attitude comes from people that have horrible, soul sucking jobs, combined with piss-poor time management skills. If you're basically typing web forms all day, go out and get a more challenging job, or start your own.
Here's the thing. A concert musician (cellist/pianist/whatever), will practice at most 6 hours per day. Most only practice a few hours per day. at the highest levels
People say program more because you learn more, but that's a smokescreen. 8 hours per day is plenty.
Progress is NOT linear. It's logarithmic:

The only reason that a musician might practice longer than 3 hours, is that they need to squeeze out the extra 1% that those hours gives them. If you think that applies to you, re-solving a problem CS solved 2 decades ago, then you have a prima-donna complex to boot.
I've worked in pressure cooker companies before, and trust me, the actual amount of work that those guys get done isn't any better than a company like 37signals that places constraints on the amount of work: http://37signals.com/svn/posts/996-why-i-love-working-with-family-people
What ends up happening is that sure, you may be in front of a computer for 10-12 hours, and in the office for 2 more, but that doesn't include the 90 minute lunch you took, the 2 hours you spent browsing discussion forums, and the hour break you had to play one of the many games laid out in the office (foosball, pool, yada...).
Look back at that graph. Now back to me.
Your mind actually has the opportunity to expand much more if you engage it in some other activity: Learn to play an instrument. Learn a foreign language. Better yet get out and get some exercise, and connect with real live people.
On the logarithmic nature of productivity:

In the renowned 1993 study of young
  violinists, performance researcher
  Anders Ericsson found that the best
  ones all practiced the same way: in
  the morning, in three increments of no
  more than 90 minutes each, with a
  break between each one. Ericcson found
  the same pattern among other
  musicians, athletes, chess players and
  writers.
For Real Productivity, Less is Truly More

This is actually a well-known principle in the business world, I'm surprised more programmers haven't heard of it.
Update: More on the Ericsson study.
The whole notion of it taking 10,000 hours / 10 years to become proficient actually comes from the studies done by Ericsson, not from Malcom Gladwell.
As we all know, you can have 1 year of experience repeated 10 times... so just having your ass in the seat for 10 years doesn't qualify. What does qualify is what Ericsson calls deliberate practice.
He has found this principle to hold true in athletics, music, writing, chess, and mathematics. He further defines deliberate practice as being so effortful, that even at the highest levels you can only put forth about 4 hours per day. Otherwise you will suffer from overtraining or burnout. Again, he recognizes that there are diminishing returns for deliberate practice, up to about 4 hours.
On the subject of not having a good/challenging job:
Hogwash. Either get a better job, or here's an idea: Make your current job into something it's not, at least right now.
One of the best programmers I knew walked into a job as a maintenance programmer on a legacy system that consisted of dozens of programs and hundreds of thousands of lines of code. Most of which had been hacked on over the years so much that you would have to say there wasn't any coherent design to it anymore.
This was pretty much a go-nowhere, dead-end job. Management wanted you to keep your head down, and just fix the damn bugs. The good developers were working on the greenfield project. People either came here to sit out their remaining days until they retired, or gain a few years of experience before going on to new application development. Whereas most programmers would complain about the lack of career development, or the opportunity to learn new things, or not having exciting projects to work on, or more generally just bitching about no one enabling them, this guy simply sat down, and went about doing the work that needed to be done.
And over the course of 2 years, he had transformed that system from a buggy hell of spaghetti code to something that was a thing of beauty and functioned like a swiss watch. So complete was the transformation, that the VP of the division started paying more & more attention to the existing project, and started questioning the value of the greenfield project. Although he didn't have a title, the operations people went to him as the de-facto leader of the group. When I left, the VP was talking about creating a new role for him as a systems architect...
I'm not sure what happened to him after that, but he taught me a couple of very important lessons:

Your job is what you make it, and there's interesting problems to be solved everywhere. If you hate writing CRUD screens, solve the problem by automatically generating them.
Don't sit around waiting for opportunities to come to you. Chances are they never will.
Comment: This, and many other answers, put far too much emphasis on programming as "practicing". To continue on the musician comparison, believe it or not but they actually also play for pleasure. What interviewers looking for someone who programs in their spare time are looking for is not someone who feels the constant need to practice all the time. They're looking for someone who is passionate and really enjoys what they do. If you're passionate about your job, you often turn it into a hobby as well, and it's hard to get away from it. It's no different from picking up any other hobby.
Comment: The musician's example is not really good. When a musician reaches a high skill level, when he has learned all the theory, when he can compound songs with eyes closed, when he can play over 9000 instruments at the same time, he has nothing more to do.

The programmer or computer engineer needs to learn about new technologies ALL the life. Always there's something new to learn.

So, answering to the question, a guy that programs all the day and has no social life is far better than a guy that does not program in his spare time.
Comment: @GabrielLlamas The music theories are basic things such as fundamentals of algorithms, distributed computing, and operating systems we learn in college.  These basics doesn't change that much overtime.  Back in about 20 years we already had the model of client and server, and now we still have the model of client and server.  So the basics of client and server still applies, it's just the high level things are changing rapidly.  You can think of different instruments as different technologies such as HTML, Javascript.  But if you are able to apply fundamentals, then things will be similar.
Comment: Another example is like once you know how to program in c, learning c++ won't be difficult.  I remember I solved my roommate's programming questions using Scheme without knowing any Scheme.  Learning Scheme wasn't hard for me at all because I know on high level, what a functional language was.
Comment: **Commenters:** comments are meant for seeking clarification, not for extended discussion. If you have a solution, leave an answer. If your solution is already posted, please upvote it. If you'd like to discuss this question with others, please use [chat](http://chat.stackexchange.com/rooms/21/programmers). See [the FAQ](http://programmers.stackexchange.com/faq) for more information.
Comment: @Gabriel Applying programming skills is just part of your work. Another part must be refining existing skills and gaining new skills. If you don't leave time in your work for the learning and compensate by putting in too many extra work hours, you're falling into the productivity trap that el fuser mentions.
Comment: +1 for the spectacular anecdote. Sometimes we are so obsessed with solving intricate challenges that we often forget perseverance is the key to success.
Comment: As for the concert pianist analogy: that's not quite true. Some  pianists work harder (V. Listisa, for example, claims 12-14h daily practice). Some, especially older virtuosos, hardly practice at all anymore (to be honest, technical proficiency is lost with age - Horowitz, perfectly accurate at 40 was missing quite a few notes when he was 80. They make up for it with original, mature interpretation, though - Horowitz was still universally regarded as one of the best by then). Don't really know about other instruments, piano actually *may* be unique with this respect, maybe on par with violin.
Answer: There is more hidden in this message.
Many enthusiastic programmers like to explore things, to experiment, to follow their ideas, that's how we learn and obtain our skills and vision.
Usually you don't get to follow your interests during work hours. You just do things you are told to do and that's it. Only few of us are lucky enough to do at work what we would do personally even if not paid.
Therefore if you're not doing anything extra, you're not developing to your potential. And that is exactly the problem.
Comment: If you like programming and don't enjoy your job, you should spend your free time looking for a better job.
Comment: -1 As others have noted in other answers and comments, this implies that you can't realistically get a good, fun and challenging job. In my personal experience this is not true. I have learnt a lot of new things in most of my jobs so far. IMHO it is a question of personal attitude at least as much as that of company culture.
Comment: True. One thing to be aware of is any Invention Agreements you may have signed during intake. We didn't use those, but I had a verbal agreement with my programmers: if it's outside work hours and is not directly competing with the company, then have a good time. I didn't even mind if they used company equipment, although there was general agreement that it was "cleaner" to keep it at home.
Comment: It fine to follow your curiosity out of hours. That might be in how to deploy the next version of windows automagically throughout your whole company overnight (Mwah hah hah). Or it might be photography, or beer brewing, or rowing. Outside interests make you a more rounded person. It does not HAVE to be related to your day job.
Comment: wow that's a huge relief, as sometimes i feel that i'm interested in learning about other aspect of programming but the work just makes everything feels like a grind.
Comment: +1 I think that's it. TBH even if your day job does satisfy you, chances are that the remit of what you are doing is limited, and no matter how cool your boss is, for good reason, he won't be happy about you spending a few weeks hacking through Michael Abrash's Black Book.
Comment: I think it is very poor if you can only do one kind of things on your life. I work eight hours a day, I program and design things, I learn about new technologies in my spare time BUT I also spent time with my son, with my wife, I play piano and give long walks... And I think I need this kind of parentheses to be good in my job.
Answer: It doesn't make you a bad developer, but unfortunately, you still have to compete with the ones who do.
Read this, from Seth Godin's Blog:

Unreasonable
It's unreasonable to get out of bed on a snow day, when school has been cancelled, and turn the downtime into six hours of work on an extra credit physics lab.
It's unreasonable to launch a technology product that jumps the development curve by nine months, bringing the next generation out much earlier than more reasonable competitors.
It's unreasonable for a trucking company to answer the phone on the first ring.
It's unreasonable to start a new company without the reassurance venture money can bring.
It's unreasonable to expect a doctor's office to have a pleasant and helpful front desk staff.
It's unreasonable to walk away from a good gig in today's economy, even if you want to do something brave and original.
It's unreasonable for teachers to expect that we can enable disadvantaged inner city kids to do well in high school.
It's unreasonable to treat your colleagues and competitors with respect given the pressure you're under.
It's unreasonable to expect that anyone but a great woman, someone with both drive and advantages, could do anything important in a world where the deck is stacked against ordinary folks.
It's unreasonable to devote years of your life making a product that most people will never appreciate.
Fortunately, the world is filled with unreasonable people. Unfortunately, you need to compete with them.
Comment: You make the assumption that developers are'nt challenged at work and don't enjoy their work. It's not true. **The people who only program at work don't program at home because they are fully satisfied already**
Comment: Yeah, its also unreasonable to work 8 hours a day and then go home to work some more. Who are you working for? And why? You need to answer those questions (who's paying? why? to get what?) If you are mentally worn out by the end of a day the best thing you can do for yourself is - something else!
Comment: -1 It's unreasonable to call a lot of reasonable things unreasonable. It adds nothing to the question and just sounds ok, mostly like a lot of things Seth Godin writes.
Comment: -1 because a) the quotes are not directly related to this question, b) IMO (most of) these things are not unreasonable at all. Lots of reasonable people can think long term as well as short term. OTOH most of us are experienced in inventing nice (and fake) rational explanations for our lazyness / incompetence / carelessness :-(
Comment: "It's unreasonable to expect a doctor's office to have a pleasant and helpful front desk staff."  No, it's not.  What's unreasonable is doctors charging what they do and then subjecting us to rude office staff, long waits in their office waiting rooms, and being disrespectful personally.
Comment: that list can be split in two: those that start with "it's unreasonable to ..." and those that add "... expect to...".  IMO, it's totally unreasonable to expect such things, but it's totally reasonable (even in a selfish way) to __do__ the 'unreasonable' things
Comment: For the -1s, I think the point of the answer was that not programming in your spare time wont make you a bad developer, but that you will still have to compete with those that do, who will more likely be better developers because of it.
Comment: Almost none of those items are unreasonable to expect. This is an absolutely ridiculous list and proves nothing.
Comment: @HLGEM - Unfortunately, there is a large group of people out there that WOULD say that this is unreasonable.  I think it's pointing out that highly successful people go one step above and beyond others.  It's saying that you don't HAVE to program in your spare time, and it doesn't make you bad if you don't program in your spare time, but is, in fact extra practice that can give you an edge above those that don't.  If you don't think it's unreasonable to go that extra mile, then you're probably, even if slightly, positioned to be more successful than those who don't.
Comment: @Kaz: Exactly.  I think some may have not read all the way down to the last line to get the point.
Comment: I don't need to compete with them. They don't want my job. And I don't want theirs if it requires I spend what free time I have still working. I learn on my job, and that's enough. When I stop learning, it's time for a new job. I'll take the ones slightly too boring for these "superstars".
Comment: Then you need to also compete with those that aren't.
Comment: it's unreasonable to say that those things are unreasonable just because you are too lazy to do them.
Answer: To answer the question posed: Not programming in your spare time does not make you a bad developer, however, programming in your spare time can make you a better developer.
Programming in your spare time certainly won't hurt your skills, but you shouldn't feel obligated to do it. Programming seems to be a relatively unique field because for many people it is both their job and their hobby, so they enjoy programming in their spare time.
Comment: Programming isn't unique in having it as both a career and a hobby.  A couple examples:  I once knew several airline pilots have their own small planes which they fly for fun.  I've known professional astronomers who stargaze on the side.
Comment: By "_relatively_ unique" I meant that it is one among few, but certainly not the only one.  I know many more people who, while they might enjoy their job, wouldn't spend time doing when not getting paid.  It is often difficult to get a job doing what you are passionate about.
Comment: 1: Technology, languages, and techniques change so frequently and so rapidly. Programmers *must* spend some time off the clock honing their craft. // Related Question: Would you feel comfortable with a PCP who didn't read medical journals?
Comment: I think this answer sums up the situation best. But it entirely depends on one's situation. If your job fulfils all your programming needs, in terms of pushing yourself, keeping up to date with technology, etc, there is far less need to do work in your own time. However, if your job is fairly easy, using older technology, then some time should be spent improving your skills and knowledge in your own time.
Comment: @shortkaik "programming in your spare time can make you a better developer" - That's not always true. If you're challenged at your work, then if you're also programming at home, that will contribute to your exhaustion and burnout more than to your skills, also this can harm your productivity at work. On the other hand, if you're not satisfied with what your job gives you (and takes from you), additional coding after it may be a good decision.
Comment: Programming isnt unique in this case. Kitchen chefs have the same story, and believe me a lot of other professions ...
Answer: No it doesn't make you a bad programmer.  Depending on what you do it may make you a better programmer in the long run.  Early in your career it may influence how fast you learn the variety of skills you need.  However, you may be picking up skills and information that will help in the long term.   Getting some exercise wouldn't hurt either.
There is a fair amount of research that shows performance peeks around a 40 work week.  While we can be production for a period of time working longer hours, in the long run we loose efficiency.  The research I have seen shows people working 80 weeks are about as productive as those working 40 hours a week.
There are a few things you can reflect on off (or on) hours that may help you perform better:

What are you doing?  Can you do it better? Do you need to be doing it?
What are you learning?  What do you need to learn?
What problems are you running into?  Who is best to resolve them?  What can you do?
Comment: @Heiko It the work is sufficiently different then you may be able to do both.  My first couple of years after graduation, I regularly exceeded 40 hours a week, but applied a wide variety of skills.  Learned a lot, and didn't appear to hit the performance wall.  Thankfully, I had a friend who would drag me out of the office sometime in the evening.  On another project I went home at 2PM when I realized I hadn't accomplished anything in since 10AM.  Still billed the 4 hours.
Comment: Programming as a hobby does not mean to work after hours on the biz job - this definitively does not scale. But programming a game on iPhone in ObjC as hobby can improve your skills and total productivity at work (if the work is e.g. writing financial apps in Java EE).
Comment: @Heiko True, but there are a lot of other skills other than programming that can make you a better programmer.  A good developer has many skills besides programming.
Comment: Of course :) I was especially referring to the "max productivity at 40h" - which sounded like if you do 5h hobby programming, you can only do 35h at work. Which *I* don't think is right
Answer:
Is it possible to become a good
  software developer without doing extra
  outside your job?

Definitely.
It may take longer than if you were to spend extra hours honing your skill. I've also found it difficult to put enough time into self-improvement if I'm employed full time and do little programming outside of work hours.
When I was younger, I put in much more time into learning than I do now.  The concepts I use day to day are deeply ingrained at this point, and it seems easier to acquire additional knowledge with this experience under my belt.
"Good" programmers seem to put in the extra hours more because they are obsessive by nature, tend towards the anti-social end of the spectrum, and genuinely enjoy programming and the whole solve problems cycle.
Answer: In the big scheme of things it's all about finding the right balance in life.
What's important is whether you enjoy programming and whether you keep learning no matter what level you're at. Whether or not you program outside work does not automatically make you a "good" or "bad" programmer.
To give a personal perspective, I've been programming for about 25 years (first as a kid, then professionally). I absolutely love it.
However, I almost never program outside work. This has to do with several things:

I am very lucky in that at work I get to do what I love, every day, all day long.
Quite simply, there are other things in life and there are only so many hours in the day.
Comment: -1: Yes, there are other things in life, but that doesn't answer the question; you're simply trying to convince yourself that you're choosing the best path.
Answer: You can become a good programmer just coding during work, especially if you manage your career well.  However, the greatest programmers code during their off-hours as well.  Having said that, a person who picks good jobs with lots of learning opportunities, uses their time at work well, and so forth will be a better programmer than someone who codes at home because he can't find jobs that provide interesting challenges during the work day.
While coding at home is valuable, I would say that maximizing the value of your work environment (by learning from coworkers, picking good jobs, managing your career aggressively) is often even more valuable.  The greatest programmers do both, plus have great attitudes toward learning and mentoring others.
Comment: "However, the greatest programmers code during their off-hours as well."  **You have no evidence for this whatsoever.**
Answer: The real issue is whether a new developer is coding enough (on challenging enough problems) to get through a few hundred thousand lines of practice code and become a decent programmer.
This can in theory be done at work, or on your own time, or both. Practice does have to be somewhat self-directed, so you can learn what you need to learn. That means work that's a little flexible.
Lots of times entry-level jobs are a bunch of bug fixing or other work that isn't going to teach you to be good. What you need to do is write a lot of code from scratch, and that code will probably be bad. It's hard for employers to pay for this. That's why people end up doing an open source project on the side or launching a startup or whatever.
When people say you have to program in your spare time, I think it really means that you have to power through years of meaningful practice early on. You have to do whatever it takes to get the practice and learn to write and maintain a large codebase from scratch. If nobody's paying you to write a probably-disastrous series of projects from scratch, then spare time is the only option.
If you already did the practice when younger and became a good programmer, I don't think you're going to lose the baseline skills if you keep it 9-to-5 later on. Later on it's more a matter of keeping up with new technology which isn't so time-consuming.
However, it's a rare entry-level job that would give you the quantity and quality of practice all by itself to become a good programmer in the first place. A new developer needs to take the initiative to learn, not just hang out in an entry-level job doing entry-level tasks.
It would be really tough to become a good programmer from scratch if you already had a family and were heavily emphasizing work-life balance. Just as it'd be really tough to become a doctor or become a virtuoso musician or anything else in that situation. There's a reason people tend to get through their thousands of hours of practice when they're younger rather than when they're older.
Answer: If I spent time in the next six months developing a basic game in my spare time and you don't, and supposing all other things are equal (they never are), which of us would know more? Which of us would have more skills and experience?
This effect would be cumulative, as earlier off-hours knowledge would feed into new work and new off-hours knowledge.
And that's why people advise to program in their spare time, insofar as I can tell.
Answer: Between great and bad there are many levels in between. You can't become a great developer by doing it only 8 or so hours a day, possibly working on problems from a very limited field.
If your job is varied enough, you can become "decent" or "accomplished" or whatever adjective you prefer, but to be a great developer you'd have to be a bit mental, I'm afraid.
Another reason for doing hobby programming is that in a job you often have to adhere to suboptimal standards and make compromises in general and even when you do learn a new thing, you might not be allowed to use it.
And yet another, even more prosaic one is that whatever code you write at work is owned by your employer. You can't return to it and learn from your old mistakes years later, when you're working for someone else.
Answer: It takes 10,000 hours of effort to become an Expert in anything. [Michael Gladwell, "Outliers"]
So, doing extra work before you get to that level will speed you along the path to real Expert status.
Once you are past that level, then spending more time will have small / diminishing returns.
Comment: But what is a "thing" in anything? Is "programming" a single "thing", or are the things "haskell", "lisp", "java", "python", etc? Or "functional programming", "GUI programming", "Low level programming", etc? By itself, that tell us nothing.
Answer: You shouldnt look at it as "Does it make me a bad programmer" because like every skill more practise only makes one better.
So if you want to be better than you currently are and learn new technologies and domains that your work doesnt allow, that is where the extra effort and time spent comes in handy.
But extra time spending coding (just to prove to someone that you code extra) doesnt necessarily mean you become a good programmer unless you learn what you do and do something different or improve upon what you already know, rather than blindly cut/copy/paste and putting together hacks. Putting extra hours and doing the same thing over and over in no way do I think is going to help you improve.
Comment: I think the OP's point is that some  programmers spread the idea that if you don't program outside of work then you're a bad programmer.  I'd lost count of the number of times I've seen posts on SO, here, & elsewhere in which someone says that when interviewing a prospective new hire they ask what side projects the interviewee has going, and if the answer is "None", then the interviewee isn't seen as passionate enough about programming as isn't considered for the job.
Comment: +1 - It doesn't do much good if all you do is what you are already doing at work.
Comment: Just practice alone doesn't make you better, you have to rpactice the right things ro you can actually get bad habits ingrained even nmore and become worse.
Answer: During the day your programming is short bets.  There's money to be earned, you know exactly how much and what for, and you don't have a lot more to gain than a paycheck.
At night you're working on long bets - crazy ideas that will mainly not work at all.  These are the projects that will catapult you out of the rank and file.  This is how you become the inventor of PHP rather than the code monkey using it.
I interview lots of programmers, and whether they have done interesting oddball things outside of working hours is an instant green light.  It's surprisingly rare.
Though I will say this: there was one time a guy who did a lot of cool stuff outside of working hours turned out to be a total dud of a hire.  I'm still stumped by that guy.
Answer: Being a good software developer in heart,depends really upon your heart. You can try to be a great musician and put a lot of time on music,but still that doesnt make you a good musician.You need to enjoy what you do in order to be good in that.Initially i was having the same questions you had, but now because of my likes i have started doing the extra things on software other than the normal work.It improved my performance in the normal work and also provied me with lot of time to involve in other activities not related to software. So the base line is enjoy what you do and you will eventually do what is required.
Answer: The real question is what you are doing all day.  The analogies to athletes and musicians are usually not applied correctly.  Your day job is not practice, it's performance, unless you have the explicit ability to spend part of your work day in genuine "practice". How do you know? If you never have the time to do anything "right" or learn a new language/technology/framework/etc thoroughly, then you aren't practicing, you're performing. Professional athletes and musicians don't get better during the game or the concert, they get better during focused practice. So, if you're like most, the only time you have for genuine coding "practice" is outside work.  That being said, it's only worthwhile if it's focused.  If you hack all day and then hack all night, you just get tired, not better.
For example, you need to optimize a piece of code at work and you throw the usual profiling tools at it and speed it up maybe 50% and move on to the next task but you think there are other things you might do that would help even more but you don't have the time allowed to try them.  If you take that piece of code home with you and spend a few extra hours really wringing it out, you are learning techniques that make you better the next time you optimize something. You aren't doing the same thing at home as at work.
Practice is about adding skills and honing skills and those activities are necessarily done in an artificial way (it's like isolating a muscle group in the gym, nobody does that in normal physical activity). Building apps at home is not automatically practice.  The work at home should focus on the techniques and the process, not the end product. If an end product is what you need to be motivated, great. Just don't fall into the trap of developing it the same way you do at work.
The coding kata movement is an example of what practice is all about.
Answer: To answer your question: No, it doesn't make you a bad developer.
However, it might make your professional life down the road a bit harder. If you've got a job where you're constantly learning new technologies that will help you further your career path (whether that be promotions at your current job or new jobs at different companies), well then you're set.
But if you're currently working at a company where the technology used rarely changes, then in 2 or 5 o 10 years you might find it hard to get that next job. If you're coding at home with new technologies and have something to show for it (app, website, open source project, etc), then you'll find it much easier to get that next job.
Of course, you might be completely happy doing the exact same thing for the next 40 years, and as long as your company and the technologies continue to exist, then you're set!
Answer: There have been times in my life where I did a lot of coding outside of work, and times when I did none because I was working on other things. You should always be learning, but it does not mean you always have to learn about programming in your spare time. If you want to work on some other skill, be it carpentry, needlepoint, gardening etc in your spare time it will help you grow as a person.
Just don't fall into the trap of thinking you know all you need to know about programming so you can stop learning.
Answer: This is indeed an interesting post. I have been developing software for the pas 10 years and love my job! I too have a lot of hobbies and try to manage them properly. But I do get a kick out of trying new things spending an hour or two in front of the pc before going to bed. In my case, I am addicted to studying and writing game code. I don't always have time playing games, but I love reading code about games. To be honest, i think the best code I've ever seen came from games and I apply these skills to my code at work. I constantly learn EVERY SINGLE DAY, so IMO, if you are a developer, you'll never reach your peak, there is ALWAYS a better way of doing something....
Answer: This is a great post.
I would say, no, it doesn't make you a bad programmer.  If your reviews have been good and you complete your tasks well and on time then you are quite the opposite.  In all honesty, I am envious of you that you get your fill of the code while at work.
The main reason I program in my spare time is that I don't really care for what I do at work and I use my spare time to do what I like.  What I enjoy doing is video game programming.  There isn't a valid games company to work for where I live (I have a family here now) so I help out with indie games on the side when I can.  It's the only way to cure the itch.  If I did what I loved all day then it would be highly likely that I wouldn't do it in my spare time.
Answer: My advice will be : Use your commute time to learn stuff, to keep you informed : read IT books, listen to Dev podcast, etc.
Regarding your post-work activities : doesn't change anything. Otherwise, you'll become a boring person.
Answer: It doesn't make you a bad developer, it might not even make you a kind of "ok" developer it just makes you what you are. I think though, that you'll find most people that are really excellent hackers tend to like to try to new things. At any given time I will be investigating many different languages, databases, web frameworks, robotics, etc. I have two little kids and a wife, mortgage, all that stuff - but I look forward to the times that I can get 2 or 3 hours to hack around with stuff. Sure, C# and .NET is all well and good for earning a paycheck and I actually do I enjoy my work, but messing around with Scala and Lift has been a real blast for me these past few months. There are developers who would classify themselves as "passionate" and those that are just "getting by". I tend to find that developers who constantly challenge themselves tend to advance more quickly than those that don't.
Answer:
Does this mean I'm not a 'true' software developer at heart?

Absolutely not.  It just means that you like doing things other than coding.  There's nothing wrong with that, and it doesn't make you any better or worse than anyone else, developer or not.

Is it possible to become a good software developer without doing extra outside your job?

Of course.  Some of that depends on what your work environment is like.  If you've got a boring, soul-sucking, job that sucks up all your time and then some doing boring maintenance work, then being able to use work time to develop your skills will be very limited.  If you have the kind of environment where you have some latitude to do what you want to explore and learn, then take advantage of that opportunity to develop new skills that also help your employer or co-workers out.
If you find something interesting that you want to learn more about and don't have the time or possibility to use it at work, then you have to weigh that against the other demands on your time, be they family, friends, or hobbies.
Comment: +1. Yes, it really depends on the work environment. In a place with smart ([preferably smarter than oneself](http://media.pragprog.com/titles/cfcar2/worst.pdf)) people who, as a team, care about what they do and constantly strive to improve everything (the end product, underlying code, tools, workplace conditions, etc.) you have a good chance of becoming a *great* developer, even if you prefer spending your free time somewhere else than in front of a computer.
Answer: I've been in on a number of interviews to hire programmers recently.  I've found that the candidates who most impress me, both as programmers and as people I wouldn't mind working with, are the ones who spend a significant amount of time on NON-programming pursuits (particularly music, but also pure mathematics, philosophy and literature).  To be sure, most also do some hobby programming, but they have balancing interests as well.
Comment: Now if I can only convince the musicians of that...they seem to think that you can't be good at more than one thing. Music and programming are very similiar.
Comment: You answered a totally different question. The type of people you would rather work with is probably going to be quite different than what type of person makes for a great programmer. If you want to enjoy the people you work with and have a good time socially then maybe the uber-programmer isn't the best fit. However, if your typical workload is 2-3 months to get 12 month projects complete then personality isn't going to matter as much when you discover that the uber-programmer will let you have a life outside of work, even if that life is doing more programming.
Comment: Just as a side note: I've found that the people that most impress me as people at an interview are the ones that I have to be most concerned about. In my early career, the only people that I recommended for hiring that turned out to be less technically capable also happened to be the most socially capable and convincing at the interview.
Answer: If have a job that provides you a completely engaging intellectual experience, chances are that's going to be your mental life -- outside work is for blowing off steam. If your job doesn't engage you, you're much more likely to find intellectual satisfaction after work hours. That's true in any business, not just coding.
Coding in an office saps your creativity, period. At least 8 hours per day, your mind is doing a continuous sprint on someone else's behalf. It's normal to come out of that and not want to get back on a computer. When I worked from an office, it was the same for me -- I'd get home and only want to cook, or go see a movie, hang with friends or just zone in front of the TV. Then from 2001-2004 or so, after the company I worked for tanked and I cracked up, I dropped out and drove a taxi and waited tables. That's when I really started coding in my off hours.
The truth is, I don't think anyone has more than 8 hours a day worth of high-quality coding time in them. A lot of coders only have 2-3, but they might be the most efficient people out there. It's just how you use it, how you spread it out.
Comment: You've never been around OSS developers much, have you? When coding becomes a passion, you sometimes want to be at it for 24 hours at a stretch.
Answer:
Is it possible to become a good
  software developer without doing extra
  outside your job?

It's depends on the industry you're working in.
Some are more competitive than others.
If you don't like to learn new stuff on your own, you're likely to stay at your current skill level. That's may be enough ... or not.
It is not about the time dedicated, it is about curiosity, and a thirst for knowledge and mastery. Obviously, it has nothing to do about staying up to date, it is about fundamental -often hard- stuff :  compilers, monads, memory architectures, etc. Things that stretch and expand your brain.
Wanting to Code at home is just an important side effects.
But don't underestimate it, without doing, learning is often shallow.
All the best dev I know have theses traits.
Answer: No, it doesn't make you any less of a programmer than anyone else. You're just more social. I'm envious to be honest.
You don't have to use all of your spare time to write code. My job is pretty simple: server management. I write a lot of code because I don't have to do a lot at work. That doesn't make me better or worse than anyone. If you're passionate about programming, why not do some freelance work? I often put up Craigslist ads for my services and make a good amount of money off of it. It's also a great learning experience since you'll be working with startups and sometimes even large websites. Hope this helps. :)
Comment: Hobby programming makes you 'more social' inherently. You can program on your own in isolation perfectly fine.
Answer: I asked a similar question a couple of days a go. It seems that people seem that we are more passionate about our job if we devote not only all our day time to it, but also all time that we have available for our personal lives.
I do occasionally write some code on my spare time, but I do it for fun, not because I intend to gain some professional growth or recognition. I applaud the people who have the energy for it, but you are more like to burn out by working longer hours and on extra projects than to actually become more expert into anything.
At the end of the day, all that matters are your ability to learn new things (especially on the job), your ability to communicate well, and having good time management skills. That you turn you into a good professional.
Comment: I think you hit the key point. If programming at home is like doing extra work then it isn't going to help much and is probably even detrimental. However, most (if not all) people I know that program at home do it because it is fun for them. It just so happens that those are the same people I want on my projects because they are far more skilled than those who don't. Is programming at home the reason they are more skilled, maybe, maybe not, but I would tend to think so because they are doing what they like. Also, it is quite hard to stay current in your skills if you don't put in the time.
Answer:
Is it possible to become a good software developer without doing extra outside your job?

For me it's all about balance.
Although I love programing it is just one side of me, I have other interests.
As I see this if I'm happy (doing other stuff I like doing) and I find my work interesting and fulfilling (which I do) than, on the long term, I'm on the way to become a better software developer.
P.S.
I admit I haven't read all prior posts on this page.


Are there any good tutorials for NetBSD and daemontools?

Question: I'm looking for some good resources on running daemontools on a NetBSD box. I've installed the binary package via pkg_add, but I can't seem to find an rc script for starting, e.g., svscan. I'm mostly a Linux and FreeBSD user, and this is the sort of thing I would expect to find after an install. Did I just look in the wrong place? Should I be building from source to find those sorts of extras? Is there a good guide somewhere that covers things like this? Thanks.
Answer: I once did this on OpenBSD and followed http://openbsd.totorux.info/openbsd-wiki.org/index.php/Installing_Daemontools
Maybe it can help under NetBSD, too?
Answer: Vanilla Bernstein daemontools installs by way of the package/run program, invoked by the package/install program.  This determines whether the operating system uses System 5 rc or the old BSD rc, and updates either /etc/inittab or /etc/rc.local accordingly.
van Smoorenburg rc (from Linux operating systems) is a portability nightmare, and Mewburn rc (as used nowadays on FreeBSD and NetBSD) had barely (just under 6 months) been brought out for NetBSD and didn't exist at all on other BSDs when daemontools 0.76 came out in July 2001.
Whereas, on the other hand, /etc/inittab is a thing of the past, and on operating systems such as Ubuntu Linux /etc/rc.local has actually been superseded thrice over — by van Smoorenburg rc, then by upstart, and then by systemd.  (It's a mere twice over superseded on CentOS.)
That leaves pretty much nothing in vanilla Bernstein daemontools.
Various people have addressed this deficit over the years.

Norikatsu Shigemura made a Mewburn rc file for FreeBSD in 2004.
Jim Caroll published upstart job files for daemontools in 2006.
Gerrit Pape made systemd service unit files for daemontools for the "daemontools-run" package that xe maintains for Debian Linux in 2014.

Shigemura's Mewburn rc script from the start incorporated the knowledge that svscanboot is a thing of the past, too.  It could handle invoking a log dæmon for the output of svscan (and its supervise children) itself.  By 2007, it had no need for readproctitle at all.
The nosh toolset can handle daemontools services, and has a svscan-compatible mode of operation as well as a package that provides Mewburn rc files for running the nosh service manager and service scanner under Mewburn rc.  For more information, look in the nosh Guide in the chapter entitled "Compatible old-style startup", accessible with xdg-open /usr/local/share/doc/nosh/svscan-startup.html
Further reading

Jonathan de Boyne Pollard (2015). /etc/inittab is a thing of the past..  Frequently Given Answers.
Jonathan de Boyne Pollard (2015). The known problems with System 5 rc.  Frequently Given Answers.
Jim Caroll (2006).  DaemontoolsUpstartConfig.  Upstart wiki.
Joern Heissler (2014-06-19).  daemontools-run: Add systemd support.  Debian Bug #752075.
Andrew George Hammond (2007-04-17). sysutils/daemontools svscan output to multilog would be a nice option.  FreeBSD bug #111749.
daemontools.  Debian package tracker.
Daniel J. Bernstein (2001).  How to install daemontools.  daemontools.
Answer: This is not for daemontools, but could be an alternative that works/compiles in netbsd: https://immortal.run/source/ There is no current port but  works straight forward


What are the risks of using a penile stretcher?

Question: What are the risks of using those devices? And how can you prevent risks and problems, or recognize them before its too late? I'm seriously considering buying one of those, and using it for about 10 hours daily for approximately 6 months.
Answer: Risks appear to be low, if they are used as intended.

There were no adverse events including skin changes, ulcerations, hypoesthesia or diminished rigidity.

Penile Traction Therapy for Treatment of Peyronie's Disease: A Single-Center Pilot Study

The application of such devices can be recommended in all patients regardless of the penile length, because of the low risk of complications

Non-invasive methods of penile lengthening: fact or fiction?
However, all studies on this I found had a really small sample size. So rare risks could just not have appeared.
Comment: "..all studies...had a really small sample size" lol


What is the maximum box size?

Question: One starts out with 20 spaces in one's Monster Box. Space can be increased by five by spending a Magic Stone. Is there a limit to the size to which one may upgrade one's Monster Box?
Answer: **Yes there is a limit, it currently has a maximum box size is 1500.
That would take 296 magic stones to completely fill as of now, the size limit could change in a later patch as it already has several times since 2013 where the box size limit was 500.

The latest patch notes we have of this are:

Version 7.0.1 (Aug 06, 2014)
◇ ◆ Ver7.0.1 update information ◆ ◇
  ▽ new additional features
  ◆ Revised the contents of the Terms of Use
  ◆ The increase in 1500 monster BOX
  ◆ Re-adjust the color of the drop
▽ bug fixes
  ◆ bug fixes
  ◆ Other, fine brush up
  ※ For more information, please check the "Events / Update Information" within the app than "other".

So we can concluded that there is a maximum box size of 1500.

Source
Comment: I read that too, but I guess I was hoping for a more official source. I don't know how reliable that poster is.
Answer: If the App Annie web-site reports/archives accurately, and the information is as simple as it seems, the maximum box size must be 1100.

Version 6.5.2 (Jul 10, 2014)
Ver. 6.5.2 Update Details
New Features:
  [...]
  -Maximum Monster Box size has been raised by 100

[...]

Version 6.1.0 (Nov 14, 2013)
New Features:
  [...]
  - The Monster Box maximum size has been increased from 700 to 1,000"

The site includes the most recent version, so overall, it is up to date.
Deeper searching reveals one source that claims 1500. It seems that this pertains to the Japanese version:

Version 7.0.1 (Aug 06, 2014)
◇ ◆ Ver7.0.1 update information ◆ ◇
  [...]
  ◆ The increase in 1500 monster BOX

There is no mention of a version 7.0.1 of the English version, but the English version numbering is past 7.0.1 now, leaving a possibility that 1500 maximum Monster Box capacity is now the case for the English version too.
Comment: I confirm, it's 1500. I can confirm because I hit the limit : )

What is the maximum box size?


Crawling only a certain file extension

Question: I am crawling a SharePoint 2007 site from SharePoint 2013 farm including a lot of folders and different file types. Only the PDF files are relevant to search. The crawl is very slow and I am interested in minimizing things in my index. Is it possible to set up at crawl rule that would crawl a certain file extension only?
Comment: Why not just set the File Types you want? In left navigation under Search Administration, Crawling, File Types.
Answer: Create a crawl rule that only includes PDF files for the SharePoint 2007 URL.

Crawling only a certain file extension


Oracle Entity Framework - Generate Entity From Tables in Different Schema

Question: I log into Oracle using my own user account, which we can call my_account, and I am granted select privileges on all of the tables in the schema that our application uses, which I will call app_schema.
I would like to use Entity Manager to generate the entity definitions for the tables in the app_schema schema, but I do not have the password for that account and likely won't be given it, so I must log in as my_account.
When I run the wizard I can only see the tables in the my_account schema. Is there any way to get the tables from a different schema so that I can generate those? This is a massive database, so writing the .edmx file by hand could take days, and will probably result in tons of typo-induced errors. I have attempted to use synonyms, but they are not visible in the wizard either.
Answer: In your Server explorer, select your connection and right.
Click on filters tab, select Displayed schemas, then add more schemas from your schemas list.
Remember click on update button and Ok to save changes on your connection.
Now when you add a new ADO.Net Entity Data Model you will see all tables from your schemas.
Please visit this link:
https://forums.oracle.com/forums/thread.jspa?threadID=2291628&tstart=0
I hope help you with this.
Cesar.
Comment: This saved a lot of time me.
Comment: One of the most under voted helpful answers in SO. Added a screenshot to further depict the process, if you do not mind.
Comment: I reported what seems to be a bug with the proposed solution at oracle forums, [here](https://community.oracle.com/thread/3946813?sr=inbox). Overall it works.
Comment: Keep the schema of the user in "Displayed schemas" in the list, otherwise the tables won't show up when you want to add a data model
Answer: I am using EF 4.2 and found that I was able to use tables from another user/schema only when creating a new connection (using my_account) and using a filter when going through the Entity Data Model Wizard. Add app_schema to the Displayed Schemas filter (be sure to press Update).
Like CMarchan suggests, if I set the filter on the connection in the server explorer, it works for me there, but the EDM wizard does not see the connection when creating a new model (maybe just a "feature" in 4.2).
Once the EDM is created, it does allow me to add/edit tables from app_schema.


Integrability in a domain of $\mathbb{R}^{N}$

Question: Hi everyone: Let $f$ be a function defined on an open set of $\mathbb{R}^{N}$ $(N\geq1)$. Is there any difference between the following two statements?
1) $f$ is locally integrable
2) $f$ admits a locally integrable majorant.
Thanks for your reply.
Comment: Well, (2) appears to allow $f$ to be nonmeasurable. How exactly do you define "a majorant", by the way?
Answer: Yes, there is. A function with locally integrable majorant does not have to be measurable, e.g. it can be the characteristic function of a Lebesgue non-measurable set. If it is measurable then it depends on what you mean by "majorant". If it is just $f\leq g$ then $f=-1/x^2$ is non-integrable with $g=0$ locally integrable. However, if $f$ is measurable, $|f|\leq g$ and $g$ is locally integrable then so is $f$, essentially by definition.


why not use java web start instead of other RIA frameworks?

Question: There are many RIA frameworks popping up (flex, extjs, gwt to name very few).
If my server is written in Java, why not use java web start?
The benefits I see: I get to program in a language that is easy to debug (compared to javascript), I can use the same code in server and client side (validations, model objects). With SWT I get nice looking GUI.
Even if it means requiring a plugin in the browser (or using a cli tool), if my application is an enterprise application, does it matter?
Comment: As you no longer have a RIA but simply a desktop client. ;-)
Comment: By Enterprise application are you talking about an in-house application where you can dictate the running environment of your user base or a extra-company (contractors, vendors, suppliers, etc.) application where your end-users may not be using the same environment?
Comment: @mlk: Sure it is a desktop client. What's the harm in that?
@Drew: I'm referring to the former case, where I can assume users will install Java before starting to use my application.
Answer: The only contra argument is that in a lot of cases it's impossible to force the clients of your rich client app to have Java runtime installed on their machines. Everything else is a matter of taste, already existing knowledge and experience.
Answer: For webstart you need Java installed on the client. For Flex Flash. For Silverlight .Net. For other RIA platforms a JavaScript enabled browser. It is a lot of product politic in that question.
And Java is very intenting, because "all seems to be a nail". Of course one of the great advantages of Java: same language, same knowledge, same code on every platform or environment (server/client/middleware).
For enterprise internal use, no it does'nt matter at all. If your biz is on the internet the decison is much more complicated (or even you have to offer the same functionality in diferent platforms).
Answer: I think that until now the perfect client technology simply does not exist. We were excited about ajax and then there is another "hot" technology like Adobe Air. What is the difference between these techs and the "old-fashion" client-server apps? My friends we are back to the early 90s!
The AIR for example needs a runtime installed on the client machine, it has access to local system resources and communicates with the server using a binary protocol. On the other hand we are developing "RIA" applications (and very good ones :) using pure java swing clients communicating with the server through the Spring's binary remoting protocol. And i must say, in such a development life-cycle Java-Webstart is the winner. Especially in large-scale projects (and i mean laaaarge-scale, not just e-shops) in the java field i haven't found something more productive and maintainable (ah! maintainence... another big story) than this.
IMO if your users can live with a nice look-and-feel and you don't have to adopt another technology just because it is young and sexy use webstart. Put more work in your business model. After all enterprise apps is about business, not animations. And money is where the business is ;)
Answer: Yes I think it does matter, seeing that some big companies still have IE6 as their standard browser and as a requirement for web based applications. And those won't allow you to install any third party plugins into their dinosaur browser.
And you don't make a difference between RIA technologies that use existing browser technologies like JavaScript, CSS and HTML (including GWT which just generates client side JavaScript and ExtJS which is just a JavaScript Component library) and the ones that require an additional runtime environment (Flash, Flex or client side ).
Of course some things are easier to accomplish with proprietary or third party solutions (or you just have more knowledge in one of these platforms), but I still think that there is a huge potential in technologies that are standardized and already implemented in every modern browser (the differences between the browsers are slowly but steadily getting better, too).
If you ship it as a 3rd party application you can define a JRE as a System requirement, anyway but then instead of JavaWeb Start ship it as a normal Java Application as well.
Comment: I guess the difference vs Java Application is that the installation is easier.
Comment: Wel a plain browser based RIA is easier to install (not at all so to say). Java Webstart and plain Java app both need a JRE installation.


What does "Blockwise" in execute mode do?

Question: I have the following in a .vimrc file:
vmap ; :Blockwise<SPACE>
I'm not sure what the Blockwise key word does.
Comment: I can't find it in the documentation, maybe it's part of a plugin?
Comment: http://stackoverflow.com/questions/28680549/what-is-blockwise-motion-in-vim
Comment: If you don't know what it does, why do you have it in your .vimrc?
Comment: @ChristianBrabandt He said in `a` .vimrc file not specifically `his` .vimrc
Comment: `:verb vmap ;` to see where it is defined. Must be a plugin, so read its description.
Comment: @Ashok Then he should ask the owner of this particular vimrc.
Answer: It's an Ex command, and since its first character is written in uppercase, it's probably a custom command.
To see what it does, and where it was defined, you can use this command:
:verbose command Blockwise

… or shorter:
:verb com Blockwise

By default, an Ex command operates on whole lines.
So, for example, suppose you wanted to perform a substitution inside a column in a paragraph. You could visually select it, then type :s/pattern/replacement/g. You could think that the substitution command would replace the occurrences of pattern with replacement only inside the block, but since Ex commands operates on whole lines, :s would replace pattern anywhere in the paragraph, not just inside the column you selected.
As a workaround, inside the pattern, you could use the atom \%V (see :h /\%V), but it may not be always as simple for other commands (other than :s).
With your mapping, if you hit ; in visual mode, Vim will write on the command line :'<,'>Blockwise.
So, it's just a guess, but your :Blockwise command probably expects as an argument another command, and limits the effect of the latter on a visual blockwise selection. It may be a mechanism to enable all or most of Vim Ex commands to operate on blockwise selection, and not just whole lines.
With it, you could probably do something like:
:'<,'>Blockwise s/pattern/replacement/g

… to replace pattern with replacement, only inside the visual block.

When you find the name of a command which you don't know, you can try to look for it inside the help, with the :helpgrep or :lhelpgrep command. The latter can be shortened into :lh. Currently, if I type:
:lh :Blockwise

I don't have any results, so with this you would know it's not a default Vim command. However, if it has been installed with a plugin which has some documentation, then it's possible that the previous command returns some results.

You probably want to replace :vmap, with :xnoremap. In front of a :map command, v doesn't mean visual mode, it means visual mode+select mode. x stands for visual mode only. So, if you use :vmap, you will bind a printable character (;) in select mode. And the help says that it could be confusing to a user (:h mapmode-x):
NOTE: Mapping a printable character in Select mode may confuse the user.

You could change your mapping like this:
xnoremap ; :Blockwise<Space>


Is there a way to record my voice when capturing footage?

Question: Is there a way to capture my voice when I press F1 in game to capture footage?
Answer: Yes it is indeed possible, but not with the build-in recording tool. You would require a screencasting software that records your video output as well as your microphone input.
Here's a list of well-known screencasting software
GTA doesn't save the images your graphic card generates. It only saves something like a screen-play or a blueprint of the scene you're recording.
It saves movement, orientation and interactions of objects such as your character, NPCs, projectiles and more. For example when you record and fire a gun GTA will save your action (shoot) as well as your current coordinates and orientation (where you are & which direction you shoot). This way of recording saves a lot of resources and makes recording way less hardware-hungry.
Later when you watch this recorded movie it sets up the game the way it was when you were recording and then just moves all the recorded objects the way you recorded them.
I haven't found any resource that displays how it works but i looked at multiple documents and i saw that its really hardware efficient. I'm pretty sure that GTA uses this technique of recording even tho I don't have articles or files that approve this.
Comment: NVidia Geforce experience also offers capture and streaming (at least twitch). Unsure how much more efficient it might with be compared to other softwares.
Comment: Do you mean [Nvidia Shadowplay](http://blogs.nvidia.com/blog/2013/10/18/shadowplay/)?
Comment: Yes, it is within the Geforce experience software with other things (driver and game profiles updates, etc).


The concept "conjugate class" in monoids.

Question: Is there any concept in monoids that is similar to the concept "conjugate class" in groups? For example, are there any such similar concept in symmetric inverse monoids? Thank you very much.
Answer: As so often happens when you generalize from groups to monoids, it gets more complicated.
Conjugacy is, of course, an equivalence relation on any group X.  Two elements x, y are conjugate if and only if there exists g in X with gx = yg.  This last equation makes sense in a monoid, but does not define an equivalence relation: it's not symmetric.
Here's one way to think about it.  With every monoid X there is associated a category C(X).  The objects of C(X) are the elements of X, and a map x --> y in C(X) is an element g of X such that gx = yg.  Composition is defined in the obvious way.  When X is a group, C(X) is a groupoid (i.e. a category in which every map is invertible).
Now, in a category there are at least two natural equivalence relations on the collection of objects: isomorphism, and being in the same connected-component.  When the category is a groupoid, these are the same.
Apply this observation to C(X), where X is your monoid.  It tells us that there are two natural equivalence relations on the elements of X:

"isomorphism", which identifies x and y when there exists an invertible g with gx = yg
"being in the same connected component", which is the equivalence relation generated by identifying x and y whenever there exists a (not necessarily invertible) g with gx = yg.

When X is a group, these two equivalence relations are the same thing---conjugacy.
Postscript  The category C(X) can be understood abstractly as follows.  A one-object category is the same thing as a monoid.  Functors between one-object categories are the same thing as monoid homomorphims.  A homomorphism from N (the additive monoid of natural numbers) to a monoid X is the same thing as an element of X.  Thus, an element of X is the same thing as a functor N --> X.  In other words, the elements of X are the objects of the functor category X^N = [N, X].  And this functor category is exactly C(X).
Answer: There are several different definitions of conjugacy for semigroups. For inverse semigroups the best, in my opinion, definition is this: $a$ is conjugate to $b$ if there exists $t$ such that $t^{-1}at=b$, $tt^{-1}=e, t^{-1}t=f$, $ae=ea=a$, $bf=fb=b$. In this case the conjugacy relation  is an equivalence relation and the concept of conjugacy classes is well defined, and easy to describe in the case of symmetric inverse monoids. See, for example, the following article by Akihiro Yamamura, http://journals.cambridge.org/download.php?file=%2FJAZ%2FJAZ70_02%2FS1446788700002639a.pdf&code=213e793755d6e9249ea5704c1f57a0b3 .
Comment: Mark, are Green's (semigroup) relations any help in determining conjugacy or notions similar to conjugacy?  Gerhard "Ask Someone Else About Semigroups" Paseman, 2011.03.05
Comment: @Gerhard: Green relations are relevant but a connection is not direct. Certainly two conjugate elements must be in the same $D$-class but the converse is not true (as the example of an Abelian group shows). Still sometimes conjugacy classes can be described by looking at the conjugacy classes of the maximal subgroups and on the structure of Green relations. For example, I believe it is so for the Brandt semigroup and completely 0-simple semigroups in general.
Comment: Actually I am not completely certain that conjugate elements in an inverse semigroup are $D$-related. They are clearly $J$-related.
Answer: This seems to be a relevant paper: Kudryavtseva and Mazorchuk - On three approaches to conjugacy in semigroups.


PostgreSQL IN operator with lots of values in an external file

Question: I have a file with a lot of identifiers, one in each line. I also have a DB with a superset of those id's. I would like to query the DB only with the id's of interest. Is there a way to "import" an external file or do I have to copy all 300 values into the IN expression? This is a large db.
Comment: Define "large." We've all come across people who think a few thousand rows is "large" even though most relational DBs can power through them like a hot knife through butter. =) It's much better to speak of actual sizes or, even better, rough row counts (with at *least* correct order of magnitude).
Comment: @jpmc26: 60 million :S
Comment: Who owns/controls the file?  Is it under the same ownership/control as the database itself?  How often does it change?
Comment: @DervinThunk do these answers satisfy the question? Can you mark one as chosen if so?
Answer: Sure, either,

Use a CTE with a VALUES statement.
Use a TEMP table with an index.

Here is an example with the CTE.
WITH t AS (
  SELECT * FROM ( VALUES
    (1),
    (2),
    (3)
  ) AS t(table_id)
)
SELECT * FROM t
JOIN myTable
  USING (table_id)
;

Only slightly more complex is getting them into a temp table which permits you to index it. You can also use the Foreign Data Wrapper create a FOREIGN TABLE if you have an external file depending on the format. Try it without an index, and copy it into a table and see if an index speeds it up.
Answer: If you can run command from shell (better if it is Unix/Mac, but probably may be Windows), you can run something like this for integer/float/number:
echo "SELECT * FROM table WHERE field IN ("`cat < 000.file  | awk '{printf("%s,", $1)}' | sed 's/,$//g'`")" | psql db

Or something like this for varchar, timestamp, etc:
 echo "SELECT * FROM table WHERE field IN ("`cat < 000.file  | awk '{printf("_%s_,", $1)}' | sed 's/,$//g' | sed "s/_/\'/g"`")" | psql db


How to install informatica 10.1.0 on windows 10 Pro 64-bit?

Question: How to install informatica 10.1.0 on windows 10 Pro 64 bit?
I have downloaded files from https://edelivery.oracle.com/. Extracted files and double clicked on install.bat file. But only a black screen flashes for a second.
Informatica 10.1 Files

System Details:
Operating system: Windows 10 Pro 64-bit
RAM: 16 GB
Java version: Java 7 64-bit (Also tried with Java 8)
Is there any other prerequisite for informatica 10.1.0?
Is it compatible with Windows 10 Pro 64-bit?
Please give me any solution or suggestion.
Answer: Informatica server does not support on windows 10 pro.
Comment: Do you have a source to back this up?


Are gcc versions tied to kernel versions?

Question: Is there any link between gcc versions and the version of a kernel ? Specifically, would I be able to install a very old version of gcc onto the latest kernel. Alternatively would I be able to build the latest version of gcc on a very old kernel? Are there any compatibility problems between the two for any version ??
Answer: You might have trouble compiling new kernels with very old versions of GCC.
Besides that, no, GCC versions are not tied to the Linux kernel's version:

You can run an ancient GCC version on a system with a new kernel.
You can run a new GCC version on a system with a very old kernel. The only thing that would stop you from doing this would be if your new GCC version requires a version of libc that will not run on that kernel. But this is not a particularly likely scenario.

With that said, you should be careful about installing an older GCC over a newer GCC, since the newer GCC may be needed. If you're building GCC yourself from source, you can configure the build to install in its own prefix (rather than /usr). If this still breaks builds, make sure the newer GCC (which was there before) is in a directory earlier in the PATH environment variable than the older GCC (which you more recently installed).
Comment: Eliah, our old kernel (2.6.37), uses gcc 4.3, and we need to update to gcc 5.1. It's cross compilation, and the toolchain of 5.1 uses kernel headers 4.0.0 .  ? Does it mean we need to update kernel to 4.0.0 ? Thx
Answer: I would be wary of using older GCC versions on newer systems, especially if the older version's executables arent named gcc-1.3 (for example, if in this instance the version is 1.3), because otherwise it may conflict with the current version used for everything on your Ubuntu system, and break things.
To answer your question though, the kernel and GCC aren't directly related, but its likely the kernel was built with the GCC version you're using (or slightly older).
Answer: Yes. Some new kernel features need the last version of gcc and glibc to work fine. But it's not a restricted constraint like kernel 3.0.2 work only with gcc 4.2.1. It's more like kernel 3.x work only with gcc 4.2.x
Comment: It seems like you might be confusing compiler versions required to *build* a kernel with what is required to *run* a kernel. Running a kernel never requires that a compiler be installed at all. You may want to expand this answer, though, because you are on to something that the other answers don't currently cover: With some compiler versions, you may not be able to build modules for the currently running kernel.


How can I search and replace within multiple files?

Question: I have the same text that I want to replace in multiple files (say, I'm updating version numbers in multiple files). Even using the command history to reuse commands, it sure is tedious to open each one, search and replace in it, and then save it. Can I do just all of this in one search and replace operation on all of these files?
Comment: I realise this is the Vi(m) SE site, but `sed` is a rather lighter solution to this: `sed -i 's/v0.0.2/v0.0.3/g' *.pl`
Comment: @ChristopherBottoms I might too, especially if the answer pointed out the relation between sed and vi, and noted the similarities in some of the things you can do with them.
Comment: @MichaelColes Yes, but not all Vim users have sed on their computers.
Comment: @MichaelColes Very nice. It's always nice to know of alternatives. Not everyone here might agree, but I'd upvote that as an answer.
Comment: @Rich: fair point :)
Answer: Let's say that you decided that you want to update the text use 5.008 to use 5.010 in multiple Perl script and Perl modules.
:arg *.pl
:argadd *.pm
:argdo %s/use 5\.008/use 5\.010/ge | update

note that you need to escape '.', since it it's the wildcard for one character.
:arg *.pl fills the argument list with all of the files ending in .pl in the current directory.
:argadd *.pm adds all of the files ending in .pm to the argument list.
:argdo %s/use 5.008/use 5.010/ge | update Does the search and replace on each file in the argument list and saves each file for you.
See Search and Replace in Multiple Buffers for more details and variations.
Comment: Also see the following [Vimcasts](http://vimcasts.org/) episode: [Project-wide find and replace](http://vimcasts.org/episodes/project-wide-find-and-replace/)
Comment: @PeterRincker Thanks for the link. I'd upvote that if you'd post it as an answer.


Measurement and estimation of temperature of Space Shuttle nose cone during launch and re-entry

Question: During the launch and re-entry of the Space Shuttle, what are the measured and estimated temperatures (or distribution) of the shuttle nose cone as a function of altitude?  How is the temperature measured (at the cone) and what is the uncertainty or alarm limits?
Answer: The trajectories are quite different between ascent and entry.  Launch trajectories are designed so that the aeroheating is very little.  Entry trajectories, without the advantage of minutes of powered flight like ascent, cannot avoid significant aeroheating.  This aeroheating is several orders of magnitude more than ascent.
The temperature of the heatshield can be estimated by its radius of curvature, the dynamic pressure, and airspeed.  Complicated computational fluid dynamics models, anchored by test and flight data, estimate what the temperatures will be at various points across the surface.  Monte Carlo simulations provide engineers a distribution of the temperatures, given small changes such as with the vehicle's trajectory, attitude, heatshield surface roughness, and aeroheating model parameters.
It is common that the first several flights of a new vehicle will instrument its heatshield to validate the aeroheating models used for its design.  This instrumentation is typically thermocouples.  The uncertainty is dependent on how well the instrumentation is built and integrated into the thermal protection system, and how well it is calibrated.
A good summary of the experience in building and using heatshields, written in the early 1990s by NASA, may be found at https://ntrs.nasa.gov/api/citations/19930003261/downloads/19930003261.pdf.
Comment: I snuck a peek during the STS-109 reentry (it was dark out). That sucker was white hot...
Comment: There was instrumentation on the nose cap of Columbia. The system was called SEADS. Your answer can't really be complete unless you discuss that and its results.
Comment: @OrganicMarble: I've improved the question.  It seems that you are able to answer it; would you please consider doing so?


creating non-uniform spaces on game map

Question: I need advice on creating a game map. I need to create 1400 spaces on the map. I'm imagining that each space will be one of 10 different sizes - for example, their will be a dozen that are 'size-10', forty that are 'size-9', etc., with a couple hundred at the smallest-sizes (this is data-driven). There will also be a neutral space in the center (probably a bit larger than all others). I'd like to place these regions on the game space randomly, but there should be no overlap, and no space between them. It doesn't matter if the total space is a rectangle. I really like this effort, though it's very out of my league, but it led me to research voronoi tesselations and find a javascript implementation that I somewhat understand, but all examples I've seen use random points as origins and I'm looking for a more custom result as I've described above, so this might not be the way to go. --- Anyway, I'm open to any suggestions. Please note that I'm a designer rather than a coder, but am coding my own prototypes so any advice is appreciated.
Answer: This seems similar to the Knapsack Problem if I understand it correctly. But, instead of optimizing, you are only looking for a single solution. This is actually a pretty difficult problem to try and solve, both in terms of time complexity and in terms of just getting something reasonable (i.e. finishes in reasonable time) working. This is an interesting post about it (although he deals with optimization) - with a little work, you could furnish a good-enough algorithm.
Answer: If i understand correctly what you want to achieve is the so called path directed subdivision tree or quadtree. The specific of this algorithm is to divide recursively a rectangular two dimensional space into four smaller pieces called quadrants or quads. The regions may be square or rectangular, or may have arbitrary shapes.
If you need a real example for studying the code you can have as a starting point this experiment created in Actionscript, but this can be well translated into Javascript too: http://wonderfl.net/c/fLVs
Another possibility would be Delaunay triangulation with the control points selected manually, because if understand correctly you do not want to scatter the points randomly. Maybe this link will help: http://neoformix.com/2012/DelaunayImages2.html
I hope these helps!

creating non-uniform spaces on game map


Why doesn't SQL Full Text Indexing return results for words containing #?

Question: For instance, my query is like the following using SQL Server 2005:
SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#')

I have a full text index defined to use the column SearchField which returns results when using:
SELECT * FROM Table WHERE SearchField LIKE '%c#%'

I believe # is a special letter, so how do I allow FREETEXT to work correctly for the query above?
Comment: Just a guess, but how about "c\\#"?
Answer: The # char is indexed as punctuation and therefore ignored, so it looks like we'll remove the letter C from our word indexing ignore lists.
Tested it locally after doing that and rebuilding the indexes and I get results!
Looking at using a different word breaker language on the indexed column, so that those special characters aren't ignored.
EDIT: I also found this information:

c# is indexed as c (if c is not in your noise word list, see more on noise word lists later), but C# is indexed as C# (in SQL 2005 and SQL 2000 running on Win2003 regardless if C or c is in your noise word list). It is not only C# that is stored as C#, but any capital letter followed by #. Conversely, c++ ( and any other lower-cased letter followed by a ++) is indexed as c (regardless of whether c is in your noise word list).
Answer: Quoting a much-replicated help page about Indexing Service query language:

To use specially treated characters such as &, |, ^, #, @, $, (, ), in a query, enclose your query in quotation marks (").

As far as I know, full text search in MSSQL is also done by the Indexing Service, so this might help.