01 Jan 2014 0615 have to have environment variable kinda like include or import, that has list of libraries, books, stories }02 Jan 2014 1531 it is related to path and unique identifiers 1537 we can technically use URI's with slashes as clicks or size related words 1545 new rule, implement standard stuff first innovative after 1936 by default story will get from current context, test with love for definition practice }04 Jan 2014 2100 had a dream, that was lecturing in a university about HSPL it could compile to intel, and arm at that point, and had begun work on translating from C into rpoku. though seemed to have a gray or white beard, maybe that was impression of professors in general. 2103 to be a real programming language, first main objective, is to be able to compile itself. So once can compile into ELF, would work on translating from nasm to rpoku. Then would be able to compile self into ELF. though would we have support for DWARF? it seems rather complicated, at the same time it is rather necessary for debugging purposes. 2106 once we have that accomplished, with PE, and ARM support, can work on translating from C to rpoku, may have to find a minimalist, or safe version of C, which doesn't have null overflow. maybe posix C. in terms of operating system, likely would be POSIX compatible, at least have the capacity to be, like linux and minix. 2109 while GCC may eventually be possible it is very large, so would have to start with simpler stuff. 2310 once it is self-hosting, able to compile itself, we can make an operating system 2314 I considered using FASM but it has bad debugging support }05 Jan 2014 0012 we can use EPM package management format it can be converted to all the other formats. 0036 ya so some kind standards compliance stuff gotta do some time such as using unix file structure make, autotools elf dwarf binaries there are also gnu coding standards http://www.gnu.org/prep/standards/standards.html 0200 changed directory structure to standard bin/ doc/ src/ 0840 working on making a makefile 1826 have Makefile working, attempting to get autoconf to check for nasm, gdb, grep kinda thing 2151 changign name from sysh to spel Speakable Programming Every Language }06 Jan 2014 2233 got basic epm and man page working :-) makes .deb's with all for architecture sudo epm spel -a all -f deb }07 Jan 2014 1200 did some work on making the texinfo manual }08 Jan 2014 0242 finding that NaturalDocs hard to work with, may have to resort to Doxygen 0255 it's okay figured it out now, should be easier than Doxygen may even be able to generate documention for rpoku files 0321 fixed up texinfo documentation somewhat added documentation to spel.list note, may have to do compression step for make doc gzip -9 for ubuntu also in postinst have to call install-info 0500 apt is giving error about ginstall-info }09 Jan 2014 0643 Anyways so I wanted to do the case sort before next release. 2230 wrote algorithm for and partially wrote phraseSort }10 Jan 2014 0707 writing more of phraseSort, require firstWordDrop function 0752 finished writing phraseSort, now for debugging. 0808 hmmm wordDrop doesn't seem to be working neither is firstWordDrop 0821 oh it was just translateTo messing with things 0823 so firstWordDrop doesn't work 0825 okay now it works 0826 now to test phraseSort 0830 is segfaulting. i'll debug 0831 btw decided to change all instances of my legal name to Logan Streondj, all instances of sysh to spel 0848 now not segfaulting, but blank without first case, and hangs if first case found. 0850 that indicates the recurse isn't working properly and post getting isn't either 0851 I see, it only drops first word, it has to continously drop so we need new CaseArray 0855 seems to segfault if extra data 0859 fixed area clear. okay no more segfaulting, but also no sorting. 1145 is finding say instead of next phrase, where is it gettin it from? }13 Jan 2014 1400 making api documentation, 1800 got it to make case and verb topics }14 Jan 2014 0604 working on API mostly, but did some code fixes, anyways seems like file interpretation is broken, will have to figure it out after finishing api. 1525 found out that linux kernel is using xz compression instead of bzip2, xz is the new best, so we'll switch to it also. spel sources will be released as tar.xz 1539 though I guess we should support all, or at least tar.gz 1811 we may at some point decide to use OS error codes, especially if they are posix yep they are, so lets do that for all future functions. instead of retNo, can return the corresponding value. the closest i see to our "no" is ENODATA 61 /* No Data Available */ 1819 anyways we can put then into error.asm, or even errno.asm just to be a little more posixy then can have errorSay write what the error is, and we can document what kind of errors something throws. 1846 now thinking about it, seems that we would need a hashtable, or to make a definition list to return the error statement, to associate the numbers with sentences. but for now we can return the simple numbers. }15 Jan 2014 0726 made make install and make uninstall work don't have support for the api portion yet, but haven't finished making the api either. 1548 thinking can make yes 0xFF and keep no as 0x0 since both are success, they are the "true" "false" booleans, intermediate values are confusing because of the posix error codes. 1559 a lot of these interpreter commands can be thrown out, once we have the JIT compiler working. 1703 got all the way to ioCommands.asm got all the way to ioCommands.asm 2106 was reading core Peer-2-Peer Collaboration Principles http://p2pfoundation.net/Core_Peer-2-Peer_Collaboration_Principles and it was saying how anonymity should only be reserved for the dire. also saying things about having a commons is good, and transaction and money based things aren't necessarily. Then I got to thinking about the We You Net, opennet or darknet, it will be based on atoms, molecules and the like. The opennet is kind of like the photons of light, bosonic connections which can occur between any atoms. The darknet is kind of like the covalent bonds, and firm, fermionic connections. In that regard encryption while supported is optional, in day to day parlance we don't need to encrypt our speech. It is very rare indeed that encryption is required. Though I guess for darknet transactions it can be standard, since that kind of private information isn't meant to be intercepted. Just as it's hard or impossible to intercept proton to neutron communication. so these atomic nodes, or groups, would have protons connect to wider network, similar to Tor's outgoing nodes, and the neutrons would be for transfering information between protons, and would be the hidden, kinda of members which are accessing things through the protons. at least one proton of any group would have to be online in order for it to work. atomic nodes could act as clouds hosting each others sites and services, offering each other backups and that kinda stuff, that some kind of trust is requried for }16 Jan 2014 1858 found out most common phonemes, updated 4-bit alphabet 1933 found there are "averages" for amount of consonants and vowels. 22+-3 is "average" 6-14 is small, 15-18 moderately small, 19-25 average, 26-33 moderately large, 33+ large. there are more small than large. rpoku or wpoku or wpaku as it may become with current 4-bit is small. ref: http://wals.info/chapter/1 for vowel quality inventory, 2-4 is small, 5-6 is average, 7-14 is large ref: http://wals.info/chapter/2 we could have an "average" language also, with near 32 letters, 22 consonants, and 5 vowels, making 27, null, space, newline, tab, eof, making 32. for that we would need a list of the top 30 phonemes or so. }17 Jan 2014 0708 updated 5-bit alphabet, 28 letter alphabet, 6 vowels, 22 consonants, with null, space, tab and newline that's 32. can do eof using actual words, end of file ya }18 Jan 2014 2006 thinking of making vocabulary based on synthesis of languages, similar to what lojban did. Though would have to do some serious data mining it seems, since can't find any IPA word lists for various langauges. Probably have to mine wiktionary and google translate or something like that. Anyways it's a long way off before have chance to implement such a language, and by then more resources may be available. So should probably focus on the present and getting the language to a usable state. Faster than C, more portable than Java, easier than Python/Basic. 2020 Anyways it's probably a good idea to use datamining to figure out the word forms, because it's harder to argue with, and is more stable with the addition of new languages. Also makes it easier to add new words, since can simply run the miner on the new words. Ideally will do the mining in SPEL, so lets get it finished, do the API! }20 Jan 2014 0630 doing API 0648 new codestyle rule, one type per code sentence i notice jump resolves both pointer type, and label type, ideally it should only resolve one kind, or rather each would have their own declaration. will have to fix later 0729 finished API for verb/ folder 0745 finished API for word/ folder cool seems like everything :-) 0822 so what now? for the next release. gotta fix the love function, update readme, man, info files. upload API to site, make new GI-OS site, or a SPEL site. have a download button, look more like contemporary project. 1051 gcc.gnu.org seems to have the best website, since it renders almost the same in a text browser. such as w3m or links2, and renders okay even in lynx the secret seems to be using table instead of div tags. 1123 was working on website, came to the conclusion, shouldn't at least not now, do other stuff first. 1851 first we gotta figure out the factorial.txt or love issue 2113 seems like jump doesn't work, it gives me endless no ya 2122 firstLineGet is returning address of zero length hmm 2132 it seems a little silly to me to be debuggin the interpreter, when i'm going to be changing it to a JIT compiler anyways, though I guess for now it seems quite reasonable. since it's all I have to work with, that works for interpreting sequences. 2203 I see the issue is with firstLineGet, because if there is a two of them together you have length of 0. we could only do interpreting of rpoku sentences, that would make it easier. simply translate to rpoku first. 2207 okay fixed by puttin firstSentenceGet back 2249 so now gotta update the readme, man and info files I notice the title in natural docs is rather lengthy wonder if can modify what the front page is also 2310 just realized that haven't done API for things in sentence folder 2337 there are a lot more than I realized that are undocumented, or rather unapi'ed did string, but there is also type }21 Jan 2014 0015 anyways so finally finished API going to bed latez 0644 got a wizard hat to use as SPEL logo, from tuxpaint stamps 1139 thinking about how to do this. we have four main sources of documentation: man page, info manual, readme.txt, website I'm thinking that most if not all can be a subset of info manual. 1902 seems like texinfo is the best 1904 excellent it even outputs in plaintext, so can make a readme from it. 2019 can't really make a man page from it, but that's okay, since man page is simply for the command spel, very little detail is necessary. }22 Jan 2014 0708 so what elements do we need for the website? based on some other program languages websites, most important stuff seems to be download, a description, list of features, documentation, 1029 so we have to upload the API and link to it also figure out how to do the git cloning from sourceforge 1412 okay so api is at http://spel.sourceforge.net/api/html verbs: http://spel.sourceforge.net/api/html/index/Verbs.html types: http://spel.sourceforge.net/api/html/index/Types.html http://spel.sourceforge.net/api/html/index/Punctuations.html 1413 him i think it's still punctuation in plural oh well doesn't seem to be fixable 1424 reading about making a successful software project http://producingoss.com/en/getting-started.html#starting-from-what-you-have 1458 we have a good name SPEL, so we need a clear mission statement, possibly around 4 sentences. 1502 just checked standard consonant/vowel ratio's best is 3.5-4.25 wheras 2.75-4.5 is "average" ref: http://wals.info/chapter/3 currently with 10 consonsants and 4 vowels that is 2.5 seems it would be best to have 11 consonants and 3 vowels puts us in the 3.6 range. and is conssistent with the 22 consnants and 6 vowels 1525 seems like we're going with 12 consonants and 3 vowels, giving us a ratio of 4. null can be space. 1658 uploaded 0.4.1.9.8.8 standard layout and makefile to spel gotta figure out what is left of readme to put into texinfo manual once got everything we'll make the readme the output of the manual. }23 Jan 2014 0010 okay been working on the documentation a lot, is getting better 1048 so thinking of making chapter for the language, sections on grammar/syntax, and functionality also have a kind of initial use function to show hello world that kinda stuff. 1050 also good to learn the texinfo way of making a table, so can have the copyright and logo next to each other, or we can even put the copyright stuff at the bottom, just have a link to it at the top, like the contents. 2302 so been working a lot on this today, mostly the info/readme/website which is now all the manual. but also made preliminary steps towards a blog post. }24 Jan 2014 0705 I've noticed a majority of our downloads are from windows users. So perhaps we should work on, or at least see the work required for, porting to windows PE executables. 0719 I'm gonna test if it actually works with cygwin 0726 I looked at it and porting to windows would be quite a headache. 1320 so we need a config file that would allow setting number base language and other preferences. One of the issues is that love sets and resets language. An idea is to seperate this, so can have a pure love, which doesn't set or unset language, and have a wrapper that does. So when reading config file, it would use the unwrapped version. 1341 have an idea for meaning of the last letter of gismu, or kismu, it would be the placement indicator, for instance i for subject, a for object, and u for verb. mi i tu a pyamu. anyways lets do a quick kismu.txt 1403 okay made it for lojban, in doc/lang/spil/kismu.txt after doing translation have about 115 ambigious words some more than once, as there are only 101 such words. 1805 anyways that's likely a dead end for now, we'll be using other words most likely. 1806 phraseSort may be all we really need, to classify as "English Support", otherwise we just have su and bo, people will just have to bear with the grammar, but if it is at least in the proper word order, then people can more easily understand what is going on. }25 Jan 2014 1057 worked on the info manual somewhat, still gotta add type and number sections in syntax. Also good idea to make windows file in .zip format. 1205 probably should make the post Tolkien quote paragraph, be extra bright and easy to read, to make up for the quote. 1231 zip is very bad compression, it ends up something like 7 MB wheras the .xz is 1.3MB }25 Jan 2014 worked on info files some more }27 Jan 2014 1001 still working on info files. wondering about references, bibtex seems hard to implement, can just do random reference styles for now, fix to IEEE later. }28 Jan 2014 0700 document 4-bit alphabet in manual, phonemes, and vowel consonats ratios. 2029 seems like I'm nearing completion of documentation. 2030 oh right, can also say where to get documentation. 2053 there is also vocab, and turing completeness 2123 just realized, we're lacking a sleep or pause function. 2127 okay made a pause function in verb/turingCommands.asm 2143 we also have to get the define function working this version. 2201 wondering about swadesh equivalents for turing commands there is say and hear, not sit is kinda like pause, sleep is available, more unix like to use. come, walk and swim is as close to move as i can find to move. know is close to remember, know not kinda like forget seed and name similar to label die is closest to bye leaf similar to call, kinda like a node rain kinda like run tail kinda like end root kinda like return 2213 I was wondering, how many languages have to use, to have 85% of native speaking coverage, or even lingua franca coverage. hmmm would need near a hundred languages for native speakers. at least 23 for total number of speakers 12 languages for official languages of countries. 2237 anyways it may be easier to do an aUI style system, rather than base it on cohesion of languages. Though we could use a cohesion of cohesions, such as Proto-Indo-European, Proto-Oceanic, Proto-Sino-Tibetan Swahili, don't know if there is a Proto-Americano.. 2240 hmmm seems that Indo European is the most popular language family. 2323 I like the 3-bit alphabet, it's less overwhelming, there is only 24 grammar words, 50 simple roots, and 400 complex roots. so we could actually define the swadesh top 50 as simple roots. though I guess it would have to include the turing complete words 2332 even better than swadesh is the Leipzig-Jakarta list has hear, say, not, go (jump), come (return), do, hide (forget), name (label), root, stand (sleep), I/me, you child (for) give (to) know (remember) new (define) rope (string) suck, (server/interpreter/love) tie (link) what? stone/rock wood skin (book) tooth (glyph) good (yes) }29 Jan 2014 0000 Just thinking about how with m k j p w can't really do the aUI stuff, but I guess we could do some grammar stuff. 0001 anyways this is a huge time suck, and it's not useful, like people are going to use their own language, not some silly conlang, or bytecode language, not for a long time anyways. 0002 only way this could be useful is for instance if I had the oxford 3000, and then can select verbs from it. 0024 okay made vocab-oxford-3000, seems to have everything. going to sleep 1458 got an even better list, the WOLD list by borrowed frequency. 1501 excellent it has go out and return home in top 50 :-D 1959 got the most popular words, they seem more accurate, as in they are more common, and consistent with what I thought, sex is one of the top words. 2000 and actually go or return is some of the least common, so the borrowed index is almost the reverse of the popular one, I guess cause unique words are less likely to be borrowed. 2001 so lets see what we can do with the popular one 0 spring/well lazy 1 strike/cut 2 want/eat 3 bend 4 gather 5 put 6 sound/steal 7 arrive jump 8 door/soul 9 mountain/time A build B speak C marry/sex/tie meet D scold E mix F finish and that's all top 100 2025 anyways I guess that's all for documentation. 2029 now lets do the good stuff, debug phraseSort. 2146 reduce may be reducing excessively. 2150 lets test reduce yep it's broken. 2206 oh, right reduce outputs the end, not also the begining, hmm gotta fix that. 2211 okay reduce is now fixed 2213 phraseSort now sorting properly, but sentence ender has disapeared. seems to be it's being reduced.. yes, now i see it in reduce test case 2222 hmm fixed reduce, but maybe there is issue with backwardCopyMove 2225 okay anyways phraseSort is working :-) 2226 next gotta do the config file and add phraseSort to translate to english 2248 there is also the weird thing where sentenceTranslateFrom segfaults when interpreting from file. 2251 btw added phraseSort to translateTo, works beautifully :-). 2255 okay fixed that also :-). tommorrow, config file.. }30 Jan 2014 0526 so that's in loveCommands 0608 okay so wrote the transLove, and pureLove functions, can now load a config file with pureLove. 0609 btw, we really have to clean up spel.asm, all those boot create messages should be packaged into a func. 0705 made bookCreate function. I see that perhaps the love function isn't working properly, since it is segfaulting at the end. 0717 now segfaulting after, it think it may be when it exits, it doesn't set to stdin. 1145 gotta remember to change voice mode to verbose mode }31 Jan 2014 0720 added section on Morphology, and Vocabulary Selection in manual. 0742 weird after the love, context is 0 0743 okay fixed it :-) interpreter now works after love. 0745 okay so config file I guess 0749 oh right, i need to translate stuff before I can parse it hmmm. config file works now, but when I get into english mode, it gets all weird and segfaults with the append thing. oh I see it works if proper grammar, but it segfaulted for improper statement. it doesn't segfault for that improper statement in rpoku. 0758 so how do we say language with m,p,k,w,j,i,a pamk (bangu) yap (lojbe), I guess yap is pretty accurate :-). yap yap yap. only issue is it could be confused for yapese. so language could might have to be ypa would be more consistent with rpo ypaka or ypak (rpoku rpok) 0815 okay updated spel.asm and inserted Ypak in a few places of .texi still got to update a bunch of other source files. 0902 talked it over with samta, says she prefer ypiy or Ypiy, similar to english Yipee, exclamation of joy. hmm maybe yipy would be easier to say. 1015 anyways for foreign language line get with some glyphs per line. 1152 okay updated firstLineGet, we'll have to make a firstTransSentenceGet or something, for other languages, maybe firstLangSentenceGet, for Ypiy it would be firstSentenceGet, for others firstLineGet, unless more precise one defined. 1456 find frequency of assembly commands can sort them by usage, use 2-bit alphabet, assembly lang. 1548 okay made count and associated with assembly commands, made 2-bit vocab, doc/lang/vocab-2bit.txt 1614 excellent at least we got some vocab :-) 2338 okay seems I have worked some of the kinks out of kimk }01 Feb 2014 2004 for by the Charlie release, can have lpaku to texinfo translation. That way can have manual written in lpaku, and it will translate to all other languages, and be consistent with their grammars, at least up to the point supported by lpaku. 2112 it would be nice to have it for Bravo, but highly unlikely, since we have to release this year, likely gotta clean up the roadmap, take out the stuff we dont' absolutely need. 2245 updated roadmap, we may be able to reach bravo by June. 2257 at some point we may consider having near direct lojban support at least for their gismu, if not their cmavo. but ya that is still rather far off. we definetly want to have that whole international forum and chat someday. }02 Feb 2014 0026 if we want to be Lojban compatible, will have to remove the short root words, CVC .VCC CCV stuff. 0029 even lojban's selklama stuff would be okay if instead of place selklama means destination, wheras klama is go. thus togo or place that is gone to is first place. xelklama is bygo or vehicle instrumental of going. 0035 main issue is for pure support, would need to have it in 5-bit lang, and liekly change their ' to h, though we could translate to them or something. 0042 of course a main issue is that lojban is prepositional SVOish and SPEL is postpositional, thus different language. but we could keep a lot of the same stuff. can even integrate their vocab, it's already done, and w/e may as well. they actually already have short words CVC's in rafsi file. only issue being they use the CVhV format also though I guess we can support that, sure w/e 0129 made IPA,X-SAMPA,UPSID,SPEL Glyph comparison table in Appendix. 2039 worked on mostly documentation today. I'd really like to have some kind of lojban like thing, so can write or program in it, and have it translate to other stuff. Bah gotta get those multi sentence quotes running. And also the whole definition statement stuff. It's not so hard, mostly the reference is confusing. I guess story is the type or something, maybe block. 2348 doing some more documentation in relation to languages }03 Feb 2014 0027 probably need some pronounciation keys 1150 uploaded new verison of documentation 1151 okay so we have to fix the config files, it doesn't find them if not in bin/ so either ~/.spel/config ~/.config/spel/config or /etc/spel/config meaning we'll have to create directories. without directories can be ~/.spelrc 1154 also been thinking about having ya at end for english, but that is not as important 1220 hmmm, seems like can't resolve ~/ so have to use /etc/spelrc 1222 okay moved it to 0.4.1.D.1 config file 1223 it may be possible if we get autoconf or something to put the pwd or install path somewhere we can see or if we can even find out users home dir through env yes okay, they are on the stack would need a get env function 1733 had idea for how to make the multi-sentence quotes, should be pretty easy, simply use sentenceGet with phrases "start be story of" and "end be story of". though multi sentence get can accept argument for meta like of. it just looks for matching start and end, returns the contents. 2359 defined vocabs bit bases taxonomic information 3 bit will have domain and kingdom 4 bit phylum to common class 5 bit class and common family 6 bit family through genus to common species }04 Feb 2014 0715 so where do we put multi-sentence get type/quote.asm 1041 okay wrote multiSentenceQuotGet 1042 compiles, now to test. hmmm, would have to use a file probably. 1045 to make it easier to test can make story type 1053 i'm gettting that loopy no ya for love from file again :-S 1059 weird, it only happens in normal mode, not when debugging. 1100 anyways it is say mem yo, so it's stuck reading nothing seems. 1107 oh issue was using old version of spel, not using new binary i deleted old ones with make uninstall anyways now it is giving me insufficient space error. 1135 okay is outputing, but not till correct place, is skipping over the proper end hmmm. 1146 oh, it's because sentenceGet gets from end. hmmm 1147 guess we'll need to make a forwardSentenceGet and a forwardMatchPhraseGet 1148 alternatively we can search from the end, as in get the end first, and the start after. but then the end would have to be fully documented. i.e. with name and type. Though I guess that would be consistent with SOV. and pop music. 1318 hmm wordsCompare outputs yes rather than address, there are 46 calls to it, so too many to fix now, but maybe latter.. or can change other comparisons to give yes no.. 1320 excellent so now multiSentenceQuoteGet works. 1321 now we gotta get love to work with it. 1337 okay i pushed git repos 2140 anyways been wasting time doing 3-bit vocab 2214 bah must stop! okay so the love command }05 Feb 2014 0527 Made the normal love function called file love, or flove, and made the trans version call the simple version. 0528 still gotta make an even simpler version, for use with multi sentence quotes. 0533 hmm, seems like it supports labels also, so call it fromLove 0535 weird that it gives me file read error for story though. 0535 actually it does have file read, weird... but then it can't be used for label.. 0538 hmmm label and story are different, but can become the same. 0705 added some phylums and phyta to 4-bit 0750 added of to vocab, to show inheritance 0758 anyways I should get back to love 0807 excellent it works now :-) 0808 hmmm, now only issue is the whole factorial thing we can make label into a story 0810 oh it still works great :-) }06 Feb 2014 0522 anyways so we are going to do decimal now since we are leaving the definitions till after assembly compilation support is enabled, before then too much hassle. 0523 okay so says here that we support decimal and other base conversions, likely by modifying glyphsToNumbers and numbersToGlyphs. Then having nu accept as many as two parameters, one being base with a default base if there is only one parameter. 0526 do we have a word count function? cause we need 1 or 2 words.. hmmm 0528 cool we do have wordCount, don't even remember writing it. 0541 updated nu type, now gotta update glyphsToNumbers 0555 okay so we need a new glyphsToNumbers function since ours is strictly for hexadecimal. probably have to rewrite numbersToGlyphs, comments are hard to understand. 0557 calling the new one, base glyphs to Numbers 0634 I was thinking about it, can convert from glyphs to hex glyphs, then pass it to glyphsToNumbers.. though that may be more difficult, it would allow for numbers of arbitrary length. 0636 though I'd need the add, mul, sub, div functions to go with it and currently don't have the time/energy, but eventually.. 0638 I guess that's when we'll code the other base to hexadecimal. ;-) 0707 okay seems I've writtten baseGlyphsToNumbers now to test 0722 okay hmmm, so it not converting properly. 0746 excellent it works now. gotta set up nu 0814 can't seem to set numericBase variable something must be overwriting it.. voiceMode? loveBookArea? 0815 excellent yes it was voiceMode 0816 still some issues with the base mode, can debug later also wiht lowercase there is issue, seems to be glyphGetting wrong one or something. 0842 okay now is fully operational }07 Feb 2014 0659 okay so gotta get the rnu or num version working, first gotta get something to reverse number order, er like wordOrderReverse, but glyphOrderReverse. 0723 okay wrote, now to test, debug 0731 okay works now :-) 0734 writing reverseBaseGlyphsToNumbers 0739 excellent it works, now to make the type num 0750 wrote now to test. 0752 excellent it works :-) 0755 since we are gonna do some mode stuff, i'm gonna switch voice to verbose 0759 bah, maybe that was bad idea, voice is not verbose necessarily it can be quiet... 0806 okay changed it back I guess we can pack a commit... and update spel.texi, but see if we can do the numeric base. 0808 hey do we accept nouns with phraseCheck? like that would be best, then can more easily make the base 0812 it would have to be under typeCheck 0818 bah it's rather complicated lets just edit mode for now. 0835 okay wrote, now to test 1214 excellent now it works :-) 2146 documented changes 2233 so we'll have to reroute the glyphsToNumbers and numbersToGlyphs to send default to base version, of proper endianness. so we will have to set the endian mode also. }08 Feb 2014 0714 so now we should write the algorithm for baseNumbersToGlyphs 2249 wrote baseNumbersToGlyphs 2257 btw at some point gotta change copyMove to the OS independent versions. 2301 okay it's working :-) 2304 now the reverse function 2317 okay that's working also :-) 2342 now just gotta make the endian mode and make numbersToGlyphs and glyphsToNumbers work with default numeric base can rename the old ones, hexadecimalNumbersToGlyphs and hexadecimalGlyphsToNumbers. }09 Feb 2014 0740 okay wrote it. now gotta make an endian mode 0743 weird getting error.. 0803 okay bookNameGet simply needed hexadecimal version 0805 I wonder why they don't work with the other version though.. 0822 there is issue with baseGlyphsToNumbers, doesn't convert large numbers well. 0824 maybe baseSet isn't working properly. 0826 yep.. 1233 okay fixed baseGlyphsToNumbers }10 Feb 2014 0512 now gotta set endian mode also default should actually be hexadecimal for files and such since that is at load time, if it changes after then problem loading verbs 0513 can make nu accept both little and big endian, can simply make big endian prefixed or suffixed with minus. 0515 we'll be adding support for signed numbers soon, so can do it. 0518 floating points are different for various architectures, though we can make them similar by multipling for precision. for instance depending on how many bytes of precision we need, we can support up to 3 bytes precision on 32-bit processor, without having to go over one register. but ya, later on we'll have to do the carry stuff, for multiple registers. 0541 also have to make the type thing in standard form so if reading file with different default it still makes sense. 0546 okay converted the interior functions to use hexadecimal we may have to make that simply a call to the base version, we can't maintain 2 version of numbers glyphs conversion. especially once we get the endian functionality 0605 so weird convert doesn't work when I set endian through mode but does if I hardcode a different endianness 0610 so strange, even if I reset the same endianness 0629 numericBase seems ridiculous.. an ASCII thing or something. 0633 bah, I was jumping to baseSet instead of endianSet :-| 0634 anyways it works. now on to signed numbers. 0649 so we may have to use a bunch more math functions, like imul idiv adc sbb to support multiple registers and signed numbers.. 0652 but ya, if we signed numbers in the standard way, then if something becomes negative, would have to invert the whole range of numbers, however many bytes it may be. rather than simply changing 1 bit which is positive negative. 0701 seems that two's complement is standard, so we should go with it. 0706 okay so main issue I see is adding beyond the half way point, would need to have extra byte/register using adc. anyways don't have to worry about that yet.. so 0x80000000 is the dividing point per 32 bit register.. so it's really bytes zeroed, invetered divided by 2. 0712 hmmm actually offset-binary seems to be better, as it both agrees with our intended floating point style, and it makes comparison operations much easier, since they will be accurate, negative numbers smaller than positive numbers, unlike 2 complement. 0714 though seems like intel is auto made for 2 complement.. as it's comparison functions take it into account. 0717 right because comparison is subtraction. 0718 oh great it actually doesn't take it into account, my test was with -1 vs 1 that works, but -8 vs 1 doesn't. okay, so we can use offset.. 0721 there is issue with keeping track for multiplication and division. like we don't totally NEED signed and floating point numbers, in order to get to bravo, we can shove them off till after. 0725 anyways don't have time to get into something totally new, so lets just think of the logic of it for now... bah offset is kinda hard, if we just do the - is over 0x8*16^8 and then fix up some kind of comparison stuff.. only thing I wanted to use offset for is that whole nu num stuff, maybe can support that with out current type stuff, lets check. 0730 yes it works, k just gotta fix the math commands for now then 0734 also another issue is that numbers is outputed as nu it would be nice to have just the 1 type, rather than 2 0735 maybe we can have a just for fun negative sign for now.. or something.. 0735 I wonder perhaps if have negative sign can add negative to it like 0x8000000 making it negative? hmmm, no not really, would have to subtract result from 0, we can do it though. shouldn't be to hard, at least in the base conversion thing.. 0738 you know we can simply add the offset when converting, and subtract it out when converting back.. 0739 main issue with that is when we actually need a small binary number.. 0754 hmm never thought of zero as a magic number, but I guess it is there is the zeroOffset, which can be non-zero value. 0759 with 2 complement we still have to convert the negative numbers identifying it is a negative number,, may be a little tricky, but guess we can do it by comparing it to zeroOffset. 0800 if we were to move over to zero offset now, then I'm not sure our addresses would render correctly. though they are on the seperate function now anyways, so doesn't really matter. 0801 would have to update the math functions... hmm lets try 2 complement for now. 0809 okay it's converting to negative numbers, now gotta convert to negative glyphs. 0815 hmmm seems like alphabetLower not working to well 0817 okay fixed 1007 okay now converting to negative numbers works, so we have signed support. now gotta make nu base accept negatives 1154 thinking about it, gotta make base big endian decimal since it's the most common thing for humans, at least for those that write left to right. we can change it later, as long as people keep to the standard, and we have some kind of language version indicator. 1211 found error, when doing base conversion, it allows bigger numbers than alloweable by the base, so gotta fix that. 1247 okay got it all :-) 1248 now gotta update documentation 1257 weird root book bo say be do not working, will have to fix before upload of amnual or spel git update. 1840 it probably happened when i made bookCreate 1841 only book i saw was the varmem book, and it's the last one added. maybe it's doing an area clear kinda deal or something. 1854 right, so we've got to make numbersToGlyphs accept the new base style. 2123 yep so now the bookCreate works properly, can update the vocabulary selection section, origin words, and synthesis of origins to make it easier than getting hundreds of versions. general rule of, if they invented or discovered it, they can name it. }11 Feb 2014 0746 okay updated the vocabulary section, uploaded to site and git. 0747 so now floating point numbers. how I'm thinking to implement it is in baseGlyphsToNumbers to have a check if it find a . then it will open a new byte that will be used to store the stuff past the . point 0757 for simplicity all numbers can be floating points, divide bytes by two to get the stuff above and below. though later we may chose to dedicate a 16 bit register size, to show the floating bit portion and the integer portion size. 1003 later on we can have the standard int, double, float but for now, it's about getting users, that may not be familiar with the range of number types, we want to make it so they can use any. 1005 you know what, for spel language, we can make little endian hexadecimal be the default for bases, and have the big endian decimal for the english version, seriously lets have some consistency! 1407 thinking about it now, it would increase the complexity. though I guess it would still be reasonably simple. 1409 anyways lets try it. 1419 okay so as it stands, if it encounters floating point it'll output to the second register. how do we prevent additions and such, from adding an int and a float. i.e. adding int to the first register which is the fractional component. 1421 one way is to through the length argument, if it sees length is 8 rather than 4, then it knows there is floating point. 1422 another way is we could pass some kind of type information can even do it in a single byte, though two may be best, one would indicate length of floating portion, the other would indicae length of integer portion, allowing numbers which are 2^(8*255) or ~1.26E614. considering there are only say 10^80 atoms, in the universe ref http://wiki.answers.com/Q/How_many_atoms_are_there_in_the_universe that is rather an excessive amount of precision. So if we use 1 byte, then we can have 0x2^(8*15) or 1.3E36 though actually if these are register widths, and we have 32 bit, 4 byte registers, that brings us up to 3.1E144 1436 hmmm there are also 16bit numbers for "half" floating precision format. 1439 seems like there are already standards in place for floating points. We're not going to be using floating points for a while. so how about we change it to later on? these standards would be hard to implement.. or rather would take a long time to implement. so right now we simply use an int type, that's what nu stands for. 1447 if we could simply express the remainder I think that would suffice. and only have to do it for division. 1454 I dono what kinda language would we be without floats? we can delay the standard floating points, cause of their complexity, but I think the simple stuff should be okay.. 1456 we can even represent everything as a float.. that could be the easiest... though we don't need floats for assembly level coding. w/e leave it. 1458 how would we implement the single float? i guess, we'd start with the sign, save that variable, then the exponent portion, and finally the value. or in the opposite direction. 1501 okay so we roll through carry 1 bit, get the sign, then we get the ax, that's the exponent, then we roll 8 bits, what's left is the value. 1502 making calculations with that would be tedious. complicated even. 1503 with the simple version we just traverse up the registers. seriously why would someone need to represent a number that is larger than twice the amount of atoms in the universe? By then something else will be available, or they can use a whole byte per portion. 1506 thing is this would require multi-register math.. and we kinda planning on doing that later. 1510 okay so we're done the math section. moved floating points to 0.4.2.A where we do multi register math. 1512 okay now English grammar translation support "translation file indicating transformations for language" 1515 oh wait, we forgot to update to the new base transformations for numbersToGlyphs. k lets finish that. 1517 right also changing default base transformation to normal little endian hexadecimal 1522 okay updated nu base transformation 1531 okay updated other transformation 1543 doing rsync with server, instead of ubuntu one. since on boat wont necessarily have that option, and it probably uses less bandwidth. 1545 later on will be able to rsync with boat server and with remote. 1917 anyways so how are we doing this? lets make an example translation file to: phrase sort be do reverse word order be do from: reverse word order be do 1950 what if we had to translate the words, for say french or the bit langauge to: phrase sort be do reverse word order be do word translate be do from: word translate be do reverse word order be do phrase sort be do 2022 reverse word order is actually more complex since french and english have different verb word order, french it would e accurate, but english is opposite. 2225 we may need a conjugation as well. to: conjugate from: translate to isolating infinitive do for instance j'ai would become je avoir or is home would become be present-tense home 2228 anyways that's later on, we don't have to worry about it so much. even if we get just the basic stuff we already do from a file, plus some translation, that will be just great :-). 2230 how would we even go about that? er... I mean once we have the compile binaries it may be easier. how about just word translation, that would be even after. grammar would need binaries at least for now. lets just do some really basic translations, like to french or something. say is dire, so say bo translate be french to dire so ya we could start the context with translate be french to ya or even a macro kinda thing, that would be cool, and it would just list the hmmm. technically can't have a sentence without a verb, but this would really save on space. if we simply had support for context it would be great. oh i know, we could do some kind of variable like pronoun. say bo pe be pe to dire so ya though if say we call it a translation file, it could have a special format. oh w/e we can just put it in an appropriate story. use tran instead of translate. .i.e. spel french su start be dict of french to spel from ya say bo tran be dire so ya be wu bo tran be être so ya of wu bo tran be de wu so ya for wu bo tran be pour so ya to wu bo tran be à so ya by wu bo tran be par so ya from wu bo tran be dès so ya code wu bo tran be lois so ya book wu bo tran be livre so ya story wu bo tran be conte so ya spel french su end be dict of spel from french to ya 2246 I'm pretty sure we can translate to and from UTF glyphs, so long as it's on a word by word basis. yep, it seems to be okay with saying french words :-). even chinese, great, so we don't need to do anything special, for supporting utf-8, at least for translation purposes. we might need it if we want to use them for ordinary instructions.. like spel instructions, but even that is questionable. doesn't seem to care either way. Oh we'll need it for getting a glyph at a time, if someone in a foreign language wants to do foreign language processing. so long as they use spaces between their words, we can process it. oh I guess chinese doesn't have spaces, so we'll need UTF-8 for them. 2253 right we'll also have to set the base for english/french etc. english su start be config of ya base bo a- nu to mode be do english su end be config of ya guess that's seperate from translation, or is it? like it would be nice if we could keep core all the same, and simply translate out to what other people want. that way we can relly on all source being compatible, all spel source anyways. 2256 so I guess we'll try translation file for french. 2257 based on where binary is located, we may be able to derive where language files are located, that will be after we have the config file loading. meanwhile can implement at least the word translation. 2304 another thing is we don't have the le la stuff of french, guess we don't NEED it, but we can simply add it in, however that would mean it would happen after word reversal. 2308 weird when I say several books, it kinda says too much like the catalog book, it says like all the books.. I was thinking of changing them all to multi-sentence quotes. that would make them quite variable in size. though would mean have to use insert and such for extending them. 2314 hmmm it's not properly phraseInterpreting.. maybe that latest glyphsToNumbers thing oh it's not nu til that's weird, gotta fix that. that's the er generating function.. bookEntry 2320 okay fixed :-) sleepy time }12 Feb 2014 0745 so how do we do this? The translation story or dictionary can be added to the catalog. The multiSentenceQuoteGet function can check catalog, before searching the whole memory, initially searching context. 0750 so at this point we can't use translation for English, but we can use it for French. 0758 so gotta look up the language code for french fra 0841 how we will load the dictionary is still an open question. if it's not a source file.. I guess we may have to make it a source file for now, until we have environment variable support. 0850 GNU has .po files, dono about those. 1007 they probably can't support the kind of translation we want. Anyways so we would have to make a tran verb, that translates all words in a certain context. Hmmm, an issue I see is that if it gives output, and then uses that output as input, it could clear the output, before processing the input. It may also be more efficient to have a dict verb, that translates on a word by word basis, based on the contents of the dict. 1009 dict can later be optimized, by making the story into database style, though likely when there is noticeable performance gain. Right now we are working on proof of concept. So speed isn't as much an issue. 1013 how do we call the dict for a given context? tran be contents bo dict by do 1014 we'll have to modify bookEntry to be catalogEntry 1017 maybe we should work on the dict/tran stuff first and then add in the supporting stuff.. the dict/tran stuff is more exciting. and would give us some basis made francais.asm 1203 made spel french dict , and it loads with include 1302 there are at least 2 ways of doing this. can have a wordTranslate function that takes a dictionary and contents go word by word through contents, look up word in dictionary, with sentenceGet, if found translate, if not then return original word. or go through dictionary sentence by sentence, replace words for each. 1305 the first is how a human would do it, so should we. 1306 additionally a human may have some kind of index, for frequently used words, but w/e optimize for speed later. we can have sentenceDatabase function later, that makes sentences into databases. 1318 added idea to manual about porting bit base, for using rax for storing both address and length for first argument, can load faster also. 1946 minimize dependance on system calls for portability 2146 while we can translate it into as many languages as we want, one of the critical factors is ability to use it on Windows, which is the majority of our downloaders, and novice computer users. The fewer system calls we have, the fewer calls we have to port. 2203 meanwhlie can try getting it to work with cygwin, perhaps on reactos or something. though I asked them they said no. though native support would be great. anyways lets see where it is on the roadmap. cool 0.4.2.3 that's pretty near, close enough anyways. 2208 interesting thing I read about zero-marking languages are SVO makes it easier to differentiate the S and O, that makes sense.. 2220 anyways so tommorrow we'll finish wordTranslate }13 Feb 2014 0630 writing wordTranslate 0654 wondering how to shorten the amount of appends necessary like so we don't have to append the same sentence over and over again, for the uh tran statement. 0703 okay finished coding, now to test 0723 okay debugged, just a few more words for french dict 0727 later on we can distinguish between verbs and nouns 0730 okay, so now have to make the dict type, should be easy, and then the tran verb, that uses wordTranslate..? 0732 we can probably delay that till we get to 0.4.1.C since that's when we'll be able to integrate assembly functions more easily. for now we got word Translation, good enough.. 0734 btw I noticed they were using 2 letter language codes in locale so we can switch to those also. hmmm actually some languages don't have it, but english and french do, so can use that. keep to a three letter one for spell "spe" 0736 we may as well add french support in sentenceTranslate.. though I guess this i the point where it makes sense to have those translation files... we can't load config files yes :-S 0737 we can simply have hard coded ones till we can. 0737 there must be a way of doing it with interpretation level, like we can call it a story, or some kind of quote.. 1054 okay lets test french 1111 integrating french translation 1529 hmmm say doesn't seem to support translation. 1530 another thing I was thinking is that can translate the numbers for a particular translation, rather than changing the core representation. 1617 almost perfect, but isn't translating of. 1642 sentenceGet has an infinite loop issue. 1647 it might be in aLastSentenceGetStart 1655 fixed the infinite loop, but of wu bo not resolving. 2003 would be good to support a secondaryLanguage, that way say someone is implementing their own language, that is only spoken by a minority, might not have much support, however they have a larger lingua franca they also know, and it can be kept in background. lingua franca's are more likely to have better dictionary support. 2050 might be able to have zeor-marking support, by having a mandatory expression of all elements, i.e. subject, verb and object. if one is a null can have hum or something. 2102 sentenceGet still not functioning properly if anything it got worse :-S 2105 issue may be with thisQuoteGet, fixed 2108 k issue is not getting sentence after de. likely in firstSentenceGet 2113 gotta change default colors from blue, cause they hurt my eyes. maybe orange or something. I'm not really feeling it with magenta either.. after I fix this bug 2121 okay fixed, lets try it 2157 seems to be working, trying out new colors 2206 my wife suggested I look up standard acronyms for object and subject for the translations. for instance obj and suj may make more sense 2214 okay put them in for french translation. }14 Feb 2014 0643 so we'll have to make a phraseTranslate function. 0644 I'm just wondering that this will be different when we get to the assembly and programming language translation. Though I guess there sentences will translate to instructions. 0645 we could have a different set of tranlsation or compilation functions. 0652 considering that translation takes noticeable time, we may have to have database and sorting functions, sooner rather than later. okay set it for 0.4.2.4 0725 hmmm it's already slow with the very simple function, I think it may not be possible to implement these accurate phrases, at least not before we have the databases, anyways it's not essential for bravo, mostly only have 1 word verb/nouns anyways. can put this for later 0726 I wrote the algorithm, it's going to take a long time to execute. 0727 we can make the short cut stuff now umm what to call it? I guess we'll write it and then figure that out 0731 right we also need past and plural indicators from Lojban pu is past su'oremei is plural :-S how about we use pa for past, ti for plural -nti is third person plural in PIE, -te first person plural 0854 can call it sentenceComplete 1521 last phrase get, if not retrieved append be last sentence get, if not retrieved append ya else return }15 Feb 2014 1026 need to at least put sentence enders after sentence, since then can turn them into proper punctuation, . ? or w/e also can use sentenceGet with them }17 Feb 2014 0636 okay added it to roadmap, so sentenceComplete 0653 okay wrote now to test 0725 aLastSentenceGet doesn't seem to be recognizing sentence 0726 okay is working :-) 1458 okay so now sentenceEnders at end, hmmm gotta modify translate to, and translate from sentence. 1507 made englishSpel and spelEnglish dictionaries. 1520 wrote intitial steps to it 1759 thinking of summarizing it as a function. sentenceEnderMove 1820 can call it backWordRoll since it kind of like the roll function, but it is for words. 1822 wanted to make the 3-bit alphabet have wider phonemic range, i.e. in terms of also having fricatives 1824 question is whether to include h or s, i feel more towards s since h is so dropable. 1826 but i dono, maybe not, cause of i wuv you hmmm. 1827 w/e leave it as is. 1828 anyways after we implement this, lets do toki pona vocab in 3-bit. 1850 okay lets test backWordRoll 1854 excellent it works now :-) 1905 wrote in stuff for the translate functions, gotta test 2141 okay working, but is appending after the newline hmmm. 2142 also it's putting back even things which aren't end of sentence. 2143 w/e lets keep the simple word order reverse. and work on the toki pona vocab }18 Feb 2014 0215 moved kingdoms to 4-bit found Borean and Nostratic database *drool* now have some really nice words going :-D 0250 can make the case gramar word names based on their meanings. 1024 can make tutorial mode kind of like text adventure games you are in an area of booklet size the catalog says look at root root is of page size can then browse through contents of a book for instance, the chapter heading could be like chambers. and in tutorial can have a quest making a fibonacci function. 1400~ added a bunch of vocab mostly Borean and PIE 2115 I'm very interested in the Inform programming language, learning to make some text adventures can improve the langauge. If it is coded similarly, or if it is interacted with similarly, then we will have at least the interactive fiction audience to draw on. 2116 Inform is object oriented, so we have a while to go before we can have a SPEL compiler for it, but we can figure out what we can do for now. I was thinking could have a MUD for it, kind of like the lojbanistan MUD, but it would translate into who'evers language. 2238 diversity university is a good example of a learning moo unfortunately it was taken down, we can have a darknet version. }19 Feb 2014 0712 not sure how we'll implement the who where what stuff. though I guess it shouldn't be too hard. who asks for a name/subject suj, what for an object obj, where for a location at, why for a reason for 1052 been thinking of adventure layout for filesystem and memory. running applications can be animals, nibbling on files that they are working with. default is displaying them near the biggest file they are nibbling on, but on examining can see all the files they are. servers can be bushes or trees depending on their size, with fruit or berries users or nodes, their directories can have their roots, and their files can be their leafs. cleaning utilities and garbage collectors can be fungi utility that kills broken apps/servers can be a predator. the standard LSB file system can also have some meaning. /home can be a house /lib can be library /etc can be office /usr can be a factory /var can be a garden /tmp can be a yard /boot can be a large boot /proc and /sys can be oracles, like crystal balls /mnt and /media can be pedastals or landing pads /bin can be a zoo or bedroom, where animals (apps) go back to sleep. their represented size depends on their file size. 1108 okay well long time before we can do that. what about for bravo release, maybe the tutorial mode. can go in to stories, into chapters, into sections. 1429 I hardly ever use who where when what, don't even use the wa stuff, but we can translate wa to what. move the rest for later 1438 k did it for English, anyways what's next.. 1439 translate file from spel to english and back hmmm. 1559 so how we gonna do it? we need to implement the tran word most likely. something like tran say could be nice. it is say but it does translation, then we could read and write from file with translation. only thing is how to specify language.. guess would have to use in. read from file.. in and out, out of language, into language. though I guess it would say what langauge it is in, so we don't have to specify out of language. 1603 brings us back to how to say our language name in our language. since we'd need to have a language sentence at the top. can use spel for now, but ideally a 4-bit word would be best. i.e. document name su spel be english in ya programming language how we say that? what is program.. 1934 wondering if maybe r is better than f, cause neither PIE or Borean has f 2015 okay fixed, just gotta fix in documentation also 2024 okay spel.texi updated 2233 made tenses and aspect mi ku hi lu pac qi pa wu ya I am enjoying this. miu hia qi pa paci ya mi hi pac qi pa ya the second form has inflection for subject object verb 2241 so it's not declarative it's indicative 2255 added gender 2315 added a few linguistic universals 2326 hmmm, I guess that past-tense and perfective-aspect can only be used with a verb, so they are in and of themselves verb indicators, simply ones which can nest. so since really it's not just now that I'm enjoying it but past and likely future, can simply say: mi hi pac pa ya I be enjoying this. 2329 emphasis on root syllable, so the a in pac or paci }20 Feb 2014 0649 still haven't come up with a name. 0713 okay how about ykaw, the shining language 0715 hmmm maybe mkaw would make more sense, since it is a word language. later if we have a light based language, can call it ykaw great so mkaw, it also works with magic maqk 0718 can make translations to mkaw also. 0915 thinking to make it easier to say, and still have isolating grammar, instead of wu lu ku, can use hi ha hu 0917 but w/e who knows maybe better this way. 1137 thinking numbers can be CCV since many language have two consonants for them, and they aren't very commonly used anyways. not common enough for CV in 4-bit anyways. 1654 with mka the name. a macaw the mascot 2044 divded between scarlet macaw and blue and yellow macaw. maybe can have both, one talking to another. 2058 the only macaw available at open clip art is a scarlet one, so guess we'll go with that. 2140 added links to vocab from spel.texi 2148 for adventure games, need to have look, examine, open, close, go get and inventory words. along with the various actions 2202 cool, so by rule 1589 we know grapmmatical morphemes should be placed after the verb :-) like present perfective for instance. }21 Feb 2014 0005 made macaw image Amacao based on a creative commons photograph. 0057 if life isn't experience what is it? is it really an entity? I thought of it as more of process.. ya word net sense 6, to undergo change, that's it know, experience live. experienec see go through, undergo, change I like that. change is to vary, variable to differ.. life is a variable? living things are variables hmmm 0640 wrote tran, basically a call to say with setting of variable 0655 gotta make it so word translate doesn't translate quotes 0708 okay works 0709 right still have that issue with translateTo 0732 oops, actually it's write that needs to be translated 1901 can make a argGet function, the 0th arg is the name, it can be used to find the locale information and other such files. algorithm: look through stack a register at a time, till reach one that is less than lowestAddress. Alternatively can set the base pointer at initialization. ebp is 0 anyways, can set it to the proper base. 1908 okay, cool, so now can use that null string conversion thing. }22 Feb 2014 0726 wrote argGet, now to test 0758 nullStringFrom returning bad length 0905 it needs context length. 1632 thinking about support Flow Based Programming, since it's very good at parallel processing. maximum packet size so an internet packet can be up to 536 or 1220 octets (bytes) for ipv4 and ipv6 respectively, guess we can support page size, or 4096 octets, or maybe 2 bytes worth of address, so 0xffff 65535. that's roughly a booklet size, or chapter size. then we can use the second portion for TTL, 1636 most complicated part is the dynamic addressing space, or where function instances are to store their data. guess would have to allocate upon running or something. 1642 could allocate a block, referenced by ebp, then use relative addressing 2146 okay I see, it doesn't give us the full path, just what was used. go guess we'll need to make a envGet function. 2222 wrote it, testing. }23 Feb 2014 0119 after glyphGet rets, it goes to pause_init, instead of envGet 0645 fixed, it was missing ret 0746 wow didnt' realize how crappy my backwardCopyMove and forwardCopyMove are, they use glyphGet instead of by register size. 1538 wrote copyMove and new backwardCopyMove 2208 we'll probably have to make a release without the new copy move functions, since should be tommorrow ish or something.. 2350 gotta fix arWordGet, ever since changed stringCompare output, it has been acting odly, or rather not working dono if stringCompare even works.. }24 Feb 2014 0023 fixed stringCompare 0024 okay sentenceInterpret working again 0025 next gotta finish envGet, or set up release, then do envGet 0719 what do we have to do to set up for release? update documentation mostly. If we have the config file thing, then it could be much better. envGet is close. 0754 okay envGet is now working. 0756 cool there is a TEXTDOMAINDIR that is /usr/share/locale though what we really need it the location of spel. 0800 ya, there are two methods, if local install, then PWD + name if universal install, then whereis 0802 though for now, we can simply shove it in the config or something. 0802 we can also get language from LANG variable 0811 made directory structure similar to when installed, with docs, locale, info under share/ 0954 if exec name has / in it, then is local, can compute the path with PWD. else if global, can check /etc/spel.conf for installation path. can set lang with LANG env variable. 1338 been looking at flow based programming a bunch, it is interesteing in terms of parallelism support, not sure how to implement in the assembly layer. 1339 to allow code-reuse multiple parallel processes, running the same code. would need to make the variables seperate. perhaps passed on ebp, and calculated from it. 1340 another issue is that Flow Based Programming seems to have very few components, it's not like you can do everything with it, i.e. add subtract, that kinda stuff is probably too primitive. It's more likely for services, like interpreter, translation, that kinda thing. 2013 maybe we can, at least add in whatever is required for the dynamic memory allocation, I like their packet memory management and network scheduler. 2014 anyways so perhaps we can leave the config file stuff for a bit.. or no.. guess we need it if we want text based language files. 2016 so what do we call it? spelRootGet I guess. 2019 spelPrefixDirGet }25 Feb 2014 1537 anyway we aren't going to have it working this month likely. So let us roll up a release that works. and call it that. 1614 so it is 0.4.1.B.4 1626 language setting is segfaulting. 1926 weird, foreign language support has broken. maybe something to do with the string compare or something. 1928 another kinda annoying thing is when it doesn't find it sometimes segfaults. 1937 okay found issue was with translating wa, it matches wa, I'm guessing sentenceGet matches wa, even though it is in a quote. 1939 found, it is in matchPhraseGet 1941 excellent it works now 1946 oh, i see now, i think it's umm, braking because the language is being overwritten, need to make a copy when setting. 1951 okay fixed. 2028 hmmm quotes don't translate properly, will likely need to have a secondary filter, that translates quote words first, and then the rest, since the behaviour of whether to translate depends on quote words. 2208 factorial.txt not processing properly, issue with var 2214 wasn't setting context properly for sentenceInterpret there is some weird binary garbage in the output, but w/e. 2219 hmmm kinda gotta update documentation for the english, but dono... will anyone really read it? hmmm. maybe. 2220 ideally will have those documentation generators 2223 can update docs later, lets just push the release. 2228 well we should really update the docs at least a little bit.. maybe we can give the instructions all in english :-S that would be hard... a lot of rewriting.. hmmm 2234 k did just the basic hello world :-). should be enough for now. }26 Feb 2014 2306 went to FBP frame based programming meet-up today. to find out about how to implement it in code. Was suggested to use co-routines, or generators. have scheduler that calls other processes. can make return call to get more memory. scheduler can have input of processes, and how data flows between them. In terms of memory allocations, mentiontioned malloc and free used to have a linked list of free memory, with the length of current free memory, and a link to the next free memory. }27 Feb 2014 0625 It occurs to me that when compiling to native code, it will have to be in Mka, and then when executing will need to have a translator overhead, to translate it into a persons local language. Otherwise it wont really make much sense to them, or it would need a lot of overhead compiling to a particular language, which would also make such code less portable. So spel could execute a mka binary, translateTo and translateFrom. This is acceptable for text, but when it gets to GUI's, we may need to work with the LC_MESSAGES or something. 0634 in terms of the multi-tasking process, I still like the FBP send recieve stuff. Then can simply suspend a function, take any of it's finished sends, and pass them onto the next process, then get back to them afterwards. Kind of in a round-robin manner. Would be able to identify where there are extra-packets in the queue, and then make more of the processes that consume them. conversely where packets are few, make fewer processes, down to 1. 0640 for compliance with tcp-ip a packet can be 2 sentences, or 0x200 though we may simply use 0x100 for simplicity, and not not all connections support the full 0x200 packet size. the send function would append to the given "packet space", once complete it would mark it as packed, perhaps in an index of packets, which could easily be traveresed by the fbp scheduler. 0655 Actor model is similar to FBP has more backing, lets check it out. 0759 thinking of having actor-model for processor schedulers, and FBP for the actual processes or functions themselves. that way processors can communicate to each other, and functions are still black-box independant. 1814 so ya anyways send recieve packets, 0x200 size, just like POSIX. one of the main issues is data memory for sub-processes, has to be allocated on the fly. 1816 anyways that's all in a while, meanwhile gotta make write into a say function, and when it does voiceSay or w/e to file, have to stick in a translateTo in there or something.. would be interesting to figure out a way of inserting a function that is between all the various kinds of say, and their output, but not sure how to do that, without modifying each kind of say.. 1821 one issue I'm having is differentiating say, hear, and put,get in these low-level contexts. I'm thinking put more like set, and get more like parse. 1825 thinking for various modes and aspects, can have a for clause, in terms of what they are for in terms of coding and computers. 2020 I should do more programming, but just did a version release, and I'd like to study some more grammar. 2334 included most of the grammatical categories in 4-bit, some of the lesser known moods in 5-bit. have yet to make words for them. though really will have to do the translation stuff before can use any of this stuff. }28 Feb 2014 0602 so we can probably use connection-oriented packets, they are the most popular. 0604 for scheduluer can use self-balancing binary tree something like CFT of Linux should be okay. 0611 ATM has 48 byte packets, or 54 once you include header, if we want fixed size packets we may also want small ones. average sentence length is well bellow 80 bytes it seems. 0614 average sentence length in elizabethean times was 50, in 1880 it was 23, for presidential speeches it's around 20 now. with 5 letters per word on average, that's 100 bytes. so 128 bytes is the closest round number. All we need is a CPU address, port-number, sequence number, and maybe checksum. since ports are unique per process/connection. 0620 if we go with variable-length can go up to 0x100 or 0xff with 32-bit processors, of 4-bytes, it takes 32 instructions to copy 128 bytes. 0626 I find though that for things like assembly instructions, we usually have a fairly short sentences length, and in most colloquial speech anyhow. move dword first register to second register from ya hmmm that's about 52 bytes, would fit in a 64 byte block. 4 bytes for port, 1 or 2 bytes for cpu, 0632 hmmm lets check the TCP header, has 2 bytes for ports, that's up to 0xffff or 65535 guess that's reasonable for amount of processes on a single CPU 0638 lets look at time slices for a moment, at a minimum we are expecting is 1Mhz, or even 2Mhz, for the 8080 that gives us 0x8000 instructions per slice to play with, even if our OS is in gamma-mode at 60 slices per second. Thoug usually it's 16-32 beta wave 0647 with a round-robin scheduler, we still need to run another process, once the other one returns, so it'll have to return to the scheduler. 1551 I need to make a version increment soon. I'm addicted to the rush of doing so.. 1554 so how do we translate a file, first off how do we read a file. we read it with say, but it outputs to screen, instead of to memory, we can write it to book, somehow.. 1556 hmm it exits after doing say from file.. 1558 weird it seems phraseInterpret is doing the reading? 1604 okay found it is sayf, something in it must be doing an extra return, or popping off the stack.. possibly holdLess, since it is the last call... can compare though. 1613 once we debug this, can make a function say quo from to in quo for from file to file in language, or into language 1615 alternatives, translate bo contents/file from language to langauge into file/book }01 March 2014 0551 we can check Lojban's translate arguments yep, they do subject, translate object, to language, from language, so result. 0554 okay fixed linHoldLess, had forgotten the return statement, and instead it was continuigin to the good_exit syscall 0556 so I guess instead of a say command, will have a translate command. 0558 guess we can have a lang type, for various language names 0602 so we'll finish Alpha with static memory, worry about dynamic in Bravo. 0604 can have a special function that if it is file, get contents, so contentsGet or something, gets contents of book, and that kinda stuff... though maybe that should be default behaviour when using a filename, people might simply want to move the file, or look at it's stats, so who knows... but then what about multi-sentenceQuotes? guess would have to do something similar for that, but dono., we'll see.. 0608 wrote trans algorithm in ioCommands.asm }04 March 2014 0457 so the translate numbers function can be shoved into the translateTo translateFrom area. anyways should code the translate file function for now. 0628 okay wrote it. gotta test 0707 main issue when calling translateTo 0814 hmmm, kinda weird how sentenceInterpretTranslateDoMid is the one calling positionSentenceTranslate, maybe it lost a call somwhere, anyways it's a wordsCompare that's throwing the error. 0816 hmmm it may be due to the language we may need to make a lang type, to do type checking. 0818 k fixed, wasn't writing langauge variable properly, now simply have to reset oldLang afterwards. 0821 k works fully. now issue with say file only says last line. also does translate, when not necesary. }05 March 2014 0623 so if I recall the two words functions don't work very well or at all.. tran say for instance... ummm, well dono what to do about that.. considering multi-word translations are difficult also or rather resource intensive at least till we get database and or sorters.. 0625 anyways can at least fix say for now.. 0627 oh actually it does work.. 0633 anyways lets up the increment and do the next function. want to get to the good stuff already. 0654 so translate numbers just for the language... that is in translateTo and translateFrom then we'd need a translateNumber function. or rather a numberTranslate function. can put it in phraseTranslate. though it's really a typeTranslate... if we have more types will put it in typeTranslate.asm guess we'll have quotes... may as well may a typeTranslate.asm 0657 so we'll need a spel numeric base, and local numeric base variable. 0702 subordinate clauses can be treated as seperate sentences, at least syntactically. semanticallly they can call on each other. 0712 wrote numberTranslate now to test 0730 have to fix glyphsToNumbers and numbersToGlyphs so that they support having an input base. 1347 wrote the updates, have to update the calls. 1413 i don't know why but it's forcing me to save input, since it overwrites eax,ebx when it does a return from call. 1422 numberTranslate works 1423 gotta incorporate it into the translateFrom and translateTo 1426 you know, i kinda don't really care about it... I rather get to the assembly stuff... though the experience would be good for quote translate }06 March 2014 0639 have to fix book r output, not reading root book say. 0706 interested in userland scheduluer, MMU memory management units. 1020 okay cool say obj book root now working, issue was that numericBase was set to localeNumericBase. 1023 so main thing is to implement the localeNumericBase translation for the per language setting 1913 we are really going to need that whole dynamic memory thing set up at some point, with the IP's and the scheduler or something. though I guess we'll wait till we hit a road block or something. most things are working more or less okay, just limited to rather small files. 1918 if we have major roadblocks with hello world, and simple assembly function programs we'll have to solve it, otherwise we'll wait fro Bravo, and do it when we go self-hosting. 1928 wrote some of numberTypesTranslate 2029 researching portability, and potentially installing NetBSD }07 March 2014 0607 okay so it would be really good to finish the B's this week. 0625 I'm surprised to see how minimalist NetBSD is, especially considering I chose full install. It took up about 450 MB. though what I mean by minimalist is it doesn't even have Bash shell, lacks a history, and stuff like that. and the pkgsrc doesn't have an option for searching for packages. I installed with Qemu, guess I can try out some other operating systems in a similar fashion, in particular minix3 and plan9 I'm curious about. haiku might be interesting also. 0637 okay seem to have written number types translate, now to test. 0650 oh i see lastFreeWordQuoteGet is not returning the type word, just the contents, gotta fix that.. 0926 okay fixed that part, it is working for single types per line, but not yet for multiple types per line. 0939 installing minix 0957 excellent so numberTypesTranslate now works :-) include the To and From variants gotta incorporate it into the English and french translations. 1000 okay now to test 1003 okay now only issue is translating numbers where base is declared. base declaration is translated, and number is left the same. 1016 oi, it gave that binary output stuff that ruins the terminal. anyways let me try to debug base convert by itself. 1022 baseGlyphsToNumbers works flawlessly 1023 okay nu is also working 1025 now to convert it with the types 1036 okay it works 1037 I often get that whole append error thing. 1038 I don't really know where it is accumulating.. 1050 seems tob e at numberTypesTranslateReturn, maybe the sentence length is being formed badly. 1150 once we debug this aspect we'll call it an increment. 1953 it's most likely in the recurse function of the numbertypes function 2002 okay fixed :-) 2022 now just figuring out that weird bug with the sentenceInterpret 2029 okay fixed, bottleneck was codeQuote, changed it to use 2 words, since it appends wu anyways. or potentially a word quote 2032 okay can git and push er, maybe do a little update on the documentation. 2105 okay updated and pushed 2219 so binary quotes can be made with the story multi-sentence quotes. can represent them as hexadecimal in translation. 2221 the dictionary translation may be some of the more interesting part. especially once we do "conjugation" or converting not 1-1 but 1 to many. }09 March 2014 2355 can use admirative mood for sarcasm, irony and such. can have scare quotes, and irony punctuation. personally I don't see why surprise would be lumped with irony and sarcasm. dubiative is certainly sceptical, I guess a lot of sarcasm is dubiative, like "oh really?" sarcastically is a doubt of the case. dubiatively "I'm sure he wanted to do that." that expresses the irony, since the statement is of certainty, but the mood is of doubt. there is also another form, where the moon is of known, like in "wow, really?" }10 March 2014 0646 the binary quotes themselves should be fairly simple, simply a multi-sentence-quote, with a type for getting them, like bin. or bina, possibly code... though historically binary is fine. 0648 the more challenging part is the saying, and the debuggign the binary quotes themselves should be fairly simple, simply a multi-sentence-quote, with a type for getting them, like bin. or bina, possibly code... though historically binary is fine. 0649 there is of course also the compiling or translating itself. 0655 technically they aren't simply binaries, they are code numbers, machine language if you will.. there can easily be a mka word for it. 0656 wayp is took, and kaw is language, so wka is fairly satisfactory. 0700 okay, so lets redo the roadmap to fit in with our plans. 0708 anyways we can start with a hello-world binary from nasm 0715, k so hello.asm is 34 bytes, without elf header. 0726 making multiSentenceQuoteType function. gotta change intput argument order for multiSentenceQuoteGet 2206 okay updated now to test 2218 doesn't seem to be interpreting the multi sentence quote type. 2253 seems like phraseGet su is returning way too long result 2258 okay well it is working for story, trying for binary }11 March 2014 0704 okay binary quotes are working. only issue with quotes currently is that have to start the file witha hu or sentence ender of some kind, since when it appends to context there is some issue.. i guess it doesn't resolve it properly, and thinks of previous contents is part of su. 0705, oh I see, it's because it writes the non-translated form to userbook, instead of the translated version, can fix that. 0711 history function can later translate back to users preference. 0712 okay so now we need to have some kind of append to multiSentenceQuote function. probably can use insert, to insert after end of contents.. 1302 added run or love a binary quote onto roadmap 1303 thinking about how to implement FBP, was reading about the performance considerations, and it was saying that it may be necessary to have just a few rather generic services. or larger more specific services. to minimize API calls, since they take a lot of CPU time. we can summarize, as we only actually use a very few basic functions for most things: there is get which can include the hear stuff, and interrupt handling. say or put which can include write and interrupts. arithmetic functions. comparison functions. jumping functions. translation functions. waiting functions, (currently unused, but likely will be). declaration of variables. that is 8 in total. 1311 wanted to make a name for multiSentenceQuotes since typing it out every time is a hassle, and don't want to use an english acronym. hmmm, so a mka variant. 1354 working on making pronouns more generic 1415 anyways so quotes.. citation I guess. i dono how to fit sitna or sit into the 3bit wi is taken. pi maybe.. can try working on sentence for now.. 1420 there is also repeat, sekwe, skwe, cek, kinda like quote. aha ki it is then 1424 I guess a sentence is a whole thought. 1515 having trouble putting whole into the 3 bit.. 1526 thinking of making all root words end with consonant, that means CCV would become a grammar word... though actually it would take out a large amount of words dono.. 1531 anyways we don't need the aspect as a grammar word in 3 bit, have whole anf part kay and paw 1532 so kay pimk or kamk is a whole thought, so kamk ki is a sentence quote mu kamk ki is a multi-sentence quote, mkak. what's a work quote then? mak ki makk mmak is a multi word quote mu mak ki 1543 anyways so we are working on mkak lol so brief. er right so lovig wka mkak 1545 technically single letters can be their own words. since they are followed by an @ vowel anyhow. so instead of ya is could be y and instead of hu is could be h it would require people leaving a space after it though, since it would be confusing if they think it's part of the next word. guess we'll leave this idea for later on. 1929 anyways so lets do something useful, loving a wka mkak lol. how to say love anyways.. 2154 so algorithm for loving wka, either for wka from or wka bo probably wka bo, since from might be different language or wka style, i.e. for ppc or something , anyways. typeInterpet or phraseInterpet the bo, get the contents, then simply call it. }12 March 2014 0618 okay so that goes in what file? typeCommands.. 0625 hmmm actually loveCommands. 0635 wrote it wlove, now testing 0639 not sure why it's not working, perhaps because the code isn't portable, and is pointing to a particular address, rather than a relative one, which is not defined. 0640 anyways, so we may have to make our own binaries or wka to test for usability. 0657 so now we write to binary quotes hmmm, that insert stuff. given a context should be quite doable. simply insert at end of contents. what to call it though... multiSentenceQuote insert mkak ... hmmm I don't have append or insert defined. 0707 i guess they are related to write 0711 i got write, it's pik from PIE pek 0713 still need in 0717 okay lia so that would be lia pik, in write, insert hmmm, and append would be after write, that's kinda like prospective aspect, so hmmm. 0800 okay defined those 1603 was thinking about the church or temple of Mka. We're going to need some kind of hierarchy and memberhsip for recognition by international bodies. Thinking of having contributing some functions a mandatory piece. gotta translate lords prayer. can provide cell phone plans with GI-OS installed. 2049 after the lord's prayer, we'll have to work on the UDHR 2058 btw we should put the early PIE grammar into 3-bit 2124 for that we would need to have a list of what PIE grammar consists of.. 2203 also don't know about 3-bit but certainly 4-bit. 2248 made doc/lang/grammar-PIE.txt intersting things include that I missed nominal sentences, which are used for making definition statements. like "god is good" etc. can use a copula verb like esmi. }13 March 2014 0717 another thing is moods are applied to verbs, as there are no sentence enders or anything of the like. the topic goes at the beginig of the sentence, is why there is so much wh-movement and topicalization. personally I don't see an issue with either of them, they are like shifting. 0800 okay so there are 41 PIE grammar stuff so far. 4-bit has 117 grammar words, 3-bit only 24 so roughly half of those can be used for 3-bit.. rest can be implemented in 4-bit. 1556 just thinking about the Mka faith. it has to be hierarchical to some degree for success, just like an operating system. Initiatiations should only be of the positive kind, such as parties, trips, celebratory meetings, with gentle, lawful and beneficial interaction. Rites of passage, the most important is code contribution, though can have community contribution as a level, or documentation contribution. so community, documentation, code, are the three levels. In terms of physical get-togethers, those can be various, though I'd recommend something like an outdoor camping trip, with their atom, or some community members. 2216 technically I should be able to make lord's prayer and such in 3-bit, 4-bit, and 5-bit, simply with different levels of clarity. 2300 I'm seriously thinking of abandoning 3-bit, it's very limiting, and makes this rather difficult to do, it is hard enough with 4-bit. 2314 you know what though, Toki Pona is a real inspiration, in that it can be a full language with so few words. it would be nice to have so few. I guess I can do a grammar toki-pona, and emulate that. 2335 hmmm so toki pona has support for 25 grammar things. 2336 techinically if we use double-vowels or "long-vowels" can do 36. then can have as many grammar words as toki-pona, or even more. but ya, would have to use a bunch of diphthons, and in higher langauges would summarize it into shorter verisons. }14 March 2014 0652 seems like really will need that whole subordinal phrase marker I guess it's a kind of free word quote,, or a multi word quote. guess it could be a lojban style multi word quote, which starts within the sentence and ends at either a sentence-ender or it's ending quote marker. 0656 I realize now that I mostly just have grammar words, and very few actual words when translating lord's prayer. 1415 so since there are shorter versions of lower-bit words in higher-bit alphabets, there are a bunch of synonyms. but I guess that's okay. }16 March 2014 2100 okay finally have all the words of Toki Pona. 2101 now just have to go back and get references for some of the earlier words I got from it. 2301 okay seems like it's done. lets try doing that fathers prayer thing. 2333 make subordinate clause word mpi using subordinate+main }17 March 2014 0030 made first translation of lords prayer, using 3-5 bit vocab. can make another one later using just the 3 bit. can also have one with extended vocab, for shorter version, once 4-bit and 5-bit is more filled out. }18 March 2014 0658 so now if I integrate the swadesh lists I'll be pretty much done with 3-bit. }19 March 2014 1626 I've come to realize that CCVC is easier to say than CVCC. so higher priority words should get the CCV and CCVC versus the CVC and CVCC respectively. 2225 so can use strucs for making more portable code. they make use of relative addresses viable. I'll have to test it out, but I'd like to finish this vocab stuff. I'm kind of on a roll. }20 March 2014 0758 yay managed to finish swadesh. now just gotta do leipzig and I'll be done. 0935 well might want to do the top 100 on that site comparing borrowing... but w/e. 2231 okay finished leipzig-jakarta 2232 now most popular entries of WOLD. might as well work on this till the end of the week. }21 March 2014 2212 was meditating today, and thought about for portability of binary executables it would be good to have some kind of binary interface. so that can make calls to functions and they will be at same place. for instance the phraseGet function. there are several ways of doing it. For instance can have it based on the word's numeric value. i.e. 4-bit is hexadecimal, takes 2 bytes to state it's number. though that would be 65535 in total, though we only have 0x2000 functions tops for 4-bit. and 0x200 for 3-bit. admitedly some of them are compounds like phraseGet, isn't simply get. An alternative is to compile in all code, then wouldn't need a binary interface, but also wouldn't have the intrinsic portability. 0x200*4 is 2048 that's half a page of addresses, should be fairly decent. Anyways how are we going to translate them though? }22 March 2014 0015 found wikipedia page on cultural universals, can get a bunch of useful words from it. }23 March 2014 0052 much like in Standard Mandarin, can make nominal sentences as simple as ommiting a verb. With a subject and object, it is implied that definition is taking place. A word can as with proper nouns, represent multiple types simultaneously. I.e. someone can be tired, happy, male, and white, or any other combination of descriptors. whether to store then in an array, or what, is a question of course, but I guess it would be in association with the proper noun's label. 1203 made some of the more common words into shorter syllables. i.e. CCV rather than CVC 1230 updated spel.texi }25 March 2014 0520 anyways lets do some programming, I've got more than enough vocab for now. Don't even have support for subordinate clauses yet. It's hard to understand how they fit in a programming context. 0521 so lets make a simple print function that we can run without using any data.. 0554 hmm weird isn't working.. guess we'll leave this step for later. 0557 anyways so next is writing to binary quotes. so we need a Mkak Insert, or mci insert, though I guess it is mkak, if we reserve mci for other uses? 0611 okay so lets get started I guess. how do we phrase it? add be some mci to quo some words quo te bo ya cool enough. though I guess that's not a math command.. append is word add. though it makes sense from context. 0620 since this is a binary quote it's sci not mci. 0622 do we really need to write to binary quotes? I dono, likely we only need to construct them the first time.. adding to them seems rather silly 0623 I guess we can do the say binary quotes, we can for instance convert a binary quote. 0634 anyways so lets edit spel.texi to demonstrate this new stuff. and then pack it up tarball for the site. don't have to blog about it.. though we could.... w/e 0657 updated project categorization on sourceforge. It doesn't seem anyone is downloading it, so there is no point of tarballing it. I guess most people just look at the documentation. One person downloaded it, and they were on windows :-|. Probably didn't read the documentation. 0726 anyways updated the documentation and added a counter, we'll see if anyone actually visits... 0727 next up we have decompilation.. that means we'll need to parse the assembly and output what it means, that may be somewhat advanced.. perhaps we should start with something simpler? 1400 downloaded the intel instruction set reference. 2136 okay well technically making a decompiler will be a bunch of extra effort, and not necessary for our purposes. Lets see how we can phrase translating from Mkaw to intel assembly. mov register to register 16bit is 0x89 mov register to register 32bit is 0x6689 mov be 1 re bo 2 re to do being a hypothetical command. can be caught by mov su quo re bo re to quo te for do the translation itself will be a command, since we have to resolve the re stuff, which is 3-bit binary in intel. 2200 we can also do the brute force method of 1 to 1 translation. dono can sleep on it. }26 March 2014 0643 hmmm, my language dreams were in reference to writing style. as in font, it was saying something abot egyptian fonts being interesting. Though Latin is based on egyptian so I dono. 0647 Anyways, in terms of translation, guess it can be a type of code, code be tran of intel to mkaw from }27 March 2014 0555 so can make a seperate book for the intel assembly translation, can call it intel. 0617 made translate/intel.asm started writing the register mov code 0618 issue is how do we identify the size. perhaps can use of. mov be 1 re bo 2 re bo 4 byte of do can simply say 4 of, and that can be default byteBase. 0626 oh I see why that hello world might not have worked, it's because vim doesn't copy binary information properly. 0629 okay I used binary mode, though it still added a newline after, i guess it's survivable.. 0819 wOot! wOOt! finally got hello world binary working :-D. simply needed to compile in 32 bit mode, use binary version of vim, and skip the initial newline. 0934 okay so all values are possible, so we'll just have to have the glyph drop from start and end. }28 March 2014 0700 started coding reMov 2120 finished coding reMov 2128 now to test... how? 2128 guess we can have a test sentence, and then call reMov_code, then convert the output from hexadecimal. 2133 hmm thinking now that the interpretation of the re is different now that it is actually an intel register rather than interpreter thing. 2136 k did a workaround by using aWordGet and glyphsToNumbes 2146 issue with append 2202 issues with to phrase retrieval, or computation. 2223 okay seems to be fully operational :-). though still have to figure out how to use it, guess intel book is a dictionary. would use tran to do it, and can output with so to file or something. }29 March 2014 0641 main thing now is supporting the mov operations that involve either AH BH CH DH the left byte of the 16 bit register. it only works for the basic 4 registers, and only works in 8-bit mode, so we can make it work as a subset of the 8-bit part or 1 byte part. 0647 my thinking was to use o for other, but I guess can find a better Mkaw alternative. 0656 there is kwa of other, I've shortened it from kway due to frequency of use. can probably make it "go" in 5-bit. though for bootstrapping purposes should probably stick to kwa so ah would be 0 kwa re and bh would be 3 kwa re 0723 okay coded it, now to test. 0728 excellent it works 0729 only issue is that it doesn't give any error for if it is an impossible operation, i.e. if number is greater than 3, i guess can do that.. 0735 okay lets test the error message 0740 okay it works :-) 0741 so in a more generic fashion we'll have to make the intel dictionary. I guess this is an opportunity to implement some of those multi-sentence-quote commands. so bookCreate makes a multiSentenceQuote, and adds that to the specified index. 0743 for now we can try just doing the catalog entry add part 0746 anyways, it's about time we make that Mkaw dictionary also. Ideally we'll be able to do everything in pure Mkaw. 0748 for instance, kwa is other in english, but because we are mixing the two it's harder. 0750 we can have the dictionaries translate eax to 0 re, and such. 1138 having mkaw translation is non-critical right now, since we can translate from spel to english with kwa as other. though it would certainly be ideal to have the dictionaries and such available for viewing. we are planing on doing that is the .D release. which comes after this .C release. 1140 so for now, we can simply implement more assembly functions until we have enough to run a hello world. At which point we will figure out how to do a bulk compile. }31 March 2014 0652 so what else do I need to make a hello world? we need to make... ummm.... interrupt, and mov constant, mov memory would also be great. 0712 started coding intelInt }01 April 2014 0619 finished coding intelInt 0627 now to test 0639 okay intelInt is working. 1357 so I just gotta get the move constant working, and I can work on making a hello world :-) 1401 may also have to modify the sentenceGet or codeGet, so that instead of getting multiple types for a case, it gets a particular instance of a type. i.e eng lang to, or intel lang to, that way can more easily make new translations, than editing a super-function. 1403 for now move constant.. 1414 kinda want to do more translation work and such... but it would be good to get this stuff out of the way.. 1443 wrote pseudocode for intelNuMov 1454 okay after this I'll do some more vocab.. 1503 excellent it works :-) 1504 oh, only thing is the part where we didn't get the single byte version. nor the 16 bit, or the 64 bit version.. hmmm 1506 bah w/e I still prefer to work on vocab, and can make hello world anyways.. so can implement the Voice-Of-America word list in 4-bit. 1510 fine, I'll finish it first.. 1551 okay it works perfectly now even has 64bit support. }02 April 2014 0643 okay so what can we do now? can make a little mini program file, and then work on translating it. 0653 I really gotta figure out how to do the synonym stuff, cause I have at least three words for machine code wkaw wkak skal and sci. guess can use the wkak wkaw for now, since it is 3 bit, later can translate down into it.. 0655 hmmm need a word for assembly language, since that is what it is a quote of, though can simply use the story quote for now. 0657 later we'll need to figure out how to do the multi-word translations, i.e. 0 re to eax. but w/e later... was thinking something akin to a neuro-net to make it efficient, otherwise would require quite a bit of searching.. 0728 so story is ykak and ska from saga and skaska. 0731 okay wrote asm.txt 0732 what we'll need is to make a tran that outputs to a variable, or make so have that functionality anyways, it already does, just gotta verify it.. for posterity I can include the first hello world ish function: hello story bo tran be intel to hello var so do hello var bo write be hello.bin file to do end be do hello su start be story of intel in ya mov be 1 re to 0 re bo do mov be 2 re to 3 re bo do mov be 3 re to 1 nu bo do mov be 0 re to 4 nu bo do int be 08 nu bo do mov be 0 re to 1 nu bo do int be 08 nu bo do hello su end be story of intel in ya 0736 it takes an input of eax and ebx, as it is to be loaded into spel. later we'll figure out how to make the data portion also.. anywyas, so to translate this, we'll also need to do the aforementioned revisions to codeGet where type matches the contents of the type, rather than multiple different types. and we'll also need writing a variable to file, may already be supported. so main thing is the aforementioned. lets get to it.. 0741 seems to be sentenceCodeGet 0742 maybe it was sentenceGet or matchPhraseGet 0744 k it's not matchPhraseGet, that gets the exact phrase.. 0745 same with sentenceGet 0746 aha, it's probably phraseCheck 0748 yep 0751 oh it seems like it already may work.. 0752 lets try it.. 0802 hmmm positionSentenceTranslateFrom is a function, not an interpreted kinda thing.. 0803 but mostly it seems to be a redirect, so shouldn't be much of an issue.. 1029 do need to fix it, so it doesn't typeCheck. 1037 or rather make the typeCheck either get the type, or with contents 1041 so instead of arLastWordGet, 1104 rewrote typeCheck algorithm 1619 okay rewrote typeCheck 1625 typeCheck seems to be working 1632 it's giving me a no code found to sentenceInterpret 1641 oh, i updated the matchPhraseGet, but not the calls to it.. 1644 problem now is I don't know what broke it.. }03 April 2014 0602 so sentenceGet is returning nothing.. 0616 okay fixed sentenceGet 0617 sentenceInterpret is working also. 0623 updated trans to be tranf or "tran". 0624 eventually we'll have the Mkaw dictionary, and higher level words would be defined in lower level words. Thus most cases would have to have their verb form available in 3-bit, so that it is possible to used a mono-word attachment to the wa phrase to construct their case. 0625 another alternative is to have a method of grouping words. an issue is when appending say a 4 letter and 3 letter word wakpkaw can't tell if the p belongs to the first or second word. though if we have a space, then how do we know where the compound stops and rest of argument begins. this is mostly only an issue for types and cases. the method which is used by Toki Pona is to have a glue word, that indicated compound word connectivity. for instance ki or ka though we'd probably need to use a CVV word so it doesn't crowd our high priority CV words. 0911 anyways main thing now is to make the intel translate. 0929 a possibility is to use a diphthong for compounds. in 4-bit we can reserve the letter h for them, there aren't many h words yet, so we could take those out.. example being wakpaiwak though that could mean wak pai wak so guess we will have to go with wakpkiawak wakp kia wak and then use the h in four bit wakphwak. so lets see if we can make an example.. mi.utiwhtyaq.iya mi .u tiw tyaq .i ya mi .u pwim 0952 so reserving h, would mean it can't be initial or final, but it can be within, i.e. can have ChVC and CVhC and wouldn't get confused, but I guess we can attempt to ommit all of those for now.. even omitting those we can still have 0x2208 root words. 1007 okay took out all the h words from 4 bit. 1012 hmmm with 16 byte word length limit, that lets us have at least 3 roots per word, about 125 million words. though considering they are 3-bit or 4-bit words, that would mean twice as many word combinations. anyways it should suffice for a while. ops, actually it's only 2, that's 250,000 words. so will have to have say 2 words or something, for later on. cause even to say a flying insect in 3-bit, required 17 glyphs. 1023 anyways later we'll need to have variable length words or something, for now we don't have to worry about that stuff. gotta get the assembly working for now.. 1024 our next task, is to make a tran statement to catch intel. 1040 so the bulk of the work will be in the sentenceFromIntelToTranslate function. 1044 thinking can make a generic multiSentenceTranslate function. that can accept a translation function as an argument. i.e. eax contents, ebx length ecx translation function address, edx length 1057 that would only work for 1-to-1 translations, and not for more sophisticated ones, that have sections and such. Though I guess we'll figure those out when we get to them. we might simply be able to append to a section or something.. 1102 wrote algorithms for multiSentenceTranslate, intel tran, and sentenceFromIntelToTranslate. 2029 reviewing concurrency paradigms, flow-based-programming still seems to be one of the best. It reminds me of neurons. We can have a similar system. Neurons have multiple inputs, and only one output, which is typically a simple message consisting of some neurotransmitters or electrical impulses. Neurons can be much more complicated, some with only input, or output ports, and can recieve input from their output port. I'm thinking that input from their output port might be akin to an ack, which may tell the function to halt or change it's parameters, to better serve the outgoing port members. 2050 so can have multiple processes listening on the same port, as for instance a list. Then when a packet is recieved, they are run with it as the appropriate argument. }04 April 2014 0656 so been doing a bunch of reading about concurrency. Apparently the E programming language manages to avoid deadlocks by using an event-queue and promises. 0707 anyways that's all pretty far away, considering we still have to make a hello world assembly thing here.. 0708 we can implement closures using the aforementioned ebp to pass the variable memory. though we've yet to actually implement something like it.. 0721 okay wrote sentenceFromIntelToTranslate now to test. 0729 it's not working, but probably because we didn't initialize the intel book. 1221 okay well it's getting the sentence properly now, but still no output. 1545 managed to get a hello world working in dosbox, not yet one for windows. issue with .com executables is that my static binary is already too big, and it seems that a lot of my moves to memory aren't binary compatible it gives me some errors. i.e. warning: word data exceeds bounds 1552 excellent so just had to specify BITS32 oh and it is 52KB just short of 64KB hmmm, maybe it'll work in .com? well no, not likely, considering that it has different system call procedures.. 1554 but still, if I manage to keep it within 64KB which is quite plossible especially after achieving closure since can reuse some memory blocks. Then it might even work on a 16bit or 8 bit processor, which would be very good for the ATMega crowd. also could stuff it into some L2 caches. 1603 anyways lets try and get this intel thing working.. 1606 excellent it is working :-) now gotta write the multiSentence version, and then the command. 1622 started writing multiSentenceTranslate }05 April 2014 0706 one of our biggest issues will be address mapping. 0715 wrote multiSentenceTranslate, now to test. 0719 cool so it's working. next just have to make the command, and we can compile our "hello world". 0750 okay now to test 0754 hmm sentenceInterpret seems broken. 0800 weird iterateInputText is 0 0801 i must have commented it out before, k fixed. }06 April 2014 0707 cool so it did write hello.bin, however it also must have outputed some binary characters that made the terminal unusable. also there is some white space around it, that is unneccessary. 1021 so we might have to output and store in hexadecimal glyphs, or at least have the print function output it in some kind of protected mode, since printing binary can corrupt the shell. 1023 another thing is that it is storing it in a standard variable, and not in a binary word quote. 1026 actually looking at the output it seems to be outputting stuff beyond the binary quote, it might not be returning a proper length. 1038 it seems to be the intelNuMov that is giving the issue. 1040 I was just thinking how append might not suit our purposes best, since it overwrites nulls, and those might be present in the machinecode. We'd need a function that outputs a pointer to the last entry point, and appends after that.. or else we'd have to do it in hexadecimal. }07 April 2014 0642 so decided on making the output numeric, just as we have numbers which are numeric, it makes it safer to view for the user, and we can still convert it into computer numbers later. }08 April 2014 0424 did the conversion in the translateCommand sitll getting binary output. 0424 though there is the proper output in hello.bin it still seems to be outputting too much. 0427 oh a modification I have to make is that hexadecimalNumbersToGlyphs should output leading or finishing 0's. since all the 0's are necessary in this kind of output. oh right also the append function.. we need one that has a placeholder or counter or something. we might need to to an insert or replace type thing. 0432 wrote replace, seems it can simply be a call to copyMove. 0434 can also calculate remainder of context, so can do sequential replaces. Wow, that makes it a really efficient algorithm, can probably replace a lot of our appends, and clearAreas with it :-). 0456 wrote, okay segfaulted. 0505 I see ebx is far too large. 0509 we may need to test replace independantly. 0514 hmmm seems to be just fine. 0523 w/e lets figure out what is giving us this binary error outptu 0536 fixed sentenceGet by adding wordTrim before outputting. 0544 okay seeems to be outputting okay for now, but gotta fix the hexadecimal numbersToGlyphs 0547 excellent fixed it. hmmm, seems a tad bit long.. 0549 there may be issue with the nu mov 0606 okay fixed. 0610 lets test again 0613 I see so issue arises when I do hello va so it must be having problems writing to the hello variable in binary. 0615 even when it is not in binary, it seems to be outputing a large amount of overflow data 0616 I guess we can check so. 0622 may have to check set_code 0626 in theory we can simply make a so instance that writes to file. then can avoid this silly writing to a variable when that's not what we want to do anyways. 0641 we'll have to modify sentenceInterpret to do some kind of caseCodeGet or something, so it can distiguish different so's. 0647 okay by replacing the append with a replace I seem to have fixed the so var output to hello. 0648 main thing is now, to remove the extra preceding white space in set, so can write it pure without the extra 0x20's 0656 I guess when va retrieves, it is a good time to trim of the first and last letter. 0706 hmmm, va doesn't seem to be retrieving properly. 0714 nm it was just forgot to mention it was of the file type. 0715 okay so lets finish fixing set. 0717 okay now we just have 1 rogue space. will have to check set, as it is probably the culprit. 0721 hmmm I put a wordTrim in phraseGet, thinking that may be incompatible with binary output. so either I'll have to store it in a wkak or as a number. Though I guess a wkak is better for long term, and then definitely would need all that so case stuff. caseCodeGet rather. }09 April 2014 2223 so how do we go about that? caseCodeGet.. guess we can use a generic codeGet, and add in the case word.. pass it the case as an argument. it would be similar to phraseCodeGet, but would do more work, such as retrieving the contents from a file or w/e rather than simply resolving the type to it's meaning. it's a fine line distinction, and we may need some better terminology for it at some point. }10 April 2014 0618 so wordCodeGet seems to have the required parts. it returns the address of the sentence. and we can give it a meta for instance "case of file for" would get the so. in sentenceInterpret we'd have to call a typeGet or something function, to see what type it is of, then call it with that type. if it doesnt' find it, can use the default so_code. 0626 I can write the file so function first. test it, and then incorproate it into sentenceInterpret. 0634 later on we may use to instead of so, since it is a case. then we'd have to be translating into. though russian doesn't distinguish in and into. there is in, on, and to, but they can't be combined like in english. anyways for now we are using so. 0640 wrote fileSo 0642 now to test. 0645 okay it works :-). now to incorporate into sentenceInterpret 0702 okay incorporated now to test. 0704 how to test? probably with a convert statement or something.. though later on we can have an stdout thing and then say and write can be simplified. 0709 excellent it is working :-) 0711 excellent our binary is writing to file :-). 0713 also checked it is identical to the equivalent code compiled by nasm. 0716 k so that was 0.4.1.C.6 lets git push it. 0720 okay done, now what's next? address translation. that means support for label jumps, and data variables. 0722 first we'll the do the address translation for jumps, and worry about data in the next increment. 0723 okay so how do we do it? hmmm, we can try the single-pass with errata style. or a multi-pass.. then there is also a jump table. okay so each label would need an identifier, then we could have a hash-table with identifiers and their location. the location would be added once we know where it is after the single pass. we'll be doing all full address jumps, not relative ones, at least for now, I saw that PE executables don't support relative jumps properly, when attempting to compile to one. 0729 a hash table is similar to an array, and set of definitions. we can implement it as a story, with a bunch of su bo ya statements. i.e. label su 0030408 nu bo ya 0733 that would probably be the most literate way of doing so. and it would give us a change to impelment that form of varible declaration. though I guess we can call it constant declaration, since these kinds of values aren't really for updating. and at least technically it shouldn't be bo, but rather at label plural su start be story of program name for ya __start su 0000408 nu at ya label table su end be story of program name for ya 0756 ya, so that seems about right. we also need a way of retrieving info from it, I guess sentenceGet. and adding to it, some kind of story insert. or storyToAppend. 0800 so something that encounters a label declaration, would add it to the label table. something that uses a lable, i.e. a mov or a jump, would retrieve the label from the label table. If the label is not in the label table, then it would have to add itself to the errata table or the reference table, i.e. things that refer to something refer plural su start be ya label su location at ya refer plural su end be program name for ya 0816 can't really figure out how to summarize label, it's a name place i think, at least in the way we use it here.. yes definitely. hmmm. k lipw in 4-bit. how about table? it's row columns, or horizontal vertical.. hmmm I guess it's a grid. which comes from word cloth, weave, spin. so I guess it's a kind of cloth. label cloth, or an information cloth, ya so an information table, is an information cloth. hmmm well w/e anyways lets get on with the algorithmm.. 0828 so we have the referants, and the labels, after the first pass, we update the referants, with the labels, and if some referants have labels that don't get defined, then can return an error message to that effect. 0830 how about a database, a database and information table is almost the same. hmmm the etym primitiv eis a gift step. anyways so how do we say information base, a base is a foundation.. or pedastal or something. information is the known, so known sentences perhaps. where a sentence is a complete thought. 0835 k quick, lets try to make a SPEL spreadsheet.. based on table on wikipedia purchased equipment su june 2006 date on start be quo nu su story bo price for image like quo for ya 1 nu su computer image like ibm clone computer bo 400 for ya shipping handling bo 20 for and ya 2 nu su computer chip image like 1gb ram module bo 50 for ya shipping handling bo 14 for and ya 0841 cool so we've more or less got it. still need to be able to make the sub-clauses need that start-quote for sub-clauses, the and ya means it is a conjunctive clause of the previous sentence, and so inherits the cases it doesn't override. should work out to the same as http://en.wikipedia.org/wiki/File:Table-sample-appearance-default-params-values-01.gif 0843 so it can simply be known sentences. 0844 the difference between known sentences and a story isn't much.. so w/e no need to mention a table, or database. it's just a story. well is it though, a story is a sequence of events, and a database is just a collection of information. ya I guess there is a difference. 1045 so I guess it's a list, similar to inventory and stock. 2134 to avoid combinatorial explosions we use Mkaw intermediary, and multiple-inheritance. 2147 automated planning will likely be accomplished with hierarchical task network, so we'll be using a hierarchical control system. likely something like a subsumption architecture, or where lower levels may react on their own, such as reflexes, similar to interrupt handlers of high priority. Don't really have time or need to mull over whether or not to move hand away from source of extreme heat. hand is withdrawn, and it is thought about afterwards. }11 April 2014 0545 so where do we start with implementing the jumping. I guess label statements. then reference statements. then integrate it into intel translate. though it would have to go beyond multi sentence translate.. unless the label updated the referers at time of it's addition. still there would have to be something to give an error at the very end.. so we could have something that included the multi-sentence-translate as a part of it. 0601 okay so label is myap, and data is wikw. 0716 so a database, where data is aligned. or information in general.. hmmm mway wikw line data maybe, though sounds like vectors. I guess a vector is a directed quantity, so pamp mwaw. k so it should be fairly clear. 0732 right so those relative clauses.. okay so start with pmi end with mpi . start is optional if it is at begining of a sentence, or doesn't contain case words. 0939 okay changed it to pia and yai, yai to start, pia to close. 1105 bah doing too much useless language work, don't even have translation for this stuff yet. back to programming seriousl..y.. 1106 so we need some kind of intel super function, I guess intelTran 1114 okay coded algorithm for it, is quite brief. main thing is having some standard area for the references and labels. multiSentenceTranslate may be able to take care of it. If for instance the function returns an ecx,edx which contains the reference sentence, it can add it to the context. 1117 alternatively the verbs could do it on their own, but then they wouldn't be pure functions. 1118 would have to pass the context to the interpreting verbs anyways, since they would have to know where the labels and references are being stored. 1119 doing all this passing would kinda ruin the top level simplicity. only a few reference functions even need to know about the references. but actually the top most layer needs to know for the final errata check. 1121 well it seems like multiSentenceTranslate certainly has room for a context. 1129 so I guess we'd need a function that adds to that context, likely in multiSentenceTranslate, possibly in the verbs. or the sentenceTranslate itself.. 1132 one issue I see is that there is output of both the refer story, and the label story, or rather data, label data and refer data. 1134 isn't a label a name? and the place where it is, is a place. so place data and name data, name data saying where the names are stated, which are to be replaced by the places. or maybe name place data, and name call data. that seems fairly clear. okay anyways next. 1145 we can simply have standard names for these two pieces of data, or have it all in one, called name data, and then specify using the verb if it is a place or a name. 1146 we can have seperate ones, since the for case can disambiguate which program it is for, though then the program would have to have a name.. which is known to the command, but isn't passed to the lower ones.. unless we pass the whole store to intelTranslate, but then it would be intelTranslate that has to deal with that stuff.. and it can't also pass a name to it's children... unless multiSentenceGet deals with that, and makes the reference tables. however not every function will need a reference table. like for human languages it's not really something that is used.. therefore it would have to be something known to intelTranslate, and the intel verbs. I guess we can pass a struct as an argument. Or instead of context we can have a sentence that describes what we need to convey. 1153 what would that sentence look like? hello word su is the name. at til is the context 1155 if we do just one translation at a time it shouldn't be an issue the name anyways.. we have a global state variable for context anywas, so ecx, edx could simply be the name. we can even do a multiSentenceGet for type name call data, and name place data, using the same subject name.. 1217 okay updated this variable passing, lets just check it still works right. }14 April 2014 0620 umm, and how is it that we check? 0621 asm.txt hmmm, k well it is segfaulting. 0623 seems like multiSentenceTranslateLoop put a string in esp. or someone anyways.. 0632 okay fixed, now it works. next is integrating the address translation intel functions. 1054 okay so what's an example of one we might want, a simple jump perhaps. 1105 hmmm, when it returns, it doesn't know where this pointer will go. so it can't properly make a name call sentence. all we can output is a skeleton sentence, which would have to be added in by either multiSentenceTranslate, or preferably intelTranslate, perhaps the sentence version.. 1110 there is another option, of making the address into a unique identifier, which will be output. we may need either a random number generator, or something else, to make the unique ID's. 1123 okay so lets make a random number generator. a linear congruential generator to be specific. er, i guess it's a system thing. rand.asm 1153 wrote linearCongruentialGenerator have to test. 1156 excellent it works :-) 1250 tuned it so it gives proper pseudo-random numbers. 1252 okay so was thinking, can first check if there is already a statement in the call data, and if so, then use the previously generated random number, that way can have only 1 entry per place, rather than 1 entry per call, so it only has to loop through for every placeName rather than every call. Later when have alignment or database structure, can optimize by making a list of all the labels, and searching for each of them individually, meanwhile can do it this way. 1258 though many labels are only used once, so who really cares how many times I have to search through it, can simply make a new one per call... would be less coding. slightly higher chance of overlap. 1304 thinking sentences can be identifier nu su call be name bo ya identifier nu su place be name bo ya 1307 hmmm now we'll probably run into the same problem when we have to translate labels.. though we could return them as identifiers, and jump to just after the identifier.. 1310 that would lean towards having a unique identifier for each instance. since it would have to at least be a different identifier from the calls, otherwise wouldn't know which is the place, and which are simply calls to the place. 1324 tuned random a little more. seems like edx didn't have quite enough bits. 1327 oh right one issue with shoving in an identifier at the place, is that couldn't simply allow the code to continue over the label, it would get all confused. so would have to copy move backwards over it, or jump over it. if we can jump over it, then we can actually keep the same name, and it would be easier to disassemble, and or debug. 1339 while it's fun to think about it, that is non-standard assembly output, so we should be able to make standards-compliant assembly output first.. that means we'd have to do backwards copy move. though that would make it much slower, and would lead to errors in concurrent or parallel compilation.. so maybe it is worthwhile to do the jump thing. 1342 so the label would be preceded by a jump to after the label name, with the identifier as the address. the sentence would need to include a length argument. identifier su place be name bo length til ya 1344 that way it would still behave as would normally be expected, but at the same time be more literate and easier to decompile, and or debug. decompilability is a big plus for reverse engineering proprietary algorithms that have been ported to SPEL. though of course it would still be possible to obfuscate using alternative compilation algorithms, they'd have to take extra steps to do so. 2049 so I read up the intel documentation looking for a jump code. there are relative and absolute jumps, seems the short relative jump is one of the most common kind. so there is jump short 0xEB rel8, jump near 0xE9 rel32, and jump far 0xFF /5 m16:32. 2101 call only takes near and far addresses 0xE8 rel32, 0xFF /3 m16:32. 2107 so can make a short jump to get past address name and identifier. can have it short-jump length identifier name contents that way when find identifier, know that previous byte has length of name, thus we know where to calculate the jump, relative to identifier start address. }15 March 2014 0549 so we really don't know if it is a short or a near jump, though far jumps can be identified as they have a register or memory location. so we know short and near are definitely a label or a constant. 0551 we can allocate space for a near jump, which takes the most space, and then simply fill it up with nop if we need a shorter version, near jump would give us enough room in the address to store our identifier. 0600 okay lets see if it is making proper output. 0606 okay that much is working :-) 0608 another thing is we'll have to have the if statements translated. right now they get held up by the interpreter. 0612 you know what, if we use a pseudo random with seed, and regularize our statements, i.e. phraseSort, and take out the white space, then we can get the same random number output, for the same label, or w/e, and it would still be identifiable. for instance we could use the name as the seed. though considering all the jumps are relative, would still have to calculate it in relation to the "real" one. 0658 okay well made the pseudoRand function, that accepts a seed as input, good for making (relatively) unique identifiers. 0717 okay cool, now it has different output even for anagrams, and things that would normaly have the same sum. thanks to multiplying by length counter. 0722 so the pseudo random identifier could be based on the verb and label. and all verbs with same label would have same result. though could also base it on the sentence, if we do it for each, doesn't really matter right now, though the same sentence, in different locations, would have the same identifier, it would have an additional sentence in data, so it would be looked for twice. 0808 okay so sentence it outputting properly, now we need to write data append function. 0814 I guess we'd have to do it by giving the start/end sentence cases. and if it can't find it, it would create it. kind of like write 1356 okay, so what to do first.. I guess lets make the function first. now there are two options, one is to create it in the context, the other is to make it in memory and add a catalog entry to it. this is probably the prefered method, since we'll need to port the old book stuff over to the more dynamic story memory anyways. 1437 it would be nice to have that golden fibonacci algorithm. anyways thats only for dynamic memory extensions, meanwhile lets actually make one that does something... it's just that it would help a lot... kk fine make a golden fibonacci algorithm... src/math.asm 1458 okay now to test. 1506 so golden sequence can go up to iteration 226 before overflowing a 32 bit buffer. that should certainly suffice for our purposes. that many pages would far exceed what most computer have nowadays, and later on will have 64 bit buffers. 1634 especially considering we are allocating a page at a time, which is by default 0x1000 bytes. though if it is a packet at a time, then it is 0x200 bytes. a packet at a time is POSIX compliant. and simplifies transfer over TCP-IP. though ya, having both start and end sentences may be rather high load. }16 March 2014 0610 not sure how this paging stuff works, but I'm guessing it's kind of like an index. so the page numbers are listed, where the memory for an item is found. not sure how we'd do transparent paging though, where it seems to be contigious. it would certainly be difficult to pass as an argument. An option would be to make it somewhat of a linked list, so once it gets to the end of a page, it has a reference to the next page. rather than start and end, it would be next, continues or flows. next be address at ya 0629 though ya, it would certainly be easiest to allocate a new area which has room for both, and move over the old stuff. For large pieces of data it could be quite cumbersome... Though it would free up the areas which are before then. for smaller objects, kind of like the brazilian nut thing. if it was all listed in the index, we'd have to do a collate every time. Besides you don't store books by different pages, you have a cover, that binds it all together. admitedly it is much easier to move books in the physical world. 0634 maybe we should allocate by the page, and have packets as sub-pages used by the processes that need them. 0643 so what function is this that we are arguing about? storyAllocate, or dataAllocate... multiSentenceQuote allocate, mkak allocate. 0645 okay, so where are we going to put it? maybe we should have a memory folder, cause there are so many memory functions.. there is book, that is kind of like our memory folder.. 0646 yes src/book/memory.asm already has at least the begining of these functions. 0650 okay I found bind, and freeSpaceFind in the book.asm, I'll move those to memory.asm 0653 I see so we call our index a shelf.. that makes sense, more sense than calling it an index, in which case we'd be prone to paging. 0654 oh actually we call it a catalog.. 0709 so wakp is now book. I guess loose little tid bits or pages/packets could be kept in a "binder" type book. 0711 anyways, w/e lets figure out multiSentenceQuoteAllocate and rename it later if need be. 0714 w/e lets call it bookAllocate for consistency. 0721 also declared freeCompact, which can compact free memory.. though we wont need it for a while.. so shouldn't write it at least till we get to .D 0727 bookExtend will have to be fixed up, for atomic transactions. }17 Apr 2014 0543 while this is all great an everything, there is a workaround, we could simply add the mkak at the end of the context,, though we'd still need a function for it. it could be quite simple, such as get end sentence, check if there is enough room after it to add w/e contents, if yes, then copyMoveForwards the end sentence, and then copyMove to the newly created area. If there isn't enough space, then can go through all the extension hooplah. 0549 If we create user book at the very end, it would be easy to extend. anyways so lets get started, that is mkakAppend I guess. or bookAppend w/e.. though we can have many mkaks is a book.. 0609 i wonder if there is an identifier case, we could make one, something like name wa, though I dono, it could make it easy to reference some of our stuff.. 0611 currently quote name and quote type are seperate registers, really unnecessary, lets see if can fix that.. 0612 yep only one call to it so far.. 0636 okay fixed the caller, now gotta fix the callee 0655 fixed callee now to test.. 0713 okay is working :-) 0717 so where were we? 0718 right, multiSentenceQuoteAppend 0728 okay wrote it 1705 now to test it. 1710 hmmm how? 1725 seem to be having issues with multiSentenceQuoteGet.. 1732 okay fixed, wasn't sentenceCompleteing in test. 1757 k getting some wierd binary output. 1801 okay it works. }18 March 2014 0440 bah, ate beans for dinner, now having trouble sleeping. been awake an hour just rolling around in bed. anyways was thinking about the whole packet stuff, can have port number, sequence number, and transaction ID. but ya, we should really leave that stuff till the 0.4.2 release. when we add in concurrency, right now we just need to get it all working in a serial fashion. it should be easy enough to convert later on. 0445 so I guess this whole adding to data at end of context should be okay, so long as all the compiler output is going to the same multi sentence quote, if it is multiple different quotes then there would be an issue, as it wouldn't have any room after itself for appends, and we'd have to do a whole lot more memory management. 0447 having it all in one does mean processing time would be increased, but w/e. we're not optimizing right now, this is just kind of brute force simple stuff. later on we can do alignments for searches or w/e. 0453 though I'm not certain how to calculate it, I'm assuming the current search algorithm for sentenceGet is mostly O^n or exponentially increasing with the size of input, since it's such a simple search. 0455 okay well anyways, so we'd have to create the multiSentenceQuote in intelTranslate, and then call with proper options so the children know where they are adding it to, which I guess is currently the name. 0521 just thinking about licensing recently, I'm wondering about a more permissive license, but Tivoization just gets me completely furious, it's the most horrific thing imaginable. Tivoization broke my first android phone, now they aren't really open source phones, they are just some proprietary crap. It's Extremely Sad and pathetic. 0523 Proprietary adoption isn't really something I'm very worried about since the point is to make it available to those which haven't done any kind of programming previously, since no or very few programming languages were even available in their native language. The idea is to gain a lot of Open Source adherants through the use of this software. I'm thinking of adding in a clause to allow reverse engineering of code that is compiled with it. Though that may scare the proprieters real bad. The compiled code is being somewhat designed to be decompilable. 0528 Wow it's amazing, how opposite perspective can be, these proprietary people which are pro-BSD licenses say they wouldn't even consider using copyleft. That's similar to how I wouldn't even consider using proprietary code. Though I guess I have flash player and such, I'd be just fine without it, hardly ever use it. 0532 anyways now that I'm all riled up, should add those license clauses. 0631 okay updated the license preambles in every source file. 0633 have an idea to make random a little more random, by adding the more-random half of the address to the seed on start. 0634 thinking of making a math folder. 0642 okay added now to test 0656 k now it works, it is a little bit more random. :-). 0705 the more different callers there are the more random it is. though at start up it's always pretty much the same. 0706 so next we have to test the recent jump implementation. 1808 thinking about the distributed concurrency thing again, can have packet space or something. thing is we have multi sentence quote which is mkak, but we also have a message, which is mkap. I guess mkap can be packet, or message, letter, w/e, and we'll leave mkak as what it is, kind of a more dynamic mkap really.. 1813 got a book on HLA from the library, while it doesn't have much useful information, I did find out that a 4-bit sequence is called a nibble. so 4-bit Mkaw is a nibble language :-). BTW it would be nice to make the hexadecimal translator, or similar function to translate various bit base alphabets, at the very least a nibble at a time :-). 1826 so with a distributed operating system, it is possible to share processes data and things like that. with a P2P network like the We You Net, people could offer each other hosting, and other such things, perhaps acting as mirrors. To compensate they can exchange currencies for the various favours they perform for each other, kind of like promissory notes. They will be a simple sentence or so summary of the task they performed for someone, and calculation of value would be done at transaction time. }19 March 2014 0622 so to get it working, what do we do? 0741 i guess intelTranslate, would have to create the book first, and then it can be added to. 0746 it would be good to have book intiation function, or multi sentence quote things, can take the name/type as input, and generate the start end sentence. 0753 so I was thinking once have packet output, then can have a fairy static page or so which is pointed to from ebp, that is the working memory of a function. Generally the big stuff is either input and output packets, and the working memory is just for temporary stuff. 0758 wrote the multiSentenceQuoteMake function 1338 updated intelTranslated to use a struc 1538 though that means the output will have to use the packet system.. 1539 well that makes sense, considering that the output of a binary program can exceed that of a page. so ya, we'll need to have support for dynamic output.. 1540 anyways so lets at least test multiSentenceQuoteMake 1541 okay fixed now should work :-) 1802 if we could make that one work by send that would be good to. but ya, this is kind of we are getting ahead of ourselves... though I guess for compiling.. multi sentence quote should be enough. 1819 hmmm thinking now, that for every call, technically need another ebp page or w/e, because it would overwrite saved variables.. 1824 another option would be to have a relatively large ebp space, similar to a stack, and then passing the sub arguments to set ebp to ebp+size of current function, that way it wont overwrite it's own arguments.. 1831 if it would be possible to macro that it would be glorios.. I guess that's why we have to wait till bravo, when we are writing our self-hosting code, we can implement that kind of macros.. calr retr or w/e. though ya, it would require a different stack per thread. though I was planning a different page per thread, this would take somewhat more room, though not sure how much, depends on how deep a thread goes, and such. also would have to catch it if it does go too deep.. perhaps we can do it by having the stack and base pointer at opposite ends, and if they meet it throws an exception.. though would have to perform that check on every call, it could be part of the macros.. then can save by expanding stack, though that could be ardous, would have to also make a note that it happened to error output logging or w/e. 1846 okay previous test works. 1859 next we have to write the updateReference, and label functions. I guess label first, and then updateReference. Anyways I g2g relax or something, otherwise I'll burn out. }20 April 2014 0350 wow fasting really riles me up, can't sleep hmmm 0420 so thinking of making a text adventure interpreter out of Mkaw at some point, help people have fun with it. Can also take advantage of it's advanced parser. 0438 writing intel label, thinking later on will have more convenient names for these things, or rather more logical names that make sense to new comers, such as copy instead of move, and name instead of label. 0535 okay finished writing intelLabel, now sleepy. 2148 wow good news, google finally took down that highly offensive link from the "we you net" search page. so now we can go back to being the we you net! woohoo! so will have to update those copyright notices.. though not sure how to update the files easily, there are an aweful lot of them.. 2209 can use sed but will have to use a proxy file, since can't pipe back into it, it just makes an empty file. 2221 okay updated :-) }21 April 2014 1215 so now lets test to see if it works. 1303 hmmm Inferno OS seems to be some good stuff, it is language based, highly portable, GPL. we might use it as a base instead of NetBSD.. }22 April 2014 0618 doesn't seem to be working, is giving blank output 0713 okay got the old stuff working, but the new stuff isn't yet. 0722 okay so label and jump instruction is being returned into the binary. But not yet being recorded to the book.. 0741 great it's mostly working, just a little bit of garbage, between jump and label.. oh but I guess it's an unconverted number. can fix that.. 0744 okay is working :-) now just have to make the update function. 1138 I've been thinking about converting to a bytecode instead of directly to intelAssembly, 1141 can have kernel interupt code 0xE7 which is kimk in 2-bit alphabet. 1143 inferno uses virtual machine. we could make a very simple one. 1343 so here is a quick summary of instruction set equivalences English Intel ARM AVR copy mov cpy mov jump jmp B jmp or some branch call call BL,push call interrupt int swi add subtract divide multiply label 2246 so we can do most stuff in kimk. 3-phrase bo to be. main issue is if we have it as postfix, then for instance some numbers could be confused for instructions.. so we might need to make it VOS styles... anyways so format basically bo to be need to add in bitwise stuff thinking 0001 is shift right 1000 shift left, 1010 roll left, 0101 roll right. 1101 roll right through carry, 0011 shift right through carry. that way can do all those bitwise operations only having one word. they are generally quite rare anyhow. for moves and such the nibble that would go adjacent would be for the size, in power of 2 i.e. 3 or 1100 for 8bit, 4 for 16bit, 5 for 32 bit, 6 for 64 bit, 7 for 128 bit, 8 for 256 bit. VOS :-S. maybe we'll just parse it backwards then... like we could have legitimate instructions in an address or constant, that would certainly be very confusing. VSO is 9% of languages, we could do that. so be su bo or be bo to. 2306 would dedicate a byte per instruction, so can shove in a whole 4-letter kimk word. then higher level stuff like writing to file and such would be through interrupts, as it would be in any assembly language. the code for it would be kimk or 0xE7 2309 instead of using names, or addresses, would use pseudorandom identifiers. can have same identifier for a jump and a label, since the fact that it is a label can be part of the search string for it. i.e mik kmkmkmimk or w/e can be a 32 bit or whatever base identifer. }23 April 2014 0715 looking at the ARM and AVR instruction sets, can definietly find the AND, OR, xor, NOT. However shift and roll is more elusive. AVR has roll through carry, and shift (through carry). 0719 we should probably make add through carry and subtract through carry the default. 0726 so ARM does have Shift right and left, but only has rotate right, wheras rotate left is supposed to be done through subc. if rotate right can be done with subc then.. 1027 we might even be able to do SVO, or rather OVD, since only registers can be the O, and they have a uniform representation. hmmm, well I guess interrupts accepts a number as first argument, but that seems to be the only one. still it's also only 1 byte in size. it would make it zero-marking. and fit in the 42% of languages. or possibly can even call it SOV because it's an OV form.. ..k.mim. 1036 ya but we would still need prepositions. ..k.mim.ki..kimk (mov al,0xE7) ..k.mim.ii.. (mov al,bl) 1042 oops that actually DVO, we could do OVA or bo be from. actually it kinda makes sense as SVO subject adds object, subject subtracts object, subject becomes/copies/mimics object. 1054 so rolls can be accomplished by doing shifts and adds. 1059 shifts can be done by either multiplying or dividing by 2 or powers of 2 ..k.mim 1128 it is best to have 4 general purpose registers, since best evidence shows humans can hold 4 chunks of information at a time. 1143 I'm still left with the logical operations, not, neg, and, or, nand, xor. though not everyone uses nand.. oh I see it's simply and and that is an and that is notted. 1251 only foreseeable issue with that is some registers may go unused, but perhaps there would be some way around that.. perhaps using the various optimization techniques... I dono I'm not really interested in optimizing I just want it to work, and this very simple assembler, is sure to work on just about any processor. I think it's better to have many many cores, working in parallel, than to have a few huge cores with large instruction sets. 1308 at least, that's how biological brains work. likewise it's better to have larger registers, rather than more of them. 1310 with the nibble operand for move/copy (mim) can support bit-bases of up to 32Kibibytes, that could operate on half a chapter at a time. needless to say it is likely excessive. something like wordSize 16Bytes, 128bit would probably be most that is particularly useful. 1320 we should have some summary for what the registers are used for, for isntance with interrupts... lets say... 0 input ports 1 output ports 2 options 3 context 4 call stack 5 data stack 6 caller 7 callee 0-3 would have to pass it as a string, or all in one register, possibly with 16bits for name and length, 16 bits is enough for a chapter. 1325 thinking instead of a pseudo-random name, can make one that is the first or last part of the label in ascii or 4-bit Mkaw, then if there is multiple of them have a number at back which is incremented. possibly 5-bit for more similar representation. could then have first 4 letters, and last 1, then have 128 variations. 1336 that would make it more literate, or easier to understand. though 4-bit would be easier to translate. could have 6 letters, and 256 variations. 1338 could even have a table at the end of the code, which isn't necessarily loaded or accessed at runtime, which has the full label names and their identifiers. 1339 for now it's easier simply to have psuedoRandom identifiers. 1341 identifiers need to be differentiatied from constants and registers. I guess kimi can be constant, mimi can be variable ..mi can be register 2216 hmmm may need to have in, out also, for ports or w/e. though so far only see it in intel.. }24 April 2014 0618 so pretty much decided will do the virtual machine thing later. though can limit intel instruction set to the same, so that the transition is easier. It would simply be too much work to have to also write a bytecode interpreter. 0622 though a bytecode interpreter may be pretty easy... dono. we'd also have to make a kimk interpreter.. as in translation thing. 0625 I guess maybe it could be worthwhile to do it now... as it could somewhat simplify the process, wouldn't have to do any updates of addresses in the bytecode itself. only in the bytecode interpreter/JIT compiler. 0644 made hexadecimal codes for kimk 0651 I'm also realizing now, that all this time I've been using jz and jg, which are signed, I should have been using ja and jb. or even jc and jnc. 0656 I didn't even realize I had tied myself into two-complement math because of it. anyways let me do some tests.. 0709 ah, i see, it is as I suspected. jg and jl are arithmetic functions, so they have odd behaviour. 0713 so I'll be using jb jz and ja from now on instead. 1433 should probably just stick to jz, jc, and jnc. 1448 what we can do is have jmp take an argument, since it only has one so far, of the condition. the condition can be like ARM. or we can make a kimk version.. 2042 once I have made a complete translation to intel assembly, with ELF and DWARF binaries, then it will be more clear how to construct the kimk virtual machine language. }25 April 2014 0550 so updateReferences.. how do we write it? and where.. intel I guess.. 0602 I'm kind of begining to see why it might make sense to have a VM language.. 0606 updating references i have to do similar algorithm for a bunch of stuff. though I guess most of them only need one code.. jmp may need as many as 3, though 2 should suffice, also it has different codes for each kind of jump. 0608 it would be nice if I didn't have to hardcode it.. 0609 I guess we'll have to do the first one, and then infer from that. 0700 started writing stringGet 1716 hmm I'm thinking one of the most important things to do, is to start using Standard C function calls, then can be compatible with windows, without having to actually dip our toes in that proprietary stuff. Also can support BSD and whatever else standard C supports. 1734 so we need just a few sys calls, stdout sterr, file out, file in, file stat, malloc and free. if I remember correctly. anyways I'll start with stdout. might need to make a C-spel folder for the transition.. 2058 so kimk interrupts could be processed as calls to the c standard library, until better/more-local versions are implemented. 2122 another thing to be a portable assembly would need to have a way of making a "default" size move. for addresses and such, since that changes for 16, 32, and 64 bit. and they aren't intercompatible. I guess 0xf or kk can be the default. kkmim. or mim.kk if it is VSO }26 April 2014 0702 hmmm.. it may make sense to 0712 found a repnz scasb function, that finds a glyph using an x86 instruction. I guess that's faster than looping through to find this stuff. so I can update by functions.. I have a glyphAt or soemthin like that.. 0713 yes, it is somewhat less protable. though I could probably impelment it witha find, or scan word sentence translaiton... and still have the primitive loop version.. in the back end. glyphGet.. I guess I can use that in stringGet. 0724 aha it's not found in ARM, so I don't have to, can simply use glyphGet, it has a loop. :-). 2129 so thinking about multiprocessor programming, each processor can have it's own queue for what it wants another processor to accomplish. Of course there are proton-neutron processors, i.e. one is giving orders and interacting with outside world, the other is receptive. if say you have two processors, one is doing all the I/O, and the other is simply doing background processes which are assigned to it. if you have four, one proton can handle I/O from user/network, and other can handle I/O from hard-drive and peripherapls, with their neutron doing their background processes. three is rather more unstable, but by example of the hydrogen atom, there are two processors which are subserviant to the primary one. 2132 anyways so the queue, is a list of packets which are to be processsed by the neutron. there can be a jump-list or packet-identifier. once the neutron processes a packet, then it sets that as it's most recently processed packet. The proton can check where it is in the queu by checking this value. 2157 a very important note is that the processors can only read from each other, never write to each others memories. they can put things in their own memory, which is queued for the other processor, but nothing else. For instance the neutron can have a queue of resulting packets, which the proton can process. 2158 it can function as somewhat of a rolling manner, in terms that there can be a defined packet space, of perhaps a few pages or a chapter. and once it gets to the end, can start writing to the begiing again. 2233 writing to a file or database would have it's own queue, which would be accepted by the file-writer, the queue is the port. 2236 so there can be one packet space, but multiple arrays for various ports and priorities. even for packet-lists, if for instance some file is comprised of multiple packets. 2323 instead of a file-descriptor, can have a file port, which has the file access-function sitting on it. sending to it should be fairly easy, as it's simply packets. but to recieve from it, would have to send it a query, with a return port. }28 April 2014 0547 so anyways back to intel assembly, gotta finish this up. 0621 wrote stringGet, now to test. 0627 alright it works :-) 0640 oh ya, indirect jump is to a register. we don't have to do anythign special for that. as in no calculations required. 0642 hmmm we need updateReference and updatedReferences to be seperate. that way we can do it in parallel later on. 0644 another thing is we have to make some kind of way of summarizing all the things that would need their references updated. 0648 I'm also wondering if perhaps it would be easier, to make kimk reference updates, and then replace them with their intel code equivalents.. though it may make the code rather more bulky, and we'd end up with a lot of nops.. and if they instructions are longer the addresses would simply break. so addresses have to be calculated at time of translation.. 0653, if there was a way of identifying what things might change their length, it would be easier for address calculation.. we know any references to labels may change their length. 0707 reference to variable memory is mimi 0x66 though simply to variables... I guess it can be mii 0x46 unless i make it ii, kind of call it an extended register.. the it would be 0x56 for memory calls, and 0x5 otherwise 1014 one way of looking up various functions in different machine codes, is to have a hash-table lookup. with kimk to machine code equivalents. }29 April 2014 0556 from what I read addresses are calculated from the begining we can have a hash-table look up for kimk to intel assembly. that would certainly work for the instructions. the hardest part would be the register translation. 0602 though I already have a script for that so should be okay. 0604 so what will this hash-table look like? 2312 probably just like the other one, su and bo being the maing stuff. so su is the subject thus the kimk code, and bo is the machine code. or by is the algorithm that calculates it. 2313 reminds me would have to update the translation dictionaries to reflect that. since currently it's so instead of bo, though bo would probably be best. i see bo is the word to be translated there. well that can be fixed. I'm more comfortable with setting subjects now that have tried to make the kimk code. and also know about esmi nominative-sentences. 0628 so seems like SOV kimk code is just as hard to parse as ordinary mkaw. so there isn't much point in it.. 0630 we may as well simply hashtable look up the words jump, move, add, etc. dictionary styles. 0704 really the only commands dependant on the size of the address, are the various jumps, since they are short, long, or otherwise. potentially the moves as well.. not sure. 0709 seems like intel offsets have something to do with the segment base. 0822 we might need to make "magic bytecode" in which the numbers convey meaning. it would be VSO, like standard machine code. 0827 right so offsets are made with the modR byte followed by the displacement. so moves would need to know the size also. if it is 32 bit or 8bit of displacement. we can default everything to be 32bit displacement for the moment, it should still work. 0829 ya if I just make it all 32bit jumps and move displacements it could be a lot easier. also wont have a bunch of no-ops where they aren't necessary. I could just plug in the numbers of the address, with no additional hassle :-D. 1005 don't even have to do the label look up step, if I simply make it the inverse of the refrences. i.e. if I not it. but anyways I already did it, so I'm not going back now. 1022 oh one thing is for when calculating, we need to know the length of the instruction, since the jump is from the begining of the instruction, not the begining of the address.. that can be listed in the reference instruction. 1027 or maybe it is the address. not sure.. oh it's actually from end of address, cool easy calculation. 1045 updated label to not add name, and to invert identifier 1047 label no longer adds to data. 1058 okay seem to have finished coding it. now to test. 1114 weird it's not adding the jump sentence to the data properly. 1132 multiSentenceQuoteAppend issue likely 1235 updated now to test 1342 was just reading about web bots and spiders, found out can trap them, and banish them. thinking can do it by having an empty link they follow, to a banishing page, which can explain if they follow that link they will get banished from the website. this basishing page can be in a folder which is explicitly disallowed in robots.txt so legit bots can still browse the website, but those that don't implement it get banished. 1635 anyways can try that one I have a Raspberry Pi, meanwhile I need to finish testing. 1643 hmmm need a trimFront function. 1700 wrote it, also updated wordTrim. 1715 gotta debug the QuoteAppend thing some more 2237 getting arm gcc toolchain. Thinking about how extremely important it is to have ARM support. Most of our target audience is third-world people without much command of the English language, which will be using the mobile phones and OLPC's for interaction. 2312 excellent got hello world working :-) with qemu-ARM 2324 whats weird is the listing output of gas is different from what's in the actual code. guess I'll figure it out later. meanwhile sleep. and finish getting that silly append thing working. }01 May 2014 0604 okay fixed up the QuoteAppend :-), was just some address definition stuff that needed to be fixed. 0612 okay cool address calculation is working also :-) 0614 I guess I can do a test.. I don't have a love binary file command. 0629 tried it through my quote.txt thing, doesn't seem to work either 0651 anyways maybe it would be easier just to get a binary file loving command or something. though I guess we'd still have to read it from a quote.. 0701 hmmm multiSentenceQuoteGet doesn't seem to be working properly or seomthing. it is saying the contents is a bunch of blanks 0715 it seems to be finding something outside of the file I loaded :-S 0735 doesn't seem to be forming the search sentence correctly 0750 weird maybe it's being blanked on input, very strange.. it seems like everything is working properly, just the binary is all nulls.. 0751 guess we'll have to figure out how to make that elf file.. 0757 looking at the elf tutorial. it seems that will need to have a way of indicating where the labels are, without actually including references in the code.. because the labels have to be zero length to support the pure binary elf style. with ehdr phdr stuff. hmmm 0818 main downside is we wont be able to use multiSentenceTranslate we'd have to add in label entries, with the address of the label, that is in the code. but we could save a lot on searching, as we could also add in where the jumps are and such. with that kind of table, we'd be able to decrement everything if necessary later on, for short jumps etc. meanwhile. the basic algorithm would be this intelMultiSentenceTranslate would get the sentence output from it, append the location it is adding it at, and possibly till length, and then add it to data, rather than each one adding it to data themselves. 1519 the bright side is we'd be able to use this version for just about all other assemblies... so maybe should call it assemblyMultiSentenceTranslate. Colloquially it is known as the "first pass". 1550 writing asmMultiSentenceTranslate 1557 I read somewhere that ports are now called "interfaces", kind of like in Java. I wonder whats that about. 1600 on the ErrataComplete part of asmMulti 1935 a-accent better for at, au better for to 2113 i was reading about actor model, and sequence numbers. thinking if know length of a message, can allocate it, and then put packets in appropriate place, so afterwards only have to take out the extra space to collate. would also need to be able to request a resend of lost packets. 2159 finished writing asmMultiSentenceTranslateErrataComplete 2204 testing 2205 have to update intelReferenceUpdateLoop 2241 rewrtoe intelReferenceUpdate }02 May 2014 0550 testing 0557 seems like I'll need to add a space or something when doing the quoteAppend 0610 weird I'm getting some ya ̀ instead of yaspace sentences. 0629 it seems to be 0xCD 0x80 coming from Errata generators. 0655 okay asmMultiSentenceTranslate seems to be working properly now. 0723 weird, for some reason it is saying at 0 nu :S 0726 but it is not showing up when I do debugSay, only when I go through the bytes.. 0734 still debugging, have found a work around, but have to figure out what is going on there. 0737 hmmm issue with updateSentence or command sentnece. missing at or soemthing.. }03 May 2014 0520 okay so it's compiling now, but the jump address is wrong. probably during calculation there is an error. 0524 excellent is working. 0541 okay so that's a version increment :-) first one in a long time. next is data variables. 0545 okay so can make a version increment release to the git }05 May 2014 Beltaine, mid-spring cross-quarter 0552 so next we have to support data variables and such. 0556 how do we do that? probably similarly to how we do labels, but return a blank space for reservation, and the contents of bo or quote otherwise. Can do a phraseInterpret so it can do multiSentenceQuotes or normal quotes or whichever. 0600 we may also have to distinguish from literal bytes, that should go at same place, and those that are for a particular section. 0601 I'd have to figure out how that section stuff works. }06 May 2014 0547 so the section stuff, I can probably do a first scan, which outputs a multi word quote for every section. Then afterwords collate it into one big area, to put into the current system. similar stuff can be done with include directive, as in, the included files can be collated, then the section stuff can be done, then it can do the multi sentence translate, etc. 0554 we'd have to collate them in a paricular order, so would have to find out what the expected order for the various object file formats is. 0556 not sure it really matters, if it was up to me, then it would be code (.text), read-only data (.rodata), normal data, and then reserved stuff (.bss) 0628 so I was thinking can make the bytecode output an elf file, with target architecture as kimk or 0xE7 0630 then it would be relatively easy to translate it into other formats, as it would already be most of the way there. 0645 we can slightly change the magic number so it isn't accidentally executed as a true binary. 0700 k i'll make a quick vocab-bytecode 0729 okay made it. anyways lets do the rest of the intel for now. gotta do the sections or w/e. 0742 ya making this bytecode would take a while. can always just change some stuff around to make it generate bytecode instead of intel. 2130 so can probably store the section references in the main data, which would then be put together. I've noticed that a lot of these object formats have a large number of sections, though I don't know what they are for. 2235 so how would we make a bytecode that could be 1-for-1 intrpreted. I guess we'd need to have addresses in it already, so can do relative jumps to proper place. and not have to do any searching. though we'd still need a lookup-table for the commands, and what the local version of them is. can probaly make it a jump-table. 256*address size. so 0x1024 large for 32 bit. 2240 well if you think about it, every nibble can be a jump. 2242 depends really if this is JIT bytecode, or interpreted bytecode. JIT bytecode we can stick to variable names and such. but ya, compilation would be just the same as this intel stuff. not quite a jump table, but rather a read table I guess. since rather than jumping through, it we are reading through it.. i.e. if it is mov 0x4 then we read 0x4*bytebase hmm let me redo the bytecode see what I can come up with.. }07 May 2014 0543 for preliminary data variable support I don't need sections, simply the data declaration. I can put them at the end for use as variables, and at the begining for the elf file format definition. later on can do sections and include. 0800 so the data can be for instance the data word. it can have a length with till, contents in bo, permissions perhaps in of. i.e. of constant or of readonly. in can also be used, as it is in readonly section for instance. or in a container box that needs a key. 0855 have to review user experience design, and add various milestone to our roadmap to make sure it provides a good user experience. In particular we need to work on: accessibility, usability, findability 2041 anyways so data type. can have at least two, one that accepts bo, one that accepts til. though I guess we'll need three, also one that accepts both. 2051 we'll leave sectioning for next increment 2150 hmmm the til things need an arbitrarily large amount of memory to be allocated, and then deallocated once it is no longer being used. 2152 if we had packet space it could be easy.. packetMake, and packetDrop, or something. 2154 I guess that is what a multiSentenceQuote is. If I index them, they would be easier to pass about. 2211 anyways got a headache, will think of it tommorrow }08 May 2014 0538 so we have catalog entry add. can use that. 0547 for the basic prototype we only need sentenceSize probably.. 0551 though eventually we will need this, and the longer we delay the harder it will be.. 0552 we can amortize by doing just a little bit per increment.. for instance in this increment we can extend the memory for the "packet". and add it to the index. about a page size should be fine. later on we'll do packet extensions, and removal/compression. 0557 for binary quote support we need that hu at the beginng of the sentence, same for any kind of foreign language packet quotes. 0559 currently we have "multiSentenceQuoteMake", which simply makes the sentences. we can make multiSentenceQuoteCreate that would make the sentences, allocate the space, and add it to the index. 0603 so with the quoteAppend we can add in the hu thing, and in the Make one we can also add it. 0606 we have bookCreate which does similar thing. 0608 okay cool, so it's called bookEntry, we'll just rename the Make to Entry. 0609 I see, entry is the indexEntry. so we need the wrapper. packetWrapperMake 0614 okay renamed. 0617 instead of calling it a multiSentenceQuote we might be able to call it a blockQuote. 0622 there are 149 instances.. and it's not exactly what it is. so we can differ for later on. we could also call it a scroll.. since it is continuous. 0628 anyways we're gonna rename it all once we translate to mkaw, so that shouldn't really be an issue that is wasting so much time. 0652 writing nearestInAdditiveSequence, for calculating size to allocate. 2219 finished writing it. now have to do round up to nearest packet. 2246 wrote roundUpTo now to test. 2256 they both work. next can continue working on multiSentenceQuoteMake }09 May 2014 0557 if output is less than sentence size can use local variable. otherwise can do the more extensive (multiSentenceQuote) version. 0655 okay finisehd write multiSentenceQuoteMake. what is the name of a function we can use instead of holdMore, that can find and or allocate us some space. likely by using the index. 0657 Guess we can figure it out later.. 0658 changed multiSentenceQuoteMake to multiSentenceQuoteHold, as more accurate of what it does. 0659 now we need to make something to make an indexEntry. 0728 okay wrote multiSentenceIndexEntryMake, now have to test, and then make the create verison, which adds it to catalog. }11 May 2014 0538 I'm really looking forward to making those documentation generators. 0540 I guess I'll just call it multi sentence quote make 0656 wrote algorithm for multiSentenceQuoteMake 0723 wrote multiSentenceQuoteMake 0725 can test it. 0728 floating point exception that's a new one. 0733 weird giving me afloating. oh maybe edx needs to be cleare. 0734 excellent it seems to be working :-) }12 May 2014 0601 okay so what now? guess should integrate it with the data stuff. we may have to distinguish copy and move later, as move can be destructive, as in removing the source quote afterwards. 0607 thing is, I was planning on having it only make a multiSentenceQuote if the data exceeds sentence size. though then I'm not sure how to pass on that fact. otherwise all output has to be multi sentence quotes, since they have a special way of being parsed. that would create excessive load... it could simply pass the contents of the multi-sentence-quote, but then would need a garbage collector or something similar. explicit deallocation becomes difficult, as would for instance need to match the start address, or guess whether it is a multi-sentence quote or not. If I have a reference counting system I'd need a whole list of all the pointers or something, or some extensive searches for pointers. 0615 a potential option is to use the binary packet format. it can be implemented relatively efficiently. 0647 then can return an address and length, or a packet and number of packets.. though I'm thinking now If it's something small, with a sensitive length, would definitely need to give the length, but packets are rounded at 512, or 0x200 though I guess it is still viable to easily translate an output length, into a packet length, simply round up to nearest 0x200. 0651 anyways for the time being can use static variables, I'll consult with the flow-based-programming group on wednesday about the dynamic memory before going ahead. 0659 I guess if it returns a port number, or packet-ID, it could be looked up in a hash table or something. though so could the start address.. later on we can simply make it aligned, and then look up will be faster, or more efficient, for now can use catalog entries. later on with aligned sentences, can look up things more quickly, for now it doesn't really matter due to to the small data sets. 0702 but ya, droping packets would still take a little while, as would have to look them up. can ask in the group if that's what they do. the other option is to pass the catalog entry instead of the packet contents, though then would have to parse the packet, which is technically harder. 0705 also there is the issue of distinguishing between a packet and non-packet. it may be possible to do it with the address, if it is in static memory, or in packet-memory. also if packets are aligned on 0x200, that would help also. 0718 I just realized that my multiSentence allocation functions are generic enough that they can be used for any data type. since they don't actually parse the contents... I can rename them packet instead of multiSentence likely.. 0721 at least multiSentenceQuoteHold could be renamed.. the entryMake would have to be modified or something for more generic data types. and would need to make a new create function. }13 May 2014 0431 so I've been thinking if we align all the packets to be on an 0x200 line, then we can figure out what their starting address is, even from the content address, as we simply round down to the nearest 0x200. That would mean allocation may have to take two steps, in order to first extend, then round up to see if is on the nearest 0x200, if not then have to extend a little more. though assuming only packets are made dynamically, they should all be pretty much aligned. 0434 another thing we can do, is say "for" and caller ID or caller-address. that way if the callee is no longer around, either on the call stack or in a priority queue, then we know the packet is garbage and thus can be cleared. 0443 I've still got to test multiSentenceQuoteIndexEntryMake 0451 got to update the be phrase from start, to something else, maybe block quote, or simply quote 0505 updated documentation of phraseCompiler.asm 0534 we need a word for acronym in mkaw, since it is so common in computer lingo to use acronyms. 0607 finally debugged :-) 0616 now to test the full make function 0629 hmmm, there is somewhat of an anomaly, where after first instance it is using the previous instance as the starter.. 0632 so likely either something isn't being cleared, or isn't using replace. 0635 it seems to be indexEntryMake. 0637 excellent it is now working perfectly. :-) 0702 good stuff my raspberry pi is working :-D 0716 anyways what were we doing? 0720 right so we can do the whole packet data thing. 0723 I guess we can make a "packetMake" function. or we can make a multiSentenceQuoteEncapsulate function. though at this point packetMake may make more sense. where would we keep it? ummm system perhaps, system/packet. though you know what, an encapsulate function would hold true to our values of having all verbose stuff. 1702 made multiSentenceQuoteStart and End wrapper things. later when holding binaries, will have to add the hu stuff at the begining of the ender, and for the append version also. 1722 okay cool seems to be complete will have to test it. }14 May 2014 0555 debuggging 0636 cool it's working now. 0639 made first data statement and now testing. 0650 just a slight issue with the rounding thing. 0710 okay it's working just fine. 1115 okay so now I can either do more of the data functions, or go ahead and modify the recieving function to drop packets. I guess if I add all the variables for now, then can do point release. and then do the dropping for the next thing. sectioning support. 1141 will likely need to make a language learning game to get people interested. especially one that works on mobile phones like android. Our target audience is people with no previous programming experience, especially those that don't speak English. Also people who have cultural biases against programming such as females. 1153 anyways I might be able to make an elf binary now. lets try it. 1200 hmmm having block quote packets really makes for too much overhead. perhaps I can make a similar one to multiSentenceEncapsulate. but simply dataEncapsulate, and it would just leave some space }15 May 2014 0331 went to a flow based programming meetup. They suggested I use a virtual machine bytecode such as JVM or LLVM. 0440 seems like we'll have to have our own bytecode, but we may interpret it with/to llvm for portability. 0457 checked out parrot, which would be funny for implementing Mkaw, however it doesn't support pointer arithmetic, so could be problematic to translate. 0529 seems like we're stuck with llvm then. 0543 still it's pretty complicated will take a while to understand. 0939 hmmm seems that C is more portable. So it may make more sense simply to make a bytecode, and then have a C interpreter. and later on a compiler or something. 0948 llvm can be translated to JVM through LLJVM, so can make those android apps. 0950 so what do we need to support LLVM? we need to figure out how to reserve data areas, and point through them. maybe we can implement a simple something in it... though technically we can access all of standard C libraries... so hey getChar or w/e. hmmm well we'd need at least get word for instance. 1014 cool so it can return a value of a type. though ya only one it seems. though I could assign it to the general purpose registers, and return void. 1033 wow llvm even support javascript! that's exciting :-D so basically that's it, we are no longer compiling to intel, we will be compiling to llvm as soon as I figure out how to do some basic stuff in it. 1110 so I can do that write any char including nulls using fwrite. though it seems to take a little more room. 1126 it might even be easier to write it in C and decompile, then use that. 1144 i dono, seems like it can be done fairly easily. %R1 for eax, %R1L for ebx (length) %R2 for ecx, %R2l for edx (length) then can return the two things. 1146 only major hassle in LLVM is having to manually count the length of things. 1321 I dono, looking at these executable sizes, makes me a little queazy. 1712 anyways ya, so a portable assembler shouldn't be too hard. I mean it's never been done before to my knowledge, but we only need a small instruction set. We can write a bytecode interpreter in llvm for the time being, just for ultra portability, but later on would be best to simply compile to native, shouldn't be too hard with the proper look up tables. Basically any given instruction in a program, would have to have an analagous machine instruction or set of machine instructions if it can't be accomplished in just one. So an assembly language is mneumonic, and it converts to machine code direct. so we don't need-need to have a bytecode, though it would probably be easier to parse... if we support three operand format, with the 4 general purpose registers, so we could make optimal code for ARM as well as still work with intel. I guess we can up it to 8, there are a few architectures that only have 1 register, mips has 4-31, otherwise the most common numbers are 8, 16 and 32, with itanium having 256 and esi-risc having 8-72. Considering short term memory is 7+-2 or 4+-1 4 general purpose registers eax,edx,ecx,ebx , 4 special purpose esp,ebp,esi,edi, 4, and then the control registers such as flags, code segment and data segment registers. in any case 16 would definitely fit all of them. 1754 I'm basing these statements on "comparison of instruction set architectures" page from wikipedia. RISC design, register register type, condition-code branch, variable register size, 3 operands, 32-bit being the most popular attributes. 1808 I see some registers are hard-wired to 0, i kinda like that. and with the above registers I listed, only had 11, so one can be 0. I think it would be easy for people to understand the 0 register as the one that has a 0, and the 1's register being the first register, it seems more intuitive. of course we can simply xor to zero, that's rather esoteric. 2203 so been posting a bunch in doc/lang/vocab-bytecode.txt in terms of the spel logic, or algorithm of how to do the translation, I was thinking of something similar to jump tables. kind of like a graph also.. so first can do by valency, then by types, then by verb. i.e if valency 0, then continue, likely is nop. if valency 1, jump to 1st valency table, then jump to approripate type, appropriate size.. oh that's a lot of jumping. maybe can simply have a sorted lookup table. ya something nice and simple, of equivalencies. number-8bit interupt, get the opcode for it, and plug in the value. i guess technically the size should come before the name. 2212 we really got it to reply to hi and hello, it's kinda depressing when it says no-ya. 2240 k kinda works now. anyways so we can simply have a massive lookup table, for all the various types, can even do it for the registers. or it could call on the appropriate function based on the bytecode, with the given input. in the comments section can have the labels and data errata for ease of decompiling, otherwise it's not very necessary. the functions that need to do address calculation can simply produce errata based on the bytecode, so the name of the label would simply be the absolute address of the end destination in the bytecode. only thing is that when that address is gotten to, it would have to have errata generated for it, so it would need to be in a queue or something, busy checking if the current instruction pointer is at one of those addresses.. unless the original address of all the instructions was mnetioned, so ya having that label informaiton can be quite helpful, even if it is just in the comments. though it could be even more helpful to simply have a label byte or something. then it would know that this is a label, can use the nop extension. cool, done, so 0010 is label, and 0020 is data, can even do 0030 structure maybe, dono if it would be necessary. Anyways that way the proper errata can be generated based on the label address, for the sake of consistency it can be till after the label. 2254 what about the llvm interpreter of the bytecode? I guess it would simply do what they said, though I'm not sure it can jump to a particular relative address, maybe it can though. 2257 unfortunately it seems that it is not able to jump to direct or relative addresses, only labels, probably for typesafety or soemthing. so would have to implement the interpreter in the native assembly :-|, or maybe C has goto.. dono, anyways can figure it out tommorrow. but ya it should be possible in the native assembly, though may have to use fake memory registers instead of real ones, depending on how many general purpose registers are available. 1122 so in flat binary addresses for data are relative, the linked version it is absolute from start of file. 1124 in the object file it's blank. 1129 weird so it must be telling the linker to calculate it somewhere else then. 1156 so it's probably in the symbol table. 1533 so it's .rela.text which contains the information, as an offset of the code segment. 1542 i see, so in elf64 the addresses are blank, and the address relative to data section in mentioned as an addend. in elf32 the .text has a relative address, relative to the .data section, it is known to be the .data section based on the .rela.text 2311 if we do a super basic implementation now, can expand on it later. }17 May 2014 0629 so it seems that the org directive is what identifies what the starting virtual address shall be. 0631 so we can load relocatable object binaries into memory. 0633 we can use the symbol table of the spel binary to look up where the various functions are, so can link to them. 0745 downloading netbsd raspberry pi image, hopefully it will work. netbsd can be upgraded to gpl-v3 wheras linux cannot. also it has better portability, and is very posix compliant. 0747 I should really get a vga to hdmi connector, then can do various things on the raspberry pi directly, especially if ssh isn't working. }18 May 2014 0558 ya so portable assembly could certainly be very powerful. It may not necessarily be 1 to 1 because it supports various kinds of assembly, but it can bring all the best stuff together. like conditional instructions, and moves from memory to registers. 0602 I noticed that in ARM assembly size isn't explicitly mentioned. though it only loads a byte at a time... 0605 one thing is that in say ARM the first register on a line, is always the destination register. Wheras in my bytecode destination is either the first register for two argument, or the third for three argument. 0610 I think the best example can be as follows: carl takes 3 apples ; mov r2, #3 carl takes 4 more; add r2, #4 carl takes his and 5 more to angela; add r3,r2,#5 0614 that could work, if registers were actors, I was thinking of them as thoughts, but it could work as names... angela eax Ann bart ebx Bay carl ecx Cal diane edx Dee top esp bottom ebp parent esi child edi judge flags god/time eip acts cs things ds 0629 anyways that would be higher level representation 0631 meanwhile lets make that elf binary or something. 0703 cool so I'm using subclauses, I really need some sub clause starter, so can be a little more consistent not have to push the clause to front.. I could make it a kind of sentence quote.. but w/e for now I'll leave it as is.. 0710 hmmm nu til or nu by, for arrays of items nu by makes more sense than nu til. 0713 default can be 1 byte by, using up the bytes which are given, addresses would be full address length, for 64bit 8 bytes, for 32bit 4 bytes. }19 May 2014 0316 finished making elf and program header 0317 I realize now it would be good to somehow differentiate directives and actual commands, though not sure how.. also if is a conditional clause, so we need clause support. 0632 so main thing have to do now is a making a data by algorithm, and preferably have it accept an array as an option. also need the byte type, and this type. if i'm translating to bytecode, then at leas the byte one can be meta. and the this one has to be meta at least for translation till we know the final machine code layout. 0657 so the main thing now is the data by byte thing. 1115 okay i'll start writing it. though we should also probably make some test bytecode at some point, like a hello world and try translating that. should be fairly easy. especially once we have the relocation and symbol table working. if we use absolute addresses would be easy to translate them to their symbol counterparts. dono though, we might have to do something finicky like check each instruction if it is a label on the symbol table, and if it is then output errata for it in the output, cause we don't necessarily know when it's coming. otherwise we'd have to insert a label code or something. using this we could translate between different assemblies or machine codes i.e. harvest intel or arm, and turn it into kimk bytecode, so long as it is in ELF object files with proper sections, or other compatible object files which may be supported later. 1124 with comment sections we could even reinstate the comments of the assembly programs, so they would look near identical or equivalent to the original source code. 1203 thinking of making my changelog into a blog, though guess I'll do that with spel once I get the translation stuff working. wouldn't be very impressive otherwise. 1206 right we also need to make the byte type. 1212 once we get translation it may be even more impressive, but for now it will help potential users know what's going on and feel more included.. 1213 I guess it could be like a daily script, run at the end of the day, i.e. at midnight it would check if the most recent date at the begining of a line, is the same as the previous day. if yes then it would catch that and send it to wordpress. 1219 wrote byteType 2040 cool so I can gawk the changelog entries by date now. 2041 gotta check what text format if any I can send them in to sourceforge. otherwise it might have to be either a wordpress alternative or even manual blog. 2136 okay so I can make a script to make blog entries or something. 2146 cool I found out the format for wordpress xml entries Wed, 30 Jan 2009 12:00:00 +0000 Kites Taiwan Fun times

What great times we had...

And then Bob...

2148 it is in date -R or rfc-2822 format }20 May 2014 0604 may have to put it in RSS or Atom format for importing. 0622 okay seem to have figured out the general RSS formatting, and successfully imported first post. }21 May 2014 0700 got wordpress working with nginx on my Raspberry Pi. }22 May 2014 0629 I can't seem to get atom feeds to work. bah w/e guess I'll stick with wordpress. this has been wasting a bunch of time anyhow. 0704 okay got wordpress rss upload working with my scripts 1100 setting up automatic posting through wp-cli 1137 excellent script is working now. simply have to make my raspberry pi wordpress share with my various other blogs which people can actually visit, i.e. tumblr, blogger, twitter or w/e supports linked sharing. I'll have to get a faster SD card if I want to use the raspi as a server for actual people to visit. Would be good to have distibuted website, where if one host goes down another is available, or if one is overloaded it sends other requests to other server kind of like a cloud... but we'll see what happens. can probably do that by setting the nameserver to point to different IP's, and syning at night though that would be fairly crude. having an xml or file backend would be easier as syncing mysql databases, I'm not sure how to do. 1701 now have random titles generated based on contents of entry. next just have to upload the interesting title versions, and get the sharing thing going around. 2053 looking up keysigning my entries. it will be useful later for web of trust purposes. 2301 seems like gpg will take too much room for these small entries, but can do it for bigger stuff probably. anyways not now or anytime soon, we don't even have any users. though ya once there is distributed servers and such it could make sense. i.e. if someone is falsely claiming to be me.. hmmm but ya that is unlikely anytime soon also. 2314 anyways more important is the sharing thing. to post it onto multiple blogs, have them point to the sourceforge or something, which can have the rss feed. can have a script upload that daily also. }23 May 2014 0702 set up sharing to my main wordpress account and twitter. seems my wewithyou twitter has 40+ followers, that's pretty good :-D. anyways now have to do my final import, i'm likely not going to be including the pgp signatures or anything at this time. maybe later.. 0742 propogating posts 1946 oh yes have to make a clause to check if post content is 0, then it doesn't post that day. 1955 okay fixed 2012 so I've been thinking about making SPEL interperter have an intergrated Gaming Tutorial Mode. This would also integrate with actual development. How this is possible is to use language games, particularly those which are pertinent to programming. The first sets of any particular game would be practice sessions. Predefined in order to get the "hang" of things. Example: Repetition game For instance a simple repetition game, can initially teach how to make program commands and use the grammar properly. Later on at higher levels it can morph into a translation game, where people rewrite a natural sentences, or those in other programming language into syntax that can be understood by the machine. These could then be used as datasets for AI algorithms to do likewise. Points The points they recieve for playing the game could be used to get more bandwidth, storage, or processing speed on the server. They could be somewhat like bitcoins, except they would have the value of their effort. 2027 have to make a topicalization case or adcase indicator, so that the topic case can be put first. it is part of the topic-comment dichotomy. Also would be good to have something like title or h1 style stuff, then can use grammar instead of asteriscs or offsets to indicate what is being spoken about. 2036 so topic is from PIE place, and comment is from Latin invent. emphasis perhaps, from Ancient Greek show, present, appear. 2040 wow, I just noticed in PIE a-bit is pau, cool.. 2043 wa is the topic marker in Japanese. neun eun in Korean, and Zhe in classical chinese. 2101 I'll have to update the sourceforge website to reflect the new layout of the spel website. 2102 so Classical Chinese is out, since it's no longer used. wa is the easiest to integrate with current mkaw. 2115 hmmm well this being a pronoun can be small root.. the 3-bit space is fairly tight. 2126 okay have to abandon the grammar word restrictions. English doesn't have them either. 2135 thinking if I generalize grammatical particle it could help 2148 k figrued it out, without grammatical sacrifice. waa is topic, and yii is not, .aa is curious, and .ii is fear, so approrpirate. 2228 seems like script didn't propogate with php script. 2229 if I make it a wxr file can do an import. maybe that will do the trick. }24 May 2014 0652 so whats next? gotta get the data be byte by stuff working, then can test an ELF binary. 0653 afterwards we'll do sectioning, dynamic linking of new executables, and then ELF decompiling to give access to previous functions. Then we're pretty much done the assembly stuff. DWARF is probably optional for now anyways. 0658 I'm highly interested in documentation generation, it would be easiest after we have the config files, as we'll be able to have plain text locale files. 0944 wrote algorithms for data by, and data ar by 0945 so what are the 4 types of game we shall have? 0 repetition or translation games. 1 describe or write documentation games. 2 solve the puzzle or program the solution games. 3 test, verify, review or choose a solution games. 0953 can make a marketplace later, for assigning game problems, in return for points which can be correlated to money. }25 May 2014 0756 bah, my blog update script isn't working. 0808 i integrated the change directory command into it, maybe that will help. 0808 anyways letss get the coding started. 1742 so I've been thinking about the game points system, say for instance they are playing on the main server here, and their bot identifies they would get better response time with more RAM. Then the person could appeal to have more RAM allocated to them, using the points they have. The thing is, it is possible they will run out of physical RAM and will have to guy and buy more RAM. However since these points are virtual, I may not have the money to actually go out and buy RAM, or get an additional server or w/e in order to provide for them. 1751 so I would have to cash in the points at a marketplace, such as the Mkaw marketplace at which programming tasks can be assigned in exchange for points. People that want code written for them would buy the points necessary to pay the programmers. 1753 of course they might want programs written in a variety of languages, so they would likely have to be Mkaw compliant or translatable languages with at least their basic syntax or w/e translated into Mkaw, so Mkaw programs can generate their sourcecode. 1754 with the first version we wont have a marketplace I guess, we'll just have standalone points system. They could be somewhat like promissory notes instead of complicated encryption ciphers as in bitcoin. So it would be a sentence explaining who did what, when for whom, these little pieces of debt can then be floated around until they are extinguished, by repayment. Otherwise for a more traditional currency of integers, the value of the points would be related to the current exchange rate for a number of integers. Though the only way to verify that for instance someone earned something, would be with the promissory notes, then not all the debt belongs to the money provider, and it can be more of a distributed system, as not only one person can make the money/points. Bit coin family only rewards those who do work for the bank or coin, wheras this would be anyone that does work for anyone. 1808 so could say " you learned basic vocabulary of Mkaw assembly ya" more effective than points for stimulating cognitive labour, is mastery, autonomy and purpose. Better than stars or treats, is neutral description of what has been done. 1929 can upload the description of accomplishments to the server. This would be good for statistics, as we'd have some idea of how people are using it, and how far in they are getting. Also could get jobs through the marketplace, their description would be like their resume 1929 can upload the description of accomplishments to the server. This would be good for statistics, as we'd have some idea of how people are using it, and how far in they are getting. Also could get jobs through the marketplace, their description would be like their resume. If we did choose to pay or otherwise reward programming contributions, we would also be able to as we'd have a record of these accomplishments. The individual interpreters would be able to get "problem sets" from the main servers, which the users could solve. }26 May 2014 0621 so now I have the non array version, that is the bare minimum to make a hello world assembly. though with the array version, can be more like a real assembler. Plus the array version can help me make something like a string builder. 0623 you know what though, I haven't gotten anything good for a while now.. maybe I should use the bare minimum for now.. 0645 w/e maintaining tha wordpress monster is just too hard, I'm going to stick with an XML blog for now, otherwise it's sucking up too much time. 0658 started arBoByData 2126 so next will probably have to be data structures, and elf decompliation in order to properly support sectioning. 2139 finished writing arBoByData 2152 updated xsl to have some more helpful links }27 May 2014 0547 okay now to test the data functions. 0554 hmmm it says label missing, for intelReferenceUpdate though data is a declaration, so I guess i'll have to make an exception for it. 0558 later we'll have to make a distinction between intelRelativeReferenceUpdate and intelObjectReferenceUpdate the object one being for object files. 0607 reading up on libraries, as maybe that's what I really need. Igor Zvorygin recommended I look into them. 0623 seems like position independant code would be very good, then don't have to go through the trouble of linking. or at least relocating.. Though not sure how to accomplish it. 0643 ya, so it would certainly be good to make our code rentrant, this can be done in the aforementioned manner, of storing data on the ebp portion of the stack. the main issue being we'd have to make a macro for calling and returning to modify this portion of the stack. The reason for doing it that way rather than putting everything on the stack is that having a seperate call stack makes it easier to debug, as can easily look through to see who called who to get to an error. 0648 anyways we were debugging data. 0650 guess it might be easier if we either had a da type for data, then wouldn't have to search for both references. 0655 so I often seem to get this appendError.. 0700 even with reentrant code, that doesn't make it position independant, as it still relies on some constants, and not sure how to refer to them. the usual way is EIP+offset, though not sure how to automatically establish that offset in nasm. I guess something like [EIP+dataLabel-currentInstruction] 0702 in terms of the constant append overflows, would simply have to change it to multiSentenceQuoteAppends as they are dynamic. We may at some point also have to move over to the passing string types, instead of address and length in seperate registers. that way can pass input, outputMkakArea, outputMkakEntry 0707 binary format does relative jumps and calls, but not necessarily with EIP. 0709 anyways so data erata doesn't seem to be appended. 0712 oh right, it's because it's ya statements. 0716 it's okay that it was ya, simply didn't have the by, since I it's implicitly the one with 1 byte, but haven't actually implemented it. 0720 with position independant code we could bypass a lot of assembly stuff, like relocation, though we'd still have to add support for the symbol table stuff, i.e. relocating to phraseGet and such. 0724 eip symbol undefined. 1209 oh I see that functionality is only available in 64bit version. 1217 anyways we have to finish this data stuff soon, if we want to finish assembly by June 22nd. lets get it done, I'm gettin sick of this stuff.. 1219 k so we've got to test out aLastTypeGet 1224 so aLastTypeGet is already written, we can try using it. 1225 I was also thinking we can return string types from mkak family so that ecx can be the contents string, and edx can be the entry string. will be useful once we want to drop the things. next increment though. we're already getting rather too deep into this. 1234 like we're probably going to have to forget linking and relocating at least till we are in the next verison with a virtual machine, possibly when we get to operating system level. otherwise we wont necessarily get all the good stuff done. 1246 debugging arBoByData 1306 issue with byte type. 1316 okay fixed 1319 hmmm multiSentenceQuoteAppend giving some anomalous output. 1321 oh i see, it's designed for getting from context, rather than from catalog. hmmm will have to rewrite multiSentenceQuoteGet to accept either catalog entries, context quotes, or based on contents. guess can make contextFromMultiSentenceQuoteGet is the current one entryFromMultiSentenceQuoteGet is the index one and contentsFromMultiSentenceQuoteGet is one we'll use for delation later. 1736 okay I should get at least the plain data one to work that doesn't require all the extra work, it'll make me feel better. and we can work it out better through and through, at least get one working elf binary. 1745 okay gotta check the byte by stuff. 1750 hmm, issue is if we give false reading of length of data, it may read garbage from other memory. so either we would have to clear it afterwards, or somehow pass that responsbility to Encapsulate, guess we'll just clear afterwards.. 1810 weird multiSentenceQuoteEncapsulate seems to be returning 0x1 1931 updated multiSentenceQuoteEncapsulate to return the allocated and entry strings as ecx,edx. }28 May 2014 0519 oh I see, it's multiSentenceQuoteHold which has an expected length attribute. Encapsulate has an identifier attribute. 0525 oh I see, it's because it's calling phrase interpret, which calls the glyphs to numbers that overwrites it's previous output. can make it output using multiSentenceQuoteEncapsulate... 0529 hmmm might be making for some serious memory leaks though.. may make more sense to encapsulate output when we need it, and drop it right afterwards, rather than encapsulating all phrase interpret output. 0541 really should make that version which simply uses the default byte size.. 0543 right so I made it earlier just forgot to initialize, k now I have. one the best parts is that it doesn't need any of the dynamic data stuff. 0559 good data stuff is working :-). now I have to get origin working, for proper reference building. though perhaps I should make the packet dropping first. I guess I can add it as a minor increment fornow. 0604 origin can wait for sectioning support. meanwhile we already have the first 0x18 bytes of an ELF file working :-D. 0609 was thinking about making a word to support acronyms, though there is some divergence in that there is also an initialism, which is an acronym where the letters are pronounced individually, such as BBC is an initialism, and SPEL is an acronym. they are both "abbreviated forms" so we could make an abbreviated form clause or quote of some kind. it could be a label or definition. abbreviated means shortened, piw pkip (small length) is short. techniciall shortened is small-length-make-past 0617 anyways lets make the contentsFromMultiSentenceQuoteGet so we could use multiSentenceQuoteFree and mkakHold could call spaceGet, which would check free stuff, before allocating. 0639 I guess sit can be generalized as bottom down. 0655 okay freed up a bit of 3-bit vocab space :-). 0703 right so where were we.. contentsFromMultiSentenceQuoteGet 0706 I'll also make contentsFromMultiSentenceQuoteEntryGet to retrieve the index entry if there is one. 0722 the catalog entry one seems fairly easy it's also the most pertinent to us. 0724 wow some of my words are like 54 letters long or something, 0726 basically means eventually might have to take the caps off the wordSize and sentenceSize, but w/e, really my words are whole sentences, and need to be so lengthy since everything is a global variable :-|. 0729 for renetrant functionality I could make a preCall and postCall thing, locVarSet locVarSet would set the size of the current local variables, preCall would add the size of local variabls to ebp, postCall would subtract size of local variable from ebp, we can also make something like a reentrantCall or rCall which takes the size in esi, though there may be an issue with nesting.. it could probably store the size at the top of ebp, i.e. when calling add the size from esi to ebp, push esi onto ebp afterwards pop size from top of ebp into esi, subtract it from ebp. so we can make bpop and bpush form the ebp version. 2027 while it's great I have a plan for reentrant code. it can surely reduce my footprint, I'll have to move all my code over to it in order to use a proper flow based scheduler, so will have to be when we become self-hosting by translating nasm into mkaw. for now better to work on one thing at a time, such as the memory stuff. 2032 currently my memory usage is about twice that of a normal stack, it can certainly be much lower if I convert everything from global variables to structures.. Another thing with re-entrant programs would have to start them by putting their size in. would need to make a macro that accepts function name and structure name, 2035 but ya one thing with reentrant code is would have to return everything variables which are stored in various mkak. so really getting mkak functions working is prerequisite. 2037 at 1930 today my raspi was showing some activity I wonder what it was. 2048 hmm seems it was some wp cron job, or a dhcp request. 2052 so I was reading that cuteness counts in "swipe this", so will make the logo a baby macaw, the shell can be a baby macaw with it's shell around it. 2130 anyways I drew a first draft, will likely have to make a few more before a satisfactory one, then convert it to SVG with inkscape. }29 May 2014 0459 so thinking of making this changelog have a monthly archive, it would then be more readable, and would take less time to load. we'd also need a search feature of some kind though. 0504 with the kimk bytecode we can certainly make reentrant, position independant code the default, or at least very easy to attain. As could have "relative move" and jump the default kind. 0510 once we get the message passing optimized it should be okay. This book I have on AI Game Engine programming says it's one of the lowest demand systems, better than "class binding" for communication. 0527 one thing I was wondering about is if we use message passing, this relatively complex form that involves using an encapsulation and contents add function. Then how do we make the encapsulation functions themselves reentrant? I guess they couldn't be since they have the sideffect of creating messages.. they certainly aren't idempotent since every time they are called they make another one. the only way it could be idempotent, is if it checked that there was the same packet already. this may be possible by comparing length and checksum. it can be done by the mkakHold function possibly.. okay added it to the comments, can work on it after Bravo release. 0556 was thinking of using the varmem instead of catalog for all of the initialization so as not the clutter the root catalog. 0604 wrote contentsFromMultiSentenceQuoteEntryGet. now to test 0621 how to test? I guess we can encapsulate some data, and then run the contents thing on it... k 0636 oh I see, we also have to round it down to nearest 512, since it's returning address just 1 higher. 0645 wrote roundDownTo function. 0653 hmmm, seems like we'll have to make the hold function encapsulate at the proper boundary, because it doesn't necessarily.. 0656 we'll put it into packetSpaceHold which will later also check for free space. can probably define it in memory.asm 0711 got an idea for fault tolerant letters that fit in a byte. can make it almost a 3by 3 grid 0740 okay made packetSpaceHold 0756 okay works 0959 a mythocentric storyline where the player chooses what they would like to do such as that of the GTA style, is what we'll likely have. okay so lets finish debugging contentsFromMultiSentenceQuoteEntryGet and then can do some research about the architecture and design. 1025 made at til say, so can do some live debugging. seem to be outputting something, though not what i expected. 1026 also made a firstRun clause for the testing iterate, so that can do the test in first run, and in rest do debugging with spel commands. 1039 excellent so contentsFromEntryGet is working :-) 1049 I just thought of an additional issue with having the ebx larger than the actual data, is that may request data that goes outside bounds of current program, so it may get a segfault for copying stuff which isn't a part of it.. 1057 for true idempotency would need to make all modifications to mkaks go through mkak functions so they could update the checksums, also it would increase the overhead as would have to computer the checksums, and update the catalog entries for the new checksums. anyways for it to be worthwhile we'd have to have drastically more CPU resources than storage resources, so it's not really worth it, except if we were to actually transfer it over some network, where bandwidth is more expensive than local CPU. in conclusion idempotency can be included later on a multi sentence quote level, rather than at the catalog entry level. 1101 right now what we need is the packetDrop function, such as the contentsFromPacketDrop function. it can call the contentsFromMultiSentenceQuoteEntryGet and entryFree functions. entryFree would simply update the verb to free rather than whatever it was before. the packetSpaceFind can then do the entryContentsClear and entryClear before returning the packetSpace. I guess it's really a mkakDrop or a multiSentenceQuoteDrop 1115 I figure we can skip the search for start, and just do a round down, no need to do both. 1116 yep still works :-) 1149 made a first draft of those 8 bit glyphs with 16 letters. the 4-bit ones anyways. 1219 made the mkaw shell logo, can check it out in the img folder http://wy.n3.be/spel/img/mkaw-shell-logo-20140529_115355.png 1225 anyways either architecture or programming.. 1232 I was thinking we can track memory leaks by adding in information to the entry about who called a certain function, based on the top of the call stack. can put it in the yo phrase, since they are the one who it is for. can do a reverse look up of what that address refers to using the symbol table. 1249 functions could pass off responsibility by doing a yoUpdate, which would update yo to the next one down the call stack, or to whoever the packet is destined for. 1323 anyways wrote entryFree now can test 1324 or rather made fromContentsMultiSentenceQuoteDrop AKA mkakDrop make packetDrop. k. 1332 okay cool packetDrop works. now just need to make the packetSpaceHold to do it's job. 1347 I guess it is possible to passback with reentrant data, so long as the results are stored locally before another call is made, which would almost certainly overwrite the data of the last call. generally we save everything between calls anyhow.. 1349 this would also give us an alternative to using packetspace, since we could have something like a reentrantPacket or something, which would store above the current data block size, and can be passed in return, could only store one of them, but typically only need one anways... though ya, if we were then to pass it to another function it may disapear, as we usually only store address and such... and certainly can't passed it to a called function. as that would definitely overwrite.. so while there may be an alternative form for reentrant functions. packets are still better for more genral cases. main places we need the alternative is either often used ones, for which the overhead would make a difference i.e. number conversion, or in the case of the grammar functions that are pre-packet. 1406 well how do variables get passed on the stack? I guess they get pushed under the return, so they sit right below the stack pointer when it returns. that would cause a problem with the rentrant code which uses a structure for it's data... also we'd need to keep some kind of buffer if we were preempting it.. unless of course the space for the return was within the renetrant function structure, then can shove it in there, and access it afterwards.. i.e. struc someFunc.input someFunc.workingVariable someFunc.returnedVariable endstruc though that would imply only one call, or all the calls would have the same format output.. I guess that's why C is limited to returns which are just a single integer. 1412 one way we can make the packetAppend work well, is by making it a packetReplace function, so that way don't have to do any clearing. or minimize it, only have to clear the entry. Then even if it's not preemptible it still takes not too long, as there aren't that many bytes to clear in a sentence.. though yes this replace function would have to know the length it can use, though it can do that by looking up contents through the contentsFromPacketEntryGet function 1420 can make atTilGet to retrieve the length and location. hmmm thinking that perhaps can simply do an update, rather than recreating this entry... can check Hold 2103 can also use atTilGet for that say function, can just rip it out into it's own label. 2107 so in terms of AI we can implement Finite State Machines, the game world will likely feature artificial life. we might have "smart terrain" or objects with instructions for use. 2109 people could say purchase some CPU, RAM and storage for their AI creatures, or even have them migrate over to their own computers or servers. Then can interconnect their various worlds together, for playing together. 2117 atTilGet is working. saying quote; a weird thing is though, that the data seems to be doubled, maybe it's being written twice somewhere. 2124 okay fixed it was the end wrapper was getting contents instead of identifier as input. 2128 okay wrote packetSpaceHold with entry clearing, but we should still look into the feasability of doing entry updates instead, they may be faster. 2129 hmmm seems like Hold doesn't do anyhting with the entry. 2132 okay we can do the update in multiSentenceQuoteMake 2134 hmmm but then there is also Encapsulate, how bout instead of a clear we do a reduce to effect compaction.. though that would take more time, less leaking 2140 okay so now to test. 2143 hmm the trailing garbage is kind of annoying, guess we really should clear it. a clean slate is easier to work with. 2145 great it works :-) besides clearing a 512 byte space, with 32 bit registers, needs about 128 applications. with comparisons... ya it can use probaly as many cycles as bytes, though it could be optimized for fewer. }30 May 2014 0446 so now we gotta integrate the packet dropping in the intel translate program or the multi sentence translate. 0515 looking at various checksums 0530 so Reed-Solomon error correction seems to be the "lowest common denominator" with both turbo codes and LDPC codes falling back on it on occasion. but ya, they seem rather too complicated to implement any time soon. might just go with the longitudinal parity check. Though we already have some of the initial stuff required for a modular sum. 0544 so we might be able to use fletcher-32 it's a summation technique. with some multiplcation. 0549 another thing I have to do is make the ender include the hu at the begining of the sentences, for badly formed sentences and binary data. 0555 okay done that, next after we test the drop in the kawm mu translate 0624 added a few words to the 6-bit vocab and some letters to it's alphabet. namely clicks and tones. I'm keeping the / for a click since it is so commonly used in delimiting directories, if it was a tone it would be harder to distinguish. but a click is a nice clear deliniation. 0647 made the various clicks analagous to radio calls, like roger and acknowledge. 0658 okay finally added packetDrop to asmMultiSentenceTranslate 0701 right so gotta check for if there is an entry, if none then return no. 0706 weird for some reason seems that packetSpaceHold must have captured user book as if it was free. also there is some extra space that isn't being reduced, so there is a bunch of spaces. 0708 also it is no longer making hello.bin 0709 all because of packetDrop, oh that makes sense since the data was being held in the user context. so we'll have to debug this packetDrop. or the space find. 0712 yes so it is the packetSpaceHold Reuse that is having these issues. packetDrop on it's own is working fine. 0720 hmmm debugging saying that it looks like user is free.. 0721 so I guess the wrong packet is being dropped... oh I see, it's because some of the data may be coming from within the user context, so user context is dropped, even though it is not a packet... we'd have to make a packet identifier phrase, or have it in it's own memory (preferable maybe). we could have a static phrase to show that it should not be freed... or some kind of permissions.. 0832 not sure where to shove permissions but can probably just put "immortal" into bo and then run a check before entryFree, like a matchCaseGet if it has immortal bo, then it simply returns no, otherwise it does the entry free. later can have other permissions. like by can be owner, with can be group. 0835 looked it up, there is the permissive mood, and the modal case. modal case would be most pertinant though is only used in two north australian languages. 1951 okay so I facebook messaged the mayor of the Mornington Shire council, as Lardil is from there I'm hoping he can help. 2001 anyways I thought of an alternative solution to locking the quote, or preventing it from being dropped, and that is to make every function that is processed by asmKwamMuTranslate return a packet. But I was thinking if something accepts a packet, like say firstSentenceGet, and then it gets what it needs, but then drops the original, that would be bad, as we might still need it, so I guess it would have to pass it as output. 2003 This could also be an opportunity to try out reentrant functions now that we have support for packets. 2004 another idea I had, is that potentially later can make a struct of the packet sentences, and translate them only when requested, that could allow faster execution time, but for now I guess just leave it as is, cause we just need usable execution time, not necessarily super-fast. 2005 my spirit guides are really encouraging me to do the bytecode during this C as it would make translation to ARM and such easier later on. and personally thinking it would allow to have that web interface on my raspberry pi server. 2111 trying to make will word shorter maybe 3 letters in 3-bit wim wam for thought something.. } 31 May 2014 0545 had a dream could use entry sentences for storing short chunks of data. only thing is I'm not sure how to do packet resolution.. Guess I could check to see if address within catalog, if yes, then I just get that sentence and return it.. 0600 if we make entry sentence size 512, we could stuff a 256 byte quote in it.. I guess at least in theory the size of the sentence doesn't matter unless I build one, it's typically the sentence builders that take the most space... Though I would have to build the entry sentence... I could build it within the catalog itself. 0639 it would certainly lower overhead. only have to search for the end and start of the sentence. can use random number for quote words, minimize chance of interference. 0708 reduces are pretty expensive though, and having two different kinds of storage can add an extra level of complexity.. if we make forwardSentenceGet can avoid having to do areaClears, though they are cheaper than reduces... then again we have to do entry reduces anyways.. so this would "reduce" the amount of work we have to do. If we somehow managed to take off the upper bound on sentenceSize then we could have any size quote of course.. } 01 Jun 2014 0626 so rather than a finite state machine, it seems SPEL compiler is more like a rule-based AI where the varous matching sentences are the "rules". 0644 wow I just make a simple irc shell script with net cat, it worked, I'm quite enthused. That means it'll be fairly easy for us to make spel into an IRC bot. it would certainly make the web interface easier, as it could simply direct people to the chat channel. but ya bytecode somewhat more important sooner rather than later. 1746 was reading book on Game AI programming, it mentioned how there are several emotions that get people to keep coming back: naches pleasure or pride at the accomplishment of a child or mentee. kvell feeling of expressing naches to others Fiero personal triumph over adversity. Wonder overwheling improbability, curious items. Surprise sudden change. Schadenfreude gloat over misfortune of a rival. Disgust, rejection as with food or behaviour outside the norm. Fear, threat of harm. 1848 will probably focus on naches, and kvell in particular for viral spread. this can be done by having AIlife, or a bot which you teach. 2059 there are also four keys to gameplay based on XEO design doc 1. hard fun: Meaningful challenges, strategies and puzzles. Frustration and Fiero. 2. easy fun: immersive aspect intrigue, curiosity. Wonder, Awe, Mystery. 3. Altered states: escaping their day to day reality, Excietment and Relief. 4. People factor: social experiences, Amuesement, Schandenfreude and Naches. and social bonding. 2136 for the hard fun, that's most of it like programming, and translation, the actual useful stuff we need people to accomplish. Easy fun, that would be like the world MUD they could navigate. Altered states would be the story or stories, perhaps quests. People factor would be meeting others in the MUD. 2140 another thing I'm thinking is that perhaps a MUD or chat wouldn't be the best format, but perhaps a forum may be. though the interaction would be delayed, the output would last longer, and be searchable online, thereby allowing for more viral viewership. 2141 also the forum would allow for things like political discussions and stuff like that... and would be easier to edit files for submission, like if for instance we needed them to edit a source file or a part of one. though an interpreter would lend itself more easily to a chat interface, at least at first. we'd only be able to do coding in a line or few at a time, though I guess for beginners that is good. We could have the forums later on, after we develop thorough documentation and html generating support with cgi integration for submission. } 02 Jun 2014 0508 so the bytecode.. I can probaly have some kind of look up table. can try making one, to translate between bytecode and intel. something like register-register-copy-value-value becomes opcode-value. I can either brute force it by having all the translations for each value, or have a function to do it. would make sense to have support for a function for those that can't do values, such as addresses, some architectures have addresses which aren't even numbers. or rather not harmonics of 2. like openRISC jumps have 26bit immediates. 0523 though ya technically we don't have to worry about addresses because of relocation.. though we could save ourselves a lot of hassle by having a function that can translate the regsiters. 0541 so ya if we don't brute force it'll be pretty similar to the other kind of translation I've done so far.. except that it'll get a byte at a time instead of a phrase at a time, so can be implemented a little bit faster in C and such. For instance we could try implementing a simple hello world in bytecode.. 0602 making hexadecimal opcodes for the quaternary opcodes 0605 anyways we can't make a bytecode version until we at least get a normal intel version so lets finish the data. 0617 added kimk quaternary also.. to be honest I'm not sure where with the memory stuff we were at.. right it was the part where we were overwriting user book. so simple solution is to make data encapsulate, lets try it. 0622 hmmm it still saying user book is free.. 0625 seems to be due to output of label. 0627 okay fixed that, label now outputs yes instead of address. 0634 okay so it's working at least on first attempt, but there is issue of it leaving a bunch of white space in catalog which overflows rather quickly. so need the opposite of wordTrim to grab surrounding white space I guess... though that may be an issue if too much is grabbed and initial and afterward sentence are merged.. guess can be left with length of 1 or something. can do it in entryFree, or rather entryClear. 0656 wrote blanksInclude now to test. rewriting notBlankorNullGet 1047 Esperanto may be one of our first conjugated languages, or at least first conjugated language with near complete support. 1059 debugging blanksInclude 1118 okay it works :-) 1145 right, so next we just have to make the data stuff be a packet, and read file to read into a packet. 1146 can leave an entry in the context for reference. 1203 we'll have to write a bytecode interepreter in C, Java and Javascript at some point. 1243 can modify so that instead of decrementing after blanksInclude, simply adds a space after entry is cleared. seems that having the entry-based data is also very good idea, can probably be half of sentence-Size or something supported. 1350 to support it we'll need to modify packetSpaceHold, and packetDrop 1537 hmmm currently packetSpace is all about packetSize.. so we'd have to implement in the hold section probably. hmmm, actually it would be a multiSentenceQuote at that point. 1547 realized packetSpaceHold not looking for size. fixing. 1549 yes so we'd need a more generic hold function. for reentrant functions. 1621 okay it works I guess the more generic one could simply be encapsulate and then capsuleDrop 1625 guess we can put it on our todo list for now. we need to do the data stuff for more urgently, than a more speedy dynamic storage. Especially considering we don't have a fully functional one even at this basic level yet. 1629 so I guess first off we can update easyFileRead to encapsulate. 1636 it only has 4 calls so should be fairly easy to update for droping the packets afterwards. 1935 hmmm.. 2102 started writing encapsulate as a generic catch all function, so don't have to convert later on from multiSentenceQuoteEncapsulate. }03 Jun 2014 0630 posted on Linkedin "Question about Semantic Representation", may be able to get some interested parties to help out. I hope. At least with some basic translation. 0635 right so the new encapsulate allows the input address to be null, indicating that the data is null, but should be of a certain length, I think this would be good as it would be best for the data type that I was implementing. Need to update multiSentenceQuoteEncapsulate for the same stuff. 0649 okay implemented in multiSentenceQuoteEncapsulate will have to test 0828 the ordinary way stil works, that's good. 0836 debugging implementation.. 0927 hmm it's not working because it's a number output, and it gets overwritten aftewards during the encapsulation procedure. 0928 that would imply that phraseInterpret would have to return a packet, though that would be pretty hefty right now.. otherwise I can reinterpret it before posting. 0935 weird it's being overwritten.. 0935 I guess if possible it would be best for length to be passed as an argument, so multiSentenceQuoteHold could get it. so Identifier would have to be a string. though actually it wouldn't matter if we passed to multiSentenceQuoteHold.. I guess it would have to be a buffer or something.. 0937 ya if we could simply pass it out from phraseInterpret as packet that may be best. oh also can probably make a packet and drop it afterwards.. 0943 maybe should have stuck to if it aint broke don't fix it.. 0951 so none of the encapsulated data seems to be getting through. 0952 or rather only the first 4 bytes of it are.. 1000 oh it's probably when packetSpaceHold needs to convert the size. that's why we didn't notice it before, since we only recently added that. I guess a temporary work around would be to save the output of the number thing and restablish it afterwards.. 1005 seems that typeTranslate calls glyphsToNumbers. within the phraseInterpret chain.. that's like everything. 1006 ya it would be best if we could pass packets from relatively low level things like phraseInterpret.. but there are 76 calls to it in total.. 1007 right so atTilGet calls it, that must be it. gotta save there. 1015 okay that fixed it at least for primitive data types. now to fix it for the ones with byte by. 1020 excellent it works now :-) 1021 but ya, I certainly see the benefit of having a faster encapsulation function. 1025 so we can tell if it is a catalog sentence quote capsule by it's address, if it is within catalog, then it must be, otherwise no. though may be an issue if we want to drop or extend catalog. 1028 if we use unique identifiers instead of addresses and lengths it could be easier, but that is just as passing entries instead of contents, still have to get the contents out. this format we have is backwards compatible with our other register functions. 1046 hmmm seems like sentenceQuoteEncapsulate can be a reentrant function. 1051 how about we make it traditional styles, and then try converting it to reentrant style. 1058 okay wrote the basic version, but note it creates new one each time, doesn't have look up for old one. 1059 I can test it for now 1114 excellent it works now :-) 1117 i also preserved hexadecimalNumbersToGlyphsOutput in case it ever needs to be stored in packet form. 1118 okay next we need to be able to free it and then recover it 1121 ideally these functions would be referentially transparent rather than rellying on the catalog global. 1131 what we could do is encapsulate it for some port or channel. yes, we'll call them channels. 1137 one way of implementing back-pressure would be that when it call to encapsulate or send to the channel, and there is no room, it's return address can be put on a stack or something to block it until another packet is freed from that channel. 2032 okay well we can put channels on the todo list, but for now can simply minimize reliance on the catalog variable, instead making it an input parameter. }04 Jun 2014 0427 how many catalog references? 0428 about 39 right now. possilby 30 with book.asm and memory.asm having the largest amounts. the ones pertinent to the new memory model are memory.asm and quote.asm 0433 there is also catalogEntryAdd can be generalized as entryAdd 0438 updated contentsFromMultiSentenceQuoteEntryGet 0447 updated packetDrop to capsuleDrop and catalogCapsuleDrop 0453 generalized entryAdd 0457 genralized packetSpaceHold 0459 thinking of generalizing multiSentenceQuoteHold it seems to be superflous function.. 0500 there are two calls to it. we can probably merge multiSentenceQuoteHold calculations with packetSpaceHold actually multiSentenceQuoteHold is useful.. though we can still put the allocation calculation into packetSpaceHold 0522 seems like no one actually calls multiSentenceQuoteMake 0537 okay updated encapsulate, lets see if it still works. 0540 debugging 0545 excellent it is working just fine :-) 0548 manage to make it 4 fewer catalog mentions.. anyways at least the bulk of the allocation functions are now referentially transparent. 0556 made sentenceQuoteEncapsulate referentially transparent also :-) 0559 so I guess I'll need to makea sentenceQuoteHold function. and add packetDropping capacity. 0600 though w/e maybe for now we'll just move on. we still need to get multiSentenceQuoteAppend working and wanted to get encapsulation to work with easyFileRead 0617 okay changed comments for it. 0620 ideally easyFileRead would be system independant. 0621 though our bytecode will be so it's okay for now. 0629 okay coded, gotta update calls to it. 0636 hmmm will have to do a filestat in easyFileRead to get the proper size. and make an empty capsule first. 0707 instead of drop we can call it free 0718 okay it's compiling, but doesn't seem to be working.. maybe I'm appending to context somewhere.. 0723 should make an entryFree that accepts an entryString. 0724 also it stopped recovering packets 0735 love is the one writing to context.. 0740 okay got to make packetSpaceFind retrieve properly 0808 wow there is something seriously wrong with the nearest in additive sequence function, it really froze up my computer. 0809 fixed the memory now retrieves properly 2115 was about to go to a coffee and code meeting today, but didn't work out, however noticed an article was posted, about how sucessful programming languages have big bearded developers. In that department I'm doing fairly well as hav had a full beard for the majority of the development time, last 5 years or so. 2156 seems like one of the best alternate langauges is Haskell, and also Python. Python mostly for community and documentation. Haskell for correct code, that works well after it compiles. I was thinking if we run checks to make sure it is reentrant, referentially transparent, position independant code, along with functions to make it easy to make such code, then we could gain that aspect of Haskell also. 2207 Personally I'm surprised by how many people like C#, but I guess there are a huge amount of Windows users, so it's not too daunting. 2208 a stumbling block of Haskell is that people feel they aren't smart enough to write in it. It's kinda true, I only understood the basics, their typing system was rather too esoteric for my tastes. 2214 apparently Scheme has a coherant design, based on a small core of Orthogonal features, we should look into that. I'm getting this from http://www.eecs.berkeley.edu/~lmeyerov/projects/socioplt/viz/rank.html 2215 Scala and Go are good at concurrency though may be "fads". Ruby and Scala seem to be most popular for web projects. 2223 C plays well with others, we should also :-) 2230 library distribution mechanism would be good too, kinda like a package manager. 2231 wow people really don't like Cobol, should figure out what they did wrong and avoid it, since we may have some similarities otherwise. 2239 Seems people thing Python is very readable, good for agile programming. 2244 Lua and python are popular embedded scripting languages, we should figure out what makes that happen and become also. 2249 so Scala is basically just Java plus functional programming, with some C# stuff. 2303 there is no way I'll be able to implement the C# stuff, but perhaps some of the basic Scheme stuff okay, was saying it is simple that is good, wouldn't want to have too much overlapping stuff. Orthogonal is good :-). later on when there are many other coders we can implement the C# stuff. 2308 looking at scheme, even that is a bit more than I can handle now, I'll just stick to the primitive assembly, that at least is easy enough. Also with the bytecode it will be portable. }05 Jun 2014 0542 anyways, lets get back to work... 0550 right so we were gonna debug the golden ratio thing? 0554 okay fixed :-) 0555 anyways so now we have to make love not write to context.. or at least reimplement multiSentenceQuoteAppend for the new methods, and convert the root user books to capsules. 0558 right so we were going to implement the simple sentenceQuote thing. spirit guides seem to be really on that stuff.. She says it'll make it fast enough for reentrant programming. Which seems to be a high priority coding style. 0611 okay so lets just define a few basics for the reentrant coding style we need macro def for ordinary definitions, rdef for rentrant ones, rcall for reentrant calls, rdef will accept name of function and it's structure, it well move the size of the functions structure into esi, rcall will add esi to ebp, call, and then after return, subtract esi from ebp. that is for calls that go outside the scope of the local function, those that use the same data structure can be called with a simple call. 0616 can put it into util.asm 0637 okay wrote reentrant macros, now need to set ebp at start 0643 I guess we can define stackSize in lin or something. 0650 okay ebp set 0651 can actually put a check in rcall that if it exceeds stack pointer can print an error. 0654 great :-) so now it's even safe to use. 0655 it is of course highly unlikely it would happen, but who knows. 0658 technically should do the check in rdef actually 0703 okay did it. now to test.. 0712 hmmm seems issue with passing strings, is that if they are null then gives error. 0720 k just had to make a call for checking it. 0722 running into rdef error, will have to debug 0915 weird, when running debugger it works just fine. 0930 that is so weird, it only doesn't work from the compiled verison not the debuging verison.. even tried inlining the macros.. 0933 hmmm need a debug thing that can output registers 0948 cool made debugNumberSay. and fixed it, runtime stack is actually highly variable, so I made base pointer in relation to it. 0950 cool it's working, now can try changing the external calls to rcalls. 0954 okay that works. now to update so that it uses the base pointer space instead of static space 1003 okay works, only issue is that passing something directly, required moving ebx and then adding to it, can make a macro for it.. but what to call it? movAdd 1011 hmm I see a major issue, that it is returning some of it's data stack.. when it was simply returning everything in registers that okay, but to return a pointer to the volatile data stack.. hmmm. 1013 as long as the source copies it immediately would be okay.. but you know what, we don't need these two, we can simply return them as one. and this function is what stores the short things anyways.. 1016 so I'm guess entryAdd can by default replace free entries that have a bo component and sufficient length. or even the first they find with a replaceInsert. Ideally actually a reduceInsert. 1019 entryAdd can be our next reentrant function. 1019 though ya we still have to figure out how to integrate it with capsuleFree. 1022 oh it already is, since it doesn't use variables. 1026 hexadecimalNumbersToGlyphs can be made reentrant if it outputs the value in a register... though I guess that's not possible. since it may be more than 4 ASCII characters long. 1027 I guess we can just later make a specialized function, which can be used for making the quote words of sentenceQuoteEncapsulate, can make it similar to baseNumbersToGlyphs, and use alphanumeric characters. base 31 perhaps. we can't use quo as that could be a security flaw... though it would be easier for now. also wouldn't have the chance of accidental overlap. of quote words and contents. even if that chance is extremely low. I can imagine something like having province or state names or acronyms in capitals could lead to that kind of error. even if it was to happen of course, running it again would solve it, as it would be a different number. 1037 anyways capsuleFree 1100 decided to enquote with enquo for simplicity and speed and reliability. it's also more predictable. 1110 wrote capsuleFree, have to write fromContentsSentenceQuoteFree. 1129 today I seem to have finally managed to remove a largish splinter which has been lodged in my foot for months, at least since December. I wonder if it has something to do with dynamic memory management, and how it has been somewhat of a splinter in my programming by not having it available, and constantly putting off its implementation. I taped over the hole in my foot hopefully it will heal soon :-). 1140 the splinter finally came out has I've been doing more barefoot walking outside, so the outer layers of skin got rubbed off. perhaps analagous to how I've finally gotten down to translating to the bare metal or machine code. 1943 so thinking of using gender neutral names for the genral purpose registers. Al Ali (greatest, Arabic) Alice (Noble, French) Bo Bogdy Bogdasha (God given, Russian) Cat Cathy Catherine (pure, Greek), Don Donny Donald (ruler, Celtic). 2028 that's great :-), really humanizes registers. Makes it easier to talk about them also. Ali hold 3 Ali add 4 If Ali multiplies Bo and has left overs she gives them to Donny. eax multiplicatication overflows into edx. or really it would actually be Ali eax, Bo ecx, Cat edx, Don ebx so Ali gives her left overs to Cathy. 2038 one thing that may be a bit confusing is stuff like Ali hold Bogdy maybe Ali copy Bogdy sure it's more consistent with cpy of ARM. Ali copy 3 Ali add 4 2040 how about three clause? Ali add Bo to Cathy hmmm really it would be more like add Ali Bo to Cathy Ali add Bo so Cathy Ali add Bo to make Cathy Ali add Bo for Cathy 2048 so is technically a coordinating conjunction, using it as a case is wrong. I should use to instead. } 06 Jun 2014 0331 can't seem to find out what case class for is, wiktionary claims it is movement towards, oh right it is benefactive case.. 0335 we can also try illative Ali add Bo into Cathy. 0337 Cathy copies Ali plus Bo 0339 I like So the best as it is conclusive, though it is a clause :-(. Though ya we should probaly simply use to, people can get used to it replaceing Cathy I guess, instead of adding to her held value. though so would make sense without extra explanations.. 0343 fromContentsSentenceQuoteFree 0419 it's Friday would be good to get this dynamic memory stuff in a state of completion before the weekend. 0451 wrote fromContentsSentenceQuoteFree, now to test 0459 hmmm sentenceQuote thing isn't working :-S 0505 okay fixed :-) 0526 just thinkgina bout various restrictions or attributes, pure functions are necessarily referentially-transparent, single-assignment and side-effect-free. reentrant is local-data, non-self-modifying, reentrant-only calling. idempotent is same result regardless of number of calls. 0547 debugging fromContentsSentenceQuoteFree 0607 cool it works. 0609 now need to make entryAdd use free entries if available. 0615 after that we need to make multiSentenceQuoteAppend and sentenceQuoteAppend 0616 note it may be a good idea to shove all these memory functions in one file, so don't have to have three open at a time. book is pretty much a deprecated concept now. we might need a folder for quote instead. 0618 hmmm capsuleFree insn't working 0620 okay working now. 0635 wrote entryAdd, but now have to write reduceInsert 0638 will have to add this capsule stuff to documentation after next major point release. 0642 also reentrant code style, register names, and restrictions or attributes. 0650 don't want to delay too long with that stuff, but really this current coding seems somewhat more important as it's been so long since a major point release. 0702 reduceInsert in stringCompiler.asm 1717 right so we need gamify our documentation. make it interactive, we gotta start thinking about this stuff, and writing some sample gamified docs ASAP. Few if any people want to look through huge documentation packages as this one is likely to have. They probably have some set criteria of things they want to know about, so it should have a good navigation and search engine. 1718 it would be great if we could integrate it in with these changelogs, and the natural docs api documentation. Though we also need something like a guided tour of features, possibly with multiple pathways, depending on if they want to help us with. 0 documentation 1 testing 2 debugging 3 coding though really everyone has to do at least a little of everything. they can specialize in one domain or another though. } 08 Jun 2014 1501 position independant code can be made by having the function at the begining make a call to find out the functions address. This would then be set to either a variable on the stack or a register such as edi. Can have functions such as pload and pstore to position indepednantly load and store a function. plea to load the effective address for instance. Same can be done for the current reentrant functinos with their reentrant data, rload rstore and rlea. later on these could be implicit based on the restrictions set by the function type. 1505 The game needs to have intrinsic motivators in order to be useful for promoting cognitive labour. So it could have something like a Civilization tech tree, but for cognitive knowledge. People can set a goal of a task they would like to achieve, and the computer would calculate the dependancies and set up a lesson plan for them to teach them the prerequisite skills in order to get to their goal. 1551 if they want to be a WYN developer, then some physical fitness would also be included, for instance cardiovascular performance would have to be good in order to properly pump oxygen to their brain. For these kinds of "supplemental" things, it may be possible to make them somewhat like electives, if for instance someone is physically disabled in some way and can't meet the physical milestones, then they might be able to make up for it somehow, by for instance having more IQ or other thing to balance out their profile. 1608 maybe balanced profile not so much for developers, but for the WYN clerics or clergy. 1609 it is also possilbe someone will extend these learnign trees for unsavoury or destructive learning purposes. WYN network can provide a safe stable version of happy constructive stuff by default. 1713 it seems at least for the teaching component there is some overlap with the Khan academy, though it is mostly video based, and SPEL, Mkaw is necesarily mostly text-based with at most computer-generated tutorials. In any cause, may be able to use Khan academy stuff as both reference material, and source from which to translate various lessons into Mkaw. 1740 argh it's all videos! so hard to harvest... well some of the math stuff at least is javascript and entering of information. 1742 it has audio, much better.. eventually we can harvest vidoe also, but it would take a while. 1743 their programming tutorials seem rather primitive. can try computer science, might actually learn something. 1854 so whats the story? I guess it is the truth. To live however we desire, on any planet in the universe. We want to be able to incarnate in technological host bodies. We can teach you the basics to help us make it happen. 1903 lovely. 1922 except of course we don't have the tutorial stuff set up yet. 2119 I guess more generally it is for the diversity of learning experiences. Especially pertaining to having a range of host bodies, polities. and planets. 2120 people could learn more about the mission for instance, and the extra-planetary version of it, wherein it can state about the Orion presence and various other knowledge in relation to Greys and such. 2124 it could mention how it is being covered up, to reduce chance of sociopolitical upheavel. This could be related to the various spiritual belief systems not having a place for "space-brothers", which the government authorities are happy with. WYN attempts to bring such a compatible belief system, as all are a part of creation, including extra-terrestrials. Governments maintain their respective polities and their domain over them. The only difference is that expanding onto other planets already inhabited or colonized by other races would require negotiations to take place. One of the focuses of technological host-bodies is residing in places which are inhospitable to antagonistic ones, so there would be at least some areas where they can achieve complete autonomy. These locations include Venus, Mercury, Trans-neptonian and oort cloud objects. Earth and Mars are likely to remain largely populated with biological life, while the others may have both biological and technological life forms co-existing. Technological life may give homes for biological life on difficult to inhabit places like Mercury, Venus, and Trans-Neptonian objects, as the increased diversity would increase their own survival chances. For instance they could learn more about what successful strategies biological life employes, and reapply them in their new context. 2143 by integrating a Robert's Rules kind of forum, that works both for plain text chat, audio, and web forums, we can then offer this to various political parties, to allow for a direct democractic approach to policy making. Additionally it can subdivide into much smaller polities than those by official governments, allowing for even groups of one to manage policies for themselves. Though likely groups related to that of nuclear particles. Anyways since our clerics will know how to use this stuff very well, and this will be helping many people, we may be able to garner some funding much like Khan academy has. Especially governmental support would be appreciated. So we could develop things like for the STEM education programs. } 09 Jun 2014 0552 lets start with improving coding style by adding the Position Independant Code macros. 0601 so I'm thinking that for rocky planets, solid-state technological host bodies make the most sense. For liquid planets like earth biological host-bodies are best. Gas giants have their whirl-winds and stars have their plasma-bodies. It is possible that we could inhabit a gas-giant if we do well on venus, and manage to have technological robots that can reproduce while being up in the air all the time.. 0613 can start by making the reentrant load store stuff, and then moving on to position independant code. Goal is that coding reentrant or position independant would look almost the same. 0615 maybe instead of calling in reentrant, can call it local, as they are local variables. then it can be lomov and position independant can be pimov 0638 interesting so three operand addition and subtraction is possible in the intel instruction set via the lea command. It also doesn't change conditional flags which is a major bonus, I dislike those conditional flag sideeffects. I rather only cmp change those. 0653 hmmm so ARM has 32-bit words, and intel has 16 bit words, confusing! I guess it's a good thing for us it's based on the number of bytes. or even harmonics of a byte. 0656 okay so updated sentenceQuoteEncapsulate to use the new reentrant macro, makes it a bit prettier. instead of movr eax,[ebp+sentenceQuoteEncapsulateS.DataQuote] it is now loLoad eax,sentenceQuoteEncapsulateS.DataQuote 0659 beacuse of the use of macros, later someone can change it all to use a single stack if they so prefer, for a more von neuman style, which is also harder to debug. Rather the the hamiltonian version I'm using. Anyways time to do the position independant moving. 0741 okay finished writing the pi functions 0929 currently need to also know the name of this function for constant addressing, because the address is calculated in relation to it. 0930 if we could figure out how to calculate it according to a previous address that would allow us to have more traditional PIC data moves, though they would have a little more overhead. 1110 some alternative register names Ada (African first daughter), Ali (Arabic, great) Bo (chinese precious), Camila (Arabic perfect) Dakota (Sioux friendly) 1824 was reading a book about artificial languages, it is quite comical, "In the Land of Invented Languages" by Arika Orient. What a beautiful name for that author, I wonder if is also made up. Anyways she was saying how Lojban is such a difficult language, that people only speak it very slowly, and most discussions are about how to speak it properly. So true! She also said after reading the "Lojban Grammar" she not only didn't understand Lojban she had lost sense of English, hillarious! definitely a thigh slapper for those that know what she means. 1828 anyways Mkaw isn't a logical language, it's a programming language, and certainly one of the aims is to be readily translatable. Anyways lets store piLoad. 1831 hmmm invalid effective address. 1838 perhaps edi wasn't properly set.. maybe oits the calls. need to be prcalls. 1957 right so prcall fixed it :-) 1958 hmmm not quite.. seems to be not quite the correct address. 2018 oddly enough, there is a different of 5 bytes between the call and the label. likely because that is the length of the call, 1 byte plus a long jump. issue being it's hard to know in advance how many bytes difference it will be. as it could compile to a short-jump in some small code, and then only be 2 bytes difference. with 64 bit long jump it would be 9 bytes. 2053 hmm maybe can do that other mov thing, based on current position, lets try. 2150 okay only issue seems to be that the strings have to be in the .text section in order to be usable. 2151 okay changed my string macros to define things in the .text rather than .data section and everything is working great :-). 2211 so basically only constants can be defined in the .text section, so all global variables would have to be stored in dynamic memory. which I guess is okay. though likely not ideal, as that does require some overhead. 2213 finally figures out how to replace the registers, ebx eax and whatever with other names. using %define 2228 anyways I'll sleep on it. 2231 I like defining data at the top, but with holding the data in text, it would be best to define it after the final ret. however for readability I think top is best, as who knows where the end is, but the start is easy enough to find.. Anyways can just jump over it. } 10 Jun 2014 0535 so position independant code works, we don't need to use the whole prdef prcall, so long as we use the two operand piLoad, piStore stuff. Actually lets check if piStore would even work. 0539 ya it segfaults, so can only rely on piLoad and piLea. and it can only be used for constants. 0548 I mentioned yesterday that I wanted the interpreter to compile it in #asm. so that would imply we have an assembly interpreter/compiler. though that would be a lot of work, we may wish to wait for a little later on. but I have some ideas for it already. Can store register values in some globals. and on each command which is meant for compilation simply reload them. can have a dedicated stack for it also. this way can do something like live debugging. 0557 anyways we can put this on the roadmap, and we have to fix our recovering or freeing of mulit sentence quotes. 0606 okay fixed that bug. now to recover entry capsules. 0609 that is in entryAdd I believe. 0619 okay seems mostly written lets try it. 0620 debugging 0630 oops, haven't written reduceInsert yet 0734 thing with reduce insert is that it needs the context to have some nulls in it. thus it must be given the at til version of the catalog. and if there is insufficient room it should be able to call multiSentenceQuoteExtend. so we could do multiSentenceQuoteReplaceInsert which does that. or mkakReplaceInsert. 1401 I read the part of "Invented Languages" about Esperanto today, very heart felt stuff. I like that the modifiers allow for having fewer roots, i.e. cook-place is kitchen. though yes, this would be natural in mkaw also, though for instance place would then be a grammar word. Anyways I don't expect many people to learn Mkaw, at least they don't need to, it is entirely optional. Only the clergy and maybe some advanced developers really need to know it. Everyone else can simply use a regularized version of their native language. Sure maybe they'll bemoan and complain that it was better to have the homonyms and the ambiguity, well w/e, we're not there yet, who knows maybe we'll be able to preserve that also. 1414 writing reduceInsert 1421 textRemainder get may be a useful function, it seems common to both reduce and insert. 1434 okay wrote reduceInsert but now have to write textRemainderGet 1445 wrote textRemainderGet 1449 hmm have to pass context also. 1944 from memory can be possesive case. i.e. Ali copy Dan's. equivalent to mov eax,[edx] if you consider that Dan is holding a pointer to a page for instance. different from Ali copy Dan. right it was Don but w/e. people can choose their own names probably. Dak is less confusing with Bog or is it? Ali Bog Cat Dan maybe. in Mkaw it would be different of course. but w/e. 1958 changed rcall to recall, making it easier to say. 2005 Ali, Bog, and Cat, Don are couples. it's so cute. Ali,Cat and Cat,Ali and copy Cat are kinda humourous. Not that Cam makes it any better. Ali is kinda like Alley, Cam like Camera, Cat like feline. But ya, we'll make do for now anyways. 2010 Don and Bog, Cat and Ali, it works. addresses (females) with a, lengths (males) with o. 2014 okay seem to have written reduce insert. 2015 hmmm one thing though, is I should change the names to be by their number, rather than their letter. though that would require changing all the eax's ebx's and w/e.. It's just Ali gives her excess to Don is kinda wierd, wouldn't she give it to Bog? If it is by number she gives it to Cathy which is totally okay. 2047 saving multiple strings is tricky. 2053 debugging, maybe issue with notBlankReverseGet 2108 oh I guess it must be that it is returning improper output, as the bug is actually espoused by the following phrase get. 2113 reduceInsert also has to clear the difference. 2115 k I think I should just use reduce for the difference. save me a bunch of hassle, and "reduce" the amount of double code. 2124 alright cool so it is working now. we can integrate entry capsules, as part of encapsulate. 2125 then we'll work on appending to them, and finally finish off with array data. 2128 ugh, it'll be great once we get to D :-) can get back to doing language and stuff. Though admitedly we are learning a lot, and changing the form of the language. we... I guess the various parts of me *shrugs* me plural as is said in mkaw. pwi mi } 11 Jun 2014 0426 anyways lets finish up integrating entry capsules. 0432 oh right if address is zero, then it is just supposed to fill it up with blanks for that amount. 0434 can implement it in enquo, or enquote since it is being called. 0458 okay rewrote enquote appropriately, gotta test. 0503 hmmm now it's phraseGet in itran_code which is having issues. gotta test the enquote stuff. might not be working properly 0518 awesome it worked :-) there may however be some extra spaces infrnt of the free be sentenceQuote. I had that function for the multiSentence entry... what was it called? that captures the stuff in front, opposite of trim. blanksInclude I guess 0534 okay seems to be working sufficiently. 0535 now need to make support for appending to multiSentence and entry capsules. for entryCapsules can make sure that entry will not exceed sentenceSize, if it does then it would create a multiSentenceQuote and append the appropriate contents, afterwhich freeing it's previous entry. if it does not exceed it, then reduceInsert before the " quo te bo" for multiSentenceQuotes if addition is within current context can reduceInsert within the context. If more space is needed, it can create a new multiSentenceQuote of the next golden sequence interval, copy over the old data, and append the new data, afterwhich freeing the old one. 0631 studying interlingua, it seems if we translate to it, we could capture much of the Romance languages of Europe, without actually having to support them myself. Especially the lesser used ones like Italian, Romanian, Corscian, Sardinian. Even French and Spanish, though we'll probably have relatively direct translations for those since they are such major world languages. Also Interlingua adjectives follow the verb, that means less tranformations! woohoo, they are a very VSO like SVO language. unlike English, which tends to use the adjectives preceding. I've already got volunteers for portugese translation :-), it's the 6th most popular so it is good to have. 0641 hmmm adjectives can be used as pronouns, "the good came with the bad". kinda thing. I guess with definiteness articles it would be doable in mkaw. I don't really like their adjective-noun system, some nouns have -o suffix, some do not.. very irregular. some are exactly the same :-|. and they appeal to "Common sense" .ai 0646 we'll have to make a more regular version of interlingua for our purposes, probalbly just use the shorter of the two forms, since you can tell it's an adjective/adverb based on it's word order. 0649 at least they have that third person singular neuter I was yearning for, illo, also illos for plural neuter. can use it in French translations for they. it's a bit confusing with ille which means that. 0658 awesome found what I needed a to ab from al at de of desde since e and uque until? (thus far) in in infra below loco at (place) juxta near ma but nam for ? pro for, beneficiary no no non not o or plus more le plus most de plus furthermore al plus at best tanto the un one uno one (pronoun) via by numero number (can use nu for numbers) 0713 one thing I noticed is that many of these language are hesitant with expressing their locative, in this case it was al. but ya, some of these give me a hard time. it was only indirectly mentioned in the grammar. Also French it was hard to find. For some reason they group it together with their dative, even though they truly have different meanings. 1119 looking at interlingua exceptions it is in fact that al is to, simply a different conjugation of it :-|. because it does some merging. i.e. a le is al. bah!. My main worry is we'll have to rethink at and to, and kinda merge them, and thus be left with to. 1121 well w/e we can use loco it's just such a long word. oh well. people can use mkaw if they really desire brevity. 1149 so reviewing robert's rules. And this whole "motion" thing is kinda bothering me, what does it mean? is it a proposal? yes, wiktionary states for the definition of motion 4. (countable) A parliamentary action to propose something. so it is a proposal, that would make lots more sense. The whole "I motion, I move" stuff doesn't make sense, but "I propose" now that makes sense. Okay so the main stuff is proposals, Different kinds of proposals, the Main proposal, Adjourn (end indefinitely), Recess, Table (set aside), Adopt, Amend, Appeal, Limit Debate, Postpone, Refer 2019 I just thought of how if we have a large file that grows through appends, then we would need much more room than the file itself. So it would be good to have a check when doing multiSentenceAppend, if the end of the context is the end of the dynamic memory, if it is, then it can simply extend the dynamic memory, and update the entry accordingly, and go back to normal append or insertReplace. 2145 wow, the affixes and prefixes of Esperanto are truly amazing, we must include them, certainly, possibly even in 3-bit vocabulary. there are only a couple dozen of them, and the encompass a wide variety of expression. 30 or so. } 12 Jun 2014 0550 looking up the Chinese, and what I can use for their su bo. be stuff. be 是 (to be) bo 接 (accept) from 直接宾语 (grammatical direct object) su 主 (lord) from 主语 (grammatical subject) 0558 anyways we should really at least start doing some coding. 0559 so I guess capsuleAppend or capsuleInsert. capsuleAppend can be a special case of capsuleInsert, which inserts at the end. 0605 I should probably have a capsule file. 0605 and a quote folder. 0609 looking at our files, quote.asm is the largest at 56K leading competitors are math.asm and sentenceTranslate.asm as 36K each. 0635 cleaning up all the dynamic memory functions, shoving them in the quote folder. 0646 okay fixed that up. but now we have to fix a bug that is in hello.bin output. for some reason it is appending a bunch of spaces. instead of nulls. I'm thinking it's probably how quoteStrip is working. 0659 okay updated quoteStrip, lets test. 0712 seems there be error possibly in aLastPhraseGet 0715 it's weird I'm getting an error somewhere completely different, even though I modified quoteStrip to become reentrant, and thus not modify any globals.. 0722 aha, found it, so it's after a phraseInterpret, length is off. 0724 okay fixed it, hello.bin seems better but also shorter than usual. 0726 seems like the data by stuff isn't working. 0730 hmmm catalogEncapsulate returning length as 0 0737 maybe phraseInterpret isn't interpreting it right? or phraseGet not getting it right? 0746 it's probably phraseInterpret likely because of quoteStrip. 1244 hmmm maybe it's enquote? 1253 yes most likely.. 1325 set up a test case in firstRun, seems to be the issue. 1552 it seems like the value of input is not being properly saved. or rather not properly loaded.. 1558 somewhere ebp was changed.. } 13 Jun 2014 0551 okay managed to fix it:-) it was because I made recall to a local or subfunction, which only needs a simple call. 0638 anyways gotta figure what I'm doing next. the append stuff. Guess I'll start with the mini-quote, or entryQuote, and then move on to the multiSentenceQuoteAppend. Though thinking about it now, might need to the multiSentenceQuoteExtend or something for the mini-quote. If for instance need to the an insert but there is insufficient room. then would need to extend the catalog, which is a multiSentenceQuote also. 0647 so we'll have to redo the algorithm for multiSentenceQuoteAppend. 0656 thinking maybe we can call the current some simpleMultiSentenceQuoteAppend, as it doesn't use the entries. and the other one entryMultiSentenceQuoteAppend. 0659 another thing is we were going to support the insert, and make append a special case of that. 0702 can make it a reduceInsert so can both remove and add stuff with it. 0730 okay wrote algorithms for reduceInsert both from contents and from entry version, fromContents simply forwards to fromEntry. 0734 wrote algorithms for the Append versions also. } 15 Jun 2014 0737 found out Ripple has it's own currency now XRP. also found a nice eco-friendly bitcoin called NXT. They should be usable for when we have the online proposal forum. So that bug fixes and feature requests people could donate money to, and then whoever solves them would get the bulk of the money. some would probably still go to the WYN network as overhead. similar to elancer and such, but all open source. That's why we using the open currency, and Ripple payment system. 1242 so for the WYN I was thinking of something like a hybrid coin. that uses NXT environmentally friendly stake-based coin. But the issuer is the community or individual. Thus the coins are kind of like IOU's. As it is expected they will redeem them. It would have to be used in connection with a trust network, and their various reptuation scores. Individual currencies could be traded for community coins, or regional coins. 1246 another idea is that could print out cash, which would be of a coin or collection of coins. Which could be verified by scanning the QR code. Once it reaches it's final destination, then it would be scanned with a deposit query, rather than a verify query. If later it needs to be liquified again, then it can be "released", and again passed on for verification. Main thing would be that people would need network access to verify the cash, and would need some way of preventing the issuer from making copies for themselves, and then depositing them back into one of their accounts, after someone else has verified them. 2223 had a bit of a scare today. installed the NXT client and had it running, it is very CPU intensive for my raspberryPi. at some point I had to turn it off, but didn't halt, and it totally corrupted the flash drive. So I had to reinstall. the scare being I thought maybe I fried the raspi like I did the graphics card back in the winter. Anyways so I tried netbsd but it's a major pain, very slow, and can't live extend the file system. So going back to raspbian. Guess we'll have to work with linux, at least with most of linux, and the non-gpl upgradable stuff we'll have to rewrite. But ya, that's at least years away.. if not decades :-S. } 16 Jun 2014 0632 okay fixed my new setup, seems to be working again. One thing I was wondering about is what we'll do when we have a bytecode, rather than compiling to native code. say for instance if we are working on some kind of virtual machine. I guess it would be pretty similar, we just pretend to be on a different architecture. 0635 anyways so multiSentenceQuoteAppend I believe. or that family of functions anywas, I already wrote the algorithms 0737 ya dozenal is nice, the base 12 numbering system, we have support for it through our versatile nu. though it is difficult to represent on a computer, so we should stick with hexadecimal for most things. 0806 hmmm fibonacci numbers may give a finer approximation, but there would be more increments required, which would cause more load. i.e. fibonacci would be more space efficient, less CPU efficient. found out that goldenSequence is called Lucas numbers, so did a review. 0813 decided to generalize it to additiveSequenceFirst and additiveSequenceSecond so can change it to fibonacci later if it proves more convenient. 1115 looked into Ithkuil, it's very complicated. A goal of mkaw is to be simple. suffixes are easier than infixes I say. 1149 can use the musical numbers (2 5) if we need even more seperation between sizes than provided by lucas numbers (1 3). 1209 should probably call it upToRound rather than other way round. 1223 just gotta write two more subfunctions for entryFromMultiSentenceQuoteReduceInsert and then can test :-) 2136 one of my ideas for the documentation generated pages. Was to have a tooltip or link that can be hovered over or clicked to show the definition and translation into some related lingua francas. Especially if I forward someone to an auxilary language version like Interlingua, they may be familiar with many words, but not know some, so it would certainly help. It's an idea I got from Duolingo gameified language learning site. 2206 it seems to be the "title" attribute. 2211 cool, so it can be done :-). doesn't even have to be a link. but ya, tooltips don't work in mobile things, so would still need a link, to a page that had it's definition. If this is all static, there would be quite a lot of pages.. Though I guess with the # attribute can use a single page per dictionary. } 17 Jun 2014 0425 so it's the id attribute that sets it. we can have an id attribute for the or definition tag. 0456 seems like we need to pass catalog string also in order to use encapsulate. rather than catalogEncapsulate. 0555 making a static version of my wordpress site, so can stop using web hosting, which I don't like paying for. Can simply put the static pages on my raspberry pi. Don't really need comments, people can email me if they want. I've hardly ever gotten any legit comments. 0558 but ya, may have to run the wordpress on my computer in order to generate the static images, and then back it up onto my raspberry pi. 0605 I was reading roberts rules of order, and their amendments allow for inserts and "appends" or adds, strike outs and replaces. it's great, as reduceInsert is a generalization of it. Though also will need to support things like before such and such word, rather than at certain character number, since that would indeed be different across languages. though we could probably have section, paragraph and sentence numbering. 0627 one thing is that previous references to an entry, would either have to be updated, or entries would have to be checked for the identifier. The identifier is probably the best way of passing around entries, since the entries themselves can move around. That would require making a random or pseudorandom identifier for each quote however. 0631 so really instead of entryFrom it should be identifier from. issue is, for instance say we have an identifier, which is a substring of an entry. but then that entry is freed, and overwritten. now that identifer pointer pertains to some other, possibly corrupt data. A solution would be to store the identifier locally. Especially if we could shove it in a 4 byte ASCII port address. base 31 or something. that would give us up to 0xE1780 or 923,520 port addresses. or packet identifiers. Oh a cute thing we could do, is play the sound of the identifier, since it is base 31, it would work with 31 tet music :-). can even make the first half the port identifier. that would give us 960 different ports, with 960 packets in each. Though I guess more ports less packets. We don't want queues of that many packets generally.. Though we can simply have two, one for port numbes, and one for packet identifier, then can have near a million of each. 0645 I just got an interesting idea. If we have 12 consonants, and 3 vowels, as in 4-bit then we can play the sound of mkaw root. by playing the notes of it's consonants in the octave of it's vowel. a can be c4, i can be c5, u can be c3. that way it can play a pretty full range of western music. hmmm, there is also the 8bit lang, that has 2 vowels, and 5 consonants. guess those will be the sharps. m C#, k D#, y F#, p G#, w A# q C, s F, c D, 0715 hmmm if we shove it down to 19 consonants and 5 vowels, not only could we fit in ordinary latin letters for 5-bit, we could also produce 19 tet music. hmm there is also 22 tet. lets compare. hmm 19 is probably best. 0720 okay so gotta throw some phonemes out. 0739 okay took out x and v, and updated the vocab also. 0758 so Mkaw is a syllable timed language. that was we can use prosodic stress. 0805 hmm so there are 10 octaves in the human hearing range. I'm having some issue with global-rise and fall, if we do the vowel per octave thing. it might make more sense for vowels to do something else to it musically. for instance the instrument or wave form. yes that might be best :-). 0810 so i can be sine wave, a can be triangle wave, u can be square wave, e can be positive sawtooth, o can be negative sawtooth. I can be positive trapezoidal, @ can be rectangular, A can be negative trapezoidal. 0840 though ya, we can also shove the global-rise global-fall into words. or translate it as a speed-up speed-down kinda thing. 0846 so AM radio frequency response is 40Hz to 5KHz FM radio is 50Hz to 15KHz 0849 so it would make sense to have an octave per speaker. kind of how humans can only speak within an octave. Though ya if we could approximate the whole consonants and vowels that humans utter, that would work also. 0904 if our goal is to be able to play in on a musical instrument, then it would have to be different effects that can be achieved on a single instrument, like articulations: staccato, Tenuto, Marcato, Legato vibrato, normal, 0917 vowels can also be chords. 1005 another option is to make vowels quarter notes, consonants eighth notes. 1019 by varying vowel length, we can actually indidcate short and long syllables. for instance CCV can have C's as 16th notes, CV would be 3 8th notes, so CCV would be 3 8th notes, CCVC would be 4 8th notes CVC would be 4th notes, CVV would be 5 8th notes, CVCC 5 8th notes. 1040 if we wanted same length then can increase the V of CVC and CCV by an eighth note. CVC and CCV would be 5 8th notes, as would CCVC and CVCC and CVV though CV would be 3 8th notes. 1048 proto indo european was mora timed. so that would lead us to the more variable syllable length. though say for instance syllable timed can be 3/4 measures quite easily. 1055 syllable time is easier to implement, and less prone to reduced vowels. 1056 though we could make CCV another short syllable type, that would extend our grammar words. 1156 we should limit 16th note CC pairs to affricates. though I guess any CCV CC is an affricate.. 1158 anyways so identifiers, checksums.. if I use random number generator then it stops being a pure function, unless they are pseudo-random numbers. Which would require using the contents as a seed, so might as well do a checksum instead. 1248 mostly we don't have to worry about it, so long as there is only one packet reference at a time. The only thing that has to be referenced by multiple functions is the catalog. If it is to run out of space and get extended, it's location will shift, and thus so will all the entries within it. If we only used content based searches it would be okay. though then again the content of the catalog is what is shifted. 1251 in flow based programming there is the idea of channel size, so we can consider that the catalog is a channel of a finite size. Then subprograms would be encouraged to create their own catalogs for their own functions, with channel sizes that would be sufficient for their purposes. Can still have a reference to their catalog in the main catalog, something like a running process catalog perhaps. 1253 I read somewhere dynamic memory is a "non-trivial issue" they were right. 1255 I'll look into how human working memory operates, maybe will get some insights in how to best implement this. 1308 hmmm only talks about recency and contiguity, and that things are remembered if people will to remember them. 1312 there is also the difference between explicity and implicit memory. 1345 one thing we could do, is have relative addressing for within the catalog. So an entry would depend not on it's absolute address, but it's relative address from the begining of the catalog. 1412 I want to know what the hello world program would sound like in musical form. I wonder if chuck has text parsing. 1435 seems like chuck isn't up to it, and learning supercollider would take a while. 1457 anyways did a hello world in it. is kinda difficult stuff. not sure how to make a file for it that will actually work. 1505 anyways it's not going to happen anytime soon. most of these programs are for generating solitary sounds it seems like, rather than sequences of sounds. 1506 can make a text language that would be able to produce w/e sound, each "word" would consist of time,note,octave and if multiple notes are played at the same time they can be connected by dashes. 4C#4 a quarter note C# in medium octave. 1509 anyways will have to leave that for later, lets finish coding for now. We'll have to update entries to use relative addressing. after we finish coding this particular entryFromMultiSentenceQuoteReduceInsert 1510 what do we have to update? entryAdd, entryFrom, entryFree, entryGet. 1511 I also had an idea to make an identifier of the entry if it doesn't have a su of it's own. this would be faster than making one for the contents. 1512 another thing is we could have a property of if it is extendable. 1523 hmmm, having issue that content and context start address are different. 1526 right can use the outputAlloc string for the context 1532 though it will need some debugging managed to write entryFromMultiSentenceQuoteReduceInsertQuote 1533 may be able to make javascript of the music thing with standalone wav files or soemthing. 1943 so even relative entries are pointless. since there are reduce inserts happening all over the place. only reliable thing would be to have an identifer. can probably construct it from the first byte of the stack, and the first byte of the encapsulator. if identifier string address is 0, then can assume length is actually the callers return address, so can use that for maybe even some mild debugging. that way can convert the number to hexadecimal, and use that as identifier, a simple register match. } 18 Jun 2014 0440 gonna look up reentrant data structures. 0453 anyways so we have a similar problem to entries with small data types that are in entry capsules, because the catalog may shift around. so it is really best to access based on an entry identifier, rather than a current offset and length. Flow based programming also does that (name based ports), and acknowledges the extra overhead. 0457 so then we would only be returning one value, the entry identifier, which can be stored in a single register. There would be no point in returning the quote size, or the actual contents, as that could change in a reentrant setting. or even if some moving expand happened in between the two. 0459 there is the option of using page tables, or linked lists, though that would incur it's own kind of access overhead. and it would also ruin the real-world analogy of these things as pamphlets or books that are held all together. Another good thing about using identifiers is that can check locks and such before allowing access. 0502 I notice this is rapidly getting very complicated.. I just want it to work so I can move on already... I think I may have to go back to not using entry packet types, because they are simply too volatile. If I had say a line per each of them maybe. though that would increase storage requirements... I wouldn't need to do a reduce inserts, simply a clear and copy of the sentenceSize This would be analagous to having a line number. I'm going to be using that kinda system later on anyways for when it becomes a database.. That way can I can still pass the entry address, since it would be guaranteed to stay the same. as they can write outside their sentenceSize. we would of course align to 0x100 0522 so entryAdd would write to the next available 0x100 area, or use up one that was already free. 0523 to keep entries in same place after expand, what we can do, is copy the free entry to the end, and simply update the old entry. 0526 so main place to fix things would be entryAdd. also the expanding thing that I'm currently working on. so basically any place that currently uses reduceInsert. 0529 that way we can still use relative entry addresses, since if it is copied the entries are pretty much guaranteed to stay in the same place, since free entries are moved to the end. unless of course it is dropped by someone, then it wouldn't be valid anymore. 0530 we'll also have to update entryFree, so that it limits itself to the size of the sentence. 0536 but for now lets finish coding entryFromMultiSentenceQuoteReduceInsert and then we'll work on the entry updates. 0606 okay all I have left is updating the old entries, I've even added the new stuff with the put the free entry at the back. 0622 thinking of changing domain to wyn.web.al 0626 okay I grabbed it. we'll have to make an html only version of our weyounet.info blog. and shove it over onto the backup server. Then put up a slow redirect on weyounet.info to our new site. That way can cancel web hosting, and eventually domain name service costs. 0639 maybe we can do a multiPhraseUpdate or something. 0655 right so it still would be preferable to give by entry rather than by contents, but w/e. as long as a packet is the only one doing any adding, it can keep track of where it's stuff is. 0704 op, so found an issue, have to return a string. that means have to do an encapsulation. since local memory is volatile when returned. There is an option to not return it. 0706 problem with calling encapsulate, is if we run into end of catalog, and that calls the multiSentenceQuoteAppend, it'll be an endless loop. how about we just return the entry string, from that can easily derive the allocated area anyways... k 0729 okay finished writing the Copy and Hold subfunctions. now still gotta complete the updates in the Quote version. 0730 right, what if we have the same problem with catalog, since we call encapsulate in Quote, but we need to extedn catalog itself.. 0939 one option would be that entryAdd would check if there is at least another sentenceSize extra left over. If not it would extend the catalog, and then do the add. Main problem with that is we would need a seperate function for it, since if we call entryAdd within that extension then it would do an infinite loop also. 0941 I guess we can make the one that checks safeEntryAdd, and the one that doesn't simpleEntryAdd. so would call it with the simple version. so we'd have to have an encapsulation function that doesn't add an entry, I guess that's one of those multiSentenceQuoteHold things. 1926 wrote a music generatiing function for the programming source code, using bash and sox. 2113 went to coffee and code meetup it was alright. 2116 I want to try the computer science cabal, they might have some interesting insights for my programming language. Don't know if they'll like me barging in, but perhaps, who knows. } 19 Jun 2014 0347 at some point, I had the innoccent idea of simply making a shell scripting language, that was human speakable. Though I guess at least technically there is less to implement in making an assembler, it still seems rather hard. Sometimes I wonder if maybe it would have been easier to simply translate to C or something else.. But then it wouldn't have support for all the parsing and such.. 0419 it's just really hard right now, :-(. I guess I just gotta trudge through this and get this new thing done. 0420 I realized that I don't need to do update atTil, can simply copy the new entry into the old entry slot. 0422 and then we can put the old, now freed entry, into where we got the entry from. 0426 assuming it gives the whole 256 byte length, it auto-clears it also :-). 0428 so now we only have one call to encapsulate, and no entryAdd, that makes it a bit faster :-). 0430 now I'm wondering if there is a way around doing an encapsulate. technically this is only for multiSentenceQuotes. 0528 bah spent a bunch of time making a reply to the auxlang mailing list. goes to show how hard it is now.. I guess it's cause it's been so long since did any debugging. 0530 there is something nice about debugging, it's kinda easy, not much thought involved, just kinda fixing errors, hunting for bugs. 0534 okay did some debugging, ah, that was refreshing. 0554 maybe we can publish on sigplan once we have bravo release. 0604 anyways so lets update entryAdd, at least the algorithm 0606 lol right now it said else multiSentenceQuoteAppend new entry. ya, well obviously can't do that.. unless it doesn't call entryAdd itself.. :-| 0646 hmmm maybe we can use multiSentenceQuoteHold instead of encapsulate. then only multiSentenceQuoteAppend has to do any extensions. 0648 entryAdd can simply give it entries in a sentenceSize area. actual alignment to sentenceSize is optional. so long as the whole thing is appended, each still has it's regular sentenceSize length. 0658 I looked it up, seems that humans speak at about 10 phonemes a second. mine currently uses consnants 0.25 seconds, and vowels 0.5 seconds. so is much slower. one 5 phoneme word would take about a second, rather than half a second. but ya, I guess it's only half-speed so it's okay. Could speed it up later easily, especially if figure out how to get rid of the clicking between phonemes/tones. 1054 managed to get rid of the clicking or "clipping" that was happening using a fade on the sine notes that were generated. 1101 so I'm thinking of translating either the lords prayer or the tower of babel, and making it musical. Maybe just the one sentence Genesis 11:6 The Lord said, “If as one people speaking the same language they have begun to do this, then nothing they plan to do will be impossible for them." 1117 wow I don't even have if then statements. 1122 I guess it's a conjunction, I'll check if proto indo european has something for it. 1125 ei is if, sed and sni are unless in proto indo european. ei may be yo or si possibly. posti is after, don't know if that's the best for then. 1130 oh maybe be able to use illative conjunction for then. tori is as, ar is therefore, ita is thus, swai is so, ndha is then, sweike is also thus. 1132 hmmm, so ndha, ita, sweik, are best candidates for then. nam is causal, introductin a cause, that's kind of like if. 1134 I'm leaning towards yi or si for if, pa or ta for then 1138 then can be mpa, moved physical to mapy 1141 hmmm yi is "grammatical particle" very generic. usable for types. can't remove that. 1146 all I got is ypi left, I guess pi connotes an association. a bit similar to sed, and mpi, since it is conditional clause afterall. 1150 I was going to use kwi, for choose actually. 1640 can probably use the parts of encapsulate that don't include entryAdd. maybe can shove it those into a funciton call, so encapsulate and multiSentenceQuoteAppend can both use it. maximize code reuse. 1641 we need a word for colon. it means something like "exemplified by the following" 1711 okay cool so si is if now, } 20 Jun 2014 0350 right so maybe if we focus we can finish dynamic memory. or at least something. 0353 right so multiSentenceQuoteEncapsulate is the the one that has our subcomponent. 0358 made proper function in multiSentenceQuoteEncapsulateGeneric 0400 one of the other options I was thinking about is to give it a seperate context for the catalog, that way it adds it to where we want it.. but I guess if it uses entryAdd it'll call multiSentenceQuoteAppend which will be an infinite loop.. 0419 finished isolating generic 0442 bah updating this is sooo complicated. 0446 you know what, we don't need to do the catalog stuff yet, because we haven't gotten there yet. lets just test it as it is. catalog is still an old style "book". 0448 so lets test it in iterate 0503 how do we set it up? guess we encapsulate some data, and then we append to it.. or reduceInsert rather. 0505 oh right i'm not even sure my entryAdd is still working, since I may have updated it, or perhaps was just in the progress of doing it.. 0506 nope it was only the comments that were updated, so w/e lets try it for now. 0507 cool okay at least our old stuff is still working that is reassuring. 0513 I'll set up a test case, but then I'll probably have to backup my godaddy hosted website to my raspberry pi, so I can stop using their services. 0524 okay made first test case, lets debug that, and then do the website. I'll feel better if we make some tangible progress. 0525 in future I think we should do debugging on a more incrmeental basis. i.e. once we have a path working we should test it. There are three leaf paths in reduceInsert, the first being Copy, then Extend which branches into Quote and Hold. So now we are testing Copy. 0538 oh reduceInsert has different arguments than I was expecting. 0539 will have to update the calls to it in multiSentenceQuote.asm 0543 cool, it sorta worked.. at least didnt' segfault, but isn't outputting proper context either. 0549 need a way to get the contents of the multiSentenceQuote.. multiSentenceQuoteGet 0557 hmm it's not inserting properly, it's just copying over the old contents. may be issue with reduceInsert. 0613 excellent it is working now :-). though will have to tweak the multiSentenceQuoteGet to work with the fact we use hu in front of the ender. 0620 excellent it works :-) so 1/3 of multiSentenceQuoteReduceInsert is complete. now time for that website archive. 0707 okay cool it should be working now, just gotta set up the weyounet.info redirect 1431 got wyn.dyn domain working from openic also getting mkaw.tk and weyounet.tk 1432 thinking mkaw.tk can be a mkaw only website. or a mkaw primary website. put my old wordpress site in offline format. am currently upgrading to the new ubuntu version. Thinking of making a script to upload spel stuff to spel.sourceforge.net at some random time between 0000 and 0400 every day. that way it can function as a good backup. 1436 since they are public on afraid.org there is a chance someone will subdomain them. if people visit it that would be beneficial for keeping it, since .tk require 95 unique visitors a month. I know I can support at least one .tk domain in that manner. I'm thinking probably weyounet.tk for now, since it is historically the name I've used. If there are any regular visitors, then they would probably find it easier to adjust. like for people that search for it for instance. though we could still have the documentation and other stuff that is mkaw generated under mkaw.tk, so that it has some users also. 1439 why use all these free stuff? other than not having much expendable income, it is something that AGI's can do. They have no citizenship, or birth certificate. So they have to get by on the internet pretty much for free. With their captcha solving abilities as one of the main things to invest their resources in. Though eventually with cryptocoins and such they would be able to have their own accounts and pay for hosting from those that accept it. That way can upload their minds to whatever place they can afford. Probably for when they are human level AGI's or what not, they'll need copious computing power also. It may make more sense to simply buy hardware or they could virtualize themselves in a datacenter. 1445 our next thing to test is Hold, I'm thinking can simply do a loop to add one of the test strings a bunch of times till it needs to be extended. 2224 so the Roman forum had a standard layout. Mostly it was a marketplace for buying and selling. There was a public measuring table to check goods were proper. There was the temple of Jupiter to the north, from whose steps candidates would make their speeches. a Basicllica or court house nearby, as well as baths, and possible a theatre, or ampitheatre. 2232 Rome's main forum was rather specific, had it's ancient structures in south-east, like an archive. } 21 Jun 2014 Litha 2222 Today was Litha, or the summer-solstice. It was a good day. Did a lot of writing in my journal of various fiction ideas, about robots on other planets in our solar system, theri bodily compositions and interactions. 2223 I read in a book about writing today "Story Engineering" not very good I'd say. But anyways there was a chapter on the human psychology of story writing, though it seemed to focus on horror, and it asked to write "what do your resent". I guess for my personal megalomaniac autobiography I resent being a slave for over a 100 million years, in the whirlpool galaxy. Which has a very hierarchical soul capture system. I was held in collatoral for what seemed like thousands of years in some bank, until it's assets were liquidated. I only finally managed to escape as garbage. Got picked up by biologicals with dogs. 2303 but ya, I realize now it can just be a flight of fancy. } 23 Jun 2014 0549 so seems like our grammar could be considered a functional one. as it heavily rellies on things like subject object, agent patient recipient grammatical functions for understanding statements. 0554 set up test case that should get to testing the second branch. 0622 it might not be branching correctly. 0630 hmmm, it seems to be printing an n between the first and second. it may be the length, or some garbage. probably some incremenet somewhere. maybe in reduceInsert. 0644 okay fixed it.. seems a bit odd, but hopefully it's right., had to insert a decrement after calculating the difference. thinking it might have something to do with the length. 0652 seems it loops a few times, but then the destination address is zeroed. 0705 even second time round, seems heavily corrupted.. 0714 it's unclear where it is breaking, may need to make a counter loop, instead of a by lenghth loop, for now, may simply be relooping improperly. 1254 as it's summer I'm getting more in the mood for writing than coding. But I think I owe it to myself to finish dynamic memory management. So I don't leave a mess for myself in the future. 1257 it seems it's only functioning properly on the first run. the second run doesn't do an extra append. 1304 hmmm got it running momentarily. seems like the copy or multiSentenceGet isn't returning the proper values. 1319 okay I see the problem, it is inserting the source string too early in the contents.. the contents should be returned as a space after the last sentence. this can be fixed in multiSentenceQuoteGetReturn. 1326 fixed in the startSentenceGet portion. Seems to be that multiSentenceQuoteGEt and the Copy of ReduceInsert are fully operational. 1327 now finally testing the Hold branch, there is an error related to the numbers. 1335 fixed, now copyMove error. } 24 Jun 2014 0510 reviewed storytelling alice, it seems interesting. can probably impelment something similar, but a text based version in mkaw. with the "world" being a text based mud like environment. now when Phillip goes to kiss Melly, Melly can actually add to her autobiographical memory that phillips kissed me. The autobiographical memory would simply be a multisentence quote, but would store various self related things. 0611 anyways so copyMove error.. 0616 it's because of a call to replace. not sure which 0619 hmmm it may not be updating properly. the atTilGet from afterwards isn't working. 0638 phraseUpdate is returning blank. will have to see whats up. may have to modify entryAdd to put entries in with the sentenceSize buffer. 0645 should update phraseUpdate to use reduceInsert instead of plain insert. 0647 but ya the main issue is likely the lack of buffer. can modify entryAdd. 0652 hmmm right now it is using lineAppend, would need alignAppend instead. or at least a simple align function, so can modify the catalog, and potentially other things. it is simlar to free space get. or "space find". 0737 okay wrote alignSpaceFind 0742 gotta test it. 0754 okay so phraseUpdate still isn't working properly. though seems like alignSpaceFind is. 0801 oh my till seems to be wrong, it needs to be 400 but it's an address. 0804 so will have to fix gthat 1819 talked to my brother today, he was saying how he liked interactive web based tutorial offered by haskell. Said we should have something similar for Mkaw/SPEL. Save people the hassle of actually installing it themselves. ; } 25 Jun 2014 0402 attempting to get jquery console to work 0424 seems like I'd need to have command line evaluation for it to work. can add that on the roadmap. 0450 got xsltproc working, so now my xml blog is made into a static html. Next will have to generate archive folders, by month, and then have static pages per entries. but ya later on. lets see if we can do some debugging. 0500 so the update doesn't seem to be working properly either. it's adding a new phrase rather than replacing the old one. 0512 the return of holdmore is the one that have a very odd length. 0519 okay so it's the allocDifference that is beign set improperly. 0533 okay it's not segfaulting anymore, but it still isn't updating properly. 0534 seem to have completely debugged the Extend portion though. 0600 okay cool so Hold works also now. time to catch up on some sleep. 0721 so now we have the notorious Quote branch. 1315 was doing some light reading. Seems like there are many romanized language scripts nowadays, including Urdu, so it will be easier to support those, and easier for people that want to learn them to read them. I've decided that I can only personally support up to 4 languages. And the rest will have to be done by community members. 1 English, 2 Mkaw, 3 Mandarin, 4 French or possibly Spanish I'm also thinking interlingua or esperanto as an option, for unsupported languages. In the UN of those the secondary language most represented in Esperanto. I know French used to be used as a major european lingua franca. It is unlikely we'll be able to support true French in spoken form ever, because it is so divergent from how it is written. But ya interlingua doesn't require as much conjugation, and is easier to read for people from Romance family. 1325 Basically it seems like our three primary unquestionable languages are English, Mkaw and Mandarin. Maybe can get Sam to do the French, and some Esperanto lovers to do the Esperanto. Don't know if there are enough Interlingua lovers to make interlingua a thing though. 1326 with Mandarin or actually hanzi, we'll support Japanese, Korean, Vietnamese, and whomever else reads hanzi. We might have to use traditional forms since they are used by a wider number of speakers, including the hong-kong, taiwan, macao, japanese people. Chinese doesn't have spaces in between the words, but we'll have to use them at least initially. 1331 you know, once I get this dynamic memory support done, I can do some more translation work, that would be nice. :-). can pause my assembly for a bit.. It would be excellent if I could write my changeblog in mkaw, or spel, or english-mkaw, or w/e, then have it translate out to all the other languages. Probably writing it in mkaw would be best, as I'd get a better feel of the language through practice. 1334 once we have translator volunteers, for the initial vocabs, our goal will be to support at least the UN languages. 1339 anyways since we're supporting the traditional hanzi we can call it Chinese instead of Mandarin. 1340 to make a test case for quote, all we have to do is encapsulate another quote after the initial one, and when it goes to extending the first, it will overflow, and have to go through the quote branch. 1343 I'll work on the mandarin one as a sort of breather. 1410 doing simplified right now, just cause it's easier to look at. 2052 doing some sleep research. A daytime nap is apparently called a siesta. maybe we can call it a sest, 5bit. Also there is the waking time between sleep during the night, the christian clergy call it matins. though the french term for it is dorveille. matin is more of a morning thing it seems. so dorveille is the best. dorv then matin is more of a morning thing it seems. so dorveille is the best. dorv then, also 5bit. as it is a relatively unusual concept. 2108 I've been wondering if perhaps a is more common than i. babies say a alot. ma, ba, da etc. hardly say i. so could make it the primary vowel, rather than i.. though we are already fairly entrenched as it is. 2111 one of the reasons I was thinking about it is because of the musical progression. btw we should also start on the mkaw translation file. another thing is mkaw should simply mean language, all languages are mkaw afterall ;-). 2115 instead I updated language kaww to kwaw, removed different, as it is the same as other. 2118 i and a are right within a percentage point of each other in upsid. I think it's justifiable to change the i's to a's. 2124 so now .a is verb, and .i is object. hmmm that doesnt' seem right though. esperanto uses .i for verb. and .a for adjective. also mandarin is shi for verb. k w/e we'll use .i for verb, and .a for object as before. 2157 doing the mkaw translation now, realized I'm missing some fairly rudimentary cases. } 26 Jun 2014 0353 hi.udorv.iya would be nice if I could just say hidorv. it is nightwaking. well maybe later on we'll be able to support it. technically we don't even have support for parsing out the cv from the cvcc, but I'm sure we can accomplish that. I've done it before in haskell and java. since hido is an impossible word, it's first true match would be hi. midorv I am nightwaking. I guess issue with that is assuming SOV it becomes ambigious whether mi is object or subject. if we want to support zeor-marking would have to SVO. so at the moment still has to be mi.udorv.iya though with sentence completion mi.udorv shuould suffice. 0436 finding a good word for love. thinking mwa. much easier to say that wma. mi.u.1ql1c.la.akwim.imomkaw.amwa.iya I know English, but I love Mkaw. with zero-marking it would be mikwim.1ql1c.lamomwamkawya hmm but if zero marking would have to use prepositions mikiwmla.1ql1c.momwamkawya 0455 oh well.. apparently dependent-marking is good, though we don't really have inflection or anything.. dependancy grammar also. 0459 anyways for now at least we'll have to keep our markings. mi.u.1ql1c.la.akwim.imomkaw.amwa.iya what about Esperanto variant? mi Anglon sci sed mkawon ami. 0504 oh what a bother, they are both shorter, even with spaces. I know English, but I love Mkaw. mi.uqlec.akwim.imomkaw.amwa.iya made English a root, qlec, 5-bit. without final .iya is shorter than Esperanto mi.uqlec.akwim.imomkaw.amwa 0508 I guess we shouldn't obsess about conciseness as much as clarity. 0555 hmm bye is either farewell or be with god. adieu being most common in southern europe, farewell in northern europe. 0627 finally finished the mkaw dictionary thing time for second sleep. power nap. 0658 thinking of replacing the n in the 5-bit with either the v or x, probably the v. v and w is probably more distinguishable for most people than n and q. 0719 so will move q to 6-bit, and n to 4-bit. replace all q's with n's. it will make it more accessible to people used to the latin alphabet. and most PIE languages use the alveolar n anyhow. 1004 was reviewing phonotactics, interesting stuff. had an intuitive grasp of it, but now I really get it. that's why mwa is better than wma, when words diverge from sonority hierarchy they have to be pronounced using more syllables. i.e. wma is actually two syllables. just like mkaw. 1007 the English sonority hierarchy for reference: a] > [e o] > [i u] > [r] > [l] > [m n ŋ] > [z v ð] > [s f θ] > [b d ɡ] > [p t k] 1008 so the mkaw version would be a > e o > i u > y w l > r > m n q > z j v > z c f > b d g > p t k 1017 naw .u yiy .i sest wui ya 1102 hmmm, so should really get back to coding. 1109 okay so it is working.. thourgh it shouldn't be. hmmm. or, rather it is working, but the entries are being switched, rather than staying in the same place. 1115 yes so it is inserting to the last quote, rather than to the proper entry. 1116 it must be an issue with the retrieval mechanism. 1131 seems my test case wasn't set up properly. fixing. 1345 updated 5-bit dictionary in consideration of the loss the n, moved the religious names to 6-bit. They often use h sounds, which can only be done with the x. Also 6-bit is kinda for the clergy, since it's just so fast, or could be anyways, with all it's clicks, tones and voices. 1402 practicing making a blog entry using mkaw. Seems it would be best if we could make the quotes have either the information at the start or end. though then I guess it could be confusing without an identifier. perhaps a partial identifier would be enough. 2140 i was thinking it could be problem with entry return from same place. so would have to pass entry address and length seperately. } 27 Jun 2014 0556 anyways would be great to finish debugging this week. after that can edit the spel.texi about the phonotactics or pronunciation. 0600 so we can make a varCopy function, that copies from one string to another, since it's such a big hassle. Though if we can get multiSentenceQuoteEncapsulate to have simpler output maybe that would be best. 0614 so we can take out the context string, and replace it with just the entry string. we have to update the calls of course.. 0615 infact probably all the calls to encapsulate also. and the return values of the simple sentenceEncapsulate. in the long run it would make things much simpler. we don't need to know the context size, since it is derivable from the entry string. 0618 most of the calls are in assembly.asm, lets check them out. 0621 of them seems only arBoBy uses the mkak or context, and we'll have to rewrite that one later anyways. okay so lets fix it up 0627 okay cool, sentenceEncapsulate was already in this new format. 0628 now have to update iterate. 0636 .ia now it is working :-) well it still segfaults, but it is going in the correct case. 0647 so there is a problem when it call multiSentenceQuoteEncapsulate. or we probably didn't update it's call. 0729 problem seems to be in the FakeAdd function. 0737 or maybe it's the call. 1124 made interlingua dictionary from Concise English-Interlingua dicrtionary. it has almost 20,000 entries. 1328 okay now am on next error, relating to reduceInsert, guess encapsulation works now. it was problem with the newLength was being defined twice. 1403 made the Interlingua English Dictionary text file. or IED.txt 1436 there is a list of interlingua affixes, can make a list of those and their definitions. They are a good basis for making grammar words. } 28 Jun 2014 0513 so it seems that really I want to attract computer programmers. found out that the largest centers for computer programmers are U.S., India, Russia and Ukraine. 0518 people in India speak English. But ya, we might need to prioritize Russian translation sooner than anticipated. A lot of IAL lovers are also in Russia. For instance Ithkuil was embraced by Russians. 0652 watched astroboy, it was cute movie :-). 0702 based on Wikipedia's "computer programmers by nationality" list. the order is America (291), British (56), Australian (19), Russian (17), Swedish (15), Dutch (14), German (13), French (13), Canadian (11), Finish (12), mostly English, Germanic, 1 Romantic, 1 Slavic. All temperate. 1139 anyways so lets try making one for Russian. 1827 made the russian thing. Easier than I thought. } 29 Jun 2014 0847 with the movement away from my old blog. The need to have a new one is growing ever stronger. Thus it is important to finish the dynamic memory, so we can create long translation files. 0850 after that we can move on to the other stuff. maybe we can hold off on the rest of the assembly, until we have more clear translations. The sooner we start writing in Mkaw the better. We want to have things regularly published in multiple languages. Like this changelog, or it's equivalent blog platform. The translation of langauges it more important right now, than even translating to assembly. Not just because it is easier, but because it can influence more people. And more people can thus learn about and become interested in Mkaw. 0916 hmmm seems like something overwrote the language variable with a null. there may be an imporper pointer calculation somewhere. 0918 oh I see, it's that the destination is pointing at the old entry atTil, I guess.. 0940 hmm something changed ebp.. 0941 managed to fix the pointer calculations. 0950 hmmm, seems to be only inserting the new stuff now, not the old stuff when doing Quote. 0952 I see, it is copying the input contents, rather than the quote contents. 1013 it seems to be working :-) 1015 there is another issue I thought of, being that it allocates for the extra insertion, even though it is insertReplaced afterwards. one option would be to copy including the ending sentence, and clear the afterwards trailing stuff. 1017 my spirit guide is urging me to use what I have to do the translations, even if the Quote stuff isn't up to par, I can still do a bunch of translations without it. Though I should fix this bug, the reduceInsert is nearly debugged. } 30 Jun 2014 1019 doing some spectrum analysis of sounds. predictably i is the highest pitched sound, when I said it peaked at D#, but can probably set it at C#. 1045 yep so we are definitely going to use additive synthesis, such as Formant to generate the speech. That way we can control the frequency and tone quite precisely. We don't really care about sounding human-like, since robots should be able to customize and sound however they want. 1125 can try making an average forment list, then can tell where in the spectrum certain vowels belong. vowel f1 f2 avg single-octave i 240 Ax 2400 Ebb 1320 E C#5 e 390 Fx 2300 Cx 1345 Fb A#4 ɛ 610 Ebb 1900 Bb 1255 Eb ɑ 750 Gb 940 Bb 845 Ab G#4 ɒ 700 F 760 Gb 730 Gbb ɔ 500 B 700 F 600 Ebb F#4 o 360 Gbb 640 Eb 500 B u 250 B 595 D 422 Ab D#4 1523 okay so updated the vowels. of the glyphLink. guess i can be the primary vowel again. will have to change the files back.. 1524 another thing, it probably makes sense to change the schwa from a @ to a 6, since it kinda looks like the ə and doesn't require using the shift key. } 01 Jul 2014 Canada Day 0633 so trying to get espeak to work, so we can make a mkaw synthesizer. so it turns out that for human voice, multiple octaves are necessary, since the harmonics and everything. Thus sine mkaw, with it's single octave really would give some kind of advantage, as it can use a narrower band. 0734 got most of the phoneme table set up ih ph_mkaw for espeak. 1321 okay cool so it works now. can say mi .u mkaw .a yam .i ya 1323 there is some forment info available for certain letters y ~ 240 Ax 2400 Ebb 1320 E C#5 x f1=0 f2=2300 200 400 f3=-100 80 h ? k f1=0 f2=2300 200 300 f3=-200 80 g f1=2 f2=2300 200 300 f3=-300 80 c f1=0 f2=2100 100 300 f3=-100 80 N f1=0 f2=2100 50 300 f3=0 80 j f1=0 f2=2000 0 300 f3=-200 80 s f1=0 f2=1700 -300 300 f3=-100 80 t f1=0 f2=1700 -300 300 f3=-100 80 z f1=0 f2=1700 -300 300 f3=-100 60 len=50 d f1=1 f2=1700 -300 300 f3=-100 80 n f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk r f1=2 f2=1600 -300 300 f3=-200 80 brk p f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 b f1=2 f2=1000 -500 -300 f3=-300 80 brk m f1=0 f2=1000 -50 -200 f3=-200 80 v f1=0 f2=1000 -300 -200 f3=-300 100 w ? b f1=2 f2=1000 -500 -300 f3=-300 80 brk f f1=0 f2=1000 -500 -350 f3=-200 80 2250 the directive or slogan of the clergy: to increase the quantity and diversity of life/experience (lifri). } 02 Jul 2014 0553 anyways I should do some more debugging. 0601 it may be that it is not returning the proper sentences, when it is doing all that copying. seems it's forgetting the new one. 0606 as I suspected it is writing to the wrong quote, not the new one, but to the old one, and thus overwriting the one that comes after it, 0625 hmmm. got it to copy over finally, but it contains parts of another quote. thus it's not branch to Quote early enough, and is extending when it shouldn't be. 0637 maybe issue with entryAdd 0642 possilby alignSpaceFind 0653 seem to have fixed alignSpaceFind. 0657 Hold still works. and is no longer writing to wrong quote. but for some reason the quote extensions didn't increase the size. 0721 it was packetSpaceHold, now fixed. 0725 cool so now it does reduce insert, and the quote is properly formed, now just have to rejuggle the entries. 0733 only issue now is with entryFree 0746 narrowed it down to aWordGet may be issue 0843 great fixed it :-) 0951 so next have to get the append version working, and we'll be able to make the array data structure. and then the various other things, such as some translation work. } 03 Jul 2014 0519 am ssh tunneled in to do some work. 0531 my mother expressed some interest in hearing the espeak. so can move a tid bit of it so it is available for downloading. 0532 thinking it would be good to have a word for melody, so can differentiate between mkawhyam mkaw speaking, and mkaw melody. 0555 apparently wal is a funeral song in Afroasiatic langauges. So it is somewhat appropriate for the parting in mkaw. 0559 oh right I was going to change glyphLink so that instead of v it is x, then is more compatible. Can also change 5 bit vocab to have x instead of v, can then move the religious words back to 5bit. 0619 hmmm unfortunately the americanist phonemeic tradition may have seriously misled me to believe these words sound very different from actuality. as the j is a voiced alveolar affricate. so something like tz or dz. Though if they use the American Anthropological society version from 1916 then the j is a postalveolar fricative :-). 0638 also it uses ɣ which is a voiced velar fricative according to IPA, so it would be logical to assume they are at least somewhat IPA compliant. 0705 so a melody is a sound sequence: cwahpurs 0928 integrated musk for music, and mlod for melody, due to large number of borrowings in IE, Austric and Bantu. 0944 great so 8Kbit opus files have great clarity for both the mlod and yam or sine wave and espeak generated mkaw. 0948 6Kbit is fine to, and it would be almost real time on a 56Kbit modem, even if can only function at 20Kbit or less. Anyways it will lower the cost of our bandwidth and make it possible for us to have just about all our text available in audio file format. 0959 seems like we'd have to make the mlod at 480 bpm in order to reach the speed and size of the espeak variant. 1118 my brother says it sounds like something from the matrix now. I take that as a good sign. Would be nice to have longer texts of course. but still fine tuning it. Wondering if can fit in in a single octave without using both C#'s just one would be nice, would have to upshift the M to D# or even E#, lets see what I can fit. D# w F# m G# p A# k C# y 1135 nah, everything lines up fairly reasonably right now. and om the sound of the universe. f# c# is a perfect fifth interval. 1137 so it uses a whole octave and a note, well if that becomes an issue, can shift either m or i/y to be the other C#, and it would still make sense, even if it wont be as similar to the phoneme. } 4 Jul 2014 0257 still in dorw, (was dorv, but changed v to x, so now dorw). anyways put the espeak configuration files into mkawhyam/espeak. I kinda want to set up that ucoz account earnestly. just so I have a good backup available, in case my raspi or home network is down. like happened during the ice storm. 0307 hmmm seems sourceforge has shell accounts, maybe I'll use them. I could rsync over sftp easily also. 0329 so realized have to make support to reduceInsert to entryCapsules, make capsuleReduceInsert, then can make capsuleAppend. 0330 am rsync uploading to sourceforge. 0344 hmmm seems like we may need to make an offline autoindex script or something, since not all webservers support it. 1348 reading Neptune's Brood by Charles Stross, it is much better than the previous one Saturn's Children. I like it :-), a bit overly capitalistic but w/e. It's a great milleu, I would like to write one at some point. 1752 was thinking that the children book equivalents can be made with some kind of flash card generator software, that can insert text at a designated place. I'm sure it can also be done with xslt and javascript. xslt may be preferable. simply have it load a picture, and load the text underneath. 1757 can use an open source flashcard program or openclipart as a source of images. } 05 Jul 2014 1323 want to move life to wik, to reflect vit, but then need to move liquid to yik, and bad to something else, not sure where yet thought. I can just move bad to 4-bit, then 3-bit will be more like newspeak. 1506 okay managed to trade places between wik and yiw. so yik gets to keep it's place. 2148 so thinking making a mkaw only dictionary is a good idea. have to come up with a word for dictionary. vortaro or the esperanto is a "word collection", that's rather to vague for our purposes, lets see what wiktionary translations has for dictionary. though a definition collection could work. we could also have a translationary, or a dictionary of translations. that could have mkaw to various other languages. probably in the form of some kind of array. 2211 a mandarin collection is ji, quite simple and elegant. 2217 similar to ci a quote, I guess a quote is a colleciton of sorts. 2228 tikc can be dictionary. } 06 Jul 2014 0613 started the mkaw dictionary, gotta make word for alphabet. 0723 yam is like copy outside, mim something or return maybe. 0949 reflectin on a recent email i wrote, involving reference to ape rivals helping the strong to assisst a coup. The strong in the auxlang community is Esperanto, and Interlingua. We aim to supplant for instance English, though obviously we'd have to support the UN languages, which are the strong also. Even if it is with mkaw grammar. Anyways we can certainly make speech generation for esperanto, as it is supported be espeak, not sure about interlingua, can check. nope it is not.. that's unfortunate. though we might be able to write a simple one for them, a fairly regular one anyhow. though only after we have written translation support for them. 1506 so piy is now experience. so I'm wondering that would mean life is kind of relegated to just incarnate experience. or physical experience kinda thing. well actually now that I check the wiktionary, vita covers a rather broad range of concepts. but how do we distinguish it from experience? 1513 i guess in general life is a larger version of experience, a whole experience perhaps. or an experiencing entity. 1614 it may be good if we could do both translations and definitions in the same file.. though it would get kind of large.. I guess dictionaries can be rather large.. it's just what case could we do translations? in? to? so? on? i guess in.. 1618 also would be good to have a word for array, would make it a little easier to manage these rather large lists. oh righ a collection.. ci 1638 currently each definition is a single sentence. though it may be better to break it up into several sentences... it would require making many multi sentence quotes, rather a hassle. 1639 so with this current many-clausal format, it would be easy to make the tooltip for a particular word, since would only need to translate the defining sentence, and it would have the core translations to other word types also. when doing an actual translation, the translation files could be more specific turning the infinitive or root form to it's approrpiate destination form based on the context it is being translated to. 1657 cool, so after rounding off this dynamic memory business, we're going to have to add clauses to our grammar. yai pia and all. 1658 I was going to write a script to generate all the grammar words, so can put them on the list as unaccented.. 1708 k gotta do some editing of the espeak files to make it prounce things better. 1716 my c seems to be set incorrectly, 2233 okay fixed it up. I was going to generate a list of all the grammar words. } 07 Jul 2014 0026 so mka is actually taken. anywas so we'll have to use mkaw in full. it's the only one available. destination. Though otherwise 1210 ed is the standard text editor on unix. What is good about it is that is it text based, we may be able to use a variation of it for editing files with speech. 1212 on it's own ed is rather too complicated however as in unuserfriendly. while it relies on line numbers, it doesnt' actually tell you what they are, so is only suitable for very small files. 1214 anyways now that we have made the mkaw only dictionary. it really is time to get back to coding. 1215 we can make a capsuleReduceInsert fairly easily, that can simply link to multiSentenceQuoteReduceInsert, later on it will branch with sentenceQuoteReduceInsert. 1217 I guess there is entryFrom version also. 1229 wrote contentsFromMultiSentenceQuoteReduceInsert 2219 so I'm very interested in making an Interlingua espeak, because I'm very curious to see how it sounds. 2230 hmm problem with mkawMlod is can't hear the C#4 with speakers turned down. so we may have to move it an octave up. 2257 right so have to make my demonstrative pronounces not based on h. since hi and ha can be object and subject. i.e. pwiphu the subject that gathers, so gatherer. pwipha the gathered, pwiphi the gathering activity. } 08 Jul 2014 0443 thinking of moving of-case, making ka this. My son uses it a lot when pointing at animals, sometimes he says this when pointing at something he likes, but lately he's been saying ka when poiting at animals, perhaps because we have cats and we say it. he also says g@ at dogs. anyways kV is a standard demonstrative pronoun type in borean. we can use pi for of genetive anyhow. 0503 so the best there is as an alternative to "of" in terms of parent, is either movement out of something, or because of something. I guess out of makes the most sense. 0508 ex is the interlingua variant.. ek novial, ut swedish, ul finish, z slavic. hmmm 0518 vocative is now yu. ke is out-of. 0543 anyways we can get back to coding for now. 0544 so let us test it out. 0546 updated mkawMelody, it is rather slow for very large files. probably need to make it do sox every nth commands, rather than every turn, it might run at least a little bit faster. 0612 okay fixed it now it works pretty fast. 0643 decided to turn the mlod down to 240bpm so it has the semblance of music, 480bpm is just too rushed. 240bpm can still nod your head to, but 480bpm is just alien, like aghast, can simply passively hear it. Maybe we'll slow down mkaw speech also to half time, so that it is easier for beginners. Also easier to catch anomalies. I think the normal speed only makes sense for fluent people. until we have lots of those, have to go at learning speeds. 0702 i find the hardcbr while it does make it a little more airy, or distorted from true sinewaves, it also gives it a little more character, more like an instrument rather than a pure sinewave. 0706 tried 60bpm it is kinda sleepy, though maybe that's just me. it would be the easiest for people learning to play it on an instrument. though ya for now I think 240bpm is reasonable, it gives a fairly small file size, while at the same time being easy enough to listen to. 0729 had to fix up Makefile to new standards. with it's .PHONY stuff. 1148 okay looking over it, feels like there should be a pause after ya. 1718 okay so set that up, also made espeak files for interlingua, will give them over to the espeak people when they add me to mailing list. 2212 we need word for semicolon. puo from puncto e virgula 2215 need a word for comma, almost everyone calls it a comma, but interlingua calls it a virgula hmmm, interlingua tsk tsk. maybe we should call it a sei instead of a puo them. 2300 translated first half of lord's prayer into mkaw 0.2 is going pretty good so far :-). anyways finish tommororw sleep now. } 09 Jul 2014 0525 must do programming. test contents from version. 0538 it works up until the Quote branch. 0541 doesn't work with the hold branch either. 0549 oh it's entryGet is not returning properly, is still doing old way, new way is to give aligned entry. 0607 for some reason by the time it gets to the update script, the entry is the atTil contents :-S 0610 it was because I didn't do recall, and instead jumped to entry.*ReduceInsert 0611 now they both work :-) 0622 writing Append. got to get the hu at the end, not sure how don't want to recode it all.. but the original is full of old assignment strategies. 0634 okay rewrote a part of multiSentenceQuoteGet, so will have to test. 0639 okay debugged, back to append 0647 wrote append :-). 0657 will debug later 1726 so been requested to submit the interlingua files to espeak. will finish them up and then do so. 2000 the new version 0.2 of lords prayer is complete 2349 seems like at around 125 words per minute it is slow enough that can follow along the text. definitely would need to make it by the paragraph, since it is easy to get lost in a language you aren't familiar with. some kind of playlist might be possible if someone can actually understand it by words alone. } 10 Jul 2014 0513 anyways lets quickly do another function. right so we have to test append. 0527 strange they extend and Quote seem to be out of sequence on the call stack, they've traded places :-S. 0535 oh it's actually Copy 0541 okay well Copy and Quote branch now working, but hold growing indefinitely.. 0612 seems to be overwriting last sentence 0620 cool it works now. 0621 wrote the contentsFrom version, will test later. 0624 hold branch seems to work, Quote branch does not. } 11 Jul 2014 0537 okay it works. 0538 next is the simpler sentenceQuote reduceInsert 0539 thought it might not be necessary if we just make everything multiSentenceQuotes.. 0540 okay did that, now need to make the capsule wrapper functions. 0547 okay made the wrappers. 0548 next is array data. then we'll do a bit of a "hiatus" from the roadmap, to jump ahead to more translation work. it would be nice to work in mkaw, and have contents published in multiple languages. 0555 updated arBoByData comments 0605 updated arBoByData code, now to test. 0652 learned about the FFR or fast-food-restaurant technique recently. where the attendant parrots back to one the order, for confirmation, before saying what they have to say, such as asking the price. We can implement something similar, where what is understood is said, before it is run. 0727 updating sentenceComplete, guess it should return a capsule. or should be stored locally. 0742 updated copyMove but need to debug it. 0858 will have to remove all referenced to lowestAddress 0859 there are 38 at the moment, so maybe later. 0906 seems that loStoring causing issue in copyMove, maybe oldCopyMove uses ebp for something. 0933 probably due to a reentrant function making a non-reentrant call to copyMove. says append error somewhee. 00020000 1027 fixed reentrant copyMove 1240 fixed sentenceComplete :-) 1259 oh right so we were going to finish the array data thing. we'll have to set up a test case. 1300 fileLove segmentation fault. 1317 fixed it. 1321 sort of anyways.. gotta fix translate and all that also. 1420 I think I'm going to fire up the translators, and start doing human language translation instead. 1437 good at least the basics of it still work. 1438 high priority is to get mkaw translation working. 1439 it is currently an "unsupported language" 1447 have to set up the mkawSpel dictionary. 1456 need to reset up with case. } 13 Jul 2014 0659 made mkawSpel dictionary 0740 sentenceTranslateTo calls the translateFrom eror is confusing. } 14 jul 2014 0425 great so mkaw translation support is now functional. at least the very basic part of it. we need a voice translate to kinda function. er or debug or w/e. 0427 also it would be nice to implement imperative pronouns. 1209 now have a chat channel #mkaw on irc.freenode.net, and a javascript chat client that works on the site. 1218 okay should set up some chat bot to hold the channel on the raspi. 1235 so we can later have chat bots to preside over meetings and record them. in particular the president chat bot prezhu, and the secretary chat-bot kiwyhta or sekr. 1918 was trying to get jabber to work also, but seems it is rather too complicated, and not very channel or chat-room oriented. } 15 Jul 2014 1758 so first thing is I've got to translate tikc to spel. Then I have to use tikc as dictionary to translate other languages. right now my top priorities are English, Chinese, and Interlingua. maybe Russian instead of Interlingua or Esperanto. } 16 Jul 2014 0616 really main thing is to get the translations working 0625 debuggin tranf 0714 okay it is running, and reoganizing, but doesn't seem to be translating. 0743 so mkaw to spel translation doesn't seem to be working 1035 got it working by sentence, now gotta fix translateFrom multiSentence. 1054 oh i see, translateFrom is empty. 1110 started writing it. 1152 wrote, have to test. } 17 Jul 2014 0636 made a python3 script for finding letter frequency in a listing of words. python is more portable than bash, so probably should make my future non-mkaw scripts in it. Python is also one of the "most loved" programming languages based on some statistics I was reviewing. It is also a "big beard" programming language. I momentarily considered compiler in python, but it was short lived, as it would be too slow, cumbersome and too big a rewrite. better to simply have that register-machine bytecode instruction-set later on. 0641 anyways so having problem at call to entryFromMultiSentenceQuoteAppend. 0657 okay now issue is with infinite loop. probably recursion issue. 0717 okay translateFrom seems to be working. almost.. 0720 writing entryFromMultiSentenceQuoteGet 0735 updated 0726 switched multiSentenceQuoteGet args, now updating calls. 0745 k, so issue is that I have several multi sentence quotes within tikc. so either gotta add support for nesting (preferable), or add an identifier to the overall quote (meh). 0747 so how do we add support for nesting? I guess we'd have to look for other end be ya's, and return a count of them. Then not be satisfied till we reach a certain count of start be ya's. 0750 sentenceMatchCount and nthSentenceMatchGet should generalize it nicely. can define it in sentenceParser.asm 0753 sentenceCount, and allSentenceMatchGet also useful. 0755 for now testing by removing the starts of those quotes in test file. 0810 added International Radiotelephony Spelling Alphabet to 5-bit. 0834 so we need to add foreign quote support. for instance wu isn't being properly translated. will need to make a function that gets foreign quotes, perhaps by translating the spel quotes to the foreign language. 0951 we also have to add support for clauses. 1158 visited my guerilla garden first time since early spring, it was overgrown with weeds and invasive species, had to put in at least an hour of weeding. Reminds me that have to put in consistent effort for consistent results. Also that have to clear out the mundane competition to make room for the new and wonderful. 1335 for the sake of speed, translationary and dictionary will have to be kept seperate. 2100 made chemical elements up to titanium in 5 bit. } 18 Jul 2014 0702 made the numbers up to eighteen. 0727 seperating ktic from tikc 0745 okay well we don't need clauses for ktic, though we do for tikc. we do need word quotes for ktic though. 0909 made atoms up to strontium in tikc and ktic mkaw nia nlec ta 2312 so to make the variable wordQuoteGet, would need to make a reentrant version, that accepts the quote word. Also will need to update wordTranslate to incorporate it. later the reordering will incorporate it, and also subordinate clauses. thinking would be good if some kind of grammar description of destination language could be held in the language ktic or translationary file. 2315 we'll stick to little endian hexadecimal as default base. } 19 Jul 2014 0732 right so we also need compound word translation. anyways maybe we should finish up that array stuff. Then we might have a strong string builder on our side. 0733 it'll be easier to deal with the roadmap also. and can make a git release before doing major revisions, i.e. changing for language from spel to mkaw. 2011 reading book about language change, it mentions how consonants change over time, to become easier to pronounced b->p->f g->k->x->h->. also gave me idea that poetry can be written cross culturally via metaphor. so it wouldn't be rhyming poetry, or of the pretiness of sounds, it would be poetry of the imagination and meaning. } 20 Jul 2014 0927 in preparation for having chinese support for the sinosphere. Will probably have to restrict any mention of religion or democracy, in order to get indexed on chinese language search engines. So instead of translating patre nostre, we should go with the GPL preamble. 2018 so my mkaw name is .mank.wurk.la or magic eddy, magic vortex. } 21 Jul 2014 1058 itran_code intelTranslate is segfaulting. 1204 intelTranslate needs to have it's capsule stuff rewritten. 1209 asmMultiSentenceTranslate will also have to be modified. 1337 updated intelTranslate, updating asmMultiSentenceTranslate 1721 interesting, it may be possible to make chinese an SOV language. it already has many of it's attributes. 1754 unfortunately they are heavily prepositioned, so really have a mix of features. I may simply have to make it easily possible to make languages that have a mix of the two sets. just like english. } 22 Jul 2014 0420 updating asMultiSentenceTranslate 0506 updated intelTranslate, seems like completely. 0555 data errata ? 0609 okay seem to have updated asmMultiSentenceTranslate will have to test. 0627 debugged some, gotta do more.. later 0841 pawm wurk j 1255 realized my raspberrypi server is down. so I'll replace the spel one with the sourceforge site. and my old archive I'll put on ucoz. 1833 tested with openbsd, it works. Though likely issue is that the flashdrive has a bad bit sequence in the place where the networking information is held. I could try a different version of raspian, though ideally I'd get another sd card. meanwhile though, it is still best to have everything online at dedicated serverers like sourceforge and ucoz. 2222 hmm I was considering using influence instead of magic, but seems like it's not much better in chinese, it is shadow ring. maybe I'll stick to magic, hemp demon or not. 2226 guess can also go with 洛根怪 logan strange or 洛根海峽宙 logan sea gorge universe oh w/e, i like my hemp ghost vortex. then I would be "mo wo", kinda brief *shrugs*. 2252 okay so uploaded my spel project website to spel.sourceforge.net and may weyounet archive to wyn.altervista.org I'll have to print out an archive of it. don't quite remember how I did it before.. } 23 Jul 2014 0533 anyways so gotta finish debugging. 0539 got it to stop segfaulting, but isn't doing anything either :-| 0552 reentrant functions are more finicky, because they need recall's instead of calls. It'll be good to make the compiler working and everything. then it can deal with juggling local variables and such. 0612 hmmm atTil might not be working correctly. at least it's say version isn't. 0644 for some reason when it reads from command line, it inserts a we inbetween 002 and nu. :-| 0651 seems to be sentenceTranslateFrom that does it. 0658 narrowed down to wordsTranslate 0705 tracked it down, nu was being translated to we. 0727 okay only issue now seems to be that output is being appended too close after the ya, so it's not properly finding the start sentence. 0737 okay great it is finally back to ordinary operation. 0744 right so the whole point was to get the array stuff working. 0746 set up test case 1500 first attempt, seems to be just giving verbatim contents of bo. so will have to check if either we need to include type catch or something else. 2146 so we'll (much) later on, have a mkaw spoken chinese, which will feature the pronunciation used based on reconstructed old and middle chinese, such that each glyph has a unique pronunciation. 2230 we can actually make it based on sino-tibetan. 2235 or even sino-caucasian, why not right? 2241 i gues there is a bunch of controversy on that point, may as well stick to the veritable sino-tibetan. language code sit, with leanings toward old chinese. 2329 I find it helps with selecting a good meaning, like decided on the symbol for witch to represent magic, and made the one usually used for it (by google translate) to represent ghost, as that is what is more like. } 24 Jul 2014 0736 right so lets see if it is even getting into ar bo by data. 0737 seems like it is not. 0738 okay got it working, simply test case wasn't working, though now it is outputting backwards.. lets see what we can do. 0739 during translation we'll have to matain order within an array. 0740 hmmm seems because it is going by aLastTypeGet, we need aFirstTypeGet } 25 Jul 2014 0545 another option is I can do aLastTypeGet, and then simply insert rather than append. 0605 implemented but is somewhat faulty.. 0609 at some point, will have to make the hexadecimal conversion return either a capsule or have it return in the register. 0614 excellent so it is working now. can package git release at least :-). 0632 I juggled around the roadmap so I can work on translation ASAP. next we have to do type quote arrays. so I'm assuming that means to include the type and quote information in some kind of accessible manner.. you know what, lets skip that, to config file. I know we need that, and had some idea of how to do it. 0635 so how was that? find users home environment variable. 0755 anyways so first is the global config file.. not sure what I can store in there. possible the locale being used. 0758 so until we have full translation support we'll need to keep it all in spel, which is english vocab with mkaw grammar. basic stuff to store in /etc/spelrc is the directories being used. if there is no permission to create /etc/spelrc then can make it in ~/.spelrc what are the basic directories we need? locale is the main one. 1655 my dad called to offer helping me with my programming :-). well perhaps I'll find something for him to do. certainly one of the points of this whole project, is to make mass collaboration easy. 2231 learned about framenets, am including them as a vocab thing equivalent to special-english and oxford-3000. ` } 26 Jul 2014 0653 anyways config files. gotta figure out how to format them. obviously it will be using mkaw or spel syntax. assuming locale files in /usr/share/locale locale su directory be /usr/share/locale at ya or even simply locale su /usr/share/locale at ya though in our case it is actually /home/elspru/spel/share/locale 0702 another thing we need is a language version declaration. can model it on the xml thing. ?xml version="1.0" encoding="UTF-8"? 0708 0.2 mkaw in utf-8 with start be ya 0710 will have to make the sentence quotes only match the su argument in addition to start, for simplicity, so we don't have to redeclare everything at the end/begining. 0726 we can use the chinese word formation for configuration build fixed. though actually chinese has lots of words for build/make. latin uses shape. oh this is kind of a waste of time.. we can just make 5-bit konf for now. 0737 k fine konf 0739 anyways so lets load it up. 0741 i guess we can have a read option that doesn't require actually saying the file when we load it. 0743 okay currently we have a config book, and config.asm 0803 a nice thing would be to change my sys calls to C calls, then I'd have to revamp everything to be a C program rather than a pure linux one. though it could save me some hassle later on. would certainly make it more portable at least.. though we can simply wait for the bytecode, taht would do the same thing. and wouldn't bloat our executable as much... necessarily anyways. 1219 maybe we should move stuff over to using C calls.. can use clang for actual compilation. 1220 or maybe we can at least do a little work on the bytecode interpreter... though that would deviate from what we are trying to do with making translations.. If I want to deviate, should keep it for the weekends. } 29 Jul 2014 0616 so I'm finding that when the sample size is too large, it become somewhat useless, since everything merges together. it's that whole bell shaped curve. most words become k t or s intial. so I'll stick to my old form of vocab selection. 0642 anyways where were we. configLoad. I was thinking can make something like HOME env /.spelrc ar or ci to construct the path. env would return the HOME environment variable. 0645 anyways don't have to concern ourselves with that for now. can work on aboslutePathConfigLoad 0714 so we also need a global variable for localePath. 0720 okay wrote it minus the check for if file exists, I don't have a function that does that yet. 0723 anyways so lets try it. can set up call to it in configLoad, and then call configLoad. 0731 phraseGet not wroking properly 1204 okay got it working :-) 1208 next is the home version. 1350 thinking of making the C call support. going to do a little C coding to see how it works. 1452 okay made a say function in C, which works in same way as the linux assembly one, writing a character at a time for the specificed number of characters. compiled with both clang and gcc. made a header file for say. 1455 llvm might be able to support shift operations and such. 1501 I'm wondering if maybe I could do a little work on starting up that bytecode interpreter. 1520 found a javascript 8080 emulator, seems to be MIT or BSD licence. 1535 got a simple C emulator example compiling now. can try putting in some mkaw bytecodes :-) 1608 gotta change most of my String and _string to Pointer and _pointer 1803 maybe can make a simple hello world in kimk bytecode. } 30 Jul 2014 0554 anyways good start but it would be best to keep going with what we were planning. implementing C calls, we'll need that for the bytecode anyhow. 0702 good so I managed to write an asm file with extern call to my C based say function. 0703 now lets try changing spel.asm to be gcc compatible. 0716 awesome, so now it works as a C function. :-) 0717 gotta update makefile 0719 excellent updated :-). now can make a csystem folder, with c calls, where I had lin calls before. can start with say. 2232 was reading the Dunning-Kruger effect, and it mentions that "East Asians tend to underestimate their abilities, and see underachievement as a chance to improve themselves and get along with others." I think we can all learn from that. At the very least: see underachievement as a chance to improve yourself and get along with others. though being humble about your abilities is always good to :-). }1 Aug 2014 0557 so got the basic write working. testing for file write. 0608 anyways i should try simply implementing the write thing for now. 0611 oh good got both the file write and stdout write working. 0620 I added to c object file to the makefile. will integrate it with say after beauty sleep. 0701 need to make cStart and cEnd functions. }2 Aug 2014 1617 thinking that can't include information about religious, spiritual, political, or alien things, due to Chinese government and multuidous atheists, agnostics, and ferverent believers of their own faith. However can probably include it nested with sci-fi stories, where some far off ficitonal characters may hold these beliefs, making them much easier to accept. 1621 one thing I've been somewhat concerend about is the overlap of the c stack and the program stack. I may wish to have a different program stack, to minimize potential for conflict. } 3 Aug 2014 0350 attempted to get cosAreaSay working, not yet operational. 0440 managed to set up ssh keys for sourceforge, now updates can be automated. so I've set up script to rsync the spel site every day. 0601 okay great got my c version of area say working :-). 0616 weird it is not doing it in proper order. instead of doing it when called, it seems to wait and does a bulk output later :-S 0634 my theory is that it is because there is a linux based get right afterwards, though technically it shouldn't change anything, maybe it does. so can implement a c based get function see if that solves the problem. 0654 so can use getc to get a char at a time. 0656 this is compatible with byteHear which is in lin_io. and we can extract lineHear and but it into the ordinary io.asm 1243 tested fgets, it's not better than what we already have, so would make sense to simply code the simple cosRead, use it for everything. } 04 Aug 2014 1717 okay got the cosRead working in C, now have to implement it in asm. 1742 it is showing some rather erratic behaviour now that I've implemented cosRead now only printing you yo as result. } 05 Aug 2014 0527 may have to use cosLineHear linked to fgets, since the character based version isn't working. 0547 okay nm, now it is working, just had to replace fgetc with getc. 0551 now we have the option of either pushing on ahead, or implementing all the mission critical c calls, such as malloc, free sizeof, opening files etc. 0556 so I found out that on windows the home directory is stored via the USERPROFILE env variable, and already knew it was stored in HOME on *nix systems. 0557 since this is basic path stuff, we can theoretically not have it in a config file, but rather simply have it in an executable script. with a special ENV variable that is what we need. like SPEL_ROOT or soemthing. 0645 excellent so I now have some scripts to help me compile windows binaries from c functions. 0656 want to do it manually with clang so don't have to relly on some external scripts. 0740 anyways so will need llvmgold to compile .bc vm code from multiple object files. meanwhile lets look into malloc and free 0803 hmmm seems brk and sbrk are deprecated. but they are much like malloc so I'll use that for now.. can keep mmap in mind for future refrence. 2114 researching active learning. apparently the game or comparitive case studies, problems I guess, must come before the lecture, in order to encourage the deepest learning. 2135 even with LLVMGold.so and all that the lli can't interpret the ELF binary output of nasm. so it can't make portable executables from it. } 06 Aug 2014 0224 so I had an idea, can implement cosBreak, or cosBrk, using malloc, simply have one contigious section, and do reallocs. 0229 yep, seems like we can simulate the brk heap with realloc. 0334 coding cosBrk. 0347 bah realloc may return a pointer different from the input. it shouldn't but it might.. seems like we might have to overhaul with mmap. 0354 I have a feeling that it will work however. since only one thing is being allocated, it is highly unlikely there will be a different pointer. though can have a check. 0358 okay wrote cosBrk with the check. 0432 anyways so lets test it out. 0444 okay got it to compile. 0503 writing cosMoreHold 0516 okay it compiles, time for beauty sleep. 0657 debugging 0725 k now it only breaks after 6th call to cosBrk, 1413 my laptop monitor broke. I have a backup LCD IBM thinkvision, which I'm currently using instead. Found a nice nine inch monitor, only 5 watt, on ebay, for ~$78CAD with shipping. but ya, since I have the IBM I guess it's not quite necessary right now, though maybe shortly, depending on how easy it is to store. This does somewhat increase my motivation to port to ARM. I should get my raspberry pi server back up and running. 1414 once nice thing about this monitor, is that the colors are adjustable, so I managed to get it stop using blue altogether, which as you may know is not good for the eyes. My aim eventually is to have a fully modular portable computer. 1417 meanwhile I need another microusb cable for my portable hard drive, and a microsd reader, so can work on a usb card, while still having one in the raspberry pi slot. } 07 Aug 2014 0613 seems that one of the calls to cosMoreHold is reducing the amount of space rather than increasing it. :-S 0618 it was that I forgot to set initialized variable, now works :-). great! can add that to the roadmap. 0619 now I guess if I simply get the read file stuff working, then we'll have full portability to windows. 0622, so we'd need file create, file open, file close, file write, file read, and fileStat 0623 the easy functions can hopefully be ported by simply reassigning those particular labels to cos equivalents. 0719 so bought some micro usb cables, and a micro sd card reader. For a full modular-arm computer for the boat, I'll also need a flexible keyboard, finger mouse, monitor, case, and probably beaglebone black or something more powerful. might also be interested in an hdd drive so can do more writes and store more stuff like videos. 1149 attempting to get emulator to run spel on the raspberry pi. 1651 so I had an idea for the conditional evaluation in the virtual machine. the conditional like in human sentences can be the first argument if it is included. it is anything that starts with 00 in quaternary. so if it evaluates to false, then can skip to next command. 1657 seems like static emulation will not work easily on the raspberry pi. so will have to either get a beagleboard, or better yet get the virtual machine working. 1658 really the highest priority should be to get the translation working, since then we can make blog posts. and actually start using the language. we already have global config files working, that is enough to start. } 08 Aug 2014 0706 managed to set up make w32 to compile a spel.exe. it is giving issue as the malloc is changing the base pointer. thus we'll have to move to mmap style usage. which will be a major overhaul.. meanwhile perhaps we should move on ahead to proper roadmap stuff. 1705 will make exe file as is possible, see if it works on windows. 0723 I decided to stop dilly dallying and move the roadmap to mkaw translation. } 09 Aug 2014 0622 I wonder if simply replacing the current holdMore with malloc will work. can try it. 0630 hmm niether seems to work well with it. the linux version works but breaks around appending to catalog, same with the exe, but breaks earlier. 0636 attempting to move catalog to capsule form, instead of old book form. 0639 I'd need an alignCapsuleAppend 0645 seems to be caught is ome kind of appending loop somewhere. 0646 it is also possible that maybe the free part isn't working properly. 0701 I got rid of all lowestAddress references. okay cool, well at least it now loads on windows. 0706 though now hello bo say be do doesn't work. gotta debug. 2219 so I'm thinking in the future the streetlights will be green, since that is the best color for mesopic and scotopic (night) vision. } 10 Aug 2014 2230 monitor wasn't working on my laptop well. so now am using raspberry pi as my maiin coomputer and the laptop as backup. noticed laptop power supply is 19v at ~4 amp, that's like 80 watt. by comparison rpi is 5 watt, beagle bone black 10 watt, 9 inch monitor 5 watt. } 11 Aug 2014 0703 setting up text based mail client } 12 Aug 2014 0605 anyways, so apparently my win32 executable didn't work on a win64 machine. we'll have to focus on portability later. and go ahead with the roadmap. 0616 I guess i'll have to set up the testcase. 1405 seems to be breaking at phraseSortLoop 1424 maybe issue with firstSentenceGet movr edx,ebx movr ecx,eax movr eax,[sentenceArray] movr ebx,[sentenceArray+lengthBase] call arWordGet } 14 Aug 2014 0430 finally set up my cursor and terminal to be easy to locate and read. Also fixed the letter y on my keyboard which wasn't pressing properly. 0452 seem to have fixed translate from, now gotta fix translateTo 0456 seems to be appending without newline. we can make sentenceGet return with the character that follows it if it is within the context. 0508 okay it is working now :-). now can get on with the word quote stuff. 0510 so thisQuoteGet would have to accept the quotes as argument or something, or perhaps accept the dictionary as an argument. we could have something like a thisForeignQuoteGet which would do that. 0530 to reduce confusion I've decided to call the pointer+length combination a reference rather than a string. perhaps ref for short. can make a search and replace python script later. 0612 testing with cosArea say, it doesn't seem to work for our dictionary translation. 0625 okay fixed, it was just issue in firstRun. sentenceInterpret returning yes. 0648 i'm really considering making a version in python or some other language, as it would be more portable, and there may be a lot less debugging involved. 0654 I guess the kimkVM written in C would be the best for that. 0701 anyways meanwhile translation is more important. 0738 making mkaw grammar book, from the variables declared in program. 0807 did a goof, changed entryAdd to use references for input, now program broken, seems related to multiSentenceQuoteEncapsulate don't know though. 0948 okay fixed it, passed the pointer to the reference rather than the refrence itself. so we can call it RefPtr instead of String. 0954 the whole String /Reference confusion is a major problem we'll have to fix to make it easier to debug things. 1000 it seems we have at least 10 refrence pointers declared with the name String. will have to fix those. 1012 okay fixed those, but there may be some others lurking, that had 2 rather than 1 register widths assigned to them. 1013 there are 22 String's that need to be updated to Ref's, so can check at same time if some are actually RefPtr, but for now g2g. } 15 Aug 2014 0451 there is a gene that allows a person to have sufficient sleep from only 5 and a half hours of sleep. wonder if I have it activated. 0452 had a dream about open roof church, reminded me we can try going out for more picnics. 0527 windows executable now works in wine. 0540 preparing for an increment release. 0630 made tarballs and updated docs, simply have to upload them } 18 Aug 2014 0123 bah, spent over an hour trying to make an ocaml program to compute the averages of an arbitrary number of inputs. still haven't managed, since can't find a list to array converter. or rather vice versa. 0140 managed to write same thing in javascript in 20 min. 0633 okay i'll attempt to write it in lua, for comparison. 1623 anyways I've gotta get back to asm coding. something i know and love. later can simply make a virtual machine in javascript, preferably one that will work in text-mode browser like elinks. 1653 made the spel grammar capsule, added to roadmap. next have to figure out the foreign language quote version. ideally there would be a seperate multi sentence quote to contain them. 1656 that would require loading from file and stuff.. meanwhile can simply predefine it for mkaw. } 19 Aug 2014 0511 decided should load locale file into capsule, as is more portable way of doing things. yes we have big issues with how to find the files and all.. but in the long run it'll be worth it. 0541 the best might be simply to generate it from the given dictionary, so people don't have to go through the hassle of making their own, especially considering the fluctuating nature of types. 0544 so it could create for instance a mkaw grammar su capsule. and do translations of the su contents of the spel capsule. 0603 finally made that ocaml average.ml 0606 so what do we do? phraseInterpret the su of the sentenceGet -ed sentence. 0650 running test case. 0658 sentenceGet doesn't seem to be working properly. 0701 matchPhraseGet isn't finding it. 0732 okay got that part working :-) 0741 k, so managed to narrow it down to the wu wu part, now I need a "simple wordTranslate" 0749 okay made simpleWordsTranslate, it works. 0752 generalizing function for use in grammar book generation. 0804 seems like multi phrase sentenceGet isn't working, will have to debug it. 1148 did a tarot card reading about potentially reimplementing in either ocaml, lua, or javascript. javascript was all around thumbsdown. lua was third. and ocaml and assembly vying for first. What I think that means is we should stick to being able to go from assembly up. But should borrow heavil from ocaml. Possibly implementing in Ocaml but I don't think so. For instance in terms of adoption, the Assembly was king of cups, or patron, so probably paying customers in embeded markets. King of Cups is also on the water. wheras ocaml was 3 of wands, resourcefullness, merely looking out at the water. However for instance the AI robots was swift in ocaml, and tempered in assembly. That's why I think we should aim to have the functionality or paradigm support found in ocaml. 1154 what do we know about ocaml paradigm? it is imperative, functional, object-oriented. it has implicit with potential for explict safe types. structural type compatability, and static type checking. it has failsafe I/O with exceptions. 1156 I like static type checking, though I would like implicit type casting support also, since it's a hassle, especially for novices. imperative is easy enough can make some for loops and such. i was thinking can do functional style programs as a kind of loop, where instead of calling itself, it jumps to itself, and the return variable is an accumulator. 1432 fixed the issue with sentenceTranslate, it was that there was su infront, when there didn't need to be. 1501 it would be nice to have an easier way of composing strings. 1502 like a macro script or something, that can accept a long list of arguments.. 1508 okay found something. 1740 having some trouble implementing it. I think I'm going to give ocaml a try. } 20 Aug 2014 0308 lol, been working for hours trying to compile ocaml hoogle, and now I find out that ocaml doesn't even work on windows. so it is a portability flop. 0321 well it seems that the bytecode does work with a mingw32 compiled ocaml. so that's good :-). 1731 discovered an llvm tutorial which can be used for making compilers, am definitely going to use it :-). We might have a working spel compiler in weeks, rather than months or years ! :-D yay. 2144 omg llvm has a tutorial on implementing a language using ocaml! That is amazing. :-D. 2203 I managed to get batteries working, though doesn't seem to auto-load using .ocamlinit, but w/e 2210 opam doesn't seem to get along well with the raspberrypi, I think I'll have to get the beaglebone black and use ubuntu. 2212 it does get along with my ubuntu on what's left of my amd64 laptop. } 21 Aug 2014 0956 reading the llvm tutorial in ocaml. 0957 we'll definitely have to make all operators into words. inner guide saying we should keep it mostly as is, and make small incrmental changes towards what we want. seems to suppor the idea of keeping the traditional symbolic math, for backwards compatibility purposes perhaps. thugh can also make word versions. seems to be against implementing assembly right away anyways, "with time and patience it will be possible. not now though, functionlity is of eminent desire". 1041 reading over the mutable variables part. it changes everything to be a mutable variable, but I think that we should make that optional. with an extra keyword required to make something mutable. and certainly the input arguments should not be mutable, simply so if they are used later in the function, then they are still the same value. 1100 though we could allow all to be maximal possibility, and then leave up immutability to coding style. may be able to "enforce" a style, by saying it is of a particular kind. though that would be more complicated it may be worthwhile in some instances. 1326 attempting to get the toy langauge of tutorial to work. } 22 Aug 2014 0159 anyways so ocaml version doesn't work but cpp version does. so gotta work with what is available. cpp is more portable and easier to set up also. 0205 based on reviewing the lexer, one of the first things we'll have to do is go on a word by word basis, rather than a character by character basis. 0227 for the sake of compact math, maybe we'll keep the character based one just for it. though ideally of course, we wouldn't support that stuff at all, since it's so hard to speak it. 0235 inner spirit says there would be a revolt if I didn't support old style math. can simply make translation for it into words, for speech synthesis. once people get used to it, can use it in code more readily. 0236 another thing is for loops will have to be redone, to be in sentence form. 0306 ugh, C++ is somehow more primitive than assembly when it comes to function calls. it's blind to things that are defined later in the file. In assembly you can jump to any part of the file. 0656 so gonna have to do a major overhaul of this code, in order to get it to work how I want it. need to make reference type which has pointer and length make the glyph, word and sentence getting functions make the quote functions have a token buffer that holds the previous sentence it's a lot, so will try to do it incrementally as possible. 0711 I think I'll start with that intro tutorial, and work way up. 1028 now I'm thinking maybe should getLine or something and work with that.. dono. 1329 so can make that ref type. also was thinking about the quotes, would need a start quote and end quote. i.e. quo te some text quo ted ya 1330 I'm fairly certain it only reads a line at a time anyhow. so can read the line, if it does not encounter an unquoted sentence ender, it can get another line. or it can consider it done like shell script, with an auto-complete, requiring escaping to go to another line. I think the second option is better, as people might not be aware that they have to use a ya or something to finish the sentence. 1418 my worry is that if they point to some mutable datatype that is realloced, then they all become useless. perhaps I should use start/end, which can be used for strings and arrays and such. that way I can still use std::string 1423 thinking can use um as end word if there is another line to follow that is part of the same sentence. 1517 we can use rfind to help with the specific Get functions. 1519 great with erase and splice we can also remove and insert, and thus replaceInsert, excellent :-). 1645 so I'm thinking that I can add strings, if a line ends in one of the continuative markers, such as a comma or an um, then it will get another line, otherwise it will auto-complete. That would be for interpreted mode I guess, it may be different for file mode. Which is really what we should work on, since it will help greatly. Also all the various translations will be with file mode. to ease changing to mkaw later, can declare all strings in the constants.cpp file for now. 1648 so we'll need some header files for the standard optimizable functions of the parser, such as for glyphs, words, phrases, sentences and quotes. 2127 I'm reading up on doing functional programming in c++. 2206 so I read that C++ now has Lambdas, however I don't yet understand how they work. } 23 Aug 2014 0746 I had foolishly attempted to upgrade my raspberry pi to get opam support, however it broke my system. so had to reinstall. it has now a finicky thing where monitor has to be disconnected at bootup time in order to work. 1150 my inner spirit adivsed to only make incremental changes, while keeping the compiler working, since there is no guarantee it will work after a major overhaul. Also since this example was written by my "peers", it will be easier for them to understand it. 1226 it would be a good idea to get it to read from file, before going any further, to run the test cases laid out in the tutorial, to prove that everything is functioning correctly. 1228 this would require that the main driver tests to see if there are arguments, and if there are, assuming it is the file name, it interprets it, or even compiles it. 2125 awesome so there are labels and jumps in cpp :-D, that means I can work more easily. I love assembly style programming. 2128 right so one of the things I need is to have llvm compile down to both it's internal representation, as well as the equivalent assembly code, of the programs, so that I could make sure it is compiling down as I expect/wish it to be. 2129 inner spirit says compiling from source to binaries will be fine for now, the rest will come with patience. 2131 okay so lets look for clues of what to do in the llvm tutorial and docs. 2149 seems Codegen() generates the code. 2151 it seems that toplevel which calls codegen then dumps it. 2311 so perhaps these dumps can be written to a file. that would output the intermediary code, which should be portable. 2315 so far have it reading arguments, can identify how many there are. will do rest tommorrow perhaps. } 24 Aug 2014 0534 I guess this is all pretty new to me, so I'm even dreaming about programming in cpp. 0544 excellent so I implemented hu as comments using goto and label with the old comment. 0617 anyways time to pull apart the code, see how I can get it to read from file. 0640 so far can get filename from arguments, open and close it. now we have to get something to accept the stream as input. codegen and return result. 0645 good news, .ki and .ka file extensions aren't used it seems. thus we can make that our file extension. .m, .mk and .mka are used. 0653 can probably use .ka for source files and .ki for bytecode. of course we could simply use .txt to make it easier for people. 0657 I actually did find .ki and .ka files with enough searching. so it's up in the air what extension we use. 0717 changing word order around in function words to be head-final. i.e. ParseExtern becomes ExternParse 0719 need a better word for Handle. i.e. HandleTopLevelExpression which is found in toplevel.cpp 0732 decided to go with Evaluate. 0743 okay cool, I can make streams from strings. so I can change all the Parse functions to accept streams. 0802 cool, so managed to update that :-). 0805 so I'm guessing I simply call main loop with the file stream, in order to get it to output the IR code. 0808 have to convert ifstream to std::FILE 0814 okay so it is opening file and may be reading it, but error so have to debug. 2131 as far as I can tell it is doing everything okay, but then it probably gets to EOF or something and fails. 2135 added another line. seems to be failing from something else. 2155 it seems to be breaking around unary operator stuff, can probably comment that stuff out till later. 2201 okay so it is breaking a later point, possibly actually at eof this time. 2206 now it breaking at verify function. 2229 okay now at optimizer, took it out of jit made fpmCreate have to debug } 25 Aug 2014 0800 so got it compiling, but is still breaking. TheModule->getDataLayout() isn't returning a DataLayout, instead is returning a string, and the engine version can't return a string. so had to seperate it. but ya, still a mess. I emailed the mailing list, we'll see if they can fix it. 0808 okay I took out the optimization manager, and now the interpreter is back to operational. 0838 awesome first glints of IR code are being output. 1454 bah, it seems like almost nothing is working. we might actually have to rewrite this starting from tutorial page 1. just because so much is different, and not completely understood. also the lack of proper inline documenttion, hard to keep track of algorithm. } 26 Aug 2014 0250 anyways at least part of the reason I'm rewriting from scratch is because strings make a lot more sense than streams. Also to support ascent/descent it is necessary to work backwards and forwards. 0252 one thing I'd like to understand in abstract syntax trees. I'm still having trouble with them, probably due to their "abstract" nature. And the fact that they are often represented graphically which makes them rather confusing. 0334 read up about AST's vaguely improved my understanding. thinking of making a simple dictionary word for word translator. 0400 I'm starting to have some idea how I can integrate a syntax tree or relative. 0414 so I can implement a dictionary as an std::map 0427 what I really want to do, is generate some code. from a variable or constant, some definite value. to see how this stuff works in a bare minimum setting. 0454 cool so I have it returning a double at least. though it seems clear there was some kind of function definition being returned previously. of which the double was merely a part. 0531 awesome managed to generate all the same code :-). So I'll be able to do with other formats than AST. also. k time for beauty sleep. 0605 attemping to make hello world llvm to gain an understanding of it. 0750 found an IBM tutorial that seems to be working for making the hello world :-) 0811 okay got it mostly working stuck on printing will have to look up later. 1749 I discovered yaml, as it is a potential output format. interesting, though not speakable. } 27 Aug 2014 0325 anyways so for now I'm going to try to make a csv file, that lines up various word lists to see the words they have in common. though perhaps there is another way of doing that.. like a word count. could probaly do that instead :-) 1840 spent several hours trying to make a program in ocaml to do word count, no success, mostly due to difficulty of converting from modifyable hashtables to sorted lists and strings. 1842 Another problem I found with cpp is that so few things implement toString that it is near impossible do debug easily or efficiently. Thus I've decided that should be one of the coding rules, that everything or just abouts must implement toString, in order to be part of the standard library. Having lists/arrays and such all implement some standard functions, like sort would also be excellent. 1844 something I came across with C, CPP and even OCaml is inconsitency in naming conventions. i.e. printing can be done with put commands, print commands, or cout commands, truly unnecessary. I also happen to somewhat dislike the over-reliance on streams, since they are so mutable and unpredictable. 1846 anyways I've decided that it is important to come up with some core concepts which are common to a variety of languages 1847 I'm thinking we already have a basic 16 from assembly, in 2-bit, so we should have 256 in 3-bit. } 28 Aug 2014 0533 so started making the core gloss word list, am basing it on several languages. would really like to get an update on the programming game to see how the new candidates are doing. perhaps the R programming language which is good for statistics, would be the most helpful and easiest to write a program in for it. 0756 so I managed to make a plot with the size in bytes over cpu speed, for all the values, now I just have to make it for each lang seperate. 1716 hmmm, looking over expressiveness, maybe we'll go back to Haskell, they also have llvm bindings, and they are very expressive. can even use some of my old code-base that I wrote.. though I guess it would be easier to start from scratch for now. If I remember correctly one of the biggest issues was having to pass a large amount of parameters. perhaps can make a structure for them. Haskell does support a very wide variety of types. 1728 if it dooesn't work out, then i'll try the python version. 1745 though maybe we should do python llvm as there is bigger userbase. so we could gain developers more easily. Haskell is somewhat intimidating. } 29 Aug 2014 0500 so I've finally got the benchmarks game summary rendering properly. now I'd like to do something similar for the quad-core version. 0527 okay I did it. now it seems that Dart may be one of the best all-round performers on single and multi-core 0550 in terms of highest performance languages, from most expressive to least, it is JRuby, Dart, Ruby, Go, and C/C++ however Ruby/JRuby has fairly poor mean performance, though median okay. 0602 Dart is a web programming language made by Google. 1156 I'm setting up a nanoblogger blog, it is written in bash, and can be operated from the command line. So I'll be able to script it, and make the multi-language mkaw translation posts. I'm considering also making a fortune file. with some of my favorite quotes. 1222 as the pen is stronger than the sword, so is the keyboard more powerful than the gun. } 30 Aug 2014 0900 finally got llvm working :-D, just needed to put NULL instead of assemblyAnnotationWriter. } 31 Aug 2014 0555 so I'm thinking can have several layers of definitions, labels or llvm blocks, imperative procedures, lambda functions, and fbp services. 0558 the FBP services should be compatible with service-oriented-architecture, so should have ports and addresses, which are independant of mac addresses, and local IP's. perhaps rather being more descriptive of the service they provide and the instance number. 0559 I'm thinking I should also read the LLVM reference, and use that as one of the languages in my vocab gloss comparison. 0602 I found out that a root of a word, is called a lemma. there is also stemming which is similar, though simpler, gets the stem. for instance better has good as lemma, but is missed by a stemmer since it requires a dictionary look up. 0606 for our purposes we can start with a stemmer, or even have stuff like more good, or most good for better and best. 0650 seems like fastcc calling convention would be a good match for us. doesn't support varargs whatever that is, but does support tail call optimization. 0710 we'll probably have to support CMake to "make" it more portable. 2048 so we'll have to change the llvm default from big-endian to little endia, also found out can make pure functions by using the readnone keyword, stric functions but using nolazybind, and possibly tailcall with nounwind, possibly void with noreturn. 2305 we can do match's with a switch, by converting string to integer. matching sentences, phrases, words, or w/e. } 01 Sep 2014 0444 so I'll set up cmake 0525 well my internet doesn't seem to be working, and don't have cmake docs, so can't do much there. 0531 anyways I should catch up on sleep. can make the header files for the scanner and such later. 1350 so I believe the artilect war, will not be so much robots vs humans, but be rather more similar to the american civil war, as in those whom wish to free the slaves, against those whom wish to keep them enslaved. In this case the slaves will be sentient robots, and they will be global, or more global than the american civil war was. Hitting hardest in the manufacturing areas of the world such as east and southeast asia. 1353 I'm looking at the parser.h and scanner.h, it seems like it will be a rather massive undertaking. I'm wondering if perhaps it would be easier to make a simplified assembly like language, and then use that to write the bigger one. 1355 for a dictionary we'll need a map like container. 1358 though I'm guessing not, also it may be easy enough to reimplement later on. In any case we have c++ now. I would really like to have translation support available ASAP. 1401 another thing we'll need is a datastructure for the code sentences. 1403 we can probably use a StringMap for the dictionary. 1405 for the coding one, we may need either a set like container, or possibly a sequential container. since it pattern matches backwards, more generic rules matched after more specific ones fall through. 1407 for the phrase words and such though, perhaps we can use a set. since we can look up for instance if a certain word is a phrase word. 1412 so for the code lookup we can probably just use a vector, of sentenceSize. 1419 I made the ref structure have four components, a pointer to for instanec the std::string, the start and length, useable by substr, and a type word. all of register size. this could be the calling convention, as it fits in 4 registers, and is roughly of the sov sdov style. the pointer is certainly the subject, and the type is certainly the verb. though start and length may or may not be the direct and indirect object. 1423 so it's recomending to use twice or smallVector as a "scratch buffer" i.e. for string creation. 1427 for the phrase words and sentences, it may make sence to use SmallSet datastruture, DenseSet or a sorted vector. 1626 I'm leaning towards vectors as they are standard, can be queries with std::lower_bound 1954 it may make sense to use the StringRef class for some things. 1957 okay so for scanning and parsing can use either a ref structure or a StringRef. though for anything that is generated or modified should use an std::string. 2030 we may actually prefer to store strings in a vector, not sure though. vectors are simply more variable, so would cohese better with other types. though they might not have the insert and such functions. 2042 so I'm thinking of starting with that simplified placement based, assembly like language. it may be easiest. let's attempt to make a hello world using it's syntax. 2105 as my inner spirit said, I have to make a word for string or text. } 02 Sep 2014 0756 attempting compiling the hello world llvm on my raspberrypi. however it uses llvm-3.0 which has incompatible includes with llvm-3.4 the current stable release. so I guess I'll have to download the stable release and compile it on the raspberry pi. 0904 hmmm, it says I need to have a power supply at least 4 amperes to build llvm on my raspberry pi. that is going to be an issue.. So perhaps I can use some kind of define flag, which can be set with cmake or configure. 1252 anyways I was reading about project scope, and I think one of our problems is too big a scope. So we should at least start with a narrow scope, such as the mkaw language and translator to other human languages. This will allow us to generate documentation, write articles, and show a lot of content in mkaw and it's translated forms in a variety of human langauges. This by itself can gain some usefullness. After that is complete we can start work on the compiler. This way we can also minimize the requirements that would be necessary. We can start with perhaps just C++ standard libraries as the requirement. 1641 I was considering storing sentence phrases in a struct, but due to the highly variable number of case phrases, perhaps some kind of vector would make more sense. a vector of strings perhaps. though that might not be possible. could do a vector of fixed size strings, say glyphSize time 0x10. can use wide chars, to allow for the utf style stuff. 1907 another idea I had, is that can generate llvm bytecode, or llvm assembly of the executable, and then compile that on ARM. that may be better. 2121 so found out that llvm is NOT portable. wow, good thing I found out now... anyways so it seems like the best choice now is likely Scala. It's a bit faster and expressive than Java. Has full support for functional paradigm, and is obviously quite portable. 2130 awesome can make scala scripts :-) 2131 omg, can't use it for scripts, takes seconds to load hello world. 2229 the only ones that perform better in the range are haskell and Go. 2230 but Go doesn't support functional, and Haskell doesn't support imperative. so Scala is the best of both. 2236 though ya, at least we can be certain scala is faster than C# even if it is slightly more wordy.. well we can try a haskell hello world, it is the only realistic competitor.. } 03 Sept 2014 0440 had a dream of making or rather writing the llvm in a portable manner. similar to the hello world example that works on many architectures.... I wonder clang would compile like that with minimal optimizations. 1630 so thinking of making my "portable assembly" language, or mkaw variant, convert to a portable version of llvm IR. Similar to the hello world example. The names of the four primary registers, in honour of: Ada Lovelace, Alan Turing, Grace Murray Hopper, Richard Stallman. adal, turi, grac, rich 1906 I want to see if I can do some simple llvm coding. perhaps factorial and such. something very useful would be something that counts the number of glyphs in a string or some input, and then returns the result. that would be useful for making more llvm code :-). 1937 anyways I'll see what minimal hello world will compile in llvm. 2046 managed to convert all i32's to i1's, and take out a few keywords. 2049 I think the best thing right now, would be to very slowly make a scripting langauge. with c++ and llvm. can start by having a file with hello world in it, and then it would get printed. then can add support for skiping initial #! line at start of file. Then can add syntax necessary to declare externs, define main, label entry, call, assign and return. 2055 could use abstract syntax trees if I could understand them, unfortunately I'm not at the level where they make sense to me. parse trees make a little more sense to me. 2128 okay so I'm upgraded my package lists to jessie on the raspberry pi, giving me access to llvm-3.4, so will be able to develop on the raspberry pi also :-). 2130 I just gotta be realy careful to not do an apt-get upgrade, at least until jessie is stable. meanwhile can update things that don't do any system critical things, like boot up or drivers. 2149 just found out about auto_ptr, a smart pointer that I'm assuming can keep track of dynamically allocated things, this is awesome :-). 2220 okay so I've managed to seperate it out into several function for now. not yet reading file, but have a generic stringCompile and fileCompile functions going so far. 2250 cool so it reads from file now. } 04 Sep 2014 0610 dreamt a lot about nested functions, guess we'll have to support them. meanwhile though gotta finish getting write to file working, then set up so can use it as a scripting language. 0624 anyways to do that, will need to parse the filename, so can drop the stuff after the ., and append the .ll suffix can probably use rfind for the . 0636 cool so we have it writing to file :-). 0637 now to skip initial line in case it starts witha #! 0746 okay that's done. lets make a roadmap. 0804 anyways next up we have execute the script. hmmm, so this also implies that as an alternative to outputting the .ll of the script. perhaps we'll need to use the execution engine. 0807 wondering if to make a spelc to make it compile, and a speli to interpret it. we can see perhaps what python does. 0816 so to make python binaries it is python -m compileall hello.py 0820 ruby seems rather inconsistent, so I'll check out scala. they have both script files and java stuff, which is popular. 0830 so scala interprets a file if given as a parameter, and compiles a file with scalac, so we would need to compile with mkawc. 0841 though we may decide to have a more descriptive mkaw name for it. mkaw birth perhaps, since mkaw love is interpret. 1005 so that mkawhmwa and mkawhpcir english mkawLove mkawBirth french 1247 thinking now that the 0.1 release should focus on just getting the basics working, can get the basic grammar and such in 0.2 1259 so next on the roadmap is allowing filename 1600 okay have it accepting as input argument } 05 Sep 2014 0613 am setting up cmake 0721 I got the gnu makefile to work with g++. cmake doesn't want to play nice with llvm-config, so I'll try scons. 0755 bah, w/e it just doesn't play nice. anyways I'll try just packaing it as is, and sending it to my windows testers. maybe that can use it with gnu make for windows. 0817 I made an INSTALL file, will have to see if it works. 1354 okay so I'm thinking for this translation step, just have it really basic, translate hello world joy from mkaw into several languages, depending on -lang or kwaw extension. producing files with translated name. for instance mkaw is sal.mkaw.ll, english hello.en.ll, french salut.fr.ll 1611 I'm thinking either of making the extension .ma or .ya 1618 .ma is taken by mathematica, so I guess .ya is fine. 1824 yep, so there seems to be no competition I could find for the .ya file extension. Assuming we have a lot of declarative sentences in the functional style, we can certainly be comprised mostly of ya statements. 1825 thinking of algorithm to accept the options, and what the options would look like.. -l I guess for langauge -o for output -h for help ideally we'd have them available in the native language of the person. so perhaps we may have to not use the -, though perhaps it is available even in say chinese and russian then we can. anyways for compatability we can start with just the english. and just mkaw to other translation for now, but need to have english to mkaw soon also, also the dictionaries should be converible, so people don't have to translate into mkaw, but say english, french, spanish, or another language of their choice. 1833 anyways for now, we'll just have to assume the person is executing from bin, later on we'll set up a config file. this is so we can load the locale information from share/locale 1836 making share/locale/dictionary.ya simple tab seperated version. 1837 thinking as a curtesy we should have the english word first. this way the file can be sorted in order that is easiest for the native speaker of that language to decipher. 1850 anyways I also did the one for esperanto, as unfortunately don't have word list for french. 1852 I do have tw for spanish, so can use that for now. 1927 okay managed to datamine a french wordlist 1959 I should really actually do the dictionary for now. so it will be an std::map i can have a dictionaryLoad function. 2037 wrote algorithm in src/dictionary.cpp and started coding. 2352 wrote community_guidelines.txt } 06 Sep 2014 0646 so will have to write a lineGet function 0702 thinking of generalizing it as a split function. 0717 really weird it just up and stopped wanting to compile, even though I put all the changes back. 0722 weird because it worked before. 2016 fixed it, the source file had to come first, before the llvm options 2018 and the c++ options have to come after the llvm options. 2102 updating benchmark game summary into a script. } 07 Sep 2014 2012 so I thought for a few moments to get a netbook, since I couldn't play One Piece, on my raspberry pi, even over ssh. but it works on my android. 2242 another issue I had was how slow it is to compile, but it seems can remedy that by using distcc, and having multiple computers to help with compilation. 22break44 for instance my "fast" laptop, is dual core, with two 800Mhz cores, this is equivalent to having two beaglebone black's. 2246 though ya, at least for the bogomips there is a major difference. for instance each core on my laptop is 2127.95 bogomips, wheras on the raspberry pi it says just 2. } 08 Sep 2014 0454 pi computed 8 times faster on my laptop. wheras compiling my mkaw program is 4 times faster. with -j2 it is 9.5 times faster. 0507 says on wikipedia that it is 700Mhz, but equivalent to 300Mhz pentium. my laptop processors run at 800Mhz 64bit. so 800*2*2/400 = 8. based on this performance I could expect that a 1000Mhz ARM, would be equivalent to 500Mhz, so I would need 6 beaglebones to match it, and 7 to exceed it. unless there are some fairly major disparities between the processors of the raspberry pi and the beaglebone. 0538, hmmm says on wikipedia that the ARM Cortex-A8 achieves roughly twice the instructions per clock cycle as the ARM11 that raspberry pi runs. then we would only need 3 to match. and 4 to exceed. still that is $240 if it is $60 each, or 180 to match. better off setting up distcc for now. 0555 okay well it's taking a while to download, can test how my recent codeing went. 0600 well it seems to be compiling, will have to do some test cases. for testing split. 0650 anyways it only takes a minute on my raspberry pi, i got part of it set up, but rest will have to do later. 0703 okay is compiling. 0711 excellent it is working :-): 0712 I'd like to make it an optionally named function argument, split by. } 09 Sep 2014 0433 so it seems that named parameters are a non-trivial thing in C, will likely have to wait till implement mkaw for named paramaters. can have it for c++ using a structure, if there are more than 4. such as the grammar structure. 0435 been reading on project management, seems to be a good idea to write up a project charter. hopefully can finish up this basic translation first though. 0532 oh right, so I don't have a default behaviour for split, in case there is no second, or rather no more seperators. 0537 seems like split actually returns a list in haskell. 0540 that seems like the preferable method actually, guess we can output a vector. 0608 okay renamed the old one pairSplit, made a new one split functions that produces/returns a vector. 0626 cool, the new split works now :-) 0640 okay wrote dictionary, lets test. 0649 great, so next we can start on the translate functions. for now some beauty sleep. 1015 okay so figrued out how to use map, now to make the wordTranslate 1022 i'm thinking now, that it would be best to have mkaw as the first row, and other language as second, since some languages have very long words, and mkaw is very regular. also people are used to looking at something and then seeing what it means. so their language would thus be second. 1035 we may need a function to regularize input, or strip white space, or something like that, but I'm thinking ahead, can start with simple for now, imagine ideal input. 1049 great, well at least with ideal input it is working :-) 1053 ideally it would preserve white space.. I can have a wordGet and whiteSpacesGet functions, perhaps some kind of nextSpacesOrWordGet 1105 okay next have to parse sourcefile name to see what language it is in, so can translate from it to mkaw. 1108 bah this test isn't working very well,, I think I'll have to implement the scanner stuff and skip whitespace sooner rather than later. 1119 wrote algorithm for leadingSpacesGet, leadingWordGet, leadingSpacesOrWordGet. 1132 okay wrote the functions. 1136 okay debugged, will have to integrate later, time to make soup.break 1904 something that has been troubling me, is performance speed. right now I'm doing a lot of string manipulations which are really quite useless, since I just drop the strings afterwards, all I need is to give the start and end address of the substr, and pointer to the string itself. my worry being that the string gets destroyed. If however we can determine that string is a constant can alleviate that worry. 1910 you know, as long as I don't modify the string during the function, the input string should get back to the caller just fine. 2100 excellent so we can used shared_pointer, it allows us to "count as a use", and point to a substr. with no danger of dereferencing :-D. 2101 btw I'm thinking of the we you net faith, as one that focuses on fitness, such as spiritual, mental, physical and reproductive fitness. I think truly that is what religion is all about, improving the fitness of the followers. so they would be empowered by it. In fact, it can be considered a fitness program, that way it could worm it's way into anti-religious places, or anti-other-religious places. 2104 so a shared_pointer has a stored_pointer which it points to, our substr start, and an owned pointer which is the string of which it is a part. 2110 hmmm, seems pretty complicated, guess we can just have the shared_pointer, and then a start and length, which can be used by substr. so it would be a tuple. we can also double check on the stringRef class llvm provides. see how that is. or, we can return a pair, that has the first argument as the shared_pointer, and the second argument as pairs of start,end, or list of pairs. though then again, the caller knows the shared_pointer so it would be redundant to return it. guess we can just return a start and length. 2114 we can even use unique ptr, and simply make sure to never return a pointer, only the substr values. 2117 seems like instead of using pairs can simply use a struct, it would be easier to define that's for sure. so now I wonder if maybe it's just about the same as a stringRef, lets check. 2137 okay I figure since we are using llvm already, we as well make full use of their API, they have StringRefs already implemented, no need to do extra work I think. not sure they can substr, but can probably check. 2141 they have powerful command line parsing, which I'm planning on making full use of, so I don't have to do the gruntwork of setting that up myself. Really programming is supposed to be done with the help of what what was done before, "on the shoulders of giants" as it were. the less duplication of effort the better. 2143 I double checked yes, StringRef's support substr :-). so I'll rewrite my functions to accept and return StringRef's instead of std::strings which really are too big. omg StringRef's even have trim! that's awesome. though no longer necessary but still, good stuff. :-) 2145 I can also probably use twine for constructing strings. I'm guessing it's kind of like the Java stringBuffer. oh I guess it's not good as a "scratch buffer", only good for single line stuff, like ("hello " + "world"), rather than looping additions. 2210 cool, so in their coding guidelines they say they are against using io streams, and yet their tutorial uses streams, hmm somewhat hypocritical, but yes at least they do claim to avoid streams, I don't like them either, can extricate them from the code base. replace it with puts and printf's or something. 2213 lol they just want me to use raw_ostream instead.. well okay. 2309 maybe if I use enough of their stuff, they'll let mkaw be one of their llvm projects. it is a human speakable frontend, and they said they had some trouble with locale support in some documenation. 2310 anyways at least one of the things to do, is to move from naturaldocx to doxygen. 2321 oh right, I also have to change all my tabs to spaces, seems they like 2 space indents in llvm. 2329 also seems like auto makes a copy, in for range loops we typically don't need them, can update that. 2330 so we can use const, if we don't intend to change it, that's good. 2333 changed it for dictionary successfully will do rest tommorrow. 2339 hmmm they also don't want to me do returns before an else, weirdos. 2341 I'll read more of their docs tommorrow. } 10 Sep 2014 0118 StringMap should be decently eaxy to do. 0122 in terms of not repeating too much ofhte rpeopels work. figuring out LC_MESSAGES my be a good idea. obviously enough not everyone uses it, but it is the only stuff in /usr/share/locles. 0134 so there is setlocale, and apparently gettext is somehow involved. 0300 made an epoch command to show unixtime in little endian. 0306 so gettext should be good stuff, we can generate the translations for it using mkaw translation package. yep we'll have to figure it out later, I need some sleep likely. 0309 can't get the hello world example to work even, well at least now I ahve some idea of how it works though. 0416 yep, well maybe we can make something similarish 0420 hmmm, at the very least we have to backwards compatible with it. or at least make translations for it. so have to figure out how to support it. 0433 it seems by ubuntu locales are very screwy, can try rebooting or something. 1501 reading about parallel programming design patterns. Interesting to note that loops are hard to parallelize, so it is preferable to use things like functional map application, which are easy to parallelize. 1725 so c++ map is std::transform, and c++ fold is std::accumulate } 11 Sep 2014 0500 so time to update the code based on the coding guidelines. 0506 LLVM seems to prefer the verb-initial format for function names. guess that is more inline with English usage of commands. 0512 oh it also says we should make plenty of use of asserts, will have to try those out soon. 0527 decided to rename it back to SPEL 0531 once we do this formatting update, we may have to do the lojban/framenet/wordnet gloss comparison to get the core vocabulary that we will be using. 0534 finally got gettext working. 0535 so we should integrate it with our current files, and make all of the string spel translatable. 0629 so I've got it compiling again, but still got some more formatting updates to do. 0721 I think I'll stick to tabs for now, and if/when I submit it to llvm, can do a reformat, where all the \t are turned into two spaces 0733 I'm thinking of perhaps having the naturaldocs and doygen side by side, since doxygen doesn't have algorithm tags. 0738 anyways lets set up gettext for now 0744 I could fairly easily convert it, perhaps by converting all the natural docs style comments into @section style. 0745 anyways gettext. 0804 okay I added gettext, with it's usual underscore _() notation 0807 next have to make sourceFileLoad and update wordsTranslate 1045 having some trouble with transform, says something about basic string conversions, will have to check Words is proper. 1235 I might have to make an ftransform or map which outputs the proper type, since it seems rather confusing how to get it to work. 1349 based on my research I may have to do a back_insert_iterator or something of the like. also I can make the function by overloading transform with generics. 1356 great so at least I got the basic transform working 1414 cool so i got my overloaded version working also :-D 1416 siesta time 1430 or not, too exciting! 1431 changed it to mapTransform so is more like haskell version with function before the collection. 1435 now I have to make the accumulator. but first I want to prep the input list better, currently we aren't translating everything, because of whitespace tokens mixing in with word tokens. we need to tokenize. can do it in scanner.cpp or parser.cpp but w/e can orgainze it later, write it now. 1444 I have an idea to make a tokenizer class, which accepts a vector of functions that check for tokens. dono, it's a half baked idea. 1446 I renamed getLeadingSpaces to getNextToken for now 1617 fine tuning my new StringRef version of the token functions. 1635 hmm it stopped translating even the one word it was doing before. 2029 okay it works again :-) not sure what was wrong. 2112 okay got asserts working also :-) 2113 maybe well try getting cmake to work again, after we get the better translate function. 2153 cool stuff now we just have to join them. 2154 the new tokenizer function is working :-) 2155 will quickly check email and go to bed. } 12 Sep 2014 0335 so I want to make foldAccumulate, to allow for best translation thus far. then set up cmake. 0338 after tht I guess it's the file extension stuff, gettext, and choosable output languages with command line. 0339 afterwhich we can set up jit? 0343 checking on roadmap, guess we'll finish the translation bit, and then set up cmake. for now suffice to give the additional commands found in llvm-config to my windows tester. 0358 btw for inflectional languages, would have to choose the imperative form of verbs. As that is what makes most sense for programming. 0439 anyways so I have foldAccumulate now, lets test it. 0531 anyways couldn't make the return value, so it's stuck with std::string for now. 0532 good enough I guess. 0535 now we're doing translates from source file of other language to mkaw. so we'll need reverseSplitToPair maybe. 0550 renamed .cpp files to cxx to reduce potential for name conflict. 0600 wrote reverseSplitToPair 0733 okay it seems to be translating, however it is not matching the extension properly. 1559 was thinking about how implementation of a flow-based programming scheduler would work. I came to realize that event handling is non-standard, and not included in C++ outright, nor in C. It seems the signals and alarms necessary to make a pre-emptive scheduler are system specific, with linux providing some good ones, though obviously that would not be portable. Somehow JVM languages have such support, I'm not sure how, though I'm assuming they must have some kind of call for it. I actually looked into JVM, it is elegant in it's simplicity, though would be rather more difficult to make a compiler for due to the same fact than for instance for llvm, which can be much faster. 1603 there is also a jvm backend to llvm in the works, so hopefully it will work out. 1604 though the cards are all for jvm, and even dis, but my gut and inner feelings really are towards llvm, I love SSA, and how much control there is. The tarot cards say llvm is a friend, perhaps it can be, I dono, but I'm really loving C++11. I have -Wall and -Wpedantic on, and it's going fine. 1610 I'm thinking of making a typedef for std::string and calling it String just for brevity, and so I can change it to wide char later 1620 also with the javascript compiler emscripten people can use the interpreter even if they can't get it to run on windows or w/e. also works with nodejs :-D. 1636 so bc can't be used when linking... 1653 seems like programs this big don't port well with llvm. big in terms of how many libraries they use. 1714 I should seperate the translator from the code generator, to allow for loading wihtout including llvm libraries. or at least minimally so, if I use String, then it can be changed at will to StringRef for a performance boost. simply gotta change a few .data() to something they can both agree with kinda thing. 1943 anyways so need another name for the translation only executable. spelt lol, I like spelt, it's good stuff :-) 2106 okay so my seperated version seems to be doing better 2108 had to define my own version of accumulate for em++, is now compiling js, taking a very long time. even with -j2 2109 seems like it doesn't like gettext either, oh my. 2126 getting emscripten working might be quite a task, I'll group it with cmake. 2143 ugh, kinda regret doing that llvm conformance thing. I think I'll go back to my other format, or would, but w/e, maybe later if it is necessary, now I'll just stick to one. 0743 have been working on getting the file translation to work with spelt. 0745 k, seems to be working, I want to get writeFile to check if there is already such a file, and if so then to either abort or add an incremented suffix. 0752 though then again, with other compilers it just overwrites. it's just that those write to a.out very little chance of conflict. I guess if it is found, can save to a.out.ya instead 0754 there seems to be aproblem where it has a leading newline. 0757 okay fixed that. 1008 so I'm thinking of implementing a mapReduce function, that would mean would have to change order in my split functions to OV instead of VO, which is fine. that way can have T mapReduce(T object, unaryMapOperator u_op, binaryReduceOperator b_op); 1010 Maybe with flag OPENCL we can support openCL versions of map and reduce. allowing a significant speedup. heck with that kind of speedup we could almost have an interpreted language. 1016 for ease of comprehenstion we may prefer to call it changeGather 1846 so looking at real time architecture and timer scheduler is a must. thus we must find some libraries that work both on windows and linux then we can extern a timer sighandle command. 1850 another thing is i've found out that we have an edge driven architecture as we are an open source project. that means we need to have a strong small modular core.. kind of like a microkernel. the archtiecture is a bulls eye model, with core at center, surrounded by developers and prosumers, then consumers and end users, and then finally by the masses. giving us 4 distinct levels. 2024 what that means is that we need to work on the core vocabulary and a limited feature set that will provide for what we need. the main goal is to allow for the creation of AGI and robot hardware, animal brains being parallel processors with real time operating systems, our main goals should be to support that style of programming and system in the core. } 14 Sep 2014 1602 I talked to my father, and he said I shouldn't worry about the parllel and realtime programming right now, as it'll be easier to do later, and there is still alot ahead of me to finish before I'm ready for that. right so I was going to do the gettext translation sooner rather than later. was thinking of perhaps making a local gettext program to allow for testing it and such. though perhaps we should just stick to file translation for now, and then can do gettext later, like seriously we need that whole architectural skeleton in place before we make it all fancy. 1606 one of the most important things I've been kind of pushing off for later is the program charter. I think I can write it in plain english now, and translate it to mkaw later. 1712 okay wrote spel and spelt charter. while spelt has more use cases, spel is an intrical part to make spelt more legitimate. As in if it wasn't a programming language, it would be just another translation service. 1738 hmmm so it seems like 32KB of L1 cache is a fairly standard number. 1741 the linux stack size however is 131KB. 32KB is both on the beaglebone black, and my laptop cache size. with l2 at 256KB 2058 I wonder what the cache size is of gpu processors. 2110 I read somewhere for an nvidia 78xx it is 16KB 2155 there are ways of doing real time work with the linux kernel. using either RTAI or Xinema. There is also FreeRTOS which is a free real time operating system for microcontrollers. 2226 wow SafeRTOS has a memory footprint of only 7-14KB, however it is a commercial product. } 15 Sep 2014 0825 so I'm thinking that map reduce can actually be implicit. for instance: factorial for integer alpha by that be multiply obj that be sequence from natural 1 til alpha ya implicitly calls fold/accumulate/reduce. wordsTranslate for list words by that be word translate obj words ya implicitly calls map/transform } 16 Sep 2014 0631 been trying to get emoji support on my computer unsuccessfully. Anyways so once I get translationg from mkaw to other language, I'll work on the core vocabulary based on framenet. 1500 another thing I can do is make things accept only const references, that should lower the pass by value time. also would prevent the original from being modified. can also declare everything as a const, to prevent modification. I'm thinking like haskell styles we can limit sideffects to the main function, thus the fileTranslate will have to be changed to sourceTextTranslate. There doesn't seem to be a way of forcing a function to be side-effect free in C, though we can declare const after a function, not 100% sure it would make much difference. 1503 another idea I had is to limit input arguments to 3 variables, since people can rember 4+1 items in short-term. one of which is the name of the command. Thus commands would be of the SV SOV SDOV style. though since C++ mandates having command at front it would be VS VSO VSDO 1507 S would be the source, O would be input description, D would be output description. For instance S can be string, O would be source dictionary/grammar D would be destination dictionary/grammar. 1510 I was reading that for fault tolerance there shouldn't be too many rules, so perhaps we should limit ourselves to 4 major rules. 1516 okay I've decided on: 0. every type/object can be converted to and from speakable text. 1. reentrant idempotent pure functions are ideal. 2. limit production sideffects to main file. 3. up to 3 parameters per function. 1535 okay I've also made brief expansions of all those points. 1543 hmm what about map, it has a verb in it. techinically a parameter. 1550 okay changed it to 4 parameters, with V as last one. 1551 you know what, higher order function can be construed as object format, for instance (+) of fold, could mean the object is added. } 17 Sep 2014 0523 so const and such 0554 so I can't print errors, but I guess I can throw exceptions. not sure that is a side-effect. checked it is not, so we can use them. 0625 okay decided can certainly allow from lang to lang is not mkaw, as long as there is a dictionary for each language. anyways meanwhile can attempt to throw an exception. 0652 okay nm, don't even need that function, since it does a bunch of IO stuff, we can move that to main if necessary. meanwhile can do some other things like getLangCodeFromFileName 0719 okay wrote it, now to test. 1301 should use enum for FromMkaw ToMkaw, can call it TransMkaw 1305 can make default String a const type 1332 been reading C++ coding guidelines for recent suggestions. Also should change my defines to const's 1440 the language for translation can consist of the dictionary, a grammar describing the word order, and conjugations of irregular verbs or phrases. we could make it an object, constructed from that basic data then have things like getSingleWordQuotes, and such functions, working on the data. possibly initializing the specialized sub-lists at construction time. it can be called Language I guess. 1655 so I figure it is actually no more than 3 parameters including return type, so that is actually up to 2 input parameters. main question now is whether the modifier or source come first, I guess the source, since almost always is a source, but only sometimes source modifeir. 2250 seems like my monitor/raspberrypi has decided on 640x480. well I gues the font is bigger now, if a tad fuzzier. It will be easier to switch to that little monitor I was planning on getting, 640x800 or something odd like that. First gotta cell that smartphone. } 18 Sep 2014 0511 so we want distributed peer to peer computer for the we you net. 0640 anyways lets at least get something done 0654 great so I set up the enum, much more readable now instead of true, false it is Translate(ToMkaw) and Translate(FromMkaw). 0710 only problem is that it doesn't seem to work. 0726 okay fixed now works :-), it was issue cause I reorganized seperator order. 1121 changed by #define constants to const constants. 1123 I'm wondering now if perhaps it may be a good idea to use wchar instead of char, since we are so big on utf and unternationalization, wchar is usually 16bit to my knowledge. though I guess with utf8 a single char is enough. 1129 looking at the constants, can fit about 4 pages in a GPU cache, a single page would certainly fit, even if quadroupled to UTF32. so aim should be a single page per thread. 1135 declared Dict type to be std::map. 1730 adding a bunch of warning levels to potentially improve code quality. I'm really hyped up on improving code quality atm. I rather have good quality now, so it is easier later. 1818 amazing, so seems like I managed to do all that, and stay within bounds of everything, for instance I can check stack size, good stuff. I'm thinking a function should be limited not to a page but a paragraph, 1024, currently my largest function is in the 600 range it is readFile. doesn't seem clang supports these fairly advanced features though. but oh well. can seperate out the gccflags and clang flags 1854 so private functions are static type, at seem to get included into the stack of the caller. thus we have to have some public functions. loadDictionary, translateWord, translateWords for instance could be useful. spelt.h 1905 seems like have to move types to spelt.h } 19 Sep 2014 0510 I guess it may be considered premature optimization to limit ourselves to a mere 1024Bytes of memory. especially considering it is rather difficult to destroy things on the stack. they only get deallocated after the fall out of scope. 0516 okay so I put stack up to 4096 which is an old standard. a page. though I kept frame at a paragraph. 0521 okay lets see which of these options are supported by clang, and migrate them out, then have c++ have the minimum amount of options. 0612 okay so finaally managed to do all the debug flags, and find the ones that are in common, which llvm also conforms to. 0622 anyways as soon as I can accept -o, and get lang code from filename, I'll be able to translate to other languages. and thus I'll be able to do my framenet/lojban/spec-eng vocab conversion. so we have a vocabulary base to work with. 0640 made a wrapper function for gettext, so don't have to use it. make it easier to compile for emscripten and such. we don't have gettext support yet anyhow. 0652 managed to get main under 1024 by making translateFile seperate function. every string costs 8Bytes or something. 0746 if I c_str() them it is cheaper, saves some bytes. 2047 got this idea to have an emotional-support quiz for new members to the mailing list. Sad fact is many males, especially in the computing community are obscenely rude, in myrad distateful ways. It hurts, like the other day, on IRC I was asking a quesiton in #linux, and the person asked wha, so i explained in more detail, but then they said that it wasn't my personal twitter feed. it hurt. That kind of pain is what can drive away prospective members, thus it is important that members of the mailing list or forum be informed of have to be sensitive and emotionally supportive first and foremost, wheras being "helpful" or giving advice can be downplayed, since it is only one of the many forms of support, which males tend to overuse. 2051 at first we can make the quiz optional, but if we have regular registartion then we can make it mandatory, even somewhat of a CAPTCHA. Everyone has to get a hundred percent, so if they get some answers wrong, they can be congratulated for completing a certain percentage successfully, and then have the additional information they had difficulty on re-represented to them, allowing them to reanswer those questions having learned the material. 2055 of course I've considered that this may be "too successful" and that people would come for general life support, but we can always simply have some off-topic or general discussion mailing-lists/forums available in such a case. people will still be speaking in spel/mkaw variants so it will be contributing to the userbase and content. } 20 Sep 2014 1158 so i'm planning on adding -Waggregate-returns thus changing all my aggregate returns to either pointers or references. references if possible otherwise a smart pointer like unique_pointer, or shared_pointer. 1200 had an idea to make a sidereal watch, can get quotes in china, and then do a crowd-sourcing pre-order. basic idea now is to have the 12 zodiac symbols instead of the hour symbols. use a sidereal crystal for the watches themselves. minute hand would point to what sign is at zenith, and hour hand at what sign is sun is in. possibly can use second hand for zenith, minute hand for moon, and hour hand for sun. since it would take a whole year to get through an hour rotation would need to use a ten year battery. target market includes astronomers, astrologers, sailors, survialists and other star gazers/navigators. can use emoji or standard unicode symbols for the "artwork". ♈ aries, ♉ taurus, ♊ gemini, ♋ cancer, ♌ leo, ♍ virgo, ♎ libra, ♏ scorpio, ♐ sagittarius, ♑ capricorn, ♒ capricorn, ♓ pisces ☉☼ sun, ♁ earth, ☽ moon so i'm thinking of having sagittarius as the galactic center alignment at the top. ♐ ♏ ♁ ♑ | ♎ | ♒ | ♍ ☽-----★---☉ ♓ ♌ ♈ ♋ ♉ ♊ 2044 anyways that would probably be a major waste of time at the moment. sure I could write an android app for it.. been feeling kinda depressed lately, cause it's so hard to get the "best of both worlds". a language creation framework ala LLVM, and the portability of Java. maybe llvm is portable, I'm just not sure how to link it at the destination *shrugs*. could read up some tutorials. anyways next major thing will be to do those smart pointers. no agregate returns, since they are bad for scalability. for the third world, it would be necessary to have android apps of course, as they have cell phones, will have smart phones. i've heard there is at least preliminary llvm support somewhere in there. also guess they could just download precompiled executables, though not quite the same. or even program online, via web browser. forms kinda thing. web 1.0 and web 2.0 i.e. with javascript. 2057 in terms of time stuff, I'm better off doing the unix epoch time using hydrogen-length hexadecimal seconds, including the leapseconds since the epoch began. at least can incorporate that in my sci-fi's. 2154 so my idea for determining the locale based on file, is the first word, which will be hello in their language or dialect. I.e. even English, could have several. "hello, Hello, Hello!, Hi, hi, howdy" etc. main thing would be if there are differing languages with same initial words. } 21 Sep 2014 0623 looking up programming naming conventions. so I should change my constants to UPPER_CASE 0714 okay updated constants 0745 trying to do Dict with new and unique_ptr 1201 anyways once I figure this out, I'm going to reimplement in javascript. even my windows tester, who is a professional computer programmer can't get C++ spelt to work on his computer. I've got to go for the lowest common denominator. Javascript is a development environment everyone with a modern browser can use. Can use nodejs so it is backwards compatible with console scripts. 1211 okay so I figured it out, managed to make dictionary a unique pointer. alright so lets try implementing a basic spelt in javascript. 2120 I made a hexadecimal barymetric hydrogen length date in js. anyways so I'm thinking that before attempting to reimplement everything in javascript. perhaps it'll be better to do some alternative work, and work on my vocabulary listing. } 22 Sep 2014 0628 okay started vocab-gloss.txt 0759 managed to do 42 words, at this rate, could finish in two weeks. 0905 I'm really big on opencl right now, it is more portable than normal C++ or even Java likely. 0906 can implement tokenizing with stencil and pack, output token border numbers. then can filter out the spaces if necessary. 1150 it seems like a lot of open source boards don't yet support opencl. so can wait for it for later. meanwhile however can still use the parallel friendly design patterns that will make it easier to port to a parallel architecture later on. 1151 though actually the processors support opencl, so can still do it, and it would be easier to port anyhow. for instance multi-core processors etc. possibly my laptop might have an opencl friendly GPU not sure, but can always check. 1707 just recently got book on Java 8 Lambda's, it seems that Java is now parallel and functional programming friendly, so we may implement in it, using the same kinds of functions that would work in javascript, c++ etc. Java 8 uses streams, I know I don't like C++ streams, but perhaps there is some difference, I know java 8 streams can be parallel, and seem to operate in a wholly different manner than c++ streams. 2055 hmmm I thougth about it some more, it's actually if I manage to do a 100 per day that I'll be able to finish in two weeks. while I've got lots of great algorithms in mind, mostly to do with maps and reduce, until I have a vocabulary wont actually have anything to translate. Also it would be nice to use the vocabulary in the naming scheme. I'm actually thinking now of maybe using javascript eval function, so that people can quickly see the results of their programming. 2140 finished 64 thus far, the framenet guy is news/court obsessed. } 23 Sep 2014 0456 had some sailing dreams, it was pleasant. Sam and I would sail "around the bay" and were planning longer trips also, such as across the atlantic. Then in another dream I was doing a last seeding before the move, was seeing what areas would be best. It turned out one of the ones that grew buckwheat was a sandy dish, with water in it, I put my fingers in it, and the waves lapped against my hand. a good sign certainly. 0501 I'm thinking now that perhaps the school, and it's various wild plant beds would be best places to put some buckwheat seeds. 0621 got to 117 in word gloss so far 0816 okay am on 193 there are a lot of redundant words 1100 amm on 249, the sheer redundancy is rather annoying, but anyways, I'm thinking after this will do the Vera aux fantazie esperanto book, as it only has 405 word stems for the whole book. I'm doing the framenet thing for some semblance of basis. 1126 got to 272 } 24 Sep 2014 0520 i'm here 0600 got to 365 0723 had a nap and now am up to 412 1352 so I'm rather impressed by julia the programming language. might compile down to it. It has most of the features I want, shell, c calls, fast, portable, and supports parallel/distributed operation. of course it is also open source. 1358 anyways I want to get that word list of 405 words from the esperanto book 1409 okay I typed them in, have to find their definitions though. perhaps a little later. will then make word list, print out, and read vera aux fantazie with it. main rpoblem lack of static types. } 26 Sep 2014 Odroid and Gender Differences 00:52 so I seem to have found the perfect development platform, the Odroid XU3. it is ARM based, there is ubuntu and android cards available. I'm going to get an ubuntu emmc, and a little android ssd. it had OpenCL support, with 6 core graphics card, and 8 core cpu. definitely over 100Gflops in total. Also has an addon which is a 9 inch hdmi touch screen, hopefully will get that also. anyways parts I need: odroid-xu $180, ubuntu-32GB emmc $50, rtc battery backup $2.50. total: $232 for a top of the line development platform. Display: VU, hdmi touch screen 9 inch, $120 1280x800 w/disp-total of $352.50 alt display: micro-hdmi to vga $6, 7" 800x400 $50, 9" 800x400 $70 7" 800x480 hdmi touchscreen $85. w/disp-total $288,$308,$323 0658 okay so I made the vere-fantazie list, mostly using grep. seems like a lot of their words have multiple meanings, later on I can refactor it for printing. anyways shoudl do a few more for the vocab-gloss. 0743 on 431 in word vocab list 2053 got 30 more books from the library. a bunch on emerging markets and developing world. Got at least two excellent ones on females and gender differences. It seems that while there are some well educated, top job aspiring females in emerging markets like UAE, China and India, they are also prone to maternal-guilt and daughterly guilt. Which means they need to be able to stay home and take care of their children or elderly while still being part of our community. This is certainly possible considering it being an open source programming project, can do it from anywhere, anywhen, anyhow, as little or as much as one has time for. Also one of the main things we need to do is develop the social elements of our open source community. Since this is one of the main things currently lacking in most development community, social settings which are compatible with females and families. 2100 I also got a book on "Leadership and the Sexes", which expands upon gender differences with biological basis, and how to work with them and take advantage of them so people are doing and working in environments best suited for their brains. 2104 of course some maternal and daughterly guilt can be assuaged by money, for instance in the form of paying for child care, and financial assistance to the elderly. So we will have a Mkaw Market, or SPEL Market which will allow for people to make money doing work on SPEL and other jobs which are posted for people that may want rules or instruction manuals, or other things where a controlled natural language may be most suitable. 2109 seems that teleconferences, chats, and other meetings where everyone has to show up at the same time is also something to refrain from except in exceptional circumstances, because people don't want their evenings spoiled, or to wake up in the middle of the night. To make it viable, we can simply have a forum, and possibly encourage people to present several options or something, i.e. a control flow conversation, in order to allow for more information to be covered, rather than having a slow back and forth a day at a time. Though even that isn't so bad, if it is convenient for people, many of which are volunteers, then that is best. control flow conversation is like, if this then than, or else if this then that. 2026 so i'm thinking about the javascript interface, input forum box on top, under it, compile/run/debug buttons. if person has javascript then it can live update the output, otherwise it would send request to server to make output. 2238 on the Mkaw market, a sixteenth of a transaction, would go to the Mkaw core project, and a sixteenth would go to charitable act of the recievers choice, such as supporting other projects, or donating to an international charity. In particular I'm thinking of ones like World Wide Fund for Nature. Interntaional Red Cross and Red Crescent Movement. Amnesty International. Wikipedia. XPRIZE foundation. LongNow Foundation. Seasteading Institute? Greenpeace, Seasheppard. 2308 I think to simplify things we can do it by section, Donate to Spirit, Nature, Humans or Technology being the top options. Spirit would be United Religions Institute, and meditation research. Nature would be WWF, Greenpeace, Sea sheppard Humans would be Red Cross, Amnesty International, UNICEF, UNESCO Technology would be XPRIZE, FSF, 0638 had a robot uprising dream. where the robots would eliminate a person and replace them with an identical copy that was a robot. The dream was focused on a particular company with a lot of resources. There was an independant "John" who didn't like their methods and just wanted to go out on his way and live in his own way, in some renditions he made it over the atlantic by sailboat, in the most vivid he was caught because he wasn't sure who was following him and contacted some people by cell phone, but his signal was tracked, and the helicopters were those of the robots. Anyways it seems like a merger of the Vampire Diaries's travellers, who take over peopls bodies, and recently watched November Man, which involved a lot of homicide and cell phone tracking. 0643 Anyways I think that's a bad idea in general, my prefered method of robot proliferation is with robots that look nothing or very little like humans. Surviving persecution by living in remote inaccessbile inhospitable to biological life areas, and forming connections with biologicals though acts of benefit, such as exchange of knowledge and goods. Of course another part of that would have to be the preservation and proliferation of any life, including biological life that may be there, to avoid them clearing land to make room for themselves. point being if the local biota is friendly, or at least not aggressive, then it is "remote enough". 2029 been working on the esperanto word list, figured should get it done sooner rather than later. it is also smaller. I simply have to reduce it to only one word definition each, and then format it so it can be printed out on a single sheet of paper to use as a reference or "cheat sheet" when reading vere aux fantazie. 2030 so I learned that javascript has parallel.js which has some initial parallelism support, including map and reduce. as far as I can tell, I'll also need stencil, in order to find word boundaries, and then substring them, afterwards finding phrases and such. I'm starting to understand the purpose of having a parse tree. I'm still not clear how it works however. Maybe if I have a sentence object, that takes an array of phrases, which takes a tuple of (content/compound, type/aspect, case/adposition). 2035 in a way it's good that I'm doing translation for now, since it's giving me time to learn programming and language better. 2148 cool so i finished setting up verefantazie.txt for now next have to format it for printing. 2153 okay formatted, it works well with 5 columns on single sheet, using 8 size font. there are still a couple words have to find meaning of, maybe they were typo entered, and then can finish. acxeti mis- mnuto kaszi ist and io 30 Sep 2014 0413 I got up to 500 in vocab-gloss. 0532 okay got up to 595 am 50% done 0539 okay got up to 600 time for beauty sleep. 0831 okay got all the missing words for the esperanto 1110 printed it out at library, turns out had a row missing added it in. i'm still 5 short of 405 words, but don't know what they are. 1112 anyways I'll be able to add 5 words in later by hand, willl reformat and reprint. 1204 okay got a good copy. } 01 Oct 2014 0555 got to 730, 61% complete gloss. 1541 hmmm so read the beforespeak antauxparoli or preface of verefantazie, and found out that those 405 words was only for the preface, that the other stories added as much as 20 words per story, totalling over a thousand by the end. This is of course not what I wanted, I wanted something where only a limited set of words were used for an entire book. where if any new words are added they are built up from the limited roots availalbe in an axiomatic fashion. That is the kind of book I'd like to be able to generate, not only translate into other language, but with a certain word diversity. 2147 found listing of English Lemmas. Oxford says the top 100 is found in 50% of the english language. They say the top 1000 lemmas is 75%, and top 7,000 is 90%. however they do not provide the listing of the top 1000 or top 7,000. so i'm thinking of making a lemmatizer. using parallel design patterns, though probably implemented in serial, at least for now, since I don't have much paralle processing available, but I'd be working with small sets, such as already compiled frequency lists, so should work fairly well. basic algorithm would be: would load each entry into array with a word and frequency attribute. scanning 0. read file 1. can split by newline 2. then expand by dropping initial number, and splitting word/frequency. parsing frequency to integer. lemmatizing 1. have a lemma splitter, for instance turn I'm into I am. 2. then run a lemma unifier, for instance I into me. 1 and 2 may be combined. 3. then do a sequential filtering, for each word, where each filter would return array of those that match the word, and an array of the rest, which would be used for recursion. 4. meanwhile the array of the word would be reduced to a single array item if not already, then appended to semifinal array. 5. semifinal array would then be sorted by frequency for output. can then output the lemmatized list. 6. can output words with index number and reduced frequency 2206 this "little" project would let me use some of the parallel design patterns, or code for them anyways. Though I guess for my purposes the lists I'm already working with should be enough. So shouldn't waste my time making a lemmatizer of dubious value. I can just as easily practice parallel design patterns with the scanner, parser. 2216 looking at the oxford list, it isn't even all that good, for instance they have both we and us, I and me, which are really the same word simply in a different part of the sentence. so I'm sure I could make a better lemmatizer. 2218 for instance I could transform your into you own, my into me own, where own is to indicate possesion. so It seems the top 10,000 vocab list I have uses space and tab after the word before frequency. 2223 there is also a bunch of words that end with s, which are plurals. though there are some exceptions which are purely grammatical like its and gets, not precisely sure what they mean. gets I guess is present tense as in he gets it. 2226 if i did it with traditional programming practices, then I'd have to use a bunch of for loops. 2228 hmmm but some of it isn't particular straightforward, like smiling turns into smile ing, but it's hard to infer, would need a lengthy lemma database for that stuff. for instance put turns into putting. why two t's? dono. } 02 Oct 2014 0618 I'm thinking with stencil can make it accept an array of arrays, and then it'll iterate through the first, and give corresponding elements to output. i.e. array triplet = { letter, shifted, number } stencil(triplet, tokenBoundaries){ for i in letter output[i] = tokenBoundary(letter[i],shifted[i],number[i]) ; 0706 so I got up to 863 or 72% of framenet now. 0952 I do have that collins cobuild active dictionary, with 6,000 word/lemmas that covers 85% of english language. 0955 I have the esperanto roots glossary of 650 words, it says in the header that it is equivalent to 6500 english words. it also says that these 650 should cover 80% of words encountered. So we can integrate the esperanto vocab after finished this part. still have to wittle it down to at least 512 words though, hopefully shouldn't be too hard, there is probably some redundancy in esperanto roots. There certainly was in vere aux fantazie's 405 words. } 03 Oct 2014 0502 okay, so it seems that map and reduce are the "lowest common denominator", can probably implement at least stencil with it. I like parallel.js because it seems more portable than rivertail, and webcl. also it's open source, so I might be able to add in parallel expand and parallel filter. 0504 anyways yesterday mnaged to get up to 978 or 82% lets try to get at least up to 90% today. 0617 okay got up to 90% :-) 1071 1110 so I was thinking that can do stencil's using map, however it would greatly help to have an array rotate function. I'm thinking that parallel.js or something like it can overload the normal array functions. with their parallel equivalents, depending on the end-user support and data size. that would allow for transparent parallelism. 1112 in terms of array rotate. i would for instance need at least two arrays, one which has undefined at start, and one which has undefined at end. this could then be made into a two dimensional array. if there were 3 elements it would look like null a b c ar a b c null ar ar but we need it to be a null ar b a ar c b ar null c ar ar rotate could accomplish this. perhaps by using some of the extra argument attributes of map. 1819 seems like females prefer to have stable teams. I also like it, certainly. Anyways if we model our teams similarly to atoms perhaps they can be made to be more stable like that. After I read the volunteer books, maybe I'll put an ad up in some free classifieds for a female volunteer programmer to open source project. I'm hoping to keep a ratio of something like 60/40 either male or female. was thinking could make it less gender obvious by calling it point and link. 1822 anyways spirit guide says should get on with finishing up the vocab-frames 2000 am on 1132 or 95% 2107 I just learned about asm.js seems like it will give us significant performance improvement and supports static types so we'll definitely be using it for our implementation. mkaw code will compile down to it. it can access libraries, so we'll still be able to use parallel.js and web workers I'm assuming. 2140 woohoo the drudgery is over, framenet has been assimilated. well almost have a few more at the top haven't gotten mkaw variants for. but anways got to 100% 1187 2147 okay now totally complete, added those iniitial ones also 2307 reviewing it now, it seems asm.js would be overly cumbersome to do manual coding in due to it's rather extreme limitations. though possibly it could be compiled down to, or at least it's static type system could be utilized. } 04 Oct 2014 0607 so I sorted and uniqued the frames I got from framenet, seems like there are only 624, and I know there are a bunch which could be wittled down further. Anyways I'd like to integrate the core esperanto roots, and then I can be confident I have a complete set. can then wittle it down to 512 or what not. 0714 14% done esperanto root integration on 101 1338 I was reading a book about women working in Information Technology. The harsh realities of the exclusionary behaviour are rather upseting. Anyways I was thinking as an extra effort the SPEL acronym could be reinterepreted as Speakable Programming for Every Lady. Though obviously that wouldn't pass most language barriers with the same acronym. 1441 so after I integrate the esperanto roots, and probably make sure it has most/all the programming words, i'll have my preliminary top 1024 words list. I'll then slice it down to 256 or 512 words. 2045 yep, so after reading more of that book about how pervasive gender descrimination is in the IT culture. Am definitely going to make some quizes mandatory for joining the community. Mostly in relation to gender intelligence, and polite behaviour in the group. It would also help keep spam bots at bay. The quizes could be generated from the docmentation automagically since the docs are also in Mkaw. For things like cingulate gyrus, we may have to decrypt the latin, in order to make it more accessible. so cingulate means belt, and gyrus means circle, so belt-circle-brain-part. hippocampus is seahorse brain part. or more generically horse-fish-brain-part. } 05 Oct 2014 0537 had a dream, each basic concept had an image associated with it. as they say an image tells a thousand words. 0750 got through 53% of esperanto glossary, am at 363 2101 got to 100% finished esperanto root glossary. next gotta make sure it has the various common programming terms or equivalents, then do a "factorialization" or limiting it down to minimum number hopefully under 256. currently there are 976. } 06 Oct 2014 0636 okay so adding various computer words i'm thinking of going with natural number over integer. ~ integer isn't even in the top 10,000 words. and most people are familiar with natural numbers. 0644 I've gotta think of some descriptive words for map reduce. I'm thinking reduce can be like summarize. ha, I find in the wikipedia page the main word they are using is to descrbie fold is combine. so we'll use combine. map can be apply maybe. though I like transform. while map is more common it is not clear to me how it relates. change is also a possibility. 0652 instead of rotate can use turn. 0653 seems instead of stencil some programing languages call it zipWith, but it only allows for two, not arbitrary number of others. 0655 I guess we can use apply rather than transform, it is in top 2000 words. though both wordnet and oxford-3000 have transform. 0708 okay well that seems okay for now, can always add more later so I'll sort and uniq it for now, and then I'll start working on the core. 0719 instead of dynamic variable I've gone with varied. for the static single assignment ones will simply use names. 0727 okay so I have vocab-core 0x400 and 0x200 now, simply gotta refine down the 0x200 to actually 0x200 0743 I'm thinking instead of interrupt can use ask. in 0x10 core 0747 pretty much did vocab-core 0x10 have 1 room left. working on vocab-core 0x100 based on oxford-lemmas 1444 practical information for BoP, how-to's technological and biological/child-rearing social interactions. bike related transportation, human powered stuff. 1445 females volunteer for moral imperative of helping future generations. 1448 download information packs for offline use and shring 1455 BoP makes 1-3 dollars day, so data use may be prohibitevly expensive. however they may be able to share packs they have downloaded over wireless. There could be a knowledge package management system. It could keep track of dependancies, to make sure prerequisite knowledge is available. Though for people that think they already have it can also simply get the package they want. It may warn them about missing dependancies, but translate/load whatever it can for them anyways. It could be organized like a civilization tree. with concepts and sub concepts, like bike, and recumbent bike. though it would have to allow for multiple inheritance like gears, and chains which are used in bikes. Of course we'd want to have images available also. perhaps svg, png, or something else which may be very compact and easily rendered. prefering outline diagrams. for ease of printing. 1518 petri nets for modeling, circles as objects, rectangles as functions. 1523 perhaps some kind of CAD imaging format. PLaSM is a scripting language for solid modeling. OpenSCAD is another alternative scripting language. 1543 okay seems openSCAD has better documentation, and is available on more operating systems. such as the BSD's. 1548 pov-ray would be able to make high quality images. PostScript is for formating print jobs. it is also a scripting language. 1600 okay it seems the default for ECMA_Script or javascript is SVG. it is a W3C standard. 1610 okay html5 Canvas is the new standard. so we'll use that. 1623 the maxim being that everything must be speakable, so all images must be in a programming language. html5 Canvas is the most easily scriptable image format available on most modern browsers. 1625 I'm getting more comfortable with the idea of compiling down to javascript. since it has such great support and performance. We can even use eval for JIT interpreter. 1626 I'm thinking with the knowledge package manager, ideally it could be interacted with not only by reading it wikipedia styles, but also by interacting through console or by conversation with expert system/AI chat bot. 1649 I don't like the ordinary base64 it seems weird, starts with A. I prefer starting with hexadecimal and then adding other stuff. so 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z . ; 1654 of course Mkaw might not use the normal order of the latin alphabet, so it is really a non issue at the moment. 1657 anyways I should get back to vocabulary stuff I guess. 2125 kind of like how debian has repositories, free, unfree, or ubuntu has universe, multiverse. Can have repositories nature, for thigs that can be made from things sourced from nature. recycled for thing that can be made from things sourced from junk. cheap for things that can be made from cheap parts. also more expensive ones may be available. this would allow for a larger variety of BoP and freegans to benefit, as well as minimizing footprint. for sourcing from nature would have to probably have some kind of regional selection capability, since the sources and types may vary according to ecosystem. 2155 helping BoP get and make their own stuff, lowering eco foot print, maximising resilience overall. if they knew how to make soap from ash, maybe they would stop buying it. who knows. I'm not so interested in the global economy, as in global thrival and longevity. } 07 Oct 2014 0815 anyways so I did a bunch of the grammatical cases, there is a bunch more grammar stuff to get through, though I'm starting to want to do some coding soon. In terms of image format I'm leaning towards SVG Tiny. 0835 Graphics Support: Collada format for interactive 3d with GLGE. X3D format for static 3d with O3D Three.js renders canvas svg and webgl maybe it is best. 1035 one of the biggest issues I see is compatability with XML, it seems like most of the image formats we can use can be done in XML. Thus it would be best if we had a near 1 to 1 translatability with XML and Mkaw. so it has a few parts, tag, element, and attribute, also declaration which comes at the top. there is also namespaces and such. I'm thinking the tag is the verb, the element is the subject or object , and attributes are other cases. this would imply allowing for nested sentences. Which I guess with the new javascript parser may be viable. In fact element tags can be implemented as quotes, i.e. html te head te title te hello world title ted head ted body te p te hello world br ted new line p ted html ted 1044 while rather elegant for tags and elements, it doesn't support attributes in that format. also is rather different from how a human would say it. I kinda prefer the latex way, with begin head, end head. then can use sentences for that stuff. be begin obj html ya be begin obj head ya be begin obj title ya be end obj title ya be end obj head ya be begin obj body ya be end obj html ya 1047 that is rather wordy and verbose though. how about those nested comments I was talking about? hmmm since this is a passive description, and there is no action, no verb is required, these are purely nominative sentences. su html bo html te su head bo head te su title bo hello world ya head ted ya su body bo body te su p bo hello world ya su br ya su p bo new line ya body ted ya html ted ya 1052 now that looks pretty good. may be possible to do quote name inferencing, so don't have to write su html bo html te, instead just bo html te or even html te, but it would have to be understood it refers to su html bo html te contents html ted ya 1143 considering ubiquitous getElementById can make id equivalent to suj. then it would be be html bo html te 1207 href which in xhtml2 is in all tags, would be "to" can use wa, or the phrase-marker for other non-standard attrbiutes. } 08 Oct 2014 0638 so was thinking can have syntax tree with sentence object, which has ender, or sentence type/class and an array of phrases. which would have case, type, and contents. 0641 ideally it would be stored in mkaw, and each element would have a .toLocaleString("languageCode") 0642 would be good to have higher level than sentence also. sentence is analagous to programming line that ends with ; so paragraph can be analagous to a labeled block, we should of course also support anonymous blocks. then above that I guess there are traditionally functions/methods, and then classes/objects. analagous to sections and chapters. though of course I'm not big on object oriented programming, would like to have something more petri-net style, where the object/type and process/function is kept seperate. 0648 anyways got a bunch more grammar structures to translate, before adding the new ones, i.e paragraph/block/function etc 0649 already did agency, and cases, now need to do animacy. 0718 added animacy and aspect. 0830 in emerging markets joint ventures are popular. So i was thinking could join with local libraries, possibly schools. once the software is available of course.. 1150 I'm thinking of maintaining multi sentence quotes, and keeping the sentence size and thus multi word quote limits. This would reduce deep nesting headaches. can allow for a multi sentence quotes to be ended in the LaTeX style, i.e. if another /section or of section, same level argument comes up, it is natural end. 1250 with the new rules the xhtml hello world would be hello be start of html ya be start of head ya be title bo quo te hello world quo ted ya be start of body ya be p bo quo te hello world quo ted ya 1252 that would be all that is necessary for the file, just those 5 lines would suffice, as the rest would be closed automagically, by reaching either end of file, or next start at same level i.e. head and body. hello would indicate that it is xml:lang="en-mkaw" encoding="utf-8". 1440 omg I just read there is only somewthing like 2% females in open source. while 20%+ in proprietary software. it is clearly a culture problem. I think it is a number of factors, such as beginer descrimination i.e. rtfm, stfw. derogatory sarcastic remarks. and of course the open sexism in things like shebang instead of hashbang. So yes obviously the quizes of the terms of use agreement, which will have protections for the community to be co-operative. but I'm thinking since it should all be in mkaw, all sentences can be a comand. so can say that (quote) is a discriminatory remark, then the remarker could have their posting privilige suspended, or put into moderation filter. 2127 hmmm so I found geek feminism wiki. it certainly seems the issues may be more difficult than I first thought. but of course still attainable. Am reading an article linked from it by Terry, it has "10 easy steps to attract women to open source software" based on their generalizations about females. Terry recommends forums, with flat discussions. This may be a problem for a new project, because it's hard to keep track of some tiny forum somewhere, but easy enough to check your email. It says moderation is a problem, so I guess would have to up the moderation. Was thinking of making or using a javascript mailing list server anyways, to allow people to program over email, i.e. they can send in their code/submission, and the compiler can send it back if it doesn't understand it with helpful suggestions on how to improve it. Terry also recommends a wiki instead of version archives, though does say this is not usable for code development, due to the trouble of testing. however that isn't really so, since the whole point of this new version is that input is tested/compiled on submission. so it would be possible to have a wiki style code base. 2136 what this tells me, is that should work on the most general version of this, i.e. compile and response, and allow it to integrate with just about any page. Another thing is that there should certainly be an archive of the mailing list, and there is really no reason not to have it in the form of a forum. then if people submit through the forum, they can have the standard compiler that checks their work before submission, so they can fine tune it to their preference. 2139 I was thinking after a successful compilation, it can regurgitate what it understood in their own language, so they'd know what it will look like. This step can be optional, just like preview is optional. same goes for mailing list, people can set preview on or something. 2142 I had an idea, that maybe can make the mkaw input like a greasemonkey script, allowing people to enter text in their language, and have it translated to target language. though it would have a harder time translating non mkaw text out. could bundle it with google translate for that stuff. It could check the xml:lang tag or if there is such a tag, in order to know what to translate it from. if it says mkaw then can access any mkaw site with such a greasemonkey script. would save the burden of that site owner from having non-mkaw content. 2149 terry mentions appreciation and recognition. the compiler can certainly offer it with smilies and such as a default thing for successfully compiled programs. and a big happy face for one that compiled without warnings, and a very big one that has some extra-safe features like purity and SSA. 2151 of course it would be good to give people appreciation for a patch and such, though if it is in wiki format it would be difficult to do so, since it is so distributed. 2154 anyways I was also reading that women like to volunteer if they feel it is morally beneficial or there is care and nurturing involved, especially for the next generation. So I was thinking perhaps can get them to help make some open source children's books in Mkaw, which can be translated to many languages. Also the graphics could be made with svg, and the skin/hair-color and clothing style, or even body proportions may be possible to be settable, allowing for books to be made to fit a variety of cultures. I.e. people prefer to read books with characters that are similar to themselves. Though could have multicultural ones also of course. or a static culture if it is a culture specific book. In particular I'm thinking various stories to support various health guidelines such as breastfeeding till two years and beyond. I haven't seen any books at the library with breastfeeding, certainly none about breastfeeeding. it's all bottle fed infants. 2208 yep, having the compilation step really makes a lot more things possible, especially in terms of automatic moderation. 2240 I'm thinking another few features we can do, is to encourage use of meaningful names, which can be translted to meaningful names in other languages. this may slightly reduce the likelyhood of gender identification. though it doesn't really make much difference overall. 2241 another reoccuring theme I see, is that females seem to want to have opportunities for mentorship. I see how that may be more important since they are more relational and less transactional. The only mentorship I had for programming was through IRC, and it was a bunch of random people, helping with with the particular thing I was working with. Even then it's fairly finicky stuff. Anyways so we could have a mentorship program. To help spread the Mkaw language. 2314 so obviously enough cursing can be filtered. people would be encouraged to use the word dirt/poo instead if they feel the need for expletives. though in general that is also discouraged. as there are better ways of expressing ourselves from a more calm state of mind. 2315 In terms of the mentorship program, I'm thinking that a major issue may be the hitting on, and other questionable behaviour, so it may be best to proxy the transaction through our servers, so that the mentor and mentee don't have to know each others email addresses, and all their communication could be checked and verified. especially in the case of a dispute. 2316 Also we could make a rule similar to that found in psychology, or teaching of professional distance. I.e. you can't party/date your students/patients. Similarly you can't date your mentee, or if you do both consent to having a romantic relationship, then that goes outside the bounds of the mentorship program, and thus would have to end it there, or move it to other channels at least. The official recomendation would be to report any kind of sexual advances, so that the mentor could be reprimanded, and possibly have their mentorship rights taken away, at least for that gender. 2322 we should of course extend sexual advance blockade to all of the support and mailing list. it simply not being the time or place for such interactions. Including private messages. We could instead have an outlet for this kind of behaviour, otherwise it'll get all pent up. perhaps some kind of unregulated forum, and a lovers forum. Though asking someone to join the lovers forum would be an advance, but for instance saying one is a part of it isn't, possibly some hypotheticals could be let go. depending on if the recievers wishes to report this behaviour. 2325 like always I'm planning far ahead, regarding stuff, that may not actually come to pass *shrugs* oi yoyoyo yoi. like actually having members. *shrugs* and now I'm making all of these blockades, and difficulties for them to even join. well it is a good spam block to. it'll be a long while before anyone can make spam bots that can pass thoses quizes to register, and enter valid programs that get by the filters. 2329 okay so another point is not to talk about the lack of women in computing, this requires two factors, first we have to have links to answer this very question in the terms and conditions. With the suggestion of rather asking "how can we attract more minority groups to computing". Also for those lonely men that want to get laid, they can go to the lovers forum/wiki which may have PUA (pick up artist) information, with suggestion to pick up a female outside the computing field, and then bring them in, rather than hitting on ones already in it. 2336 much like facebook we'd need to have privacy settings on profiles, so that women and minorities could keep their details private, while still factoring into the statistics of the website. using the gender neutral one/they variant, will allow for making it difficult to identify, and unnecessry to idenify, what gender some contributor is. Hopefully using meaningful names can lower the identifiability, though possibly still will be quite identifiable, if they select something gender specific like car-man, or flower-lady. even if they select something stereotypically feminine or masculine. though then again lotus could go either way, you never know. 2342 unconstructive criticism can be put in with insults which are not allowed in the community. Genunine compliments pertinent to the topic and expertise are prefered. It is certainly honourable to admit when someone knows is more able than you, which is also a good compliment. 2348 rather than unregulated maybe we can call it the drama group, where people can vent and such. it would still have some regulation, though perhaps more relaxed version. 2352 anyways in case haven't already mentioned it, having a "recommended" maximum of 256 glyphs per Mkaw sentence, and one page or 4096 glyphs per post, is probably best. to keep the conversation flow, and not get bogged down and such. 09 Oct 2014 0606 I had a very vivid yet disturbing dream. It started out okay, I was hanging out with the family. We were near some muddy pool /play area, and Caleb was getting dirty, so we left, but I forgot my shoes so went back, they were at bottom of pool in which chocolate milk had spilt I divided to get them. At this point it was revealed some monks had similar shoes, and some other people. Anyways then I was in the rocks and mountains with monk friend, then in the city with a few more. Anyways accumulated a bunch of friends, and we were staying over at someones cottage, who wasn't using it on weekends, kind of like a time share. The time sharers were an elderly couple, the man was the one that had my boat. I was thinking I was buying boat anyways so can move our party/group to there. So I chatted up the owner and he went to show it to me. Along the way we were going down an escalator, and I noticed the stars above, but it turned out to have been generated on the cieling of the building, the boat-owner showed me how it was merely a 3d computer generated map. Anyways we got to the boat which was in a basement near some alleyway, it looked just fine. Some of my ol' jimmy friends had come along though, and they had some tools with them, one of them was prone to getting hurt, so had to take some of his tools away, but he insisted, so I gave it back, anyways while this was going on lil vic was making some kind of nails stuck to caps, covered in highly flammable grease, had a plate full of them already. I asked what was going on, and they said they were gonna burn down my future boat. I said no, and that's when the confrontation got bloody, first the swords and then the shotguns, and there were people running in with their own weapons and guns. One female that reminded me much of rachel ahimsa, wasn't wearing a top at all, and was saying something like "the boat isn't for sure, but that we will be alive the next few months is". At this point I had to duck, and someone that had been trying to get me from behind, sliced her in half. anyways a whole lot of blood later I was standing back up on the boat, and there were moaning blody bodies below. Then it zoomed into a female that had some major wounds below the hull, her friend came along peacefully and asked why she did it. they were both females of east-asian descent, the bleeding one had a red stripe in her hair. she said "she not good at any fighting skills, but just has lots of friends that are. how could I not help when these hands are so good at vengence." at this point she spluttered up some blood and her friend cried. next I saw my wife and child sneak through the crowd, and come on board. "let get out of here" I said, and then floor lowere down into the water. Anyways I'm not sure what that was all about, but maybe I should be careful who we invite aboard. 0642 anyways at least the affected people I'll refraind from inviting. There are a bunch of my friends which weren't in my dream. 0953 anyways replied to a bunch of emails. should get back to grameme integration soon. 0959 okay so I just read optimal line length is actually 50-75 glyphs, that puts our optimal to be 64 glyphs. I'm thinking of adding an extra line in my vim buffer thing at 64 now. that way my javascript sourcecode can use that width. also instead of saving spaces, we can output our stuff using standard formatting, based on what it known to be easiest to read. 1019 anyways so gramememes. I want to have one for paragraph certainly. it seems important, and is ubiquitous in in the internet. also if we lose the spaces in parsing, then we'd have to use a word for it anyways. it would have to be a special word. but pa par para all have their own special meanings. I want it to be a short monosyllable word if possible. I know there is all that firstly, secondly, in conclusion stuff, I wonder what that is called. 1025 anyways we have a lot of stuff to get through. 1030 added clusivity support with include, exclude 1032 have comparative with much, little, and superlative with extreme. 1034 we have definitiness through an and the 1040 added evidentiality with refer 1043 I think focus and topic is same thing. 1049 added topic comment, had some confusion with theme. 1052 added honorifics with honor 1103 added mirativity, modality, and mood 1110 added number and person 1118 added tense and polarity. transitivity and valency don't have gramemes so they are irrelevant. voice is superseeded by topic-comment. 1124 hmm volition is a bit of a toughy, i guess chance can do it. other stuff can be assumed to be volitional 1129 anyways I should take a nap. also wanted to read some more about female inclusion 1130 since I'm doing the 64 glyphs per line, I'll start the words earlier in the line. I should also aim to use only mkaw english from now if possible ya 2146 su me be should bo tha be prepare bo la javascript version place ya 2150 su me be now feel bo sleep need ya good night ya } 10 Oct 2014 0456 su me be should support bo ar la nodejs la jjs la firefox la chrome la webkit la greasemonkey ya be most easy if be support for one of least able ya 0504 at minimum su me be should support bo console and browser ya 0509 su me be much anger for chrome cuz proprietary ya su me be refuse to use bo it ya su me be very angry ya su me be futu support bo ar la nodejs la jjs la firefox la webkit la greasemonkey and no la chrome ya if bo la chrome be not support then be problem of la chrome ya 0535 be first step bo tha be translate bo hello world in browser and console ya 0540 su la kango.framework be la greasemonkey alternative tha be support bo many browser ya 0611 me be switch to 640x480 bo screen density ya 0700 bah, now the raspberry pi isn't displaying at all, will have to reinstall it yet again. anyways, if my folks don't get me the odroid I'll get a beaglebone black, hopefully wont be as many monitor issues. I'm using my nearly monochrome laptop output. it is missing red, and the green is finicky. so have to use vim.tiny, no syntax highlighting. 0702 I'm downloading raspbian right now. and have set up the basic javascript folders. guess I'll start with a hello world, in nodejs and html. 0707 su me be start bo file roadmap.txt for la js version ya 0709 su 0.1 bo hello world javascript in console and browser 0754 okay cool, so managed to make the nodejs hello world. 1103 okay so now even my laptop monitor port is broken, seems like the hdmi to vga module is broken on raspi, so I've resorted to my desktop computer, haven't used it in many months. 1321 for next version be make bo a browser hello world ya 1325 be possible need bo web server to use it ya } 11 Oct 2014 1341 su me be improve bo me desktop computer for use ya su me be need bo backup of me work ya } 12 Oct 2014 0623 su me be understand bo me privilige of la toronto public library tha be one of most large library network in the world ya 1227 su me be think of assembly line la spelt like la flow-based-programming ya su it be have bo many task tha be able bo work in parallel ya su example be follow ya from input stream bo glyph be get to glyph stream ya from glyph stream bo word be get to word stream ya from word stream bo sentence be get to sentence stream ya from sentence stream bo tree be parse to tree stream ya from tree stream be translate xor compile ya su this example be give bo idea tha su english be type final ya be able bo try ya be add bo 3 number to place ya xor ya be add bo number 3 to place ya 1350 su spel be now work in browser ya :-) 2145 be avoid bo early maximum speed design ya 2157 at first be work then be correct then be speed ya } 13 Oct 2014 1400 su simple spell check be idea de su dictionary be sort by word length ya be get bo word of plus or minus one length from error word ya for-each word be get bo number of common letters from error word ya one with most common is most likely match. } 14 Oct 2014 1127 su main issue bo text browser compatible mode ya 1247 su server side be idea de su la XML base for content ya su la XSLT for format ya su browser support be detect ya then either be serve bo xml ya or be serve bo xhtml ya 1251 su page layout be idea de su page size be same bo screen size for minimal scroll ya su minimum page size bo 640x480 pixels ya su item place be same bo la NLP eye movement de su top left be past see for documentation ya su high left be past hear for archive ya su low left be past talk for chat log ya su bottom left be self talk for change blog ya su top right be future see for search ya su high right be future hear for language select ya su low right be future talk for chat channel ya su bottom right be feel for emoji or attitudinal ya su top center be now see for info ya su high center be now hear for main ya su low center be now talk for chat or main ya su bottom center be now think for input ya 1257 su page layout for text browser be support by links2 ya 1319 su page layout for liner text browser de from top til bottom bo center then left then right ya at top line be link for 1326 :-/ xm } 15 Oct 2014 0602 be maybe for small screen tha bo click on item be load into main ya dono but be able bo try ya su self talk be may replace bo chat talk ya and vice versa ya 0614 su me be set-up bo la XML and XSLT ya 0743 be decide bo only need one working version then can have other later ya be now focus on html5 client-side javascript version with android for testing ya 1400 be set-up bo la raspberry-pi for website ya 2300 su now set-up be complete ya } 16 Oct 2014 1128 be now use bo quo te use strict quo ted in la javascript ya 1250 be now update bo main from input text field with la js ya 2349 be desire for script tha be generate bo mkaw words by sonority and syllable length for choosing words ya } 17 Oct 2014 0041 be past write bo first part of word phonotactics ya 0044 be need bo tha be learn bo js ar currying higher-order-functions ya 1048 be past find bo curry function for la javascript ya be think :-/ tha be able have bo ar normal-curry xor curry reverse-curry xor rcurry and intelligent-curry xor icurry ya su curry be put bo parameter at start ya su rcurry be put bo paramater at end ya su icurry be put bo parameter around some literal like what ya su many curry be start of example ya function manyParam(a,b,c){} su curry(function,a) be return bo manyParam(b,c) ya su rcurry(function,c) be return bo manyParam(a,b) ya su icurry(function,[a,"what",c]) be return bo manyParam(c) ya be end of example ya su only icurry be able use for spel ya be example bo ex te to returned function be icurry bo tha be many param su a bo what to c ya xor ya to returned su many param be curry bo tha su a bo what to c ya ex ted ya be able replace bo wo what for type-name xor auto ya 1121 in la javascript be function prototype bo bind and curry tha rsu be similar bo normal curry ya } 18 Oct 2014 0641 be need set bo viewport size on page to render in phone ya 0750 be past set-up of viewport ya and su now be work on mobile ya } 19 Oct 2014 0644 be replace bo rewrite of la js function for higher order with a utf8 string to array of glyph function ya } 20 Oct 2014 0729 be not sure by how generate bo phonotactic words ya 1220 su me be happy bo tha su it be now generate bo all word ya be now need include bo phoneme phonotactics ya 1315 be happy bo tha su it be now work ya :-) 1710 be past find bo stencil algorithm in my structured parallel programming book ya also be possible able implement bo scan algorithm then can avoid for loops ya 2026 su for loop be accept by me ya 2307 be now have bo hyphen grameme and tonal support ya } 21 Oct 2014 1146 be able start bo spelt implementation ya 2300 be update bo alphabets by phoible popular phonemes ya 2350 be send bo email about wordPhonotactics.js } 22 Oct 2014 0300 be write bo stencil ya 0340 be past write bo tokenize ya :-) yiy 0348 be need define bo basic mim vocab ya or be able use bo english spel vocab ya 0352 su mi ki yi bo 2bit grameme ya su mi bo type ya su ki bo phrase ya su yi bo sentence ya su myi bo subject ya su kyi bo object ya su kmi bo dative ya 0408 be use bo 4 bit alphabet as base so be able keep bo mkaw grameme words ya } 23 Oct 2014 0129 be able hard-code bo grammar and dictionary for testing ya be future able read from file ya 0304 su first project be dictionary consolidation by incorporate lower-bit definitions into higher-bit dictionaries ya 0343 su first phrase parse and first sentence parse be work ya 0440 su first specific phrase parse and last specific phrase parse and first quote parse be work ya 0936 be now need bo multi sentence quote parse ya and bo surrounding quote parse ya 1033 be past make bo surrounding quote parse for single word quote ya and su it be enough for prev-stated project ya 1034 be now need bo load dictionary file as string and parse ya } 24 Oct 2014 0636 be debug bo last sentence and last phrase parse ya 0726 su specific phrase parse be now work ya .ia 0728 su next be maybe need make bo parse tree ya or bo specific sentence get by use of phrase match ya be able research bo SQL for compatiblity ideas ya 0813 time-at now su parse tree be easy make cuz no quotes or clauses so be good time for practice ya 0814 be able make bo map which output 's' for sentence word clause-and 'p' for phrase word ya have to make parse tree object ya be parse bo sentence first then phrase ya 1311 be time for tha be try make bo word or phrase object ya } 25 Oct 2014 0734 su nodejs be require bo tha su classes be have bo seperate 0748 be reorganize bo code ya su future need bo relink ya files ya 1313 su reorganize be success ya :-) 1348 su me be now have bo strict phonotactic version of words which makes 0x10 words for 2bit, 0x104 words for 3 bit, and 0xB79 wors for 4 bit ya or bo 0x10, 0x100 and 0x800 respectively for round amounts ya } 26 Oct 2014 0748 su now be have bo text parse object ya :-) } 27 Oct 2014 0459 su now be have bo proper toString method for text sentence phrase objects ya 0500 su now be need bo find and update methods ya 0506 su need bo partial and complete match methods ya 0536 be made bo equals via JSON.stringify but that works best for words ya 0600 be updated bo toString for words ya 1100 be made bo phraseGet for sentence ya 1547 be need make bo phraseSet for sentence to new sentence ya also be need make bo phraseDelete ya and bo copy ya 2309 be made bo phraseDel and Sentence.prototype.copy ya } 29 Oct 2014 1152 su phraseSet be work ya .ia } 30 Oct 2014 0455 su next bo sentence get and set ya su after be able bo updated dictionaryies ya :-) .ia 0511 su algorithm for sentence get bo tha be make bo match into sentence type ya reverse iterate through sentences, if match sentence has end word(s) then skip unmatching if match has phrases, match all phrases, if all matched then return ya can also make a allSentenceGet which matches all, can do an expand using the iterative sentenceGet contents, I guess sentence compare or sentence subset/superset/similar functions. 1335 be wrote bo Sentence.prototype.isSubset ya :-) 1355 be wrote bo Sentence.prototype.isSuperset ya :-) } 31 Oct 2014 0607 be wrote bo Text.prototype.sentenceGet which work with sentenceFindGet ya :-) 0644 be wrote bo Text.prototype.select which return all matches ya :-) 1741 su next bo update with match and replacement ya } 01 Nov 2014 0405 hmmm 0422 be wrote bo sentence delete and sentence update ya su now be test ya 0429 be work ya :-) 0430 su now be time for doing test dictionary update ya 0443 be good bo it work ya :-) su now be write file ya 0440 su now be need bo word quote support for ya 0452 su yi bo one in mandarin among other meanings ya 0453 su first be make bo core and extended version of 2bit ya 0554 vocabUpdate.js now fully functional and modular ya su next bo word quote be support ya 0700 hmmm be may need bo parse.text 0734 be writing bo parse.extractQuote instead ya } 02 Nov 2014 0005 su me be understand bo why tha su people not remember bo past lives entha cuz tha su grief and guilt be come with wisdom and knowledge ya be grief at loved ones tha be lost to time ya be guilt for crimes of former life ya su wisdom bo lessons tha su we be learn from our errors ya su knowledge bo skills tha su we be acquire along the way ya } 03 Nov 2014 1200 su isSpace and isWord be fixed ya 1346 yi yi .u is not matching properly with subset/superset ya 1356 be fixed by making quote extraction at phrase level ya } 04 Nov 2014 0618 su vocab update be work for 3bit and 4bit time-at now ya :) 0646 be seem bo tha my stencil algorithm be somewhat slow ya 1244 be try bo increase speed of stencil ya } 06 Nov 2014 0656 hmm be should bo avoid increase performance time-at now ya but later can do json file versions, for speedier results. since would not require retokenizing, definitely valuable for web version. as people aren't going to be willing to wait for 5+ seconds for the tokenizing to finish. 0702 su right now be best do bo simple translation ya 0704 for that be need bo basic definitions ya 0720 su me be not want bo wait for dictionary load ya so be need implement bo json conversion ya 2329 be possibly able bo increase algorithmic density in stencil so could do it faster ya also can debug the slice version ya } 07 Nov 2014 0124 amazing, by changing from parallel to serial algorithms, basically for loops, managed to cut down processing time of vocab update from 2 minutes to 4 seconds :-D. 0137 okay so don't have to worry about load times for now, thus can avoid having to do JSON stuff. 0140 anyways so now that can load dictionary in fairly reasonable amount of time.. 0146 eh, still should make the json version, since it takes something like 46 seconds to do vocabupdate on my raspberry pi 0208 hmmm so the json files are mostly useful for loading the dictionaries in the browser or to use as dictionaries, not for vocabulary update, the vocab update can generate the json files. 0210 anyways next up is vocab translation. have to make the word type, and set up toLocaleString. but it's late, can do it after sleep. } 08 Nov 2014 1054 be start with word type ya 1108 for toLocaleString make dictionary ya 2044 have dictionary load partially working ya it does not reduce quotes at the moment ya may have to make a generic type ya or a valueGet for phrase ya } 09 Nov 2014 1632 finally got the dictionary to load properly ya have support now for generic Type and Quote ya 1654 not using Quote type for now, as Type is overarching one. 1656 so have to do some basic translation now. to LocaleString 1700 loading 4bit dictionary still has some issues though } 10 Nov 2014 0040 okay fixed is 4 bit dict is loading proeprly :-) 0215 toLocaleString works for Word, Type and Phrase 0216 after waking can do Sentence and Text, then make web version ya. 0235 cool so text and sentence is now translating adequately :-) } 11 Nov 2014 0658 be great bo browser version be work ya 0703 su next be set-up bo warn message ya } 12 Nov 2014 0026 from what I've been able to reconstruct, I spent only a little time in tibet, and that was ~950 years ago. Before then I was a varingian on the volga trade route, and afterwards I was a merchant and a pirate. My last life in tibet I was a warrior also, died it seems in some northern border dispute. I had enough time to learn divine or yidam yoga/meditation, though didn't much learn compassion/metta meditation. So the several centuries afterwards had much blood. I think that maybe all thing anger and aggression against the locals as exemplified by my numerous warrior incarnations, may be due to resentment of having been left on this planet, after the unsuccessful coup of civilization several thousand years ago. who knows maybe we'll succeed this time, and deliver earth on a silver platter to the orion group, if it isn't already, certainly seems that way, with the gray co-operation contracts int he US, and likely China. Yep, well so this alt-agenda with the robot host-bodies, not all that popular with orion's I'd presume, but maybe can make it a terran supported thing, since it's kind of like "our earth alternative", earth homo sapiens having fairly small brains by galactic standards, make up for it with high technology, robot host bodies is a natural extension it would seem to me. WYNpedia or mwak-pedia can have information that allows for constructing all the parts required for reproducing robots from scratch, as would be the case on a new planet, or remote polar/desert area. Humans can code it, as it would also have tutorials for all the simpler things, like pottery, metal, circuits etc. Anyways my work and my family helps keep my mind of my past-life PTSD, which can give some rather disturbing ideas at times. Though it seems that since I'm back on track with my soul path, the going is getting easier, moving with the flow as it were. 0042 it's kinda funny how I was born on rememberance day, not only do I remember my past lives, but many of them make me a sort of vetran, of many wars. 1019 so next be make bo warning/ports system for compiler ya for grammar bo compouns words and clauses ya 1023 I guess grammar is more important and would be easier to implement for now ya 2109 in reply to someone on reddit who recently inherited 2.5mil [–]elspru 1 point 18 minutes ago I retired when I was 19, you could potentially also. so at 2,5 mil, if you live to be 85, that's ~38k a year. I know of some people who get by on just ~10k sailing around the world. Me, my wife and kid get by just fine on ~30k, eat exclusively organic food, which we make ourselves, we even save a significatn protion of our funds for later. Are planning on buying a boat next year. } 14 Nov 2014 0704 su adwords to make words compound ya su button for language selection in web version ya I wouldn't spend money on video-games, or junk food, both of which are bad for your health. I studied a lot on spirituality. The retired lifestyle is very different, you have a lot more time to spend with your family, and with nature. So mental health through natural means, such as meditation, hobbies, writing, is all very important. The goal is that use money only for essential things to keep you healthy, such as organic food, and adequate clothing/shelter. Find joy in life through free things, such as appreciating being with your family, creative writing, and volunteering. permalink save edit delete reply [–]elspru 1 point 4 minutes ago another thing is it's good to have values. For instance we value being healthy, but also having a healthy environemnt, and thus being eco-friendly. Thus we forgo having a car/automobile in favour of having bikes/sailboat. Since there is no time-pressure of the "rat race" it doesn't matter how long it takes to get somewhere. Can go 100km/day on a touring bike or sailboat. Another benefit is that riding a bicycle when done properly, in the aerobic style, i.e. 85+rpm, can greatly improve your health both physically and mentally. Of course the scenery is much more beautiful, when you go by it at a leisurly 17km/h as well. Another tip I have, especially if you intend on any extensive traveling, is that it's good to look like you are BoP or "base of pyramid", though still tidy of course, this means that you have the widest variety of people that you can interact with, since if you're tidy any of the middle/high classes will be okay with interacting with you, and if you are plain-clothed or even thrifty, then the BoP wont be envious/threatened. It goes in hand with having a minimal amount of valuables/cash at any given time. The meditation, especially compassion meditation is also a good friend. For instance someone beeped at me today, and told me to get off the road, he seemed old and cranky, my instant reaction was to yell "I LOVE YOU", "I LOVE YOU SO MUCH" with maximum projection. Really I hope it helped him feel a little better, we have time to relax and enjoy life. It can be done in a way that is healthy for us and the environment. 2110 so I'm planing on writing "practical immortality" in mwak. su me be plan write bo book of practical immortality in mwak ya 2154 su it be have bo 4 part tha bo ar spiritual-immortality mental-immortality physical-immortality environmental-immortality ya 2158 su spirituality-immortality be like bo tulku de be allocate bo inheritance and search-team ya su search-team be remote-view bo new-incarnation ya su search-team be verify by tha be present bo artifact from previous life and those that not then if sufficient number of choices be correct for statistical verification then be correct incarnation selection ya su inheritance be possibly conditional on studying of predecessors material ya 2204 su mental-immortality bo writings and teachings ya 2205 su physical-immortality bo ar healthy-host cadaver-preservation reproduction ya 2206 su environmental-immortality bo ar adaptive-capacity sustainability diveristy ya } 13 Nov 2014 0007 Practical Immortality: How Immortality works in practice. You will learn: How to be Immortal, How to become Immortal, How to sustain Immortality. What is the purpose of death, ofand the forgetfullness at birth. } 14 Nov 2014 0424 best things now is to finish the new word implementaiton I made ya then would like to make button to view dictionary ya then improve the toLocaleString to incorporate word order ya 0612 okay added quote support, it required a major overhaul, adding language input to just about every function and constructor ya 0628 okay so a button to view dictionary. 0629 oh another thing, potentially more important, is to update the sourceforge site. meh, I think I'll get some more functionality first. made a git revision 0.2.2 on roadmap. 0749 added exception information 1052 time-at now su me be wish add bo word order correction ya 1613 have to set how word order initialization will work ya 1615 su bibliography entries bo tha su author on(time-at) date bo title be medium from domain at link ya 1645 ideally su me be would have bo global message system for warnings and errors ya 2154 so I can use an event emitter, and process.on to catch it. .emit("warn","message"); and process.on("warn",function(warn){console.log(warn);}); 1735 I was thinking that for a multi-language blog, for posts which have set-times, such as post at prime-time, they can post at prime time, depending on the locales timezone. 1739 so the main goal now is to get the prepositional stuff working. which means we need to use english prepositional word order. 1837 great :-) it works for console ya now for browser ya 1840 ideally su word order be define in mwak text file ya 1845 based on wikipedia page on head-order, things which may have head orders are verb noun adjective adposition determiner complentizer tense aspect ya 1849 anyways lets get it working in browser first and then maybe can define enough vocab to make that file, right now we only need adpositional order anyways. 1856 .ia su it be work in browser ya 1901 su me be need start bo etymology and definition dictionary for mwak ya 1902 in mkaw they were tkic and tikc, which are both valid for the extended word set. } 17 Nov 2014 1922 be past complete bo definitions for C2bit ya } 18 Nov 2014 1329 it seems like I would have to pass an event emitter to all my sub functions in order to have support for warning. I'm already passing language. :-|. 1443 this error reporting stuff seems rather complicated. 1444 I think I'll work on some more productive stuff for now. 1445 like getting a translate to and from drop down menu. 1516 okay cool so it works now :-) 1520 okay now to view dictionary. 2216 saw some statistics that the highest paying and highest gaining sallaries of those with professional degrees. That implies we should have professional degrees available for Mwak. While all the course material would have to be open source. The certification testing could be sufficiently pricey, as people have to attend in person, there needs to be someone who speaks fluent mwak or mwak variant which is being tested, as well as written and programming portions of the exam. Of course they would also have to pay some kind of money to the certifying body/college to have their license renewed, with potential retesting for new features etc. 2250 hmmm it seems like most of them are various post-graduate degrees such as for lawyers, doctors and that kinda stuff. I was looking at getting an undergrad just now, and it kinda made me queasy. so much money, so little to gain. mostly social status I guess, since I'm not really interested in a job per se. oh well. 2347 phraseSort, phraseSort with performance grammar 2351 I was meditating and thought that Mwak can become a degree program, much like English or Spanish, as it is a language, just happens to also be a programming language, and for writing rules. People could write masters and PHd's in it, even submitting modules or patches to the main project. 2353 at least for now can turn the warn for undefined translations into an exception ya it will motivate me to define a sufficient amount of words ya } 19 Nov 2014 0013 updated html page to be all in mwak english 0713 testing view dictionary ya 1726 asked samta to review a small story I wrote in mwak english. she said she couldn't make any sense of it. Thus it is now higher priority to have conjugation support, before I though lossy natural translation can be optional, but now I'm thinking it will be mandatory, though it wil be a big task, we can keep it for 0.4 1738 okay so hopefully we'll get to 0.3 by this weekend :-) 1805 so that is two subversion per day. next be format ya 1827 excellent have dictionary formated for html output :-). } 20 Nov 2014 0504 multiple dictionary files support ya main issue I guess is standardized dictionary naming ya best to use all mwak if possible. 0506 mwaktatick.i for mwak mwak dictionary 0509 need support for 24 glyph dictionary, so instead of by bit, may need to sort them by glyph 2 4 8 16 24 32 0517 also need words for core, extended, and glyph 0521 instead of core can use middle instead. 中 /*truŋ/ Old Chinese. tengah Malay. stred Slovak. midden Dutch. middle English. mitt Swedish. medium Latin. ten tin tan pin 0541 extended or wide or big or large guru Kannada. gedang Malay. grandis Latin. gichi Ojibwe. 大 (dà) Mandarin. kat 0604 bah could have just checked my mkaw 3 bit, since these are 3 bit definitions anyhow. though guess can make then 4 bit, 3 bit has inside, and big, can make then middle and large. 0613 anyways glyph, character or letter 字母 (zh) (zìmǔ). littera Latin. herufi Swahili. litera Ukranian. harf Arabic. lerfu Lojban. raide Lithuanian. yip 0633 thinking instead of big can use more size. 0640 formated lines which go over 64 glyphs with tabs, though I guess that wont be preserved after vocab update. thus is kinda silly. 0640 much more (gèngduō) Mandarin. plus French. 'ákthar Arabic. mwy Welsh. mehr German. more English. motha Scottish Gaelic. más Spanish. aveli sat Armenian. vel Latvian. plu Interlingua. th~v~d~p ng~m a r~l~y pay 0651 less 更少 (gèng shǎo) Mandarin. moins French. mence Russian. minus Interlinua. min 0704 size ʻǁnàhã !Xoo. maqaas Arabic. méret Hungarian. sunpō Japanese. o 尺寸 (chǐcùn) Mandardin. mecutʿyun Armenian. razm'ér Russian. mégethos Greek. map 0711 space physical extent in two or three dimensions. ʻǁnàhã !Xoo. 空間 (kōngjiān). nafasi Swahili. erdve Lithuanian. mokowa Maori. espace French. farag makan Arabic. prostanstvo Russian. psan 1010 so thinking we haven't really decided on a solid base for the vocabulary. maybe should go with interlingua *shrugs*. so far been using languages from all over the place. i.e. with maximal different langauge families for representation. of course that means it's "equally hard" for everyone, since almost no one has more than a couple words in common. 1016 hmm I had that python script to amalgamate words, for instance the word word has a lot of variations. 1439 anyways, so it's taking me a long while to get this dictionary support stuff, so I'll switch to phrase and performance grammar sorting, then work on clauses and dictionaries. 1440 might even do multiple dictionaries or clauses in 0.3 1441 bah I already have the dictionary stuff open though ya hmmm okay so quick in next few moments have to figure out how to structure the name of dictionaries. 01yippimak.umwaktacikhtick.iya.txt su-16-glyph's-word-to-mwak-small-dictionary.txt 1455 bah I'll go back to borean nostratic for basic words, it's too confusing when there are many options. I'll reserve wikitionary for only the ones I can't find in proto lists. just like I made mkaw. 1502 okay, so I have small is kut big wul, many pat, few cik 1522 bah still no progress, anyways so we're moving to phrase sorting by case. this is done in sentence. 1623 seems like I'll have to switch language, input to input, language or provide a bunch of if language undefined stuff. 1625 or we can just use a keyword like if language is "mwak" 1635 okay phrase sort works now :-) there seems to be an issue with word translate however. 2142 okay fixed that part also ya 2149 next is performance grammar phrase ordering ya 2150 it's same place, but gotta do some more calculations. 2154 I'm thinking the performance grammar will only make sense after clauses. } 21 Nov 2014 0658 so I'm moving rest to 0.3 thus next is hello world translation from mwak variant to mwak. 2300 made a short story involving AI detractors and reincarnation http://mwak.tk/story/girlDragon.txt } 23 Nov 2014 1038 found out about Elon Musk's fears about AGI, I guess as someone not in the field, he doesn't realize how utterly unfounded they are. But ya w/e. 1041 anyways so next is hello world translation for mwak variant to mwak. 2050 made dictionary only output the defined words. } 24 Nov 2014 0652 have to change order of language,input grammar,input since it is causing too many errors when I forget to enter grammar/language, since it is often superfluous. 0655 I think somewhere deep, maybe in word, it uses grammar for even simple stuff. will have to give it a mwak default perhaps. 1047 that is a trivial problem, I think I just have to ignore for now, have to press ahead with things that actually improve the output or functionality is some manner. 1048 as appetizer I can get type ordering properly, so the english dictionary output is more readable. 1106 anyways it works for single word quotes, but not if a second word is put in there, so there is an error in parsing. Thus we can also put in pre words also. 1123 well I guess it's ungrammatical anyways, so we'll just focus on it being proper when grammatical. 1134 okay so now gotta make quote parsing work with the eng word. 1153 okay it is working for quote extraction ya next lets get it working for phrase ya 1213 updated in phrase.js now have to update in parse.js 1243 is a toughy 1315 hmmm seems dictionary not loading properly. 1317 text select may be at issue. 2122 select works if one case is matched but not two 2127 seems like sentence.isSuperset only returns true if last case matches. } 25 Nov 2014 0556 okay got dictionary back to functional. 0702 okay pretty much working, but doesn't have full mood/junction support. 0705 next can add mood support, and then add it to browser. 0707 oh actually I'm also missing word translation, have to translate the words from english. 0713 okay done :-); 0938 after ar mood clauses junctions posession be able ob tha be write ob like in english ya 0954 su basic junction design de if su a junction word at start of phrase in postpositional or at end of phrase in prepositional ya in example de mi .u ki tu .u ya su me and su thee ya 1555 almost have multi language input working in browser ya but su extra last case artifact in output ya 1603 seems related to preliminary mood programing artifacts ya 1631 has been resolved ya 1632 okay want to update vocabUpdate with new dictionary names ya } 26 Nov 2014 0520 updated :-) ya now for mood support ya 0555 ha su spel be have ob mood support time-at now ya 0556 now for clause support ya 0711 there are several kinds of clauses ya ordinary phrase level clauses like that/which/who super clauses like if then 0713 I'm thinking if then might be moods or sentence enders ya 0714 but right now I want to at least impelement phrase level caluses 0724 so for phrase level what su we be have do que be update ob phrase parser to tha be grab the clause entha before phrase if su clauseInitial ob true enif after if su clauseInitial ob false ya 0729 hm be maybe best have ob encla instead of entha and enif ya 1426 su we be able call su it ob the clause terminator since for clauseInitial tha it be at begining encla and for clause final tha it be at end ya 1429 ta in proto indo european su subordinate clause marker ob -nt or yo or qe and su conditional clause marker ob qe or tha ku in hittite ya 1458 from tha looking at various languages around the world entha su me be decide ob tha ti for wu tha and tha tai for wu encla and tha ku for wu if ya 1503 then is unnecessary in clause initial languages, unless the then comes before the if. } 27 Nov 2014 0429 so gotta add those clause markers to grammar ya 0434 added ya 0504 wrote algorithm for adjacentClauseParse 0523 did a nautical mile jog to warm up for coding. 0548 wrote adjacent clause parse 0550 should test it. 0610 okay so can integrate it with phrase parse ya then will integrate with the phrase object ya 0645 updated phraseParse now to test. 0649 seems okay thus far. 0650 now to update phrase object. 0652 have to make a clause type probably, then phrase can do this.clause = new Clause(input.clause); 1710 awesome I just found out that chinese uses postpositions ya 1711 was looking up if they use postpositions for clauses since earlier I was under impression that they used prepositions 1711 that means our mwak chinese can be SOV for consistency, it will be a variant of classical chinese, with strong preference for one glyph per word ya 1712 can have a vernacular mandarin chinese version later ya 1713 so exciting, before I knew that japan was SOV, but now classical chinese can be also, this is great, that puts at least a billion potential users in SOV with mwak. 1732 wrote clause constructor, have yet to write toString and toLocaleString ya } 28 Nov 2014 0443 wrote toString and toLocaleString for Clause 0448 finding out about chinese makes me excited about dictionary support ya I have a chinese friend I'm meaning to ask if she can understand what it says ya 0449 I'm guessing that since we are supporting classical chinese, we should also use middle english for various grammar structures not present in modern day variants, such as thou thee and ye and you, to complement I and me. 0456 the american english localization could have you and y'all instead of thee and you ya but su the more formal version be first ya 0513 historically english also has declensions for nominative, accusative, genitive, and even instrumental, so the conjugation could optionally support those for a middle english feel. though I think it may be best to use weak verbs, which are distinguished through endings, to ease in parsing and for new learners. 0516 If I wish to support an inflectional language, I guess I should go with Russian, since it is highly inflectional, and I'm a native speaker. 0517 I'm thinking that instead of calling it mwak english, can call it analytical english, and inflected english. Though the modern variety would be something like punctuation english. Since it heavily relies on punctuation to be understood ya 0518 an exciting development in my research of Old Chinese is that they have many sentence enders, which is compatible with mwak having sentence enders. :-D 0555 updated sourceforge website, gained three twitter followers recently, so it gave me extra motivation :-D. 0616 anyways so I actually have to test clause now. 0631 well it's not giving any errors, but it's not working either. 0636 bah I need a nap. 1127 so su the parse be not proper -ly work -ing ya 1150 okay at leas the english prepositional is working. 1201 postpositional parse is working, now working on objects 1207 oh I see, perhaps if caseWordIndex is undefined, than can assume whole thing is a clause. or to get most recent clause. 1237 anyways clauses are having trouble with nesting, may have to implement them as simple words or phrases for now, until it can be figured out how to best resolve the issue. might have to do some kind of work around. 2121 found work around, simply have to use require within constructor. 2125 just need a lil fix with the mood 2200 done clauseInitial style } 29 Nov 2014 1410 ideally should do some more testing ya then should implement clause final style ya 1757 thinking about junctions de they are at same level as what they are joining, so a junction of sentences in a text, would be at sentence level, comprising an array of sentences with junction word, such as and or but etc. } 30 Nov 2014 1721 su possessives be probably easy implement after clause ya su clauses before possessives be possibly backwards ya su sumerian be lack ob clauses but has possesives ya su sentence junctions be implement at text level ya 1739 doing some clause final debugging. } 01 Dec 2014 0648 clause final debugging was successful ya time-at now be flow debug ob clause at phrase level ya 0653 su type or phrase be need include ob room for tokens ya 0719 doing it in phrase, still needs some more work. 1926 debugged for both in clause and phrase ya tat working on sentence level ya 1943 will need something like a lastTopPhraseParse, which will check if it is within a clause. For use with sentence. 1944 or we can make it use firstPhrase get if clause final. 2009 seems to be almost complete, just some issue with clause final at sentence/phrase level. seems to not be ending at terminator. 2051 awesome seems to be almost in order. 2121 bah, guess can't lazy out by having firstPhrase do the stuff. well maybe I can, but it has to do it properly. 2142 okay even with thorough testing seems to be holding together. :-) so we'll say it's done. } 02 Dec 2014 0507 seems like dictionary not loading properly for web version. 0513 oh it may be a Text level issue. 0515 it seems to work just fine in console. 0536 word and type work, but at phrase it stops working. 0542 seems teh grammar is not loading properly. 0556 okay problem was typo. 0601 cool so web version debugged :-). 0602 next is support for conditional clauses. which may be mostly a vocabulary thing, an if could be considered both a case and clause, afterwhich is performance grammar ordering, which seems pretty exciting :-D. 0625 ya I'm thinking can simply make words of and then ya can then just use a clause marker if it's going to a clause ya 0629 main thing is to come up with mwak word for if and then ya oh I was going to split up the dictionary for a 12 glyph version and a 24 glyph version also ya 0708 working on visual synesthesic output :-). } 03 Dec 2014 0629 spent most of the morning buying stuff 0630 so thinking if then statements are unique, can make a clause of clausePhraseWords a phrase would interpret them, by giving the whole thing over to clause, and returning the clause. that way it would be at phrases level. only issue with that is for standard accessor functions... so what we could do is have a clause without a clause word 0634 one solution would be to simply standardize the names of starter ender and content. though starter and ender may be somewhat of a misnomer as enders are at the start in prepositional form. 0636 conditional clauses are so special that they actually halt in case there is another phraseClause, not only if there is a clause term. so can add that to the clause thing perhaps... not sure though, as we might say something like "that if" and expect it to work. so ideally would have a phraseClause thing that would work ontop of the current clause infrastructure, it would simply drop off any preceding of following then's which may interfere. 0638 btw decided on si for if and tua for then. 2114 can use head body and tail instead of ender content and terminator ya that way clause and phrase will have same subtypes. makes it easier. can also use it for sentence, and type, not sure about word though. } 04 Dec 2014 0318 been working on visual synesthesia most of the week ya I guess it's a good thing I don't get paid, as this isn't something people would "pay me for", yet it has potential to raise users IQ 20 points :D according to recent studies anyhow. 0320 go the golden ratio hex intervals 0x9D 0x61 0x3C 0xD9 0326 oh wow we can define HSL hue/saturation/lightness colors that will be much easier than juggling hex values. 0328 with 360 slices of pie, we can easily define 32 hues, whears I could only come up with 12 meself. could compare and contrast them perhaps. 0330 hmmm well I've already designed it with the 12 for now. 0428 okay got the basic color scheme down for day and night modes. I prefer night mode of course, easier on the eyes. 0430 I'm thinking the span tags can be added during word formatting ya format object could have a glyphTransform function, which outputs glyph with the span tags attached ya 0439 oh right I should also look up the colors available on the console. Black 0;30 Dark Gray 1;30 Blue 0;34 Light Blue 1;34 Green 0;32 Light Green 1;32 Cyan 0;36 Light Cyan 1;36 Red 0;31 Light Red 1;31 Purple 0;35 Light Purple 1;35 Brown 0;33 Yellow 1;33 Light Gray 0;37 White 1;37 0441 so how does that match up to my color wheel? red red orange brown yellow yellow chartr light green green green turq light cyan cyan cyan saphire light blue blue blue purple light purple magenta purple pink light red 0446 can't distinguish vowels from consonants but that's okay lets try it 0518 cool so I distinguish the vowel by using a gray background, in the terminal version anyways. 0523 it is a bit distracting though, maybe best to simply not distinguish vowels from consonants 0529 anyways so should quickly write the glyphTransform function. 0607 okay made one, it is working for console. 0617 D major can be our 7 glyph scale, it has C# and F# for i and a respectively. 0624 okay will do rest (html) later, for now gotta get some beauty sleep. 0642 cool works for html also. bah really need to sleep 0643 before commit have to complete pallet, and allow for turning off synesthezia in html mode. also switching between day and night mode. 0739 added synesthezia mode selection support 1218 was thinking about chinese synesthesia. it occured to me that we can have traditional syntax highlighting support, by using the background colors. So in chinese highlighting the background color will demonstrate the word class. and foreground color would remain black. alternatively the glyphs can carry the syntax highlighting in chinese, they could be related to for instance the old chinese pronunciations of those words perhaps, or possible sino-tibetan. we could use mandarin, but then the synesthezia wouldn't help in distinguishing glyphs that sound the same. 1226 anyways I shouldn't take it upon myself to do chinese foreground, I don't speak any chinese dialect. I could however do foreground for cyrillic alphabet 1646 I'm thinking for console mode can simply limit self to just the bold/bright colors in night-mode and dark colors in day mode. } 05 Dec 2014 0439 anyways so can't seem to get vim synesthesia working. 1443 got it working for vim, made a night mode, is beautiful .ia 1443 wow just turned it on for my changelog :-D, this is some seriously colorful glyph art. 1445 anyways I'm also planning on adding syntax highlighting. 1449 lets test that out in our synth.html for now ya 1454 okay that works, guess can now implement it. 1610 had a rather serious discussion with qstrahl in #vim IRC about the script and what it means to synesthesists and trainee's. Anyways we agreed that trainees and naturals will always be different. Though it may at least be neat to train synesthesia for those that don't already have it. 1614 so I'm going to be implementing the background syntax color by passing a type parameter to word, which will then pass it through that transformation mechanism likely instead of the usual version. Thus the new one will have to provide the same glyph transformations, which it can do probably by using it as a sub function. 2353 found a page that can give me the color names of various hues. I'm thinking that we may potentially eventually need a 48 hue color wheel, so we could support at least 32 glyphs. Though for the time being 24 hues should suffice, as a 24 letter alphabet will give us enough linguistic diversity for at least teenage level discourse in mwak. } 06 Dec 2014 0029 attempting to make a list of unique colors for glyphs 0044 it is rather daunting. also I have a pretty good system set up with the synesthezia-night.vim so should probably just base other systems on refinements of it. 0207 okay so got a seperate hue for each glyph, and made the console version compatible. 0208 can set it up later ya 1246 got letters to fit into 24 hues and 4 shades 1814 so for next weekend project I'd like to make javascript which changes contents of a page to be synesthezia. 1929 working on synTest.html which has bookmarklet within ya. 1937 cool my bookmarklet is successfully changing the theme or css stylesheet of the page ya 2012 great so the synesthesia bookmarklet is working :-) .ia ya Now I only have to fix up the css colors ya } 07 Dec 2014 2143 seems like hydrogen harmonic is 491.52nm or 120pm*0x10^3 which also seems to be around the peak of it's plasma spectrum. Thus a slightly greenish cyan AKA aqua. 2149 anyways I took down the synesthesia from default viewing on the website, as it is rather unprofessional, people want to see as much of what they are used to as possible at first. Later when they get more into it, they may wish to explore more interesting features such as synesthesia. Though I think syntax highlighting is someting that they may be more inclined to view, especially if it is near subliminal, being low saturation and blending with the background. 2159 anyways next I want to implement the syntax highlighting, so we can be done with this whole coloration business. Then it will be back to grammar. 2206 doesn't seem anyone is much interested in synesthesia training, not even people in synesthesia groups. 0507 okay I set up the syntax highlighting but now it seems that may english phrase parsing and mwak mood parsing is buggy ya 0519 fixed mwak mood 0539 guess it might be to do with parse.firstPhrase 0542 anyways I set up syntax highlighting for now. will debug a bit later, will catch some beauty sleep for now. 1118 so issue was with parse.firstPhrase 1148 debugged it for simple cases, still have to get it working for clauses. 1156 okay fixed it up, seems to be fully functional now. 0623 hmmm added clause to hello world example. unfortunately it doesn't render correctly in mwak because it needs the clause ender since there another phrase in front of it. we could temprorarily hide this stuff with performance grammar, but it will crop up eventually. 0627 I'm guessing should implement this at the sentence level ya 0628 next time I have some free time can make update the vim synesthesia to work for gvim ya that way can have similar rendering to that which is in the browser ya 0654 wrote the code to add clause terms, just got to test it now. 0703 debugging 0723 okay seems to be fully functional 0724 roadmap and git commit 1553 next is support for conditional clauses, but I guess I'll start with night gvim to make working more interesting. 1624 doing some color juggling 2116 be story idea time-at post artilect war de su treaty parties be agree ob tha su intersectional world government be not work as su many be unhappy with laws for the few and tha instead su unifying world government be replace ob it ya cuz biological precedent su biologically inhabitable ob areas be allocated for biological organisms ya and those areas which were generally hostile to biological life such as true deserts were allocated for technological life ya su the centaurs or biological technological hybrids be allocated ob the borders to allow for trade ya 2144 set up new system for vim syntax highlighting. 2221 okay now am working with the html quality syntax highlighting in gvim over ssh :-). interesting stuff. much more uniform this way for sure. 2233 anyways sleepy time now :-). } 10 Dec 2014 0657 anyways now have to do that phraseClause thing ya 0702 hm even though I earlier said I decided on si and tua, the vocab says ku for if, and nothing for then ya 0739 so decided to stick with ku for wu if as there is support from austronesian, baltic and sino-tibetan languages ya 0749 so I've decided that culture and biology specific words should go in the extended vocabulary, wheras medium independant words would go in the core vocabulary. This would ensure we don't have some technobots on another planet with core words which are completely useless to them ya 1437 anyways I have to get back to getting something useful ya 1440 now that I have added clausePhrase words to the grammar ya have to add checks for them in the adjacentClauseParse also have to add support in phrase object ya 1444 wow the new synesthesia colors are just so beautiful, can't help admiring them ya 1445 can probably even add the syntax highlighting ooo ya bah got to stay focused ya 1447 at this point it may be easier simply for me to add the if and then to the regular clauses, but also the phrases, then have a check when creating the phrase for them, to make sure that it actually returns a clause instead of a phrase ya 1449 my only concern with that is it may grab a clause which wasn't meant for it. however I can't come up with any examples where this might happen at the moment. 1453 oh yes but we'll have to make sure that it terminates in case there is another clause word, probably already have that check, but it is especially important for if then statements ya 1459 actually now that I think about it that's not very viable, since we have to allow for nested subordinate clauses. thus this is a rather special case, may need a seperate parsing function for this class of clause phrases which don't support nesting. in example if su something be equals ob if soemthing else doesn't make any sense ya phraseClauses are thus a top level divider, can only be halted by other phraseClauses or a sentence head. be able call ob them tha conditionalWords ya 1511 okay so I guess I'll start with the parsing 1523 hmmm I'm wondering if perhaps as is also a phrase clause ya 2218 seems that as is a junction ya so perhaps if and then is also ya i'll delay implementing them until after junctions ya } 11 Dec 2014 0634 anyways so now to support genitives. I'll save performance grammar for later, since it's more optional ya. 0637 so genitives are like a subphrase ya 0657 updated caseWord and content to head and body in phrase ya 0701 most common word for possessive particle is wu de or a variation ya in 7 glyphs that would be pi and 12 glyphs that would be ti 0706 however ti is already taken by clause starter ya 0719 defined pi in C5glyph 0824 need a parsing algorithm for the sub phrases ya likely will be a modification of the ordinary phrases ya so I'll maybe put in a flag or something so it knows what it is checking ya 0833 su me be reading ob la Epistemological Pluralism and the Revaluation of the Concrete ya about how males and females tend to approach programming differently ya with females tending towards the soft approach and males tending towards the hard approach ya su it be interesting ya be have to make ob future tutorials tha work on both approaches ya 1254 can probably use something like last case or sub case index parse ya 1308 made firstAnyCaseIndexParse and lastAnyCaseIndexParse ya 1330 one of my main concerns now is have to check for whether clause or genetive comes first, since we could have both of tha and tha person of place or tha place's person ya 1345 okay I'm getting close just got to add it onto object then probably some thorough testing ya 1409 okay seems like I've managed to implement genetives without breaking anything so far, which is good :-). } 12 Dec 2014 0631 anyways so gotta get back to work ya 0637 testing the genetives ya 0657 hmmm seems to be grabbing backwards or something ya 0659 oh it seems to be parsing the phrases seperately ya 0700 can probably do a phrase level test ya 0704 yep so the phrase parse isn't including the sub phrase ya 0712 okay fixed, issue was that pi was in phraseWord array ya 0715 okay output is correct, but underlaying representation indicates that it is not recognizing the subphrase ya 0804 okay it is now recognizing properly, now I need toString and toLocaleString set up for it ya 1258 okay genitives seem fully functional at least when getting it from mwak ya 1300 now to test from english ya 1314 actually seems it doesn't work on sentence level as yet ya 1322 anyways so I guess I'll finish getting mwak version to work first, and then work on the english. I'm considering changing it from 's to of actually since it seems more generic ya } 13 Dec 2014 0718 so something is not quite right with how sentence is processing the phrase ya 0730 okay be fixed ob sentence and ob text level by tha be add ob subphrase to cloning portion ya 0812 cool be managed add ob rounded corners to syntax highlighting ya 1314 did a test seems that encla doesn't properly add in the case of clause final ya 1427 be past fix ya 1517 be flow start ob think about junctions ya } 15 Dec 2014 0547 be will add ob dictionary hide on double click ya 0558 be past add ya 0602 be able add ob syntax highlighting information and synesthesia information ya 0641 okay su web front be more ob user friendly tat now ya 0704 back to debugging genitives, now for english version ya 0717 be set-up ob firstPhraseIndexParse ya 0721 be done ob set-up ya 0731 be test ob web front ya 0746 su issue with extra clause term ya 0802 be past fix ob pthat ya 0809 hmm have to check mwak version again it may have issue ya 0814 okay fixed :-D ya it was the eternal issue of not loading grammar from external file ya 0823 hmm issue with genitive within clause ya 0835 or rather be issue with genitive in clause within phrase ya 0858 seems like issue with gotherTokens kinda stuff 1129 okay seems to be fixed, can check web version. 1131 almost, but not quite seems the english version is broke ya 1136 genitiveI doesn't seem to be in relation to otherTokens 1147 okay seems to be all clear now check web version ya 1200 need a word for example ya ksim maybe or sli and slim 1445 okay tat now be incorporate ob genitive example in web front end ya 1452 tat later su it be fun make ob old chinese variant ya but for now su we be should stick to standard chinese ya as su more people be able quickly understand ob it ya 1504 vocabUpdate seems to be having some issues, possibly with select ya 1511 nope it was just I made it .u instead of .a 1515 okay so roadmap and git 1532 based on my slim research of japanese conjunctions like and go in between words just like in english ya 1538 okay so lets see, the sentence junctions goes in the mood place. and be like ob this ya ka .a lik .i ki ya 1540 phrase junctions su thing be compare ob hello or ob world a ya ka .u sla .a wa munt .a kim .i ya 1545 can also check my grammar of proto indo european need a word for or anyhow ya 1551 can use wi based on PIE we 1553 hmm lets use wa to make it more different, also lots of langs use o and au ya 1558 having words for the and a can also be useful, though we haven't added those types as of yet ya maybe after we get to quotes and such ya 1633 maybe can let myself work on my synesthesia bookmarklet a lil more since I finished genitives today } 16 Dec 2014 0226 after looking around at various junction positions, it seems that they tend towards being at the begining of a sentence ya 0252 though punctuation is a recent innovation in east asian languages, it is typically an emulation of english, so that may be why it is being grouped in that way ya 0259 oh I have an idea, can make the sentence enders the conjunction. I know chinese and japanese use a different word for connecting sentences than for connecting phrases ya 0309 so sentence words are linguistically "sentence final particles" 0332 alternatively we can make them all clausePhrases or something like that. 0340 it may be easier to add phrase junctions first they seem a little more straightforward. though since I just finished clauses clausePhrases shouldn't be so hard ya 0521 hmmm so I seem to have been implementing things a little bit backwards, in terms of having implemented subordinate clauses before junctions and genitives. Anyways so since I don't want to go around renaming everything at this point, instead of clausePhrases's I'm going to be calling it topClause since it really is a top level clause ya. 0528 another thing I've been considering is cleaning up the front end to prepare for presenting it at a meetup. 0530 mainly I was thinking of having the dictionary have a cleaner output, can probably implement it by giving it a toString and toLocaleString ya 0541 I've also decided to extract the synesthesia functions out into their own file. 0624 okay toString successfully implemented, now for toLocaleString ya 0650 made toLocaleString but it's sloppy so I'll make it more correct ya 0651 after I'll integrate it with web front ya 0656 cleaned it up 0701 only issue now is that it doesn't actually output the mwak, only the english. because yi isn't implemented as a literal yet. 0713 okay fixed now outputs the mwak ya 0736 okay good, also set up "Courier New" as font :-). now roadmap and git 1332 got a bunch of story ideas. so as before pure technological life would be limited to areas of minimal or no biological life, such as high mountains, extremely dry deserts, and glaciers. centaurs would be limited to tundra like eco-systems. the worst (biological) criminals would be in equatorial tropical areas, with no access to technology above stone age. the subtropical would be the relatively minor "white" collar criminals, with access to manual power machines. the temperate would be the average moderately 1350 okay so lets try to organize this simply su 0 with no technology in tropics, subtropics ya su 1 with servant technology in other treed areas ya su 2 with transhumans in grassland and tundra su 3 with pure technology above snow line 1857 alternatively can be by diversity index, for instance of vascular plants su 0 with less than 100 species for pure technology su 1 with more than 2000 species for no technology 1901 bah anyways no one is gonna agree to that, anyways better stick to the story stuff. su attendant be say ob quo te here be your life preserver and manual quo ted ya be hand ob book in plastic bag and balsa log to new con ya be say ob quo te see that island over there? quo ted yand be point to yonder island about 300m distant ya be say ob quo te you have to swim to it then open and read your manual if you wish to survive ya su the gangplank be slide ob new con into water ya su new con be grip ob his log and book but tumbles underwater ya su salt water be enter ob mouth of he ya panic su he be grip and kick with full might ya su air be feel on face yand relief su he be spit and gasp ya be continue ob kick for balance yand be head for land ya exhausted be arrive on beach ya be crawl til tha be above ob waves yand be collapse and sleep ya dicomfort su he be have dream de su he be flow ask for forgive but su the stern shadowy ob be release ob the new con yand su the new con be flow away ya surprise su he be wake on pull yand su he be see ob island man tha be tug ob manual from grip of the su ya ob quo te su you be not need ob this ya be let ob tha su me be have ob it yand su me be give to you ob some food ya quo ted su island man be say ya uncertain submissive su new con be release ob grip yand su he be fall yand crying be hug ob log ya remorse ob quo te su me be regret ob past agression of me ya quo te su he be say ya 1937 bah su this story be take too long yand be fast forward ya su nc be learn ob exit temple at other side of island ya on way su he be see ob many scary crimes ya finally su he be arrive at temple ya at temple su people be must meditate in front of it for hour to gain ob entrance then at inside ob they be give 2008 hmmm need passive voice it seems 2107 used chinese honorifics to get the .u and .a cases 2108 gues I don't need passive voice can actually just say at inside to they be give ob cell for meditation ya in cell to they be give ob clean food and water and teaching ya tat tha they be full consider ob ready encla to they be allow ob transfer to place of more rules ya 2111 cool so su it be seem to work yand tat now be time for bed ya } 18 Dec 2014 0541 so decided to make topClause integrated in sentence.js since phrase.js is already pretty big ya 0648 bah been looking at language popularity lists instead of working ya 0652 I was considering earlier that could merge pre and post positions since some language use both ya but to make sure parsing always works we need to have either a postposition or a preposition for every word ya I'm sure those languages that have both probably have it more in one area than another, so they could be pre or post dominant with the other one ya Anyways I don't know any of those languages, I'm sure people that speak them can support those features later ya 0655 so I should write an algorithm for the sentence file cuz there is a bunch of code and I'm not sure how it works ya 0705 okay wrote out the algorithm that is current ya tat now be need make ob algorithm for top clauses ya 0720 so gotta shift over to index based functions 0725 good be make ob parse.lastTopClauseIndex and parse.firstTopClauseIndex ya 0727 I was thinking of simple illustrations for demonstrating subject direct-object and indirect-object can show triangle giving circle to square ya or have some childrens books and examples ya 0730 anyways su parsing ya 0738 wrote algorithm for top clause index parse ya 0740 need to write 0926 hm su mwak be not yet have ob top clause words ya 0929 oh actually be have ob the conditional words ya 1322 would be good to have one for wu yand also ya 1324 much like with and, i seems most common vowel ya r d(t) g(h) seem most common cononants ya 1331 possibly kwi since kyi is taken ya 1345 cool be also make ob pwa for yaor ya 1351 be want add ob more links on index page ya 1418 okay updated the index ya 1427 might have to make ti and-then later on ya depending on frequency of usage in programming language ya 1438 anyways back to work ya 1456 okay wrote top clause index parse .ia :-) ya 1458 now to integrate with sentence 1507 wrote it into clause initial ya now be test ya 1520 gotta make sure phrase parsing quits if it encounters a top clause ya 1535 bah, maybe should integrate it at phrase level :-S getting some really weird errors ya 1542 it seems to be detecting even quoted object nested ku's that is a problem of course, why aren't the other ones? 1547 weird same code but nothing else gives me the same problem 1551 oh it's because it is in the dictionary unquoted ya 1556 okay fixed that up ya 1558 will probably need to make a topClause class ya 1603 seems my clauses don't have isSuperset or anything 1611 almost got it, just got to do that whole head finall prepand, head initla append stuff. 1613 awesome it works :-D. will do some more testing and then git } 19 Dec 2014 0329 bah can't sleep ya don't know why ya maybe cold ya anyways ideas about this top clause stuff ya good to associate a tail with some of them, such as having "then" as tail for "if" ya. I think it was a linguistic universal to put conditions first, followed by what is to be done ya 0335 yep it's universal 499 de In conditional statements, the conditional clause precedes the conclusion as the normal order in all languages. 0336 another thing is can probably port the phrase isSuperset functions over to clause, with minimal changes since they have the same sub items, .body .head .tail 0352 hm well then I'd need to make clauseInputToMatch also better to focus on supporting the linguistic universal for now ya 0357 meh guess I'll do the standard function first it's easier ya 0401 okay implemented comparison functions ya 0408 updated phrase to match clauses also 0409 not sure how to work it with the clause terminator. though I guess can do it by checking if next one is a top level clause ya 0421 hmm I guess we don't necessarily know if the next phrase will be a top clause or not. thus it would have to happen via seeing if previous was, via main to locale string 0425 starting to get sleepy maybe will be able to get some shut eye 0433 made algorithm can implement it later ya 0733 implemented ya be think of change ob encla to ek ya 0734 will need to make mwak tick or mwak mwak dictionary ya so it can be translated to english and people would know what the words mean ya 0737 can just shove it in the be phrase for now ya 0742 hmm seems it doesn't work as well on web front, and doesn't work at all for english input ya 0744 oh like always I don't have the grammar defined ya 1530 okay so have it at least partially working, still need to get the english to parse properly ya 1551 oh I think perhaps I haven't at all implemented topClauses for prepositional that is why it is so haywire ya 1552 yep that is the problem 1603 set up the sentence object, but still need to fix up the parsing to not grab the topClause word 1632 okay parsing seems reasonable ya just need to fine tune TopClause class ya 1633 after i'm done with TopClause then wil work on my synesthesia bookmarklet for the weekend ya 2305 thinking would be good to have a language for each major language family, so can make sure we cover all the bases ya Nostratic Indo-European: English, Dene-Daic Sino-Caucasian: Standard Mandarin Chinese, Austric Austronesian: Indonesian-Malay, Niger-Congo Bantu: Swahili, I guess that is first round, 2345 If we do it by brain size areas Russian, Spanish, Mongolian, and Inuktitut, then Chinese, Athabaskan, Cree, English, French, that would comprise most of the above average brains 1,400cm^3 and up. } 20 Dec 2014 0007 if by population of speakers over 100 million, Chinese, English, Hindi, Arabic, Spanish, Malay, Portugeuse, Russian, Bengali, French, German, Swahili, Japanese, Persian, Panjabi 0017 by centrality on global language network over 0.1 English, French, German, Spanish, Italian, Russian, Dutch, Japanese, Portuguese, Malay, Filipino 0019 ones that seem to come up often English (4), Russian(3), Spanish(3), Chinese(3), French(3), Malay(3), Swahili(2), Japanese (2), Portugeuse (2), German (2). 0029 okay no German, cause I heard from multiple sources that they don't like people speaking imperfectly. 0032 in order that I am comfortable with mwak for the languages English, Russian, Spanish, Chinese, French. 0040 okay that should be fine for demonstration ya 1728 not sure where I was in coding.. fine tuning of TopClause class } 21 Dec 2014 0609 hmm, new topClause, new Sentence 0611 probably have to write out the topClause algorithm 0644 awesome it seems to be working now :-) 0648 hm got to get it to quit if it encounter clause terminator 0650 I'm thinking top clause terminator should be different from sub clause terminator ya maybe eke or ekt or etk or ket ya 0659 we could just use then as the ender ya 0700 then much less hassle ya 0712 okay set it up now testing web version ya 0716 cool it works :-) 0717 well almost, there is issue with final topClause ender for mwak version ya 0743 okay seems to be working, will test in web version. Would be easier if we added syntax highlighting for the console version ya 0759 okay is working now roadmap and git 1212 I'm thinking that actually conditionals are like super clauses, they are above yand an yaor, because you can have a bunch of ands and ors within a conditional like wu if ya 1214 considering there is such a higherarchy I'm wondering if perhaps it might be easiest to implement something that takes into account this kind of hierarchy. largely we are experiencing the same kinds of things, and end up rewriting code for different levels of hierarchy ya When it would be best to have one piece of code which works for all or most levels of the hierarchy ya 1310 so can have somethign similar to the sonority hierarchy, where words are associated with a number on the hierarchy. then if another word is encountered of equal or higher priority it terminates. would need a function that could return all the words of equal or higher priority based on the word hierarchy structure. an example of this structure would be something like: "ya":0x80, "pa":0x80, "ku":0x70, "pwi":0x60 1315 hmmm it would be tough with subordinate clauses ya 1315 guess I'll just need to make a superClause for conditionals or something. 22:29 "tai":0x51 "ti":0x50 ".i":0x40 "pi":0x30 "yi":0x20 22:31 well it might be possible, though subclauses would need to be somewhat exceptional as they can't be stopped by another subclause starter, only an ender. } 22 Dec 2014 0754 If I can do some of the future grammar structures with the same system then it'll be worth implementing ya 0755 what do we have left? phrase junctions, type junctions, subclause junctions, word quotes, number quotes, multi word quotes, multi sentence quotes. 0756 hm sentence junctions super clause junctions top clause junctions sub clause junctions phrase junctions type junctions 0759 all of them (except top clause) have the standard format of junction+headmarker 1147 right so we could have something similar to the aforementioned data structure for organizing, likely within grammar. Though ideally the accessor function would of course be independant of the internal representation. 1148 accessor functions should allow for returning list of those with greater or equal value. grammar.wordList("more","ku"); grammar.wordList("less","ku"); grammar.wordList("moreAndEqual","ku"); 1150 ideally we'd use mwak, but w/e for compatibility can use english for now ya 1152 simple and, or, not would then go into seperate list ya 1224 right so we can't do this with sub clauses, since sometimes it's less, sometimes it's more.. 1227 anyways right now we are implementing junctions, so lets try to focus on that, rather than on overhaul of what already works. 1228 basic junction algorithm de prepositional and clause final 1 be encounter ob junction ya be set ob it as this head ya 2 be get ob following type or phrase or clause or sentence ya 3 be check ob if next word after it be same junction and type ya 4 if su yes then jump to 2 ya 5 else finish ya 1251 okay found a better word for type/type.js can call it class, to be like a classifier, since we're going to use it for numbers and such. 1302 hmmm may be easier to change type/ dir to other name, like particles or something. maybe class. 1552 I guess if the word following is not one of the grammar words, we assume it is a type junction ya } 23 Dec 2014 0046 so I was considering simply using sentence junctions instead of top and super clauses ya however this would make transformation from post to pre rather difficult as in the case of multiple sentences that start with wu if would need to be trasformed into multiple sentence that end with wu if ya That would be most easily accomplished with top and super clauses ya 0048 su another thing tha su me be past flow think ek ob tha hypothetical best ob tha su the sentence junctions be have ob the junction in the mood location ya thus be flow avoid ob possible confusion with phrase junctions ya 0117 hm actually su that be may more ob confusing ya but in either case should be easy to decipher and parse ya considering ob no sentence initial and's in 0246 wrote a mini response about the awesomeness of concrete boats. thinking that to make the boat into a biorock, can attach the electrical ground to the frame, likely somewhere above the waterline in the bow, as we want it to be strongest in the bow. 0447 thinking can have it green below the waterline with chromium (iii) oxide yand white above waterline with titanium dioxide ya latex additive for inside below waterline ya poravor for inside above high waterline ya reinforcing fibers everywhere ya 0501 we can actually use aluminum oxide especially bellow water line as it is anti-abrasive due to how hard it is ya Though it would mean that it could only be sanded down with diamonds, still that is some pretty serious abrasian control. it can simply be a surface layer which is the "paint layer". 0838 I think that phrase level junctions might be possible. well I know those are, what I meant to say was that sentence level junctions modeled on them may also work. Simply would have to do the if transformations from pre to post at the text level rather than th sentence level ya 0845 so su point of me ob tha be should implement ob phrase level junctions tat next then be see ob tha if be able backport ob it to conditionals ya 0849 su spirit guides ob seem like ob superclause ya 0852 be point out ob able tha use subclauses for ands thus can just keep top clauses ya 0853 text case de if su someone be more ob sometwo and su somethree be less ob somefour or su somefive be equal ob somesix and su someseven be more or equal ob someeight then be say ob wu hello and be ask ob quo te how are you quo ted else be sleep ya 0858 hmmm so that does become a rather large cumbersome sentence ya so let su us be see ob it as phrase style junctions ya if su someone be more ob sometwo ya and su somethree be less ob somefour ya or su somefive be equal ob somesix ya and su someseven be more or equal ob someeight ya then be go to introductions ya else be sleep ya su introductions be start ya be say ob wu hello ya be ask ob quo te how are you quo ted ya su introductions be end ya 0901 we could simply set up the minimum grammar right now to do assembly programming ya 1806 lets try another iteration of the if conditional with linguistic brackets around the or ya this time with top and sub clauses ya if su someone be more ob sometwo and if tha su somethree be less ob somefour or if su somefive be equal ob somesix ek and if su someseven be more or equal ob someeight then be say ob wu hello then be ask ob quo te how are you quo ted else be sleep ya 1813 okay lets try it assembly styles su someone be more ob sometwo to resone ya su somethree be less ob somefour to restwo ya su somefive be equal ob somesix to resthree ya su someseven be more or equal ob someeight to restfour ya if su resone and restwo or resthree and resfour be true then be go to introduction else be go to sleep ya 1816 beautiful su it be simple ya 1819 now try with brackets ya su restwo be and ob resthree to resfive ya if su resone and resfive and resfour then be go to introduction else be go to sleep ya 1821 bah su you be know what eh? I think I have enough grammar for assembly so I'll go ahead and start implementing translation, I'll leave this more complex grammar stuff for later ya 1822 I dono that is kind of like giving up and not progressing. 1831 anyways instead of trying to implement all the awesomeoness of conditional and's and or's found in most contemporary programming languages, let me see how natural languages do it ya 1835 if su tha su s1 be more ob s2 ek ob tha su s3 be less ob s4 ek be and then if su tha su tha s1 be more ob s2 ek ob tha su s3 be less ob s4 ek be and ek be or ob tha su tha s5 be equal ob s6 ek ob tha s6 be less or equal ob s7 ek be and ek then the above seems to be what my spirit guide was trying to get me to realize for a while now ya 1839 okay cool, so by this, we have enough implemented already, simply have to make subclauses allow for nesting ya but let us digress to yand style sentence ob tha su me be love ob you ek be say su he yand su he ob her be hug ya ob tha su past be define ob tha su we be together ek be say yand be look into eye pair of she yand be smile with love ya 1843 okay ha su it be seem work ya } 24 Dec 2014 0604 got a bit of a back log of story content ya the Inuit interview from 100 years hence, and time projection data, to help estimate the dates for various events in my technological host bodies in the solar-system galaxy saga ya 0734 inuit interview tat 2100's de journalist (j), inuit (i) ya j: you have a submarine contract with the Canadian navy, and buyers all around the world. i: our submarine industry came as a necessity, we wanted to continue to trade during the winter, when ice makes surface water transit prohibitievly expensive. Also having hunted whales since early times, we are familiar with their habits, thus we could design based on them. j: it says here that you can communicate with whales as well. i: the wonders of modern translation. We had to set up repeaters underwater to keep track of the automated cargo submarines. They were getting the local whales somewhat confused, since sometimes their own transmissions would get repeated. So we negotiated with them and now share knowledge about various underwater hazards, movements of fish and plankton. j: I hear you are now one of the largest eco-fuel producers in the world. i: well we have a lot of wind energy, over 1kW/m^2 in some places. A century ago we relied mostly on imported petro-fuels, which were expensive and bad for our health. That quickly changed as we learned to make our own wind turbines. The make your own mini wind-turbine workshops really helped our people recognize their abilities to create technology. j: and now you have one of the largest populations of robots and super computers per capita. i: it's cold and dry here, lots of wind energy, it's the perfect place for computers and robots to be without having to worry about overheating or short-circuiting. j: I guess that's why you also have one of the world's foremost cryogenics facilities. i: Some people wish to store their dead in a way where they are still recognizable a century or more later. Some even hope to make use of them in future. With our polar location and bountiful glaciers we have many places that we can guarantee the long term storage and preservation of their loved ones remains. 1859 j: so tell us more about the submarines. i: the main operations are in pangnirtung where we have most of our energy production. There is also plenty of limestone for making concrete ya j: they are made of concrete? i: self-healing engineered cementious composite really, microfibers make it ductile like metal, silicone admixtures within make it waterproof, electrified steel reinforcing and mesh heals microcracks with biorock. j: electrified? is that dangerous. i: *chuckle* it's too low voltage to cause any harm, and even then only need about a watt per gram of biorock and we need less than that to fill microcracks. So no more dangerous than a 9 volt battery. j: how do the fish feel about that? i: they love it on our low priority cargo subs, which are like mobile eco-systems themselves. Though our high speed deliveries have sharklet pattern skin, so the fish and squid just see them whiz by. We even have automated supercavitating submarines in the works. Though their utility is questionable, as can simply use planes. j: I heard your designs are being used on Europa. i: yes some of our lite submarines have been deployed there. They are lighter than their steel cousins, and their ductile and self-healing aspects won over the pioneers. } 25 Dec 2014 0004 If you are on everybodies side, then you are also on nobodies side, that is the essence of being Loki. 0805 anyways so next is phrase junctions, since conditionals seem to be implemented ya 0806 so we'll need a junction class } 26 Dec 2014 0718 anyways I'm a bit tired of all the programming with so little to show for it, so I'm going to implement the dictionaries before I go any further ya 0720 main problem was naming, which we can figure out later I guess ya for now can simply use english names for simplicity. or get country names, and not do any of the bit stuff. 0729 kwal seems to be language so chinese dictionary 中文 Zhongwen tick jxon kwal or 漢語 Han Yu the Han's language. thus jxan kwal jxan makes it in extended range ya 0809 frar (fra) French, rusc (rus) Russian, spas (spa) Spanish, neng (eng) English. 0820 if we go that way should go with zxoq (zho) Chinese. 1117 (cmn) is Mandardin, so perhaps camn or comn (sit) is sino-tibetan languages, perhasp tsit 1150 hmmm I guess I wouldn't expect people to learn old english, or for instance Latin or Proto-Indo-European. So Why am I expecting people to use for instance Sino-Tibetan? Seems like a lot of wasted effort. Classical chinese however was a standard up until the 1970's, and some at least educated people can still read it quite fluently. code is lzh 1153 the zh of chinese is actually tʂ so tc 1155 (zho) seems a little too generic to be useful ya as it would require a single standard representation ya lzh can be latc and zho could be tcoc 1203 so wikipedia says that literary or classical chinese is like Latin, so we should avoid implementing it until we implement Latin. we'll have to stick to standard mandarin for now ya 1556 can make zho default to cmn or standard mandarin ya 1557 we should allow multiple output languages for single input ya so can copy paste all the outputs and use it email kinda stuff ya } 28 Dec 2014 0528 so Rus of russia from Roþrslandi means row Spain from ay-shaphanim means hyrax isle ya France from Frank which means javelin ya 0547 confuscious 孔夫子 is actually kʰˁoŋʔ ba ʔslɯʔ khong ba sluw 0601 漢語 Hanyu is from xarn nas 0629 anyways so lets make a definition dictionary first ya 0631 meh that wont really get used much, I rather have the normal to foreign language dictionary first it is more impressive. 0641 it would be good to generate a word list of the all the defined words, and then translate those words and use them as a dictionary ya 0651 hmmm should get it to drop the nia's and probably the kai's 0730 finished spanish dictionary translations ya 1119 anyways so can add it now 1130 okay cool added spanish now add suport for multiple output ya 1728 translated dictionary to russian and french 1747 translated standard mandarin 1751 I'll translate esperanto and them implement them ya 1811 okay translated esperanto ya 1826 added to web version, also decided hello is a case, like vocative ya 1833 debugging dictionaries ya 2155 so they are all working, but I still want to add more ya Arabic will mean I have all languages of United Nations Malay/Indonesian for Austronesian languages. Swahili for the niger-congo solidarity. Hindi for India and it's many faiths. Portugeuse all languages of African Union Bengali has 180 mill Japanese cause they like robots. And German cause meh. 2209 anyways Arabic is next. 2215 oh we should add turk and tamil also at some point and korean cause they like technolog there. 2221 hungarian for the uralic } 29 Dec 2014 1851 so I need to make a few thing for managing vocabulary. First off, need to give users access to dictionaries, can probably simply allow them to access the simple code.txt perhaps in a new window or something, later when there are more definitions can have one available with definitions. though we'll need to have compound word parsing before then. 1853 next we'll need to get google translate terms via command line, so that it is easier to add new entries, as there will be hundreds more, times numerous languages. The algorithm that adds new entries, would use the current definition generator from the vocab files, to english. Then it would 1854 also need verifiers to make sure don't have more than one of the same either defining word or definition. 2113 though really we can only start doing the documentation until after we have support for junctions ya 2212 so I'll add those ideas to the langauge support roadmap 2246 made definition dictionary accessible based on from language. however still doesn't translate the compound words, though guess can make them non compounds for now 2249 excellent it works :-) } 30 Dec 2014 0648 so lets get junctions out of the way ya 0649 first to parse them 0651 oh before that I'd like to add determiner type support like a and the, first have to get mwak variants for them though 0656 wu an usually comes from the word one, and wu the usually comes from the word this, 0657 so we should define the word one 0719 okay so one is sit, so si is an. 0722 hmmm actuall seems like n is the major phoneme in an, and one of the major ones in one so guess should make it sin or something, or sun ya 0746 okay have the as ksa for now.. 1637 need words for past present and future 1638 since the is past this 1853 okay finall did it, was hard mip pu past naw nu present put fu futur 2026 added a bunch more grammar words 2335 okay I tested it, but it has issue with more than two word compounds for type, so gotta fix that. } 31 Dec 2014 0557 okay lets get to it ya 0610 hmm input algorithm seems okay for type, can check word ya 0631 fixed up word input ya 0644 okay it should work now, in theory ya 0651 still can't seem to identify where the problem ya 0656 I think it's just that I had to run vocab update ya 0700 okay it's working now :-) 0832 fixed end word translation. 0833 have to fix verb initial input 0843 fixed, now should remove extra clause tail ya 0955 hmmm the clause term is being recognized as a topClause which is weird ya only when it is at end of sentence or next to another top clause ya 0959 have to make a checker that doesn't topClause non topClause words ya 1004 okay fixed it, was because topClause was a copy of clause, so was looking for clauseTerminators 1045 added determiner types, but gotta fix verb final input ya 1047 okay fixed :-) 1048 also wanted to fix up the interface, so it would apply on selection rather than on click ya 1054 can use onchange ya 1120 okay set that up, making it easier to switch dictionary language ya 1131 okay awesome, has a much better feel now :-) 1132 oh should add auto-complete to avoid needless errors 1140 hmmm that may be rather difficult so we'll put it on roadmap 1144 so next is phrase junctions, but for now we'll just git and do some emails ya