Hacker News new | past | comments | ask | show | jobs | submit login

Okay, here, just for you. Don't tell anyone!

My view is that currently there is a lot of content on the Internet and the total is growing quickly. So, there is a need -- people finding what content they will like for each of their interests.

My view is that current means for this need do well on (rough ballpark guesstimate) about 1/3rd of the content, searches people want to do, and results they want to find. My work is for the "safe for work" parts of the other 2/3rds.

The user interface is really simple; the user experience should be fun, engaging, and rewarding. The user interface, data used, etc. are all very different from anything else I know about.

The crucial, enabling core of the work, the "how to do that", the "secret sauce", is some applied math I derived. It's fair to say that I used some advanced pure math prerequisites.

To the users, my solution is just a Web site. I wrote the code in Microsoft's Visual Basic .NET 4.0 using ASP.NET for the Web pages and ADO.NET for the use of SQL Server.

The monetization is just from ads, at first with relatively good user demographics and later with my own ad targeting math.

The Web pages are elementary HTML and CSS. I wrote no JavaScript, but Microsoft's ASP.NET wrote a little for me, maybe for some cursor positioning or some such.

The Web pages should look fine on anything from a smart phone to a high end work station. The pages should be usable in a window as narrow as 300 pixels. For smaller screens, the pages have both horizontal and vertical scroll bars. The layout is simple, just from HTML tables and with no DIV elements. The fonts are comparatively large. The contrast is high. There are no icons, pull-downs, pop-ups, roll-overs, overlays, etc. Only simple HTML links and controls are used.

Users don't log in. There is no use of cookies. Users are essentially anonymous and have some of the best privacy. For the user to enable JavaScript in their Web browser is optional; the site works fine without JavaScript -- without JavaScript maybe sometimes users will have to use their pointing device to position the cursor.

There is some code for off-line "batch" processing of some of the data. The code for the on-line work is about 24,000 programming language statements in about 100,000 lines of typing. I typed in all the code with just my favorite text editor KEdit.

There is a little C code, and otherwise all the code is in Microsoft's Visual Basic .NET. This is not the old Visual Basic 6 or some such (which I never used) and, instead, is the newer Visual Basic part of .NET. This newer version appears to be just a particular flavor of syntactic sugar and otherwise as good a way as any to use the .NET classes and the common language runtime (CLR), that is, essentially equivalent to C#.

The code appears to run as intended. The code should have more testing, but so far I know of no bugs. I intend alpha testing soon and then a lot of beta testing announced on Hacker News, AVC.COM, and Twitter.

For the server farm architecture, there is a Web server, a Web session state server, SQL Server, and two servers for the core applied math and search.

I wrote the session state server using just TCP/IP socket communications sending and receiving byte arrays containing serialized object instances. The core work of the Web session state server is from two instances of a standard Microsoft .NET collection class, hopefully based on AVL or red-black balanced binary trees or something equally good.

The Web servers do not have user affinity: That is, when a user does an HTTP POST back to the server farm, any of many parallel Web servers can receive and process the POST. So, the Web servers are easily scalable. IIRC, Cisco has a box that will do load leveling of such parallel Web servers. Of course, with the Windows software stack, the Web servers use Microsoft's Internet Information Server (IIS). Then IIS starts and runs my Visual Basic .NET code.

Of course the reason for this lack of user affinity and easy scalability is the session state server I wrote. For easy scalability, it would be easy to run hundreds of such servers in parallel.

I have a few code changes in mind. One of them is to replace the Windows facilities for system logs with my own log server. For that, I'll just start with my code for the session state server and essentially just replace the use of the collection class instances with a simple file write statement.

I wrote no prototype code. I wrote no code intended as only for a "minimum viable product". So far I see no need to refactor the code.

The code is awash in internal comments. For more comments, some long and deep, external to the code, often there are tree names in the code to the external comments, and then one keystroke with my favorite editor displays the external comments. I have about 6000 files of Windows documentation, mostly from MSDN, and most of the tree names in the comments are to the HTML files of that documentation.

I have a little macro that inserts time-date stamp comments in the code, e.g.,

Modified at 23:19:07 on Thursday, December 14th, 2017.

and I have some simple editor macros that let those comment lines serve as keys in cross references. That helps.

The code I have is intended for production up to maybe 20 users a second.

For another factor of 10 or 20, there will have to be some tweaks in some parts of the code for more scaling, but some of that scaling functionality is in the code now.

For some of the data, a solid state drive (SSD), written maybe once a week and otherwise essentially read-only, many thousands of times a day, would do wonders for users served per second. Several of the recent 14 TB SSDs could be the core hardware for a significant business.

Current work is sad -- system management mud wrestling with apparently an unstable motherboard. At some effort, I finally got what appears to be a good backup of all the files to an external hard disk with a USB interface. So, that work is safe.

Now I'm about to plug together another computer for the rest of the development, gathering data, etc.

I'm thinking of a last generation approach, AMD FX series processor, DDR3 ECC main memory, SATA hard disks, USB ports for DVD, etc., Windows 7 Professional 64 bit, Windows Server, IIS, and SQL Server.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: