What's the most complex application you've made?
Right now I've been working on an employee time clock that works with a MySQL database, it has really grown since I first started out!
Mine is this: http://funkybee.narod.ru/
Frankly speaking, I got into IT when I was 36 y.o.
In my youth I studied nuclear physics in Moscow's Institute of Applied Physics.
And then -- what? Then I lost my bearings in the life and began to degrade slowly.
@Xantipius - That is pretty awesome. Nice work.
I can't show mine because it was an internal company project, but in short it was a web application that ran on the intranet that was used for building queries for MSSQL with a drag and drop style UI, along with some other misc tools.
@pixelsoul: Thank you for your friendly estimation of my project.
Made solely be my: several training applications that will teach a certain concept in steps. Advancing to the next step requires completing the test. The one teaching Material Requirements Planning is used at several universities (Delphi).
Made by my lead: a web booking engine serving hotels, interacting with their local reservation system, and with third party booking engines. It served over 140.000 reservations before being replaced (due to a merger) (PHP).
Worked on: reservation system on Azure, using web services, web applications, web roles, Azure storage, Azure queues, Azure SQL databases and even hardware running on .NETMF, all interacting (C#).
One of my company's products is a check 21 scanning, processing, and delivery suite. I'd say it's one of the more complex projects I've worked on given the many moving parts, combination of scanning, OCR/ICR, image processing, X9.37 management, a robust plugin system for delivery, and finicky banks who reject results for no good reason and with no explanation. ;)
The most complex thing I created is my project is ASP.NET with C#.
It was becoming more complex day by day, me & my partener adding something into it.
Though we have option to buy a project but we cannot since it is better if we try our project on our own rather than buying it.
But making a project with only 2 members is difficult & at the start I could do it on my own.
Without my partener most of the project will be a fail & my job is checking the code, enhance it & send it back to my partener.
The worst part happened we added the user login & registration system which makes the user account & doesn't allow the user to login.
Later we find out that we haven't added method at login page that allows the user to login.
Still we are working on it
The most complex program I ever wrote was when Westinghouse was developing our first AGC/SCADA system (in service 1983-1998). Although Westinghouse developed the codebase, it was up to us to create the databases. This was done using a DDL (data definition language) which was used to create the hierarchical database (one for each of dozens of generating stations/substations). This was in the days before the internet and email and small mass storage devices so the process was for us to create the DDL by text editor then run that DDL through a program to validate the structure of the DDL. Each sunbstation could have any number of a large set of equipment types of various characteristics but the sequence of statments was very strict (a CALS: line could only follow an ANLG: line, etc). Once the DDL passed our validation it was sent on mag tape by courrier to Pittsburgh.
The program that was developed by my predecessor cost about $30 per run and could not be modified. It used several dozen temporary files (costly at the time). I did the entire thing in memory using linked lists. Imagine a one column table where each cell was the header node for a linked list, and each cell in the linked list was also the header node for another list. I did the entire program as a massive state table. Because it was fast (very little I/O) and used no temporary disk space, my version cost 18 cents per run. It was written in PL/1 and of all the code I wrote I consider it the most elegant.
It's all very interesting, but don't confuse complexity with laboriousness.
Is this problem http://www.spoj.com/problems/CLK/ labour-intensive? No.
Is it complex? Yes, it is.
Not to mention http://www.spoj.com/problems/CHASE1/
I solved it during one relaxed evening. But there are a lot of problems that I can't solve.
I would have included an Advanced HVDC Advisory Program (high voltage DC power transmission optimization) and a Load Advisory Program (balancing of generation to minimize losses) but because the actual algorithms were developed by others (I was the coder/implementor) I thought that would be cheating.
hard to tell.
Professionals hardly work alone on something, and I've indeed worked on some very large, very complex systems.
Things like the customer care and billing software for a mobile phone network, or a message broker and workflow engine for inter application communication, a major HRM system handling not just employee records but payslip generation and payment, an online rental system for hospital equipment, a warehouse system for a brewery that managed the complete materials flow through the entire system from intake of ingredients at one end to the loading of pellets and boxes into trucks for delivery to customers at the other end AND handled the billing as well. The list goes on :)
I have the least amount of experience compared to you all, but right now I am creating an ascii art application in c#. It is pretty challenging at the moment, but i think i an handle it.
Wow.. this is hard to pin down, I've been mostly programming as a hobby and now using my skills as a tool for doing robotics research. I mean, it's always been all about challenging myself with impossible tasks, now my job is to solve impossible problems. So, I have no interest in simple problems.
I think that one of the more complex things, in the sense Xantiplus means it, that I did, and I mean that was the most complex to do relative to my skill level back then, was when I was playing around with procedural generation of natural textures, objects and landscapes for 3D games. I was just too lazy to use a 3D model editor to create anything, so I set out to use these super-complicated algorithms to generate everything randomly. The hardest tasks were probably either generating natural-looking blends of ground textures depending on the shape and altitude of the points of a randomly-generated landscape, or, managing to render a dynamically per-frame re-blending of high-definition moving sky textures at 300fps (and that was about 12 years ago, so no shaders, no multi-texturing (all software blending), etc.). I was in high school back then, it was way over my head, but I managed to get most of it working.
The most laborious was definitely my undergraduate thesis. I created this full-fledged high-fidelity multi-body dynamics simulator in order to do continuous contact dynamics simulation (i.e., when multiple objects are sliding against each other, one of the hardest things to deal with in high-fidelity dynamics simulations). The thing was a mess. The GUI was written in Delphi. All the core libraries were written in C++, my first C++ project ever (well, after "hello world"). It turned out having about 90 kLOC. I made this complicated plugin system so that the code could be split into multiple DLLs, all loaded by the Delphi GUI application, and with an unbearable memory management system (with overloaded new/delete operators and all that kind of nasty stuff). It took about 2 years to do it, and by the time I was finished I got good enough in C++ to see how terrible every bit of it was. During my masters, I needed, yet again, some hardcore multi-body dynamics code, so I developed a library about 100 times better than the previous one, in about 3 weeks, and I'm still using it today. I guess sometimes you just need to break your back on something overly complicated to learn the value of simplicity.
More recently, I think one of the more complex things was this overlay of a general graph (adjacency-list) data structure to share its storage directly with that of a space partitioning system (a dynamic vantage-point tree). This was in order to configure the storage to be different kinds of tree layouts (e.g., breadth-first layout in contiguous memory, or a cache-oblivious B-tree layout). I was testing them for performance when doing lots of local operations on the graph and nearest neighbor queries through the DVP-tree, both operations can run exponentially faster
* when a cache-friendly memory layout is used, but it isn't trivial to know which will work better, so I needed to be able to swap them out and test them all. That required quite a bit of coding-contortions. If interested, see the code here and here.
*: "exponentially faster" I should explain because it is not a very well known fact: using a cache-unfriendly structure (e.g., linked structures) can often make algorithms degenerate by an exponential amount (e.g., O(log(N)) -> O(N), O(N log(N)) -> O(N^2), and so on) because the number of cache-misses is usually an exponential function of overall memory consumption.
so I developed a library about 100 times better than the previous one, in about 3 weeks, and I'm still using it today.
Yep, that sounds like you alright... Happy birthday mike!