Forgot your password?
typodupeerror
User Journal

Journal: Continuation on education 13

Journal by jd

Ok, I need to expand a bit on my excessively long post on education some time back.

The first thing I am going to clarify is streaming. This is not merely distinction by speed, which is the normal (and therefore wrong) approach. You have to distinguish by the nature of the flows. In practice, this means distinguishing by creativity (since creative people learn differently than uncreative people).

It is also not sufficient to divide by fast/medium/slow. The idea is that differences in mind create turbulence (a very useful thing to have in contexts other than the classroom). For speed, this is easy - normal +/- 0.25 standard deviations for the central band (ie: everyone essentially average), plus two additional bands on either side, making five in total.

Classes should hold around 10 students, so you have lots of different classes for average, fewer for the band's either side, and perhaps only one for the outer bands. This solves a lot of timetabling issues, as classes in the same band are going to be interchangeable as far as subject matter is concerned. (This means you can weave in and out of the creative streams as needed.)

Creativity can be ranked, but not quantified. I'd simply create three pools of students, with the most creative in one pool and the least in a second. It's about the best you can do. The size of the pools? Well, you can't obtain zero gradient, and variations in thinking style can be very useful in the classroom. 50% in the middle group, 25% in each of the outliers.

So you've 15 different streams in total. Assume creativity and speed are normally distributed and that the outermost speed streams contain one class of 10 each. Start with speed for simplicity I'll forgo the calculations and guess that the upper/lower middle bands would then have nine classes of 10 each and that the central band will hold 180 classes of 10.

That means you've 2000 students, of whom the assumption is 1000 are averagely creative, 500 are exceptional and 500 are, well, not really. Ok, because creativity and speed are independent variables, we have to have more classes in the outermost band - in fact, we'd need four of them, which means we have to go to 8000 students.

These students get placed in one of 808 possible classes per subject per year. Yes, 808 distinct classes. Assuming 6 teaching hours per day x 5 days, making 30 available hours, which means you can have no fewer than 27 simultaneous classes per year. That's 513 classrooms in total, fully occupied in every timeslot, and we're looking at just one subject. Assuming 8 subjects per year on average, that goes up to 4104. Rooms need maintenance and you also need spares in case of problems. So, triple it, giving 12312 rooms required. We're now looking at serious real estate, but there are larger schools than that today. This isn't impossible.

The 8000 students is per year, as noted earlier. And since years won't align, you're going to need to go from first year of pre/playschool to final year of an undergraduate degree. That's a whole lotta years. 19 of them, including industrial placement. 152,000 students in total. About a quarter of the total student population in the Greater Manchester area.

The design would be a nightmare with a layout from hell to minimize conflict due to intellectual peers not always being age peers, and neither necessarily being perceptual peers, and yet the layout also has to minimize the distance walked. Due to the lack of wormholes and non-simply-connected topologies, this isn't trivial. A person at one extreme corner of the two dimensional spectrum in one subject might be at the other extreme corner in another. From each class, there will be 15 vectors to the next one.

But you can't minimize per journey. Because there will be multiple interchangeable classes, each of which will produce 15 further vectors, you have to minimize per day, per student. Certain changes impact other vectors, certain vector values will be impossible, and so on. Multivariable systems with permutation constraints. That is hellish optimization, but it is possible.

It might actually be necessary to make the university a full research/teaching university of the sort found a lot in England. There is no possible way such a school could finance itself off fees, but research/development, publishing and other long-term income might help. Ideally, the productivity would pay for the school. The bigger multinationals post profits in excess of 2 billion a year, which is how much this school would cost.

Pumping all the profits into a school in the hope that the 10 uber creative geniuses you produce each year, every year, can produce enough new products and enough new patents to guarantee the system can be sustained... It would be a huge gamble, it would probably fail, but what a wild ride it would be!

User Journal

Journal: Serious proposals to replace obamacare begin 49

Journal by Qzukk

The WSJ has floated an opinion piece offering what it calls a conservative alternative to Obamacare, that I think is the first time I've seen any conservative alternative except "Nuh-Uh!" Google news popped it up with a link to http://stream.wsj.com/story/latest-headlines/SS-2-63399/SS-2-381425/ which seems to be some sort of glorified rss feed with an HTML skin, so I have no idea if the link will be good for anyone else in the future.

It is, in my opinion, a beginning. In the past, I've called obamacare the wrong answer to the wrong question. This article suggests extending the current employer tax writeoff so that everyone, not just the employers, can buy insurance with tax-free money. Then it goes a step further by means-testing a tax credit for the poor so they can buy privately operated insurance with their tax credit instead of getting Medicaid. I think this is a good start to answering the question of how to make it possible for everyone to get at least minimal health insurance (if they want it. This is the conservative version, remember).

It is still the wrong question, though.

User Journal

Journal: 2.8 seconds of hate - bash-completion 1

Journal by Qzukk

In an effort to be fancy and helpful, bash now has context aware tab completion (in the bash-completion package on Debian). Based on where you are and what command you're typing, pressing tab will Do (what the completion script writer thought was) The Right Thing.

Unless what you think is the right thing was was the behavior of older versions of bash where you could do

**/*.c<Tab><Tab>

and (eventually, ** is damn slow) get a list of all of the matching files. It also worked with [...] {...} ? or any of the other bash wildcards. You know, just in case you wanted to see what your command is going to do before you hit enter.

Now I have to ^U, ls ^Y, then ^Y, which takes about 2.8 seconds (including the realization that bash is just going to keep beeping at me if I keep hitting tab). Or disable fancy and helpful completion with complete -r

User Journal

Journal: Two minutes of WTF 1

Journal by Qzukk

So I right clicked in an explorer window in windows 7 and went to "New >" on the menu and the submenu didn't open. I clicked it a few more times and nothing happened. I clicked it a few more times and the entire explorer shell crashed and restarted.

Wish I knew why the hell it sometimes takes 30+ seconds to get to "New Word Document" on my work computer.

User Journal

Journal: 2 mins of hate: What can make me switch to a new RCS again 1

Journal by Qzukk

Three words: Four. Way. Diff.

Show me where my patch (before and after) conflicted with the last patch (via blame) before and after. Bonus points if you can show both complete commit messages. Extra bonus points if you look at the branch, figure out where it went wrong (at what point did my patch last apply cleanly?) and show me all the commits since.

Telling me shit's fucked up doesn't help anyone (that's what I got with cvs).

Telling me what I was trying to do tells me what I was trying to do, not what Bob was doing when he checked in before me, but at least I know what the hell I was doing when I did it months/years ago (this is where I am now with git rebase).

Telling me what the hell I was trying to do and what the hell Bob was trying to do, now that's what I need, because now I know what it's supposed to be doing when I'm done merging the code and can do so with a reasonable degree of confidence that both Bob and I will be happy with the result.

For my company's workflow, this would be the holy grail of revision control. I'd even be tempted to use a graphical tool to do it.

User Journal

Journal: Today's two minutes of hate

Journal by Qzukk

git, a love/hate relationship. Right now, hating really really hard.

You can do all sorts of incredible things with it, but there's so much that seems obvious I ought to be able to do, but just can't see how.

Case in point: git rebase. This is an incredibly powerful tool that lets you take changes and apply them to a different branch, one at a time very rapidly (if there are no conflicts). If a conflict arises, the process pauses, tells you where it died, lets you fix it, then you git rebase --continue. EXCEPT you get half of the first line of the commit message (despite being on a 128 column terminal it cuts off at 80) and no hash or any other way (I can find) to look up the complete description of the current commit being fixed (other than aborting the whole thing, going through the complete log to find the commit starting with whatever message then starting again (rerere makes this not painful, just annoying)). Oh, and if you used a branch name, that branch name is MOVED to the new location.

Other case in point: git merge. This is an incredibly powerful tool that throws everything together all at once and lets you deal with the aftermath. Conflicts, conflicts everywhere and no explanation of what the code is supposed to be doing. Fortunately, someone made a git-merge-like-rebase script that creates a temporary branch, rebases it to the target, then deletes the temporary branch leaving you with the original branch where it was (like merge) but applying one commit at a time (like rebase).

Still, I just took 2 hours of work doing something that would have taken 2 days in CVS, thanks to git rebase (rolling out a new version of our code for one of our customers with a heavily customized application. Rebased their custom branch onto our new release branch, fixed all the conflicts where they want customers sorted firstname lastname or blinking red lights or whatever and done). Probably could have done it in 1:30 if I didn't have to go back through the log to figure out how to fix "Change order of fields so that customer rep appears before ". I'm working in more and more tricks to reduce conflicts every upgrade so hopefully I'll have it down to less than an hour soon.

So now I love it again.

User Journal

Journal: Life post Google-Reader 5

Journal by Qzukk

So Google followed through on their threat to kill Reader and I ended up having to track down a new RSS feed reader. Having been bitten by the Cloud, I decided it'd have to be locally installed, after trying a few I've settled on FeedDemon (now discontinued, a shame) as "best so far".

The one thing I really, really miss about Google Reader (which in fact was the reason I started bothering with RSS in the first place) is that it had a bookmark you could set that would open the URL of the next unread item in your queue. Dragged the bookmark to the bar, and one click gets me to read something new and exciting (and middle click to read lots of new and exciting things in tabs). Sure, every time someone published an RSS entry without a URL google gave me a 500 error and marked every single article read, but hey, it was damned convenient when it didn't implode.

FeedDemon gives me a link to click on each article to open in its (embedded IE) browser, but as I go down the list of articles it doesn't automatically remove the read ones nor does it automatically add new unread articles unless I manually refresh the article list (maybe I'm doing it wrong?). It has a "Next Unread" button but it doesn't open the URL, it just shows the RSS item header and then I have to click it to open the URL.

Strongly considering taking some of what I learned in the Coursera python class a while back, this feed parsing library, and learning wxPython (platform independence!) and spinning my own. It won't do much, but it WILL have a button that launches a chosen browser with the chosen URL (thinking of making it a systray icon: left click to open next item, right click for menu, blinks when there are unread articles).

It could even pop up a window to display an article with no URL.

User Journal

Journal: 20 seconds of hate: outlook, *again* 1

Journal by Qzukk

Hello, Microsoft. Please explain to me the reasoning why when a meeting is sent to people, they get a blank email with an .ics file attached, which is absolutely fucking useless to everyone not using a calendar app?

Thanks.

BTW, yes, I know about the option to turn ical off, explain to me why the FUCK you are incapable of sending a readable email with an attachment.

User Journal

Journal: Today's two minutes of hate 2

Journal by Qzukk

In every version of it Outlook I've used, it stands out as being terrible at dealing with email in general (aside from the various exploits just from opening malformed emails). It's got rules that cancel themselves because the computer just woke from sleep and isn't connected to the internet (and therefore the rules are "invalid") to having a hojillion different sources of email addresses, none of them configurable or editable (Seriously, why can't I fix a misspelling in an email once it's been saved wherever the hell it gets saved?). Autocompletion of email addresses is a complete clusterfuck. I had to delete a customer from my contact list completely and start over because her email address changed and when I edited her contact, her record refused to come up when I'm sending an email (Doesn't come up when I type, doesn't come up in the contact list when I press the "To" button, but if I write her email by hand and choose "Look Up Outlook Contact" bam there she is complete with name and company information)

If it weren't for Exchange, I'd have ditched this shit long ago. Sadly, it's still the best I've got at dealing with scheduling meetings (at least as long as they're in our own time zone).

User Journal

Journal: Today's two minutes of hate (yay backups!) 1

Journal by Qzukk

So years ago I needed a backup drive for my home computer after the last backup drive up and died on me, so I was possessed by idiocy and decided to get one of those external RAID blocks with two drives in it, RAID-1. Worked fine for years, now it's got a red blinking light on it and doesn't show up to the system anymore.

This is one of those things where foresight would have said "Hey, why are you spending 3x as much on drives when you're going to be stuck with a box with one red light to tell you there is a problem and no way to find out what the problem is". Hindsight says I'm an idiot.

At least it's just a backup.

Maybe next I'll get a LTO drive for a few thousand bucks for shits and giggles. Of course we had one of those at work that ate a tape. Better get two and take redundant backups...

User Journal

Journal: Today's two minutes of hate 1

Journal by Qzukk

God damn where do I get a fucking ftp server that can run a command after an upload without preaching to me about how insecure yadda yadda yadda. I'm not running a goddamned anonymous ftp site (and even if I was, MAYBE I'd like to have a virus scanner run on whatever bullshit goes in and out!)

Currently using ProFTPd because mod_sftp appears to be the only way to get an sftp server with virtual users on Linux without using OpenSSH+PAM voodoo. mod_exec runs programs on every single little command EXCEPT the completion of an upload because fuck you. The documentation suggests logging to a FIFO and writing a program to read lines from the FIFO and acting on each line of the log. Great, only two problems: 1) proftpd shits itself if nothing is listening to the FIFO which means the listening program has to immediately reopen the socket when logrotate restarts proftpd 2) proftpd's xferlog format can't be changed and rather than doing any sane quoting, replaces spaces in filenames with underscores because fuck you.

User Journal

Journal: 30 minutes of hate 4

Journal by Qzukk

I just spent 4 hours doing onsite customer training for a customer of ours who is transitioning from an ancient terminal-based software to our software. These customers had therefore bought all new laptops with all new Windows 8 to replace their old terminals. The decision to use laptops had been made because 1) the network infrastructure in place currently ran the terminals which were actually win95 computers plugged into a local network and using telnet to reach the server so wireless was necessary until the old equipment could be removed and 2) the computers running the old system needed to stay there until after the training was complete and they were ready to switch.

I estimate 30 minutes of that time was spent unfucking shit that went wrong when people who had never seen a GUI or used a touchpad in their life had their palms brush the touchpad and trigger random win8 gestures, opening the charms bar, opening bing, opening the start screen, and in at least one case, somehow closing the program window (or was it open somewhere but alt-tab no longer works in windows 8? Damned if I know!)

For the next round of training tomorrow I plan on disabling the gestures. Easy peasy, just a few SynTPEnh\ZoneConfig registry entries to change. And they say Windows 8 isn't ready for the desktop!

User Journal

Journal: False Memories in Real Time

Journal by DumbSwede
My wife and I enjoy watching the Chinese mini-series "A Taste of China." How clearly I can recall the English narration, spoken in a deep baritone voice and with a strong, but easy to understand, Chinese accent. The narrator's voice, style, and cadence are all very professional -- the only problem with this memory is that it is totally false.

My wife and I were watching the series online on YouTube with our daughter and she asked me to get something from the kitchen. There had been a pause in the narration and while I was in the kitchen it began again. This time though there was no pleasant Chinese accented English, but unintelligible Mandarin. I was startled for a second, then remembered I had been reading subtitles. I returned to the table and continued watching the program. As I sat I was aware I was listening to Mandarin and I was reading subtitles, but the second I reached into my memory to recall what had just happened the English narration returned.

If I had not had this realization and had you asked me a year from now had I watched the series I would have been convinced I had listened to an English dubbed version. This may not seem like a false memory in the traditional sense, I had merely converted the subtitles into an easier to remember and integrate English narrative, but it illustrates how malleable our memories are. My unconscious mind knows I do not know Mandarin and yet I remember words of the narration. I don't believe it was merely being lazy, but resolving the paradox by inventing the remembered narrator's voice.

Sometimes our perception of an event is in conflict with what seems to be fact. Rather than flag the contradiction it seems our memory will often edit the memory to be whatever our subconscious feels to be the most likely internally consistent explanation. None of this is news. However just like 90% of all drivers think they are in the top 10% of safe drivers, most of us believe our memory of events to be superior to those around us. We are startled when our recollections differ and often assume malice or ulterior motives in those who misremember what we remember.

We probably all know someone who either thinks they are never wrong or have a far more altruistic explanation for some past behavior that on the surface seemed quite self-serving or selfish. We intuitively believe their memories are false (which they probably are). We then give ourselves a mental pat on the back for not living in such a self-deluded state. Obviously our own memories are as infallible and as unyielding at the Rock of Gibraltar. The only trouble is that everyone's memory is fallible -- memories are in constant reedit. Evolution didn't evolve memory to be accurate, evolution evolved memory to be useful. Memory is therefore a repository of non-contradictory facts (also non-contradictory as we perceive or wish our personality to be). As new facts become evident, old memories are revised to fit with the facts. Sometimes this can even make them more accurate, say looking at an old photograph and remembering more accurately the Members Only jacket you use to own (a fact your stylish new self may have edited out).

Unfortunately our desire to be part of a clan or to please others can be the motivation to reedit the facts in our memory. We know that lying is wrong, but if our memory is in conflict with what allows us to have what we want, then memory is often what needs to be changed.

I think it would be the truly rare individual whose head isn't full of false memories. The best we can do is to be aware that memories are not the concrete remembrance of past that they seem. Evolution has probably installed a chalkboard in our head not a printing press. Be cautious of believing only what you see on the board.
User Journal

Journal: Today's two minutes of hate, redux 3

Journal by Qzukk

Customer: Your website is broken, I can't log into it

Me: What exactly do you mean?

Customer: I decided to work from home and when I go to your website it gives me this list of things so I clicked on the first one and it gives me an error when I go there

Me: It sounds like you put the address into google and clicked on someone else's site.

Customer: Well, what search engine am I supposed to use?

At this point, I was about to say "well, lady, whichever search engine that links to the actual website when you type www.foo.com into it" but then I realized the answer was "none of them". After all, how would you get people to click on your ads if you took them where they really intended to go?

I explained to her about Ctrl-L and pressing it before typing in a website. I think she got it.

Dreams are free, but you get soaked on the connect time.

Working...