One.
One.
Then Two.
Three is next.
Five, of course, comes next.
Then Eight. It's getting hard to do.
Next is 1D. We're counting in Hex - this is slashdot!
The way *I* read the program (pronouncing each special character except for the quotes and colons), it's a fib. AND it does something useful. It displays the first twenty Fibonacci numbers!
Pronounced:
(1) try
(1) foo
(2) ex cept
(3) print dis play
(5) print fib on ac ci
(8) count e quals prev count e quals one
(13) while prev count less than or e qual to sev en thou sand
(21) print prev count sem i col on count com ma prev count e quals count plus prev count com ma count
Talk about a horrible name for a dating site! Would you want to look for a woman on a site that calls them "Plenty of Fish"? I'll pass on the tuna, thank you.
Mildly relevant comment related to bad naming: I drove by a new bar yesterday, called "Fox and Hounds English Pub and Grill". Who would want to go to a bar to meet women there? What horrible odds, one fox, lots of dogs!
Yes, blogs enable everyone to be a publisher, and with all the crap that's in blogs, there's got to be a pony in there somewhere, but the problem is finding it.
Blogs enable the masses to be able to publish fast and without thought. Case in point, your highly though-provoking subject line. In a rush to publish (first post syndrome), people produce crap.
Correct about Phil Zimmerman, and his battles with RSA. Phil also got in trouble with the NSA (National Security Agency branch of the US Government) for the release of PGP. It was a bold move by Phil for the freedom of the software around the world, and he's a freedom hero in my book.
Back then (early '90s), simple encryption SOFTWARE was considered a munition, similar to if he snuck an atom bomb out of the country. The software was "released" onto the evil internet (perhaps not even by Phil), and as I recall, Phil was arrested or charged, or questioned.
My history is based on memory from reading Boardwatch magazine (a GREAT internet publication in the hey-day). So I may not recall 100% correctly.
Remember, inflation is caused by companies raising prices, not employees.
Interesting concept.
Unfortunately, I can't find any credible article, using Google, that supports that theory. I did find this one (also not all that credible, but interesting), which states that Wage Rises actually cause inflation, and workers are worse off in the long run with wage rises.
All those dot-bomb employees thought their outrageous wages were fabulous until they had to be unemployed for a while. Now the dot-com refugees are settled back into normal jobs, but there was a while where you couldn't find anyone who had written a 50 line ASP script for less than $90K in the MIDWEST (speaking about my experience only, not in all of the midwest). Now they can easily be found for $45K, begging for work. It's just a different market. And the workers that we're carrying for $90K make me think every month why I don't two new people to replace them. Give them a raise??? I don't think so. (it almost gets to the point where you start thinking... "Maybe if I piss them off enough, they'll quit and we'll be better off." See my point?)
I don't think you got my point. Let me try a different angle.
Let's pretend you make say $800,000 for the job you are doing right now. Further, let's pretend that I can hire someone in the market for $40,000 and expect that they will most likely be able to perform the same job, with the same credentials, at about the same performance level. Do you still think I should give you a raise just because the year changed from 2005 to 2006?
All your arguments fall away. Yes, prices went up. Yes, $800,000 doesn't go as far this year as it did last year. Yes, I'll incur switching costs by hiring someone else if you bolt. But all these things don't change the fact that you are not entitled to an increase, and as the employer, I'd say no, no annual increase. Those are the arguments that you presented (pretty well, I might add). But just changing the numbers shows how ludicrous that argument is. Now take the $800,000 down to $50,000 and re-think it. Maybe switching costs are too expensive at this point, but it's still the company's decision, not an entitlement!
You have to consider the labor marketplace. You're a seller of services. The company is a buyer. I agree, part of the annual increase stuff is to keep you interested enough not to look for another job, but that's the buyer's decision (the company), not an entitlement of the seller (the worker).
I don't know where you live that has 6% inflation.
The Consumer Price Index shows increases from 2001-2006 of: 1.6%, 2.4%, 1.9%, 3.3% and 3.4% (second last column).
Keep in mind that inflation has raised the costs for the company as well. And if the "going rate" for a person of your caliber has gone down, then inflation is really irrelavant.
I think it's absurd that millions of people bust their asses from 40-60 hours per week only to get a measly 2-4% annual raise.
You shouldn't be working hard to get a raise. You should be working hard to earn your current salary. Isn't that what you are being paid for?
Tell me why again, you feel you deserve a raise? You agreed to a certain wage - why, all of the sudden, do you feel you deserve more? To buy a new calendar? It doesn't make sense to me that you feel you deserve more money simply because another year went by.
Now, if you tell me that the prevailing wage went up, that's a different story. Or if your contributions led to much more profit than expected, that too is a different story. But this "entitlement" of an annual raise is silly.
In fact, in many parts of the IT industry, the average wage in 2005 was less than the "going rate" in 1999. If you happened to have the same job as you did in 1999, congratulations, you are probably over-paid. The company SHOULD be reducing your salary. But that's a difficult thing to do, morale-wise. So instead, there's a gradual decline, through minimal raises, attrition, layoffs, and possibly businesses going under (which many did!)
Don't expect a raise. You're not entitled to it. Now get back to work.
Out of curiosity, I did a quick, rough word find on the responses that have been posted.
Here are my estimates after running through a few that I was curious about:
Java 500
Python 180
Ruby 120
Notes:
- I counted on a few pages, and estimated the rest.
- This was strictly a word find, so Java and JavaScript would both show up above (and yet, I understand that they are different languages). For this reason, I couldn't easily count C or VB/Visual Basic.
- Some people mentioned the same language by name multiple times, and thus got counted multiple times.
- Mentioning that "LanguageX sucks" would still register a count for LanguageX. Further, a message with the Subject "Re: Python", that said "No, try Ruby" would count once for Python and once for Ruby.
- I am not trying to make any point with this, other than seeing which languages people are mentioning. Someone might want to run a more elaborate test, as this has no statistical significance.
- This message was constructed to the same number of references to each language counted, so if someone wants to count again, I don't throw off the count much (for the languages mentioned - even LanguageX).
P.S. If you want me to show you how easy it is, just let me know.
As I have said before, I was amazed at Python, having used it for a couple of months. I'm an old Basic hack from the TRS-80 days, and missed those days, when you could just tap out a program, and off it went.
Honest, that same fun is back. If you haven't yet devoted 2 hours of your time to downloading Python, installing it, and working through the tutorial, you are really missing something.
Because it is like the old days. Only better. (because of all the possibilities). Day 1 with Python, I wanted to see if I could write a "word find" program (which was one of my first BASIC programs as a kid). Wow... it was cool. And yes, you can just type in a program and have it execute (real time) - or you can put it in a separate window (saved file) and run it multiple times (same load / save / run -type deal as Basic).
Second challenge, a smart Sudoku solver. Way cool. Nothing major. Just wanted to see if I could do it. Third challenge - rubik cue solver. Wow. I like this simple math stuff. Not going to win any awards, but it's nice to be able to "just code".
Some of the little things, like built-in dictionaries and built-in sorting make it sooooo much nicer than the old days (how many times did I use that old Shell sort from the 1976 Creative Computing magazine?)
Trust me on this one. From one old Basic hack to another... you have to try it.
I disagree. And having my 10 year old program - and he's no genius - was simple, with the right resources. You just need to find the right book (or website) that will excite your youngster.
One could argue that there are a lot of abstract concepts in your programming example. variables, bit-mapped Memory (or not), branching, top down coding, spaghetti code, etc. I bet you didn't concern yourself with them.
I'm an old Basic hacker who learned in the mini-computer era, right up through the TRS-80 etc. And I missed those days. And I see them back with Python. Granted, I only have been playing around with it for a couple months, but the joy is back! And yes, I don't know all the tricks about objects and the complete library that's available. But I do know the basics. And they're so simple to master, it's fun again!
I've written about 10 Python programs and I bet I can write that same plotter program in no time, and toss pixels on the screen. One google search will lead me to one or two libraries that I import, and the rest will be pixel painting fun. And I bet my Python program to approximate your basic program will be about the same length and complexity.
The difference is, now you can paint pixels, but you can also mash up web sites, or retrieve your email, or access databases, or perform built-in searches, or any number of things. The possibilities are way more now than then!
This is readily understandable by anyone who knows a little maths, and more to the point, is gets the job done.
What's a keyboard? How do I get this into my computer? what's a computer? Why 10-20-30-40? Where's step 1? Why input? What's in, and where do I put it? Print? I don't even have a printer hooked up. What's goto? Got-Milk yes, Got-O, no. Why are there stars everywhere? What's sqr? Why do I need parentheses? why not just that little square root symbol (radical...) What's the slash?
How do I get this into the computer? TYPE IT? Into WHAT? OH into an INTERPRETER? WHAT'S AN INTERPRETER? What does BASIC stand for? (about as meaningful of a question as what is an IDE or IDLE - insignificant to the problem at hand.)
Your argument is that people don't know what a menu or a mouse or an icon is? Give me a break. My 98 year old grandfather and my 2 year old neice both understand these concepts, but could NEVER program in BASIC.
My point is that Python is as accessible as Basic, with the sole exception that it doesn't come pre-installed. Other than that, it's approximately as easy for a novice to learn, and as easy for someone who doesn't know programming to get a general idea about what something does.
If you were trying to make the point that someone could easily program in Basic but not in Python, you failed to support that argument. Your points equally invalidate Basic as a programming language, because a novice wouldn't understand variables (which appear in both languages), functions by name (sqr vs. sqrt), syntax (why a line number? why separate them by 10? why print and not write? why input and not "get from user"? why * meaning multiply and / meaning divide? Why parens around function parameters? Why one instruction per line (yet you allow multiple pieces of information to be input)?), and other general programming concepts.
Further, to argue that TYPING (from memory) "LIST", "RUN", "LOAD", "SAVE" is somehow better than selecting choices from a drop down menu (File / Open, File / Save, etc.) is ludicrous. Maybe you didn't notice the command line interface get decimated by grapical user interfaces. Welcome to 1984. You're perhaps the only person on earth who believes that command line is EASIER for the novice than a GUI. Because the people have spoken, and voted with their pocketbooks. Memorizing commands is NOT easier for the novice, than selecting from choices.
If you have an idea, and can describe it well on paper, consider using one of these sites, which will allow you to post the project and have people bid on it.
Prepare to pay twice the minimum bid to get the desired result (allowing for re-work):
Now try and do the same thing today. Write it in Python?
Python doesn't look much different to me. Get rid of the line numbers and type into the interpreter. Why is this hard? (Probably because Python doesn't "come with" the system, I guess.) Note, I choose to import sqrt rather than raise to the.5 power. Python is the answer for all former Basic hacks.
>>> from math import sqrt
>>> a,b,c=1,5,6
>>> print (-b + sqrt(b*b-4*a*c))/(2*a)
-2.0
>>> print (-b - sqrt(b*b-4*a*c))/(2*a)
-3.0
>>>
And this was straight into the interpreter (IDLE), but I could have easily selected "file / new" from the menu, and put it into a program and saved it, put an input statement at the beginning, and duplicated EXACTLY what you had (only with all the benefits of Python that Basic never had, like scalability, object orientation, real scripting, database access, dictionaries, and libraries of pre-written code).
from math import sqrt
a,b,c=input()
print (-b + sqrt(b*b-4*a*c))/(2*a)
print (-b - sqrt(b*b-4*a*c))/(2*a)
[f5] runs it... same result (only the user is prompted). Is that so hard?
Po-
et-
ry real-
ly should nev-
er be written ex-
clusively by geeks on a for-
um such as slashdot. They tend to really sound horrib-
Guess I have to re-write the last line:
Next is D. We are counting in Hex. This is Slashdot.
OK, now I feel better. (especially after picking on someone else for their math this morning. Karma will get you every time!)
One.
One.
Then Two.
Three is next.
Five, of course, comes next.
Then Eight. It's getting hard to do.
Next is 1D. We're counting in Hex - this is slashdot!
Gotta love the surprise ending!
Clearly poetic license here! Lemme guess, you did better on the Verbal part of the SAT.
try:
....foo
except:
....print "Display"
....print "Fibonacci"
....count = prevcount = 1
....while prevcount <= 7000:
........print prevcount ; count, prevcount = count + prevcount, count
The way *I* read the program (pronouncing each special character except for the quotes and colons), it's a fib. AND it does something useful. It displays the first twenty Fibonacci numbers!
Pronounced:
(1) try
(1) foo
(2) ex cept
(3) print dis play
(5) print fib on ac ci
(8) count e quals prev count e quals one
(13) while prev count less than or e qual to sev en thou sand
(21) print prev count sem i col on count com ma prev count e quals count plus prev count com ma count
Now that's *real* nerdy. Geeks should be proud.
God,
all!
It's fib,
version A.
Edit idea...
No! Is rev B, if still a dog.
Post gre ess que ell
Post gres SQL
Post gres QL
I'm new here. Is OpenBSD an Open Source version of the Blue Screen of Death?
Mildly relevant comment related to bad naming: I drove by a new bar yesterday, called "Fox and Hounds English Pub and Grill". Who would want to go to a bar to meet women there? What horrible odds, one fox, lots of dogs!
Blogs enable the masses to be able to publish fast and without thought. Case in point, your highly though-provoking subject line. In a rush to publish (first post syndrome), people produce crap.
Back then (early '90s), simple encryption SOFTWARE was considered a munition, similar to if he snuck an atom bomb out of the country. The software was "released" onto the evil internet (perhaps not even by Phil), and as I recall, Phil was arrested or charged, or questioned.
My history is based on memory from reading Boardwatch magazine (a GREAT internet publication in the hey-day). So I may not recall 100% correctly.
So you ARE agreeing that it is THE COMPANY's decision to give an increase, because it's in THEIR best interest, and not the employee's entitlement.
So I made my point, thank you. I figured that angle would prove my point.
Interesting concept.
Unfortunately, I can't find any credible article, using Google, that supports that theory. I did find this one (also not all that credible, but interesting), which states that Wage Rises actually cause inflation, and workers are worse off in the long run with wage rises.
All those dot-bomb employees thought their outrageous wages were fabulous until they had to be unemployed for a while. Now the dot-com refugees are settled back into normal jobs, but there was a while where you couldn't find anyone who had written a 50 line ASP script for less than $90K in the MIDWEST (speaking about my experience only, not in all of the midwest). Now they can easily be found for $45K, begging for work. It's just a different market. And the workers that we're carrying for $90K make me think every month why I don't two new people to replace them. Give them a raise??? I don't think so. (it almost gets to the point where you start thinking... "Maybe if I piss them off enough, they'll quit and we'll be better off." See my point?)
Let's pretend you make say $800,000 for the job you are doing right now. Further, let's pretend that I can hire someone in the market for $40,000 and expect that they will most likely be able to perform the same job, with the same credentials, at about the same performance level. Do you still think I should give you a raise just because the year changed from 2005 to 2006?
All your arguments fall away. Yes, prices went up. Yes, $800,000 doesn't go as far this year as it did last year. Yes, I'll incur switching costs by hiring someone else if you bolt. But all these things don't change the fact that you are not entitled to an increase, and as the employer, I'd say no, no annual increase. Those are the arguments that you presented (pretty well, I might add). But just changing the numbers shows how ludicrous that argument is. Now take the $800,000 down to $50,000 and re-think it. Maybe switching costs are too expensive at this point, but it's still the company's decision, not an entitlement!
You have to consider the labor marketplace. You're a seller of services. The company is a buyer. I agree, part of the annual increase stuff is to keep you interested enough not to look for another job, but that's the buyer's decision (the company), not an entitlement of the seller (the worker).
The Consumer Price Index shows increases from 2001-2006 of: 1.6%, 2.4%, 1.9%, 3.3% and 3.4% (second last column).
Keep in mind that inflation has raised the costs for the company as well. And if the "going rate" for a person of your caliber has gone down, then inflation is really irrelavant.
You shouldn't be working hard to get a raise. You should be working hard to earn your current salary. Isn't that what you are being paid for?
Tell me why again, you feel you deserve a raise? You agreed to a certain wage - why, all of the sudden, do you feel you deserve more? To buy a new calendar? It doesn't make sense to me that you feel you deserve more money simply because another year went by.
Now, if you tell me that the prevailing wage went up, that's a different story. Or if your contributions led to much more profit than expected, that too is a different story. But this "entitlement" of an annual raise is silly.
In fact, in many parts of the IT industry, the average wage in 2005 was less than the "going rate" in 1999. If you happened to have the same job as you did in 1999, congratulations, you are probably over-paid. The company SHOULD be reducing your salary. But that's a difficult thing to do, morale-wise. So instead, there's a gradual decline, through minimal raises, attrition, layoffs, and possibly businesses going under (which many did!)
Don't expect a raise. You're not entitled to it. Now get back to work.
- Your boss
Here are my estimates after running through a few that I was curious about:
Java 500 Python 180 Ruby 120
Notes:
- I counted on a few pages, and estimated the rest.
- This was strictly a word find, so Java and JavaScript would both show up above (and yet, I understand that they are different languages). For this reason, I couldn't easily count C or VB/Visual Basic.
- Some people mentioned the same language by name multiple times, and thus got counted multiple times.
- Mentioning that "LanguageX sucks" would still register a count for LanguageX. Further, a message with the Subject "Re: Python", that said "No, try Ruby" would count once for Python and once for Ruby.
- I am not trying to make any point with this, other than seeing which languages people are mentioning. Someone might want to run a more elaborate test, as this has no statistical significance.
- This message was constructed to the same number of references to each language counted, so if someone wants to count again, I don't throw off the count much (for the languages mentioned - even LanguageX).
For that natural language approach, try COBOL. With skills in COBOL, I guarantee you won't be looking for a job in the IT industry very long.
Why is Squidoo #1,000,001? It was created in October 2005, and edited yesterday. Is this 1 millionth EDIT? I'm confused.
As I have said before, I was amazed at Python, having used it for a couple of months. I'm an old Basic hack from the TRS-80 days, and missed those days, when you could just tap out a program, and off it went.
Honest, that same fun is back. If you haven't yet devoted 2 hours of your time to downloading Python, installing it, and working through the tutorial, you are really missing something.
Because it is like the old days. Only better. (because of all the possibilities). Day 1 with Python, I wanted to see if I could write a "word find" program (which was one of my first BASIC programs as a kid). Wow... it was cool. And yes, you can just type in a program and have it execute (real time) - or you can put it in a separate window (saved file) and run it multiple times (same load / save / run -type deal as Basic).
Second challenge, a smart Sudoku solver. Way cool. Nothing major. Just wanted to see if I could do it. Third challenge - rubik cue solver. Wow. I like this simple math stuff. Not going to win any awards, but it's nice to be able to "just code".
Some of the little things, like built-in dictionaries and built-in sorting make it sooooo much nicer than the old days (how many times did I use that old Shell sort from the 1976 Creative Computing magazine?)
Trust me on this one. From one old Basic hack to another... you have to try it.
One could argue that there are a lot of abstract concepts in your programming example. variables, bit-mapped Memory (or not), branching, top down coding, spaghetti code, etc. I bet you didn't concern yourself with them.
I'm an old Basic hacker who learned in the mini-computer era, right up through the TRS-80 etc. And I missed those days. And I see them back with Python. Granted, I only have been playing around with it for a couple months, but the joy is back! And yes, I don't know all the tricks about objects and the complete library that's available. But I do know the basics. And they're so simple to master, it's fun again!
I've written about 10 Python programs and I bet I can write that same plotter program in no time, and toss pixels on the screen. One google search will lead me to one or two libraries that I import, and the rest will be pixel painting fun. And I bet my Python program to approximate your basic program will be about the same length and complexity.
The difference is, now you can paint pixels, but you can also mash up web sites, or retrieve your email, or access databases, or perform built-in searches, or any number of things. The possibilities are way more now than then!
Quoting your first message:
The other part is that entry requirements have gotten much, much tougher. For example, here's a complete and useful program in Basic:
10 input a, b, c
20 print (-b + sqr(b*b - 4*a*c)) / (2*a)
30 print (-b - sqr(b*b - 4*a*c)) / (2*a)
40 goto 10
This is readily understandable by anyone who knows a little maths, and more to the point, is gets the job done.
What's a keyboard? How do I get this into my computer? what's a computer? Why 10-20-30-40? Where's step 1? Why input? What's in, and where do I put it? Print? I don't even have a printer hooked up. What's goto? Got-Milk yes, Got-O, no. Why are there stars everywhere? What's sqr? Why do I need parentheses? why not just that little square root symbol (radical...) What's the slash?
How do I get this into the computer? TYPE IT? Into WHAT? OH into an INTERPRETER? WHAT'S AN INTERPRETER? What does BASIC stand for? (about as meaningful of a question as what is an IDE or IDLE - insignificant to the problem at hand.)
Your argument is that people don't know what a menu or a mouse or an icon is? Give me a break. My 98 year old grandfather and my 2 year old neice both understand these concepts, but could NEVER program in BASIC.
My point is that Python is as accessible as Basic, with the sole exception that it doesn't come pre-installed. Other than that, it's approximately as easy for a novice to learn, and as easy for someone who doesn't know programming to get a general idea about what something does.
If you were trying to make the point that someone could easily program in Basic but not in Python, you failed to support that argument. Your points equally invalidate Basic as a programming language, because a novice wouldn't understand variables (which appear in both languages), functions by name (sqr vs. sqrt), syntax (why a line number? why separate them by 10? why print and not write? why input and not "get from user"? why * meaning multiply and / meaning divide? Why parens around function parameters? Why one instruction per line (yet you allow multiple pieces of information to be input)?), and other general programming concepts.
Further, to argue that TYPING (from memory) "LIST", "RUN", "LOAD", "SAVE" is somehow better than selecting choices from a drop down menu (File / Open, File / Save, etc.) is ludicrous. Maybe you didn't notice the command line interface get decimated by grapical user interfaces. Welcome to 1984. You're perhaps the only person on earth who believes that command line is EASIER for the novice than a GUI. Because the people have spoken, and voted with their pocketbooks. Memorizing commands is NOT easier for the novice, than selecting from choices.
Sorry dude. Can't have it both ways.
Prepare to pay twice the minimum bid to get the desired result (allowing for re-work):
www.rentacoder.com www.scriptlance.com www.elance.com www.getafreelancer.com www.guru.com www.topcoder.com www.website-content-writer.com www.phpcareer.com www.moonlighter.com www.workasafreelancer.com
Python doesn't look much different to me. Get rid of the line numbers and type into the interpreter. Why is this hard? (Probably because Python doesn't "come with" the system, I guess.) Note, I choose to import sqrt rather than raise to the .5 power. Python is the answer for all former Basic hacks.
>>> from math import sqrt
>>> a,b,c=1,5,6
>>> print (-b + sqrt(b*b-4*a*c))/(2*a)
-2.0
>>> print (-b - sqrt(b*b-4*a*c))/(2*a)
-3.0
>>>
And this was straight into the interpreter (IDLE), but I could have easily selected "file / new" from the menu, and put it into a program and saved it, put an input statement at the beginning, and duplicated EXACTLY what you had (only with all the benefits of Python that Basic never had, like scalability, object orientation, real scripting, database access, dictionaries, and libraries of pre-written code).
from math import sqrt
a,b,c=input()
print (-b + sqrt(b*b-4*a*c))/(2*a)
print (-b - sqrt(b*b-4*a*c))/(2*a)
[f5] runs it... same result (only the user is prompted). Is that so hard?