Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror

Comment Magic The Gathering sorting (Score 1) 195

For MTG Cards I use a few sorting methods.

The goal is to have them split up so that the colors are in their individual bins; each of those bins are sub-binned as either creatures, enchantments, or sorceries/instants/interrupts; and then all cards are alphabetized within each of the sub-bins. Multi-colored cards I don't bother with the sub-binning but instead alphabetize them after the color binning because there are a lot less of them.

For the initial color binning I use a few runs of quick sort.

A single run of quick sort to divide them into the sub-bins of creatures, enchantments or sorceries/instants/interrupts. (Damn Theros trying to throw a wrench into my plan, I finally decided to simply treat the Enchantment Creatures as enchantments because that was the first word)

For alphabetizing the cards I start with a binary tree on the first letter of the card to bin them and then I use insertion sort on each bin. I intentionally start with the tree with a card whose first letter is around the middle of the alphabet. Next a recursive tree tracing algorithm to put the bins back together in order. Finally an "insertion sort" of these now sorted new cards into my already sorted old cards.

That first insertion sort could probably be replaced by a more efficient algorithm but after all the binning the largest bin is usually no more than 30 cards. The next "insertion sort" is really something else I forgot the name of but the thing is I'm running it on two already presorted arrays so the indexes into both arrays only need to keep growing and make single pass of each array to put the cards away.

When I get a couple of booster boxes per release and want them split up and alphabetized as described above definitely need a sorting algorithm.

Comment CYA through internal company methods (Score 1) 221

I'm a former software and system engineering team supervisor/task lead, not a lawyer so you'll need to talk to your company's lawyer to provide more expert advice.

Tell your chain of command to grow a pair (in a more eloquent and enlightening manner), that what they are asking can't be done, and your estimate of when it can be done so they can inform the customer. Or they need to hire additional team members and adjust the price to reflect rush jobs.

When that doesn't work make sure to follow your appropriate reporting routes to your HR/Legal team that these requirement changes are negatively impacting not only the software team but the company's reputation. You'll need to make sure they get: a copy of the original requirements, the original schedule, the new requirements, your estimated schedule deviation due to new requirements, the dates of when you informed your chain of command, the actual schedule deviation, and the test results. Then ask them what else they may require from you to do or their advice to you. Now this won't "fix" the issue but you need to do it to cover yourself for the next step. Stop caring so much about meeting unattainable requirements and only work according to the original schedule + whatever free time remains in your scheduled work period (40 hours a week max unless your contract says otherwise).

If you end up getting lower than normal performance reviews because you haven't met unattainable requirements, you'll need to go to your company's HR/Legal team again for conflict resolution. If it ever gets to this point you and the HR/Legal team will have documented history of these problems which also show that you had attempted to handle the issue through the appropriate chain of command for your company. At this point if the companies lawyers aren't trying to mediate the issue contact an outside lawyer, but usually a company rather's handle issues internally so you shouldn't need to.

As an aside,
To help educate our customers when requirements will be met:
-We had weekly status meetings (no more than 10-15 min for any single project) where we used a diagram showing the workflow of the development process with the associated deadline/man hours for each step. Double check with your company before showing them a diagram like this though because some companies consider their development process proprietary information (they're all based off of similar schedule management techniques but companies are crazy at times, go figure).

-We also put up estimated dates for next releases of requirements with no more accuracy than which quarter of the year we thought it might fall into. This way the customer could think about changing around requirements if needed but wasn't going to assume they would get done by a simple date.

Comment Re:Apprentice? (Score 1) 948

The major reason I got hired was that I was in an internship during college and showed that I was capable of doing the work required. Best way to get a job in my opinion, assuming you don't goof off.

Comment Design over coding (Score 2) 948

In the interviews I've performed I've only been interested in coding experience as a demonstration that they can pick up other languages as needed for a project (yay for having 10+ languages floating around at my work site that i'm aware of). What I more drill them down on are design decisions. In given a problem why do they pick one language, algorithm, or architecture and why they made the decision? Most of the experienced programmers we've turned away we're talking about their major code upgrade projects were to switch to a modern language but couldn't provide a better reason to make the switch than the old language was out of date. DON'T go to an interpretive language for a near real time application if the supporting architecture isn't going to support the added overhead.

Comment Three different sets of class topics (Score 1) 462

Is this class suppose to be ICT or Programming? The sample stuff you're thinking about all belong in a Programming class not an ICT class.

Anyways here are some sample stuff I'd put in depending on what kind of class you are actually suppose to be teaching. Keeping in mind that these are high schoolers that haven't decided their careers and this class is to help them decide if they want to go in that field

If ICT i'd say teach them a bit about below:
1. History of how the internet came about (DARPA and telecoms and so on)
2. Have them do a debate/essay on arguing for or against taking control away from ICANN
3. Get them to know basic networking equipment (routers, switches, hubs, modems)
4. the 7 layer communication stack {yah yah, i know I shouldn't have forgotten it's name} and how it applies to their computers and sending data across the internet (talk about email traffic since most kids are using email already by that age)
5. Maybe a lab setting up a network, web server, file share system. network accounts
7. Make them know the differences between WAN, LAN and so on
8. If you want them to do a little scripting as part of ICT then have them learn Shell scripts for linux and batch files for windows (they'll come preinstalled on any OS so there is always something to fall back on if the nice ones aren't there)
9. Give an intro to databases
10. cover what a proxy is

If you want basic CS
1. History of computer evolution: World War 2, eniac, main frames, pc's, web apps
2. Any single simple languague (Perl, Python, ...) to explain: loops, recursion, regular expressions, the benefits of commenting, psuedo coding (do not teach them algorithm analysis), discuss parallelism but don't make them do anything on it unless for extra credit
3. Simple discrete math. "If P then Q" kinda stuff, set theory
4. Simple databases and programmatic querying of them
5. Software life cycle: have a class project where they have to go through all the steps of Request For Proposal, Proposal, Requirement gathering/Use Case building, coding, testing (mapped to use cases), delivery (with associated documents[test report, install guide, user guide])
6. get them to debug other students code

If you want basic Computer Usage (not really to get them interested in a career but to get them to know how to use comps)
1. Setting up web searches (usage of "and"s, "or"s, "not"s and so on)
2. Web applications, google docs, microsoft online office, ...
3. Basic info on copy write law, GPL, and other licensing (aka they can make a rough idea if what they are about to down load or do is illegal or not), ethics
4. Setup a personal webpage (use a gui creator and if you've got some really interested students ones show them html/javascript)
5. Teach them to be careful about what they do online, I.e. get them to try to find out about as much information a random stranger can find out about them
6. Chat clients, skype
7. Anti-virus usage
8. Email etiquette
9. Backing up their data

Comment Re:Give it to the UN (Score 2, Interesting) 258

Purpose: Propose a valid reason for giving control of internet regulation the UN

Note: This is my first time posting but i've had nagging ideas that mesh well with this topic. I'll be writing some intro stuff and tie it to the topic as i write.

Most peoples arguement to letting the UN handle anything, as far as i've noticed, is that it is bumbling and ineffective to a greater degree than any national government. I believe this state is caused by nations prefering to not have a "super-nation" above them and therefore will not give powers to the UN. If the UN has no powers to enforce any of its decisions of course it will be ineffective and ignored(anyone remember Wilson's the League of Nations). So in order to remove the ineffectiveness of the UN we must give it more power to make a force that countries must deal with. The bumbling will still be there, but in order to remove that it would have to be streamlined which raises a whole mess of political questions. My thoughts as to path of fixing this problem is to slowly give the UN the small inconsequential powers, like internet regulation, till it has built up a good powerbase. With a powerbase it forces nations to see increased benefit by working with the UN which in turn gives the UN more credance and power, thus creating a cycle.

Many people on the internet will disagree with my statement that internet regulation is a small inconsequential power, but think about this. Our lives are shaped around the internet and therefore skewed while the vast majority of the population on Earth has little to do with the internet and would think nothing of the UN taking it over.

While yes opening up governance of the internet to foreign countries could possibly increase censorship on the internet; I believe increasing the UN powerbase outweighs that concern. It must also be noted while their are strong nations as proponents to censorship of the internet, the opponents to it may be weaker in the majority but they far outnumber them.

The internet is a global community which noone can reasonably argue with now; and it would be better, in terms of representation, if it was controlled by a global organization than a small one in a single nation. So I believe we as the internet community should take the chance of the internet regulation being messed up, because the unintended benefits will outweigh any problem that may arise.

Slashdot Top Deals

Matter cannot be created or destroyed, nor can it be returned without a receipt.

Working...