Saturday, November 26, 2005
AussieMOO: The Fountain of Youth
Discussing the issues of Internet use by children in my last post reminded me of my own Internet journeys while young. It was 1996, I was age 11, and I was being home-schooled for Grade 6.
It was that year that I really discovered the Internet in depth.
In particular, I discovered MOOs: neat virtual worlds where one could chat with others and extend the virtual reality by programming whatever the mind could conceive. Unfortunately, the mind was fully capable of conceiving age discrimination. Thus, I visited one MOO and was soundly ignored by 50% of its citizens and cosseted by the other 50% for being age 11. I was ready to say piss on the Internet, but I thought I'd give another MOO a try before making the decision.
That MOO was AussieMOO. Except this time, the boy wasn't 11 years old. He was 19. And he was accepted.
I spent about a year there and it was there I really learned to love programming. And you know what? I *never* *ever* thought someone was pulling the same trick I was. I thought they were all truly old and wise. Isn't this scary? I was deceiving others, but couldn't fathom they were doing the same to me. This is the best reason I can think of for educating young kids and teenagers about the Internet instead of just banning it.
Now, as I look back on it, I don't know who those people were. They could have been anyone. That is, after all, half the fun of the Internet: no-one knows you're a dog, and all that. But a funny thought occurred to me: what if everyone else on AussieMOO was a pre-teen, pretending to be otherwise to get acceptance?
What a weird place, that Internet.
It was that year that I really discovered the Internet in depth.
In particular, I discovered MOOs: neat virtual worlds where one could chat with others and extend the virtual reality by programming whatever the mind could conceive. Unfortunately, the mind was fully capable of conceiving age discrimination. Thus, I visited one MOO and was soundly ignored by 50% of its citizens and cosseted by the other 50% for being age 11. I was ready to say piss on the Internet, but I thought I'd give another MOO a try before making the decision.
That MOO was AussieMOO. Except this time, the boy wasn't 11 years old. He was 19. And he was accepted.
I spent about a year there and it was there I really learned to love programming. And you know what? I *never* *ever* thought someone was pulling the same trick I was. I thought they were all truly old and wise. Isn't this scary? I was deceiving others, but couldn't fathom they were doing the same to me. This is the best reason I can think of for educating young kids and teenagers about the Internet instead of just banning it.
Now, as I look back on it, I don't know who those people were. They could have been anyone. That is, after all, half the fun of the Internet: no-one knows you're a dog, and all that. But a funny thought occurred to me: what if everyone else on AussieMOO was a pre-teen, pretending to be otherwise to get acceptance?
What a weird place, that Internet.
Would somebody please think of the children?!?
So I just read this article here. Essentially, a high school in New Jersey has issued an edict prohibiting its students from participating in the "blogosphere". No blogs, no websites, no profiles on online community sites.
Why? To protect the students (both the blogging, and the blogged about) from online predators.
Parents are thrilled with the idea. One has thanked the school for the idea and gone so far as to block her kid's access to the Internet at home completely. The principal, Rev. Kieran McHugh, is taking a hardline:
Sadly, it's not gonna work. It's ironic that a school, of all places, forsakes eduating its students about the dangers of this technology in favour of a carpetban. All you'll do is drive its use underground. Instead of the popular blog services, students will frequent lesser known ones. Instead of using school and home computers, which can at least be monitored, students will use a friend's computer, an Internet cafe, or a wireless hotspot. Honestly - in a technological cloak-and-dagger battle, do you think the 50-year-old parochials will win, or the teenaged whiz kids?
What frightens me the most is the possibility that students will, despite the ban, keep blogging. After all, what's an expulsion compared to sharing your inane thoughts on the web, right? Teenagers do, after all, have messed up priorities.
And then Rev. McHugh's nightmare will come true: at least one student will be approached by a seedy character. And this student will not have been educated about how to detect and avoid these people. And even if the student realized his error and wanted help, that student might not wish to risk the certain disciplinary action if he came forward and asked for help. After all, teenagers have those messed up priorities, right?
Edict over education? What an academic way of thinking.
Why? To protect the students (both the blogging, and the blogged about) from online predators.
Parents are thrilled with the idea. One has thanked the school for the idea and gone so far as to block her kid's access to the Internet at home completely. The principal, Rev. Kieran McHugh, is taking a hardline:
"I don't see this as censorship," McHugh said this week. "I believe we are teaching common civility, courtesy and respect." [...] "If this protects one child from being near-abducted or harassed or preyed upon, I make no apologies for this stance,"McHugh said. (from the linked article)
Sadly, it's not gonna work. It's ironic that a school, of all places, forsakes eduating its students about the dangers of this technology in favour of a carpetban. All you'll do is drive its use underground. Instead of the popular blog services, students will frequent lesser known ones. Instead of using school and home computers, which can at least be monitored, students will use a friend's computer, an Internet cafe, or a wireless hotspot. Honestly - in a technological cloak-and-dagger battle, do you think the 50-year-old parochials will win, or the teenaged whiz kids?
What frightens me the most is the possibility that students will, despite the ban, keep blogging. After all, what's an expulsion compared to sharing your inane thoughts on the web, right? Teenagers do, after all, have messed up priorities.
And then Rev. McHugh's nightmare will come true: at least one student will be approached by a seedy character. And this student will not have been educated about how to detect and avoid these people. And even if the student realized his error and wanted help, that student might not wish to risk the certain disciplinary action if he came forward and asked for help. After all, teenagers have those messed up priorities, right?
Edict over education? What an academic way of thinking.
Friday, November 18, 2005
Porn Nation: Sex Sells
Michael Leahy. Porn Nation. Campus Crusade for Christ. I've just struck the fear of God into those students who attended Leahy's "Porn Nation" lecture, which was quietly sponsored by the Campus Crusade for Christ.
The days leading up to the lecture seem promising. Posters are everywhere, saying: "Porn Nation. Love It? Hate It? Both? Casual Pastime or Catastrophic Passion?" Gosh, seems like it's going to be a debate of social morals. If not a full-on formal debate, at least some dialogue.
So why did we get a diatribe? And why am I not surprised?
What is Porn Nation? It is the personal story of one Michael Leahy, self-confessed sex addict. Former sex addict, actually. You see, Mike had it all. He had an education, a high-paying job, a good-looking wife and two great sons you just know were destined to be All-Americans. But then Pornography got to him. Just like Pornography got to many others whose stories are glossed over in brief video clip anecdotes. It seems like Pornography can get to anyone, regardless of social status. Just ask Pornography Expert #1, with a Ph.D. Or Pornography Expert #2, with an M.S. Or Pornography Expert #3, an Author. Or Michael Leahy, Former Sex Addict (wait... aren't you the guy presenting? You included video clips of yourself?) Or hell, ask Pornography Experts #4, #5 and #6, all reformed sex addicts. Wait a minute. . .I thought this was about Pornography, how did these Sex Addicts get into the mix?
Doesn't matter - 60 painful minutes of awkward presenting later and we're just discovering how Mike's affair with the office bimbo has destroyed his marriage. His brother-in-law has him on the phone. This is a man whom Mike has never spoken to on the phone before. And this man says two words to Mike, two words which change his life forever.
At this point, the house lights come on. And Michael says, "Gosh, Guys. I want to share those two life changing words with you. I really do. But you know, it's going to get a little bit spiritual in here. And I don't want to be the deceptive sleazer who forces the spiritual message down anyone's throat, so gosh, have a couple minutes to get the hell out if you're Atheist, Jewish, Buddhist, Hindu or Sikh." Just kidding - he didn't enumerate the religions (although he later makes you painfully aware that he knows of them). He did play a four-minute countdown clock to give Non-Adherents of the One True God time to leave, though.
When the clock runs out, Mike welcomes us all back. Those two words? "Find God." We learn that it's best to find God now. He'll wait for us. We can go try out the other religions, we can ignore him, but eventually, we'll fall back on the One True God of the Universe. This is word-for-word. Pornography Experts 1 through 6 (yep - even the Ph.D.- and M.S.-toting experts) all appear on the screen, much happier, talking about how God has helped them get through their difficulties. Is that a crucifix I spy on Pornography Expert #5's necklace? It is!
The lights come up. The show is over. Some chap whose name I didn't catch stands up and says, "Gosh guys, thanks for coming. As you might have known, this event was sponsored by the Campus Crusade for Christ, and w--" The oxygen in the room momentarily depletes as 90% of the audience has an "Aha!" moment. "we'd like to invite you to an event we're having tomorrow called Pure Freedom, where you can learn not to masturbate or have sex until you're married and trying to conceive."
Michael Leahy, there is only one word to describe you, and it is short, ironic and deliciously apt.
Michael Leahy, you are a wanker.
Your promotional material is deliberately deceptive and abuses the very human impulses your lecture sought to "educate" us about. Your 15 years of addiction taught you that, more than anything else, sex sells. Hypocritically, you're fighting porn with... porn. You, who said, "Porn is the battle. Freedom is the reward."
Wanker.
(tags: campus crusade for christ, porn nation, michael leahy)
The days leading up to the lecture seem promising. Posters are everywhere, saying: "Porn Nation. Love It? Hate It? Both? Casual Pastime or Catastrophic Passion?" Gosh, seems like it's going to be a debate of social morals. If not a full-on formal debate, at least some dialogue.
So why did we get a diatribe? And why am I not surprised?
What is Porn Nation? It is the personal story of one Michael Leahy, self-confessed sex addict. Former sex addict, actually. You see, Mike had it all. He had an education, a high-paying job, a good-looking wife and two great sons you just know were destined to be All-Americans. But then Pornography got to him. Just like Pornography got to many others whose stories are glossed over in brief video clip anecdotes. It seems like Pornography can get to anyone, regardless of social status. Just ask Pornography Expert #1, with a Ph.D. Or Pornography Expert #2, with an M.S. Or Pornography Expert #3, an Author. Or Michael Leahy, Former Sex Addict (wait... aren't you the guy presenting? You included video clips of yourself?) Or hell, ask Pornography Experts #4, #5 and #6, all reformed sex addicts. Wait a minute. . .I thought this was about Pornography, how did these Sex Addicts get into the mix?
Doesn't matter - 60 painful minutes of awkward presenting later and we're just discovering how Mike's affair with the office bimbo has destroyed his marriage. His brother-in-law has him on the phone. This is a man whom Mike has never spoken to on the phone before. And this man says two words to Mike, two words which change his life forever.
At this point, the house lights come on. And Michael says, "Gosh, Guys. I want to share those two life changing words with you. I really do. But you know, it's going to get a little bit spiritual in here. And I don't want to be the deceptive sleazer who forces the spiritual message down anyone's throat, so gosh, have a couple minutes to get the hell out if you're Atheist, Jewish, Buddhist, Hindu or Sikh." Just kidding - he didn't enumerate the religions (although he later makes you painfully aware that he knows of them). He did play a four-minute countdown clock to give Non-Adherents of the One True God time to leave, though.
When the clock runs out, Mike welcomes us all back. Those two words? "Find God." We learn that it's best to find God now. He'll wait for us. We can go try out the other religions, we can ignore him, but eventually, we'll fall back on the One True God of the Universe. This is word-for-word. Pornography Experts 1 through 6 (yep - even the Ph.D.- and M.S.-toting experts) all appear on the screen, much happier, talking about how God has helped them get through their difficulties. Is that a crucifix I spy on Pornography Expert #5's necklace? It is!
The lights come up. The show is over. Some chap whose name I didn't catch stands up and says, "Gosh guys, thanks for coming. As you might have known, this event was sponsored by the Campus Crusade for Christ, and w--" The oxygen in the room momentarily depletes as 90% of the audience has an "Aha!" moment. "we'd like to invite you to an event we're having tomorrow called Pure Freedom, where you can learn not to masturbate or have sex until you're married and trying to conceive."
Michael Leahy, there is only one word to describe you, and it is short, ironic and deliciously apt.
Michael Leahy, you are a wanker.
Your promotional material is deliberately deceptive and abuses the very human impulses your lecture sought to "educate" us about. Your 15 years of addiction taught you that, more than anything else, sex sells. Hypocritically, you're fighting porn with... porn. You, who said, "Porn is the battle. Freedom is the reward."
Wanker.
(tags: campus crusade for christ, porn nation, michael leahy)
Wednesday, November 16, 2005
Software versions
I installed a program today and it gave me pause to stop and remember just how young the software industry is.
Why? The program was at version number 25. 25.3, for nitpickers. That seemed a bit... much. I mean, what else is out there? The Linux kernel (2.6), Microsoft Office (13), Windows (5.2), Adobe Illustrator (11).
What will the software world look like once it's twice as old, around 2040? Will we have crazy flying cars running Windows 345? Will we launch Word 743 to pen a memo?
Bizarre.
Why? The program was at version number 25. 25.3, for nitpickers. That seemed a bit... much. I mean, what else is out there? The Linux kernel (2.6), Microsoft Office (13), Windows (5.2), Adobe Illustrator (11).
What will the software world look like once it's twice as old, around 2040? Will we have crazy flying cars running Windows 345? Will we launch Word 743 to pen a memo?
Bizarre.
Monday, November 14, 2005
Signs you've found a bad freelance project...
So let's see if we can find a few signs that the project you've been thinking about bidding on is a lemon.
Simple Project Syndrome
Well, for starters, there's the classic simple project syndrome. Usually, this manifests itself in the buyer severely underestimating the amount of work to be done. The buyer, in addition to believing that storks deliver babies, believes that Windows 3.1 was programmed by Bill Gates turning on a computer. Windows 95, which merited a multi-million dollar marketing spree, probably required a couple of mouse movements. Windows XP, Microsoft's most complex piece of software yet and clocking in at over 65,000,000 lines of code, was outsourced to India. For $10. You can spot these guys because within the first 5 words of the project description (perhaps the only 5 words) they'll say: "This is a simple project."
Brevity is the Soul of Success Syndrome
At the other end of the spectrum, we come across the grandiose dreamers. These people are going to change the world with their New and Improved Doohickey, damnit, and you're going to code it! Take this project description, for a Global Stock Exchange Trading Platform, budgeted at around $50,000:
Let's Build a Relationship Syndrome
In this category, we have the Daddy Warbuckses. Gosh, they're just looking for a bright, fresh vendor to do business with. And wouldn't you know it, they've got 80 (or some other random number -- who cares, talk to me about dollar-value, people!) more projects lined up for next Tuesday alone! And you can be the lucky guy doing them! Just do this one project, dirt cheap, so we can get a feel for how good of a fit you'd be with us.
Simple Project Syndrome
Well, for starters, there's the classic simple project syndrome. Usually, this manifests itself in the buyer severely underestimating the amount of work to be done. The buyer, in addition to believing that storks deliver babies, believes that Windows 3.1 was programmed by Bill Gates turning on a computer. Windows 95, which merited a multi-million dollar marketing spree, probably required a couple of mouse movements. Windows XP, Microsoft's most complex piece of software yet and clocking in at over 65,000,000 lines of code, was outsourced to India. For $10. You can spot these guys because within the first 5 words of the project description (perhaps the only 5 words) they'll say: "This is a simple project."
Brevity is the Soul of Success Syndrome
At the other end of the spectrum, we come across the grandiose dreamers. These people are going to change the world with their New and Improved Doohickey, damnit, and you're going to code it! Take this project description, for a Global Stock Exchange Trading Platform, budgeted at around $50,000:
I have a complex project that will need great skill and attention. I need a bid for a global stock exchange trading platform. Please base the bid on creating something like ameritrade, e-trade, etc, so that buy and sell orders are routed to broker/dealers, etc. I know you will have questions for me regarding this project so please submit them to me ASAP. I need to get a clear idea of what this will cost and in which timeframe it can be delivered.Oy. Wondering how to summarize a 500-page project specification? Use "etc". Twice.
Let's Build a Relationship Syndrome
In this category, we have the Daddy Warbuckses. Gosh, they're just looking for a bright, fresh vendor to do business with. And wouldn't you know it, they've got 80 (or some other random number -- who cares, talk to me about dollar-value, people!) more projects lined up for next Tuesday alone! And you can be the lucky guy doing them! Just do this one project, dirt cheap, so we can get a feel for how good of a fit you'd be with us.
Jessica Smith: Pay your Visa bill...
by December 5th.
Monday, November 07, 2005
Marketing
Ok, so the good folks at RentACoder proudly and frequently reiterate that they have over 121,000 coders at the beck-and-call of any good capitalist with a Visa.
Yet, if you look closely at their coder rankings page, you will discover that they only have 9,543 coders who have successfully completed jobs. A third of this number, about 3,300 or so, is the number of coders who have, on the whole, absolutely botched their average job (see here).
So what are we really left with?
12,800 (10.6%) coders who completed work
...of these, 25.8% botched the job
108,200 (89.4%) coders who have never actually coded
Certainly not the impression a prospective buyer might get from RAC's website, eh? That's good marketing!
Yet, if you look closely at their coder rankings page, you will discover that they only have 9,543 coders who have successfully completed jobs. A third of this number, about 3,300 or so, is the number of coders who have, on the whole, absolutely botched their average job (see here).
So what are we really left with?
12,800 (10.6%) coders who completed work
...of these, 25.8% botched the job
108,200 (89.4%) coders who have never actually coded
Certainly not the impression a prospective buyer might get from RAC's website, eh? That's good marketing!
Wednesday, November 02, 2005
e-Security
From the website of a trust broker (someone who is in the business of verifying party A really is party A), on why they need your birthdate:
Your Date of Birth will help us to verify your identity in the quickest manner. This is information only you should know, and therefore helps confirm your identify.I feel safer already.
How to build a search string
As part of my work to produce a graphical interface to SNORT alerts, I needed a way to generate traffic using the User Datagram Protocol or UDP as it's more commonly known.
So my Google query might look like: "generate udp traffic"
I want to do this from the DOS command line.
So maybe "generate udp traffic from dos".
But I'm really lazy and I know that most search engines ignore common words like "from".
So maybe "generate udp traffic dos".
So I Google for that.
Then I realize that if you capitalize things a little bit, you get "generate UDP traffic DoS". Add an article and you get "generate a UDP traffic DoS" where DoS stands for denial of service attack, a big no-no where you get a bunch of machines to crapflood one server in the hopes of keeping it so busy dealing with your traffic that it cannot service other requests.
And now you'll know why Dan has disappeared if the NSA comes knocking on our door tomorrow.
So my Google query might look like: "generate udp traffic"
I want to do this from the DOS command line.
So maybe "generate udp traffic from dos".
But I'm really lazy and I know that most search engines ignore common words like "from".
So maybe "generate udp traffic dos".
So I Google for that.
Then I realize that if you capitalize things a little bit, you get "generate UDP traffic DoS". Add an article and you get "generate a UDP traffic DoS" where DoS stands for denial of service attack, a big no-no where you get a bunch of machines to crapflood one server in the hopes of keeping it so busy dealing with your traffic that it cannot service other requests.
And now you'll know why Dan has disappeared if the NSA comes knocking on our door tomorrow.
RentACoder, eLance et al - The Problems
So, as rent comes rolling around, I am drawn back to RentACoder-type freelance sites for those mythical 2-4 hour projects with good wages that I talked about earlier.
They do exist: I'm currently trying to swing a deal to model 60 chemical structures in a proprietary XML format for $250 -- the knowledge is all public domain, it's just a little matter of data humping.
From my point-of-view, these freelance sites are incredibly valuable as potential sources of work but their interface is not nearly refined enough to allow me an efficient experience. This got me to thinking - how can I streamline my experience with RentACoder (and eLance, should I choose to try the waters there)?
To answer this question, let's break down the bidding process into steps and substeps.
Clearly, the $250 project is not really a $250 project. So if this overview of the experience gives an accurate view of the problems, how we can improve the process? I've got some ideas, and I'll post them here later.
They do exist: I'm currently trying to swing a deal to model 60 chemical structures in a proprietary XML format for $250 -- the knowledge is all public domain, it's just a little matter of data humping.
From my point-of-view, these freelance sites are incredibly valuable as potential sources of work but their interface is not nearly refined enough to allow me an efficient experience. This got me to thinking - how can I streamline my experience with RentACoder (and eLance, should I choose to try the waters there)?
To answer this question, let's break down the bidding process into steps and substeps.
- Get a wide list of candidate projects - Obviously, I'm only interested in projects I can successfully complete, and thus get paid. That is, after all, the point of living, right? So this step breaks down into:
- Get list based on project type - You can only filter on broad properties of the project such as "Web-based application" or "Visual Basic" application", not on narrower domain-related properties such as "enterprise web-based GIS applications". So, you end up setting very broad parameters and filtering by the project's name. "HTML to address list parsing program": Yes. "Web Control expert": Maybe. "Duplicate eBay.com and PayPal.com": No.
- Trim list based on project budget: You can only filter on really, really broad categories: Unknown, 0 - 100, 0 - 500, 0 - 5000, >= 5000. Notice something weird here? I know my father would. Besides being very coarse-grained and having a predilection towards smaller budgets (which suggests something about the average project), there are 4 budgets which can specify a price range of "0 - 100". Grrr, bad overlap! Again, you can compensate for this by applying some fuzzy logic. "HTML to address list parsing program": @ 0 - 100, Maybe; @ 0 - 500, Definitely.
- Get list based on project type - You can only filter on broad properties of the project such as "Web-based application" or "Visual Basic" application", not on narrower domain-related properties such as "enterprise web-based GIS applications". So, you end up setting very broad parameters and filtering by the project's name. "HTML to address list parsing program": Yes. "Web Control expert": Maybe. "Duplicate eBay.com and PayPal.com": No.
- Trim list of candidate projects - Not all buyers are equal. Is this buyer a good fit for me? Are they willing to pay reasonable rates in order to get the security of dealing with someone with a shared cultural background? This involves:
- Learning if the buyer has the brains to complete the transaction - Based on their bid, do they know what they want? If not, does it look like they would recognize what they want if you helped them along? There are some projects that are terrible for this sort of thing. "Build us a website using TSN data. Project budget: $10,000." Not worth looking at at all. "We're looking to build a website which lets hockey fans review club statistics using TSN's live XML feeds. Although we're not exactly certain about what we want, we know we want Flibberjabbers and Doodads. Gewgads might be added later. Project budget: $8,000." Maybe worth looking at. After all, do I want to spend time helping them flesh out a bid that they can then hand over to someone else?
- Deciding whether or not the buyer is a serious buyer at the given price level - How many cancelled project requests has this person had in the past? How many completed projects has this buyer had? Does this project mark a change in their buying habits (e.g. it's their first $5000 project after 39 $40 projects)? How likely are they to complete the transaction?
- Discovering whether the buyer shares cultural traits - Have a look at their bid. Is the English well-written? Do they sound like someone who would respond better to "I can certainly assist you in this matter. At my rate of $50 / hour and an estimated 75 hours of work, this project will cost you $3,750." or to "GREETINGS ! IT BE ARE HAPPY TO DO THESE WORK FOR U ! PLEASE BE FINDING ARE BID OF 10$ TO YOUR GOODNESS !"?
- Discovering how difficult the buyer is to work with - How many projects of theirs have gone into arbitration? Of their successful projects, how do they rank the coders who worked for them, and how do the coders rank them?
- Discovering what the likely winning price will be - Look at their past projects. What's the buyer's "going rate", that is, the rate which they usually pay out?
- Learning if the buyer has the brains to complete the transaction - Based on their bid, do they know what they want? If not, does it look like they would recognize what they want if you helped them along? There are some projects that are terrible for this sort of thing. "Build us a website using TSN data. Project budget: $10,000." Not worth looking at at all. "We're looking to build a website which lets hockey fans review club statistics using TSN's live XML feeds. Although we're not exactly certain about what we want, we know we want Flibberjabbers and Doodads. Gewgads might be added later. Project budget: $8,000." Maybe worth looking at. After all, do I want to spend time helping them flesh out a bid that they can then hand over to someone else?
- Make bids - Even this step is not straightforward. It requires:
- Asking questions and build rapport - You're making a fixed-rate bid on a project. This is one of the most idiotic things to do in the software business. You want to ask a lot of questions and get the specification nailed down (or as close to as possible). You also want to build rapport and get the buyer on your side. Why? Well, you want him to pick you, but also because you're going to charge him a 20% premium for wiggle-room to allow for changes in the spec during development.
- Making the bid - The bid should be a detailed, well-formatted document expressing exactly what you are going to do. For a small project, this may be only 1 - 2 pages with 0.5 - 1 pages being boilerplate template. For a larger project, this may run up to 10 pages covering general feature points.
- Asking questions and build rapport - You're making a fixed-rate bid on a project. This is one of the most idiotic things to do in the software business. You want to ask a lot of questions and get the specification nailed down (or as close to as possible). You also want to build rapport and get the buyer on your side. Why? Well, you want him to pick you, but also because you're going to charge him a 20% premium for wiggle-room to allow for changes in the spec during development.
Clearly, the $250 project is not really a $250 project. So if this overview of the experience gives an accurate view of the problems, how we can improve the process? I've got some ideas, and I'll post them here later.