Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
wiki:user:digital_man [2018/09/22 01:23] – created an essay: Why BBS? digital man | wiki:user:digital_man [2023/04/11 18:23] (current) – [Is Synchronet PD or l33t?] digital man | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | In the title, "Why BBS?", I'm using " | + | ===== Is Synchronet PD or l33t? ===== |
+ | |||
+ | I feel weird answering this rhetorical question because Synchronet has been (or wanted to be) **both** PD and l33t at different times during its history and perhaps now it's just a totally moot and silly question to be asking at all. What am I even talking about, you might ask? | ||
+ | * **PD** stands for " | ||
+ | * **l33t** is r0dent-speak for " | ||
+ | |||
+ | I started Synchronet when I was 20 years old, as a project to replace WWIV BBS Software with a //stable// multi-node BBS software for my file-transfer oriented //elite// BBS, [[bbs: | ||
+ | |||
+ | After the reach of Synchronet extended beyond my local circle of (now ex-)WWIV Sysop friends, I started to add features inspired by commercially-successful multiuser BBS packages (e.g. MajorBBS) and listen to needs of their users and sysops and add more " | ||
+ | |||
+ | When I decided (at my brother' | ||
+ | |||
+ | When I started advertising Synchronet (and my BBS numbers) in BBS-related magazines, I would prompt " | ||
+ | |||
+ | So while I always tried to make Synchronet more visually appealing than the purely-functional BBS programs of the era (think Maximus, Opus, Fido, MajorBBS), I never went to the extremes of some others (e.g. Searchlight, | ||
+ | |||
+ | Someone recently described Synchronet as the " | ||
+ | |||
+ | ===== What's Wrong With FidoNet? ===== | ||
+ | |||
+ | And by " | ||
+ | |||
+ | Before you can " | ||
+ | |||
+ | This list is of course, just //my// opinion, but it is an informed one with about 30 years of experience with FTN from both a user/ | ||
+ | |||
+ | ==== Backward Compatibility ===== | ||
+ | |||
+ | Likely the biggest problem with FTN is that much of the software that is used to run the network is abandonware with no hope of being upgraded to support any substantial improvements in the underlying network technology. Most substantial improvements to the network technology would leave a lot of existing nodes behind and hamper the possibility of retro-systems being able to join and participate in FidoNet. The requirement of strict backward compatibility with software written in the 1980s and 1990s is the pervasive rationale of the FidoNet network members for not accepting proposed solutions to the network technology' | ||
+ | |||
+ | The one saving grace has been extensibility via the message " | ||
+ | |||
+ | ==== Location-based Addressing ==== | ||
+ | |||
+ | The geographic location of the FidoNet node (continent, region) is encoded in the node address. While this is true of IP addresses as well, the Internet has a handy solution called the DNS. While I do like that it's obvious to an experienced BBSer that it's a FidoNet address when you see one (e.g. " | ||
+ | |||
+ | ==== Packet Format ==== | ||
+ | |||
+ | The so-called " | ||
+ | |||
+ | The problems with the Type-2 packet format and its derivatives (and their " | ||
+ | - Lack of extensibility (no real way to substantially add more header fields or extend the length/ | ||
+ | - US-ASCII only text field with no support for using Unicode or other character sets | ||
+ | - DateTime header field that is plain text, represents local time, with a 2-digit year | ||
+ | - Artificially limited string lengths (i.e. 35 characters names, 71 character subjects, 8 character passwords) | ||
+ | - Relying on NUL-terminated (ASCIIZ) strings (most of the time) | ||
+ | - Little-endian integers (x86 architecture assumed at the time) | ||
+ | - Reliance on echomail " | ||
+ | |||
+ | ==== Siloed Development ==== | ||
+ | |||
+ | Prior to and during the time that FidoNet technology was being originally defined and implemented, | ||
+ | |||
+ | ==== Character Sets ==== | ||
+ | |||
+ | While there have been enhancements to support non-US/ | ||
+ | |||
+ | ==== Node List ==== | ||
+ | |||
+ | Any system that requires extensive manual maintenance is bound to be wrong more than it is right and I think the FidoNet node list is an exemplary case. I have not used a node list on my FidoNet-connected BBS in more than 25 years and I don't miss it. The format, purpose, and use of the node list is all highly suspect and begs to be replaced by something more distributed and automated. | ||
+ | |||
+ | ===== Why BBS? ===== | ||
+ | |||
+ | In the title, "Why BBS?", I'm using " | ||
Of course, the plural noun " | Of course, the plural noun " | ||
Line 7: | Line 70: | ||
BBS users or sysops that are either new to the scene or returning after a long absence often offer their observations about the state of BBSing and their recommendations to restore or at least increase the popularity of BBSes beyond the niche they serve today. But not everyone has the same intentions or goals when it comes to this hobby, so while some may think relatively low usership or participation indicates something is wrong, others might not see that as a problem. If you want content consumption or participation from thousands of daily users, maybe a BBS isn't the right thing for you. There are certainly plenty of other interactive platforms and technologies that may be more accessible or attractive to your target audience or user group. | BBS users or sysops that are either new to the scene or returning after a long absence often offer their observations about the state of BBSing and their recommendations to restore or at least increase the popularity of BBSes beyond the niche they serve today. But not everyone has the same intentions or goals when it comes to this hobby, so while some may think relatively low usership or participation indicates something is wrong, others might not see that as a problem. If you want content consumption or participation from thousands of daily users, maybe a BBS isn't the right thing for you. There are certainly plenty of other interactive platforms and technologies that may be more accessible or attractive to your target audience or user group. | ||
- | I'm not trying to talk you out of using or running a BBS; I just think you should have realistic expectations. If *you* like using or running a BBS, that should be all that matters. You can't force that enjoyment or desire on others. If you can't find the content or participation level you'd like to see in BBSes, | + | I'm not trying to talk you out of using or running a BBS; I just think you should have realistic expectations. If *you* like using or running a BBS, that should be all that matters. You can't force that enjoyment or desire on others. If you can't find the content or participation level you'd like to see in BBSes, |
- | If the BBS users and sysops of the 1980's and 90's were asked to describe their dream online system of the future, they probably would describe something similar to the AOL/ | + | If the BBS users and sysops of the 1980's and 90's were asked to describe their dream online system of the future, they probably would describe something similar to the AOL/ |
- | I still endeavor to improve the content availability and user experience of today' | + | As for myself, |
**However**, | **However**, | ||
Line 19: | Line 82: | ||
So that brings me back to the question: "Why BBS?" and here are the answers I have to offer you: | So that brings me back to the question: "Why BBS?" and here are the answers I have to offer you: | ||
- | - Nostalgia: you likely BBSed back in your younger years and its one of the ways we can still feel young | + | - **Nostalgia**:\\ you likely BBSed back in your younger years and its one of the ways we can still feel young |
- | - Obscurity: it's highly unlikely your ex or your next prospective employer is going to find and judge your BBS activity | + | - **Obscurity**:\\ it's highly unlikely your ex or your next prospective employer is going to find and judge your BBS activity |
- | - Independence: | + | - **Independence**:\\ the content, management and durability of your BBS is really up to you (it's //your// island) |
- | - Challenge: the technical challenges involved should be fun and give you a sense of wonder and accomplishment | + | - **Challenge**:\\ the technical challenges involved should be fun and give you a sense of wonder and accomplishment |
- | - Creativity: within the limited confines of BBSes, there' | + | - **Creativity**:\\ within the limited confines of BBSes, there' |
- | - Experience: believe it or not, knowing how BBSes work may give you a step ahead in your future technical aspirations | + | - **Experience**:\\ believe it or not, knowing how BBSes work may give you a step ahead in your future technical aspirations |
- | - Community: there is a BBS community, or several, and they will likely welcome your participation and enthusiasm for the hobby | + | - **Community**:\\ there is a BBS community, or several, and they will likely welcome your participation and enthusiasm for the hobby |
+ | |||
+ | So in summary, I agree: BBSes can be made more accessible and user-friendly than they are today and support more mainstream use-cases than they do today. And maybe, probably, some of those enhancements will come to fruition in the near future. Perhaps //your// contributions will help drive the innovation you seek. But in the meantime, see if you can find the enjoyment and inspiration that we've found in the BBSes of today and rejoice in that! | ||
+ | |||
+ | ===== Interviewing in 2019 ===== | ||
+ | |||
+ | Things I Learned Interviewing for Programming Jobs in 2019 - advice to myself or those living in similar shoes | ||
+ | |||
+ | 1. Buy and read “Cracking the Coding Interview”, | ||
+ | |||
+ | 2. If C is your primary programming language, learn/ | ||
+ | |||
+ | 3. Even though you may never use those academic/CS skills (big-O, data structures, algorithms) in your actual job, if it helps you to pass the interviews (and it often will), they’re worth learning. | ||
+ | |||
+ | 4. Use the free web resources for learning academic/CS skills and practicing them in an interview context. [[http:// | ||
+ | |||
+ | 5. “Reverse a linked-list” is the new “fizz buzz” question. Counting the number of set bits in an integer (or determining if it’s a power-of-2) is a close second. Flood-fill (and similar recursion) problems are also popular. If you can’t solve these problems, you’ll look bad. Practice these. | ||
+ | |||
+ | 6. Memorize the time and space complexity (big-O notation) of most common data structure operations and sorting algorithms. | ||
+ | |||
+ | 7. If you’re asked to write code on a whiteboard but blank-out on what to write, start by writing keywords from the problem description, | ||
+ | |||
+ | 8. Dynamic programming and recursion should not be the first solution you reach for to solve *most* problems, but don’t forget that you have them at your disposal. I saw a few Pramp (mock interview) partners solve relatively simple problems in absurdly complex ways because they (too) quickly determined that dynamic programming was the only or ideal solution when it was not. | ||
+ | |||
+ | 9. If the solution to the interview problem seems easy/ | ||
+ | |||
+ | 10. If you get asked to complete a “take-home” test, use all available resources to test/verify the code before submitting it (e.g. gcc -Wall, lint, coverity, valgrind, etc.). Beautify the code (e.g. with uncrustify or clang-format) before submitting it. Double and triple-check all the requirements and test cases. The code should be as clean and as perfect as you can make it. | ||
+ | |||
+ | 11. The more senior/ | ||
+ | |||
+ | * It can take several months for the critical mass of interested and able companies and offers to come to fruition. Don’t give up. Don’t stop preparing. Stay the course. Don’t get discouraged. | ||
+ | * There are 10 times the number of available positions for experienced/ | ||
+ | * Remember that no single engineer/ | ||
+ | |||
+ | 12. Apply “direct” first, then cast a wide net: | ||
+ | * Begin by applying directly to all the corporate sites of the companies you think could use your skills and whom you think you’d like to work for (old competitors, | ||
+ | * Next, search and apply to all the relevant positions on LinkedIn, Indeed, and Hired. Every. Day. Apply to [[http:// | ||
+ | * Let your friends and old co-workers know that you’re looking for your next opportunity, | ||
+ | * Reply to any old emails from company recruiters, even from years ago. That recruiter likely doesn’t work there any longer, but your email may go to their replacement or supervisor and get you an interview quicker than an online job-board application. | ||
+ | * Go ahead and sign up with all the headhunters (CyberCoders, | ||
+ | * Aim high in both the companies and the positions you’re applying for. | ||
+ | |||
+ | 13. Before any interview (phone or in person): | ||
+ | * Scrutinize the job description/ | ||
+ | * Study every page of the company’s web-site, learning all about their products or services, leadership, location, job board, etc. You may be surprised what you learn and you’ll be better prepared to talk about their problems and your solutions to them. | ||
+ | * If you have a list of interviewers, | ||
+ | |||
+ | 14. During interviews, pay close attention to the questions asked and the words used. These words are valuable clues as to what the next interviewer may ask you. Take notes (mental or physical) and research any weaknesses that have come to light between interviews. Learn from each interviewer how you can better answer questions from your next, even for the same job, on the same day! | ||
+ | |||
+ | I hope these tips may help you in landing your next " | ||
- | So in summary, I agree: BBSes can be made more accessible and user-friendly than they are today and support more mainstream use-cases than they do today. And maybe, probably, some of those enhancements will come to fruition in the near future. Maybe //your// contributions will help drive the innovation you seek. But in the meantime, see if you can find the enjoyment and inspiration that we've found in the BBSes of today and rejoice in that! |