A plug for inform7 if anyone makes a TDWTF text game.
cmccormick
@cmccormick
Best posts made by cmccormick
-
RE: If you ever wondered whether or not "AI" is actually "BS"...
When done well, expert systems can do quite well with unexpected input. Watson managed to do better than Ken Jennings at Jeopardy and they plan to use a similar approach to medicine and other areas of decisionmaking.
Some of the Watson developers attended an airing of one of the Human v. Watson games near me. I had a chance to talk to one of the lead developers afterwards about the limits of approximating human intelligence using an approach like this. I found it interesting that he believes that there is no upper limit in human functions that could be accurately approximated using an approach like this including creativity. I'm not entirely convinced by that, not their explanation that a machine using a buzzer doesn't have an advantage over humans (they say it's fair because the computer could still potentially buzz in incorrectly and lose money...in other words they argue that the buzzer winner has the fastest cognition time and reaction time is secondary)
[Fixed markup. -ShadowMod]
Latest posts made by cmccormick
-
JavaScript controller pattern
You're probably familiar with the MVC pattern. It's a good fit for most webapps, but what do you do when you want to redirect to different web frameworks with the same controller? If you're this major bank, you write a JavaScript function.
Have to think this has something to do with the slow login. Just clocked 42 seconds from login to page rendering on a decent connection.
function doLogin() {
var f = document.forms[0];
var dd = f['objContent0_ctl05_loginOption'];switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankonline.com'; break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc':window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor':window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl':window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk':window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp':window.location.href = '/customer-service/pay-my-loan.aspx'; break; } } function doLoginHelper(action) { if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); var f = document.forms[0]; var dd = f['objContent0_ctl05_loginOption']; switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); switch (action) { case 'enroll': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/default-enroll.jsp?BrandSettingsFile=citSettings.jsp'; break; case 'LoginTrouble': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/login-assistance.jsp'; break; } break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc': window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor': window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl': window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk': window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp': window.location.href = '/customer-service/pay-my-loan.aspx'; break; }
-
RE: Writing a better test system with Benny (real story)
Some best practices to fight the prevalent WTFs there. I was surprised that you pulled off a good outcome in that situation...it sounds like Benny has plenty of practice backstabbing.
Technical WTFs:- Have a single project owner who defines requirements, prioritizes them and signs off on them. Clears up many misunderstandings and interdepartmental or interpersonal politics will drive requirements less often
- Have requirements in a system accessible to everyone and with information on who defined them.
- Avoid project and private branches (the book Continuous Deployment is good there)
Social WTFs:
- Never spend more than 50% of your time on work that isn't visible to your boss (in your case, doing work someone else will take credit for)
- If you're going to work in an environment where you have to cover your ass (CYA), learn how to do it well (e.g. keep an email paper trail or email a meeting summary copying bosses...if it ain't on paper, it didn't happen). Better yet, don't work for a company that requires CYA, or one that would hire and then put up with a Benny, much less promote him
- A good book for improving technical and organizational skills is the Passionate Programmer, especially the section 'Marketing, Not Just for Suits'
-
RE: Is this a WTF?
@Jaime said:
@TGV said:
I don't get it... Why would you need extra Windows accounts to have different roles? If you mean that the app will connect using different credentials depending on the role of the user using the app, well that is stupid and prevents connection pooling. Even if that's what you want, application roles have been available for fifteen years to meet that need. However, the easiest solution to the problem is just to use roles for roles instead of trying to use user accounts to be some sort of role substitute.@Jaime said:
The WTF is having SQL Authentication on at all. I'm not sure why most programs require SQL Authentication, everything I've ever written works just fine with Windows Auth and is much more secure because of it.
I can think of one reason: it would require extra Windows accounts to have different roles. So that would be down to convenience and laziness, I guess.They're useful for connecting to the database directly when a user wears different hats. For example I use both a release account and day to day account to access the same database. I shouldn't always have write access.
-
RE: PARADE!! (continued) (in a new thread because the Monty Hall problem is boring once you've figured it out)
Your chances of this thread still not discussing the original WTF are 100%.
-
RE: PARADE!
@dkf said:
@TDWTF123 said:
No, it says she analysed it as an obscure probability problem. That's the wrong answer, whatever 'probability' you come up with. The right answer is to point out that the 'trick' in the Monty Hall problem is a grammatical/linguistic one, not a mathematical one. The trick lies in phrasing the question in such a way that it appears there are three doors involved at one point, even though there aren't really.
It's a conditional probability problem with unequal knowledge (and in fact it is one of the simplest such ones). If you thought people sucked at traditional probability where everyone has all the facts, then conditional partial-knowledge systems are much much worse.Yeah. I like the explanation where the first round has a million doors and the second has two, one of which has the prize. Obviously you'd want to swap then.
-
RE: And they wonder why people hate them
The old 'bad news on a Friday' trick that started with politicians (better yet, it's done over a long holiday weekend or around Christmas). Then when they report the good news of the offer on Monday, it looks they're making out on the deal by selling for above the stock price.
-
The downside of use your documentation as a todo list...
is that it may make it into print (that's "Mercurial: The Definitive Guide").
That was pulled directly from the online version. It's a good book overall, except for sections like this where you need to read the comments.
-
RE: Java degree desirable
@Salamander said:
It's all the little things put together which make it bad.
Firstly, there's the boiler plate. This is somewhat mitigated if you have a really good IDE, but not completely.Java scripting languages do a much better job of this (Groovy, Scala, Clojure). For example, to get contents of a file:
def file = new File("somefile.txt") file.text = "Set file contents"
And there's no need to define a main method or add most of the class, method and field boilerplate.@Salamander said:
Secondly, Checked Exceptions. This is a crime against programs everywhere. There are many cases where an exception can't (or shouldn't) actually exist, but you have to make sure it doesn't occur anyway because the compiler will complain otherwise.
This leads to try {...} catch(Exception e) {} everywhere, and actual exceptions may get ignored.
Thirdly, until the most recent version of Java (Which was only about a year ago), there was no equivalent of a using() or with() statement. Closeable resources had to be done somewhat like:
Closeable x = null; try { something with x; } finally { if(x != null) { try { x.close(); } catch(Exception e) {} } }
Thirdly, yes that try block in the finally statement is necessary. Closeable.close() throws IOException, a checked exception. The compiler will complain if it's not there.
What the hell is actually going to have an exception when you close a resource? Closing a resource that's already been closed? A sane library would treat that as a no-op. For anything serious there is always Error.Generally I agree. The main advantage is forcing programmers to consider whether they can recover from a likely failure point and it can make programming with files and JDBC connections hairy. Project Coin in Java 7 cleans up a lot of that.
@Salamander said:
Fourthly, it has anonymous classes but no anonymous functions. If you want to use callbacks, you need to define an interface and fill out an entire class to use it. See also: Point 1; Boilerplating.
The scripting languages have had closures for a long time and they were added to Java 7.
@Salamander said:Finally, as has been pointed out, writing GUIs in Java is a massive pain in the ass. And probably broken because of bugs in the Java API itself.
Swing apps are miserable to write from scratch and Java has barely approached a GUI designer as slick as Visual Studio (Matisse is okay). Again, the scripting languages help quite a bit. Groovy SwingBuilder cuts out most of the boilerplate (an example). -
RE: The API Interview
I wish job interviews were that creative...
Font: A tie between Wingdings and Ransom.
Punctuation: The interrobang, for when you want to express simultaneous surprise and confusion (hmm, sounds familiar): <font size=20>‽</font>