Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Chose your co-programmer.

Name: Anonymous 2014-01-12 23:30

From these stereotypes:

1:
Languages by experience: Bash, Python, Ruby, Perl, Haskell
Languages by love: Haskell, OCaml, Erlang, Scala, "Lisp"
Has written: Automated testing software, eStores, social network data mining software.
Favorite programs: Git, BSD, Vim, Sublime text, Twitter
Hates: Object oriented programming.
University grades: Completely average.

2:
Languages by experience: Java, C++, Smalltalk, Common Lisp, Forth
Language by love: Common Lisp, Forth, Smalltalk, Java
Has written: Equipment calibration, educational software, traffic control systems, signal processing and visualization
Favorite programs: Codewarrior, IntelliJ, Emacs, Zmacs, Macsyma, Mirai, Genera, Squeak, Mathematica, ACL2, Qemu, GNU Electric
Hates: UNIX
University grades: Very high, but two random fails.

3:
Languages by experience: C++, C#, x86, VB.NET, Delphi
Languages by love: Delphi, C#, x86, VB.NET, C++
Has written: Antivirus software, Serious Sam, natural language processing software
Favorite programs: Hiew, Visual studio, WinDbg, Borland Turbo Pascal, PIX, Windows 2000, FreeDOS.
Hates: Excessive use of libraries.
University grades: terrible.

Name: Anonymous 2014-01-13 10:20

>>13

Your colleague and yourself begin to work.

The first thing you notice is the difficulty of communication. Your colleague's thick slavic accent and dismissive demeanour both give him an air of intelligence (you suspect it is undeserved) and a thorny barrier to make you think twice before approaching with what could be perceived as a dumb question.

Your first idea is to use a very large neural network data structure and simple supervised learning style backpropagation: after all the hard part is already done, you could use the same data for learning as is used for captcha verification. However when you propose this idea to your colleague, he quickly dismisses it saying "No, neural network is just an inefficient regression function, it lacks predictive power". Your colleague details an image procesing pipeline consisting of color conversion, edge detection, and an A* like algorithm (i.e. both a heuristic and a cost function) on a tree of various geometric transforms applied, with the heuristic being the amount of characters isolated and the certainty of their geometric features. You agree it is a good approach.

You propose using an image processing library, or prototyping in some high level software. The idea is met with scorn almost immediately "Why use inferior programs? Why write the same program twice, once inefficiently and the other time efficiently? We will not do this". You don't dare to suggest that maybe there is an oversight in the original design.

After much difficulty partitioning tasks (due to your colleague's insistence that any up-front design (even just discussion) is pointless), you get to the point where you have something concrete to work on.

You begin your task which is to write a high level prototype for the batch process in C# (at your colleague's insistence) learning the language along the way. Every now and then your colleague looks over your shoulder and gives you a tip, which you appreicate, but also grow to fear, as he has very strong opinions.

Your colleague begins writing the vocabulary of the program (if you will) in C++ full of inline assembly almost immediately. Whenver you ask, he has an immediate justification, citing MSVC not properly pipelining something, definite cache misses, and missed opportunities for vectorization. However, he also spends a ridiculous amount of time writing DLL boilerplate.

You write tests for his procedures, and find many bugs which he promptly dismisses as trivial and fixes. You also refine your batch process skeleton with the concrete vocabulary from your co-programmer, while also filling in and testing the search algorithm and image node tree data structure.

When everything comes together, it doesn't really work. Your co-programmer claims triviality, and spends long hours adding features and trying various variations. You decide the most you can do to contribute is to help with his debugging.

After three weeks of seemingly going no where like this, you get to the point where it's solving some captchas. Your co-programmer declares success, and quits the next day, saying he found a higher paying job elsewhere.

You deliver the project as-is to the customer, who is not too happy with it, but pays you anyway.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List