diff --git a/blog/plt-2-entering-the-cave-2015-02-14.markdown b/blog/plt-2-entering-the-cave-2015-02-14.markdown new file mode 100644 index 0000000..0d3f491 --- /dev/null +++ b/blog/plt-2-entering-the-cave-2015-02-14.markdown @@ -0,0 +1,200 @@ +The Saga of plt, Part 2 +======================= + +So I ended with a strong line of wisdom from `plt` last time. What if the +authors that wrote free PGP did not release their source code? A nice rehash of +the [Clipper Chip](https://en.wikipedia.org/wiki/Clipper_chip) anyone? + +``` +2015-01-25 +[00:06:15] but they did release their code +[00:06:40] I saw a few that did not release their source code. +[00:07:09] Its up to the author if they want to release it under the U.S Copyright Laws. +[00:08:50] http://copyright.gov/title17/circ92.pdf +``` + +Note that this is one of the few external links `plt` will give that actually +works. A lot of this belief in copyright and the like seems to further some +kind of delusional system involving everyone being out to steal his code and +profit off of it. + +Please don't pay this person. + +``` +[00:57:18] The ircd follows the Internet Relay Protocols +[00:57:35] which RFC's? +[00:57:43] Yep +[00:58:01] Accept for the IRCD Link works a little bit different. +[00:58:57] Version 2.0 or 3.0 will include it's own IRC Services that will work with PBIRCD. +[01:01:53] Later version will include open proxy daemon +[01:02:34] Version 1.00 will allow the ircd owner to define the irc command security levels which is a lot different from the other ircds. +[01:04:27] Xe that is the file /Conf/cmdlevs.conf.& the /Conf/userlevs.conf +[01:05:24] Adding a option for spam filtering may be included in the future version of PBIRCD. +[01:07:03] Xe PBIRCD will have not functions added to allow the operators to spy on the users. +``` + +Oh lord. Something you might notice quickly is that `plt` has no internal +filter nor ability to keep to one topic for very long. And that also `plt` has +some strange belief that folder names Should Start With Capital Letters, and +that apparently all configuration should be: + + - split into multiple files + - put into the root of the drive + +Also note that last line. Note it in bold. + +Some time passed with no activity in the channel. + +``` +[18:50:49] Hey Xe +[18:51:06] hi +[18:58:54] How did you like the information that I showed you yesterday? +[19:02:56] it's useless to me +[19:03:03] I don't run on a standard linux setup +[19:03:15] I need source code to evaluate things +[19:03:17] :P +``` + +When I am running unknown code, I use a virtual machine running [Alpine +Linux](http://alpinelinux.org). I literally do need the source code to be able +to run binaries as Alpine doesn't use glibc. + +``` +[19:04:24] It's the standard irc commands and I am still working on +adding some more features. +[19:04:38] what language is it in? +[19:04:48] how does it handle an accept() flood? +[19:09:17] Are you refering to accept() flood while connecting to the ircd or a channel? +[19:20:42] You can not compare some of the computer languages with C since some of they run at the same speed as C. Maybe some of them where a lot slower but in some cases that is not the same today! +``` + +These are some very simple questions I ask when evaluating a language or tool +for use in a project like an IRC server. How does it handle when people are +punishing it? So the obvious answer is to answer that some languages are +comparable to C in terms of execution speed! + +How did I not see that before? + +``` +[19:26:05] what language is it? +[19:27:23] Purebasic [...] +``` + +I took a look at the site for [PureBasic](http://www.purebasic.com). It looks +like Visual Basic's proprietary cousin as written by someone who hates +programmers. Looking at its feature set: + +- Huge set of internal commands (1400+) to quickly and easily build any +application or game +- All BASIC keywords are supported +- Very fast compiler which creates highly optimized executables +- No external DLLs, runtime interpreter or anything else required when creating +executables +- Procedure support for structured programming with local and global variables +- Access to full OS API for advanced programmers +- Advanced features such as pointers, structures, procedures, dynamically +linked lists and much more + +If you try to do everything, you will end up doing none of it. So it looks like +PureBasic is supposed to be a compiler for people who can't learn Go, Ruby, +Python, C, or Java. This looks promising. + +I'm just going to paste the code for the 99 bottles of beer example. It +requires OOP. I got this from [Rosetta Code](http://rosettacode.org/wiki/99_Bottles_of_Beer/Basic#PureBasic). + +``` +Prototype Wall_Action(*Self, Number.i) + +Structure WallClass + Inventory.i + AddBottle.Wall_Action + DrinkAndSing.Wall_Action +EndStructure + +Procedure.s _B(n, Short=#False) + Select n + Case 0 : result$="No more bottles " + Case 1 : result$=Str(n)+" bottle of beer" + Default: result$=Str(n)+" bottles of beer" + EndSelect + If Not Short: result$+" on the wall": EndIf + ProcedureReturn result$+#CRLF$ +EndProcedure + +Procedure PrintBottles(*Self.WallClass, n) + Bottles$=" bottles of beer " + Bottle$ =" bottle of beer " + txt$ = _B(*Self\Inventory) + txt$ + _B(*Self\Inventory, #True) + txt$ + "Take one down, pass it around"+#CRLF$ + *Self\AddBottle(*Self, -1) + txt$ + _B(*self\Inventory) + PrintN(txt$) + ProcedureReturn *Self\Inventory +EndProcedure + +Procedure AddBottle(*Self.WallClass, n) + i=*Self\Inventory+n + If i>=0 + *Self\Inventory=i + EndIf +EndProcedure + +Procedure InitClass() + *class.WallClass=AllocateMemory(SizeOf(WallClass)) + If *class + InitializeStructure(*class, WallClass) + With *class + \AddBottle =@AddBottle() + \DrinkAndSing =@PrintBottles() + EndWith + EndIf + ProcedureReturn *class +EndProcedure + +If OpenConsole() + *MyWall.WallClass=InitClass() + If *MyWall + *MyWall\AddBottle(*MyWall, 99) + While *MyWall\DrinkAndSing(*MyWall, #True): Wend + ; + PrintN(#CRLF$+#CRLF$+"Press ENTER to exit"):Input() + CloseConsole() + EndIf +EndIf + +``` + +We are dealing with a professional language here folks. Their evaluation +version of the compiler didn't let me compile binaries and I'm not going to pay +$120 for a copy of it. + +``` +[19:27:23] Purebasic it does not make one bit of difference since it runs at the same speed as c +[19:27:44] The compiler was writting in asm. +[19:28:02] pfffft +[19:28:04] lol +[19:28:20] I thought you would at least have used VB6 +[19:28:37] VB6 is so old dude. +``` + +At least there is some sense there. + +``` +[19:28:44] so is purebasic +[19:28:54] You can not compare purebasic with the other basic compilers. +[19:29:51] yes I can +[19:29:56] seeing as you post no code +[19:29:59] I can and I will +[19:30:16] Makes no logic what you said. +[19:30:24] I'm saying prove it +[19:31:18] I am not going to give out the source code because of the encryption and no one has any reason to use it to decrypt the other irc networks passwords or traffic. +[19:31:40] so you've intentionally backdoored it to allow you to have access? +[19:32:00] I dn not trust anyone any more. +[19:32:29] Not after the nsa crap going on. +[19:32:50] so, in order to prove you don't trust anyone +[19:33:06] you've intentionally backdoored the communications server you've created and intend to sell to people? +[19:33:37] also +[19:33:45] purebasic is semantically similar to vb +[19:34:06] There is no backdoors included in the source code. A course if a user gets a virus or hacked that is not going to be my fault. +```