154 karma · joined September 3, 2011
SAAS Business 1 - Flatpack Apps (Convert a spreadsheet to an online database) http://flatpackapps.com
SAAS Business 2 - Autotutor (maths/physics exam prep website): https://autotutor.com.au
When asked why he would refuse to answer, he would say: "If you aren't confident that your answer is correct, then I would like to mark you as wrong even though you may be right. You are the expert. You should be telling me that your answer is right, not asking me whether it is right."
He would also say that another acceptable answer occasionally might be "Your question is wrong" (along with an explanation as to why it is wrong).
This professor's attitude bothered me at first when I was on the receiving end of this advice, but I have come to regard it as some of the best advice I have received.
Especially in a professional context, I have found that it pays to convince myself that my recommended solution is a good solution, perhaps by confirming it using a few independent methods, and also by anticipating the responses of detractors, and coming prepared with answers to likely objections that others might offer.
Page loads are fast because of simplicity of design, and caching of database query results.
Of particular interest to F1 fans will be the current season teammate battles section, and the all time teammate qualifying [1] and race [2] battles.
[1]: https://s1.flatpackapps.com/app.php?pageId=844 [2]: https://s1.flatpackapps.com/app.php?pageId=845
Here is the project page: https://hackerspace.govhack.org/projects/digital_twin
Hi, I'm Tom, son of Mike and co-founder of Autotutor.
Any constructive feedback on any aspect of the website is very welcome.
I've created a Formula 1 statistics database using a freely available data set.
To create the F1 online database, I used a tool that I developed called Flatpack Apps (flatpackapps.com) That tool will be the subject of a future 'Show HN' submission.
F1 fans might be particularly interested in the 'teammate battles' section. By using this feature, one can get a very good idea of how a driver has progressed throughout his career relative to his teammates.
For example, with Sebastian Vettel having performed poorly last season, many people discount his four world championships (saying his success was mostly due to a dominant car), and discount even further the rating of his teammate at the time Mark Webber, who struggled in those years relative to Vettel.
However, browsing the teammate battles of Mark Webber over his career [1], it is clear that before he was teamed with Seb Vettel, Mark Webber was a stellar performer. He dominated over each one of his seven other teammates in qualifying, including Nico Rosberg and David Coulthard.
[1]: http://www.s1.flatpackapps.com/app.php?pageId=806&driverId=1...
I plan to add charts to the teammate battles feature, and have some ideas on how to algorithmically find the best driver of all time using the teammate battles data (which has already been done very well here [2]), but will always be a fun exercise.
[2]: https://f1metrics.wordpress.com/2019/11/22/the-f1metrics-top...
Does anyone have comments or feature requests?
Any feedback or tips on marketing or desired features will be much appreciated :-)
http://tomcdonnell.net/submodules/anagram_checker/
I used it to find anagrams of my coworker's names for a weekend project.
The game asks the user to guess the name of a team member from anagrams of that name displayed for short time periods on screen.
Click the 'automate with answers' button for a nice animation of rearranging the letters.
http://tomcdonnell.net/submodules/anagram_game
Here is the tool I used to find the anagrams:
“Every time you say ‘thirteen,’ I’ll know that what that means is that all you want to do is what the customer wants. And for every one of these other gibberish slogans, we can also get little numbers. There are a lot of small integers available. We’ll just tighten these meetings up. You know, Cannavino, if you want to talk about how you’re going to save the U.S. educational system, okay, we’ve heard that story. That’s a good fifteen-minute one. That can be number eleven.”
Example: style.css.php
<?php
header('Content-Type: text/css');
$brandColor = "#fc3;\n";
$defaultStyles = <<<STR
margin-bottom: 20px;
font-size: 14px;
line-height: 1.5;\n
STR;
?>
a {
color: <?php echo $brandColor; ?>
}
nav {
background-color: <?php echo $brandColor; ?>
}
p {
<?php echo $defaultStyles; ?>
}
footer {
<?php echo $defaultStyles; ?>
} function doStuffWithAVarietyOfParameters(s, a, b, i, ni, p)
{
var f = 'contractCategoriesAndAddExpandButtons()';
UTILS.checkArgs(f, arguments, ['string', 'array', 'boolean', 'int', 'negativeInt', 'Particle']);
// Do stuff.
}
For functions with many parameters, I like to pass the parameters inside an object and give the keys descriptive names. function doStuffWithAVarietyOfParameters(o)
{
var f = 'contractCategoriesAndAddExpandButtons()';
UTILS.validator.checkObject
(
o,
{
arrayParam : 'array' ,
boolParam : 'boolean' ,
nullOrFloatParam: 'nullOrFloat',
particleParam : 'Particle' ,
positiveIntParam: 'positiveInt',
stringParam : 'string'
}
);
// Do stuff.
}
Both functions will throw an exception if the arguments list is not as expected. The code can be found via the links below.https://github.com/tomcdonnell/lib_tom/blob/master/js/utils/...
https://github.com/tomcdonnell/lib_tom/blob/master/js/utils/...
I do type checking similarly in PHP.
http://tomcdonnell-tech.blogspot.com.au/2011/09/favourite-ph...