HyperbolaBSD – meeting 8

Meeting 8 to hack HyperbolaBSD

[12:22]<quiliro> Minall: you can give everyone the link you gave me
[12:23]<quiliro> Minall: that is very much more begginer-friendly
<quiliro> the people that know could skip it
<Minall> Which one, the 00×00 Programmer Wannabe course?
<quiliro> yes
<Minall> https://0x00sec.org/t/programming-for-wannabes-part-i/1143
<quiliro> A volunteer is preparing a document with a summary of the
chats
[12:24]<Minall> Cool!
<quiliro> thanks Minall
<Minall> yw
[12:25]<quiliro> and will translate that spanish document to english
<Minall> Now, we talked about GIT, which is just the tool we use for
developing, which let us do essential developing things:
Manage changes we make (even changing one letter), rollback if
we made wrong changes, and allowing us to be update with the
code and publish our changes in a safe repository, away from
the main project but with changes that can be added to the
main project if they are good
[12:26]<Minall> The simplest part is just, git are just simple commands, but
you have to know what you want to do, for that, a course would
do, or just ask for help, that way one can learn if git is
capable of what we want to achieve
[12:27]<quiliro> the document with the summary will not be ready for a week
more…but the draft is ready
<quiliro> I would like to publish it once coadde1 and Emulatorman_ have
set up the git infrastructure
[12:28]<quiliro> so that everyone can collaborate
[12:29]<Minall> In a git project, anyone can collaborate with their changes,
without damaging the main project which is a lot to ask when
developing
[12:30]<Minall> And since this team cares about security, each one of us have
given a key which identifies us, so the changes we are making
is us and nothing else, and all communications are secured of
course
[12:31]<infinite_recursi> Lol
<infinite_recursi> IRC is the farthest thing from security!
<quiliro> tech_exorcist: do you have a ssh key?
<infinite_recursi> I find it ridiculous to discuss Hyperbola’s future
plans here.
<tech_exorcist> I have several
<quiliro> great, tech_exorcist
<infinite_recursi> They should do it on a more secure channel. Like
tox.
<Minall> infinite_recursi is because of the topic, I mean, we’re just
learning C here
[12:32]<infinite_recursi> Today is ok.
<tech_exorcist> infinite_recursi: isn’t this channel meant to be
public?
<Minall> Some development things to know like git
<quiliro> are you on the hyperbolaBSD development team, tech_exorcist
<quiliro> ?
<infinite_recursi> Yesterday and a couple days before, it wasn’t.
<Minall> However, important stuff has to be talked through encrypted
mail or tox
<tech_exorcist> <quiliro> are you on the hyperbolaBSD development team,
tech_exorcist | I’m not
<tech_exorcist> <infinite_recursi> Yesterday and a couple days before,
it wasn’t. | uhh, I’m pretty sure that I always
autojoined this channel just fine
<tech_exorcist> <Minall> However, important stuff has to be talked
through encrypted mail or tox | of course
[12:33]<infinite_recursi> Encrypted mail cannot reach a group
<infinite_recursi> Encryption typically works for 1 person.
<quiliro> tech_exorcist: would you like to be in the development team?
it will demand working 1 hour per day
<quiliro> volunteer
[12:34]<Minall> What about tox?, but again, we’re forming the dev team, but
right now the topic is C introduction
<tech_exorcist> <quiliro> tech_exorcist: would you like to be in the
development team? it will demand working 1 hour per day
| no thanks, and it’s mainly *not* due the 1 hour per
day requirement
<quiliro> but it is not strict, tech_exorcist
<tech_exorcist> hmm
<tech_exorcist> I can’t anyway
<Minall> I think we’re getting a little off-topic, you can talk about
it one to one or outside the meeting quilito tech_exorcist
[12:35]<Minall> s/quilito/quiliro
<Minall> Main topic> C Introduction
<tech_exorcist> sorry Minall
[12:36]<quiliro> the point is that contributors need to send Emulatorman_
their ssh public key
[12:37]<Minall> As I know, C is a low level language, so there’s no much
abstraction and you have to make everything on every process
right?
[12:38]<quiliro> but it is not mandatory to know how to program….what is
needed is that the contributors to the kernel know what are
the free licenses we use, what is the hyperbolabsd project
and to have the desire to learn to program in C and assembler
(a little9
<quiliro> )
<quiliro> yes, Minall
<quiliro> but it is very powerful
<quiliro> and you can have libraries
[12:39]<Minall> And it is compiled, aside from other High Level Languages
which run without compilation, this makes C testing to need a
step to test the program, but makes single code of C quicker,
used for drivers which talk directly to hardware, and it is
the most flexible thing you can work with
<quiliro> with: include
<Minall> A code we develop can be compiled to more architectures, not
just a x86 but ARM or others
[12:40]<quiliro> everything is compiled…the difference is if they are
compiled at runtime or pre-compiled
* Minall Has to go, but he will be connected for the log and watching
from above
<quiliro> \o
<quiliro> Minall: nice to see you
[12:41]<quiliro> Minall: meeting will start in 20 minutes
<rachad> hi quiliro
<quiliro> hey buddy!
<Minall> So not over?, cool, 2pm is good for me but, I think I will
join at the middle of the meeting
<rachad> so you preponed it 1h today
[12:42]<Minall> I have some minutes though so, let’s keep going
<quiliro> 1pm Minall
<quiliro> ok
<quiliro> rachad: you asked it to make it earlier
[12:43]<quiliro> but I thought some people might miss it
<quiliro> I did not think it would catch you in the middle of a meal
<quiliro> sorry
<Minall> Now, C is a low level language because of that you can talk to
the HW with it, for that it is used for kernel
development… Just to make an example, not just for
computers, some device’s kernel is made on C
<quiliro> but it is as it is, rachad
[12:44]<quiliro> will ask next time, rachad
<rachad> its okay quiliro
<rachad> i will just miss the first minutes and join you
<quiliro> have you made C programs, Minall ?  why don’t you make a test
program?
<Minall> For example, on a game device I had, I could install an app
with custom C code, which will allow me to produce sounds
connecting to the speakers through a C library and an
algorithm
[12:45]<Minall> So System Libraries are just that, C libraries we can use to
talk to a hardware device
<rachad> you see fasting means i dont eat or drink anything all day so
i cant miss this meal quiliro :)
<Minall> Let me get you this exact example:
[12:46]* Minall is looking for this example
[12:47]<Minall> quiliro This is sorta of a complicated example
<Minall> Do you want me to put it
<quiliro> paste it
<quiliro> on a paste service
<quiliro> but it should be your work
[12:48]<quiliro> that would be good practice
<Minall> https://pastebin.com/CMcBs5By
[12:49]<Minall> Now, here I am using some main libraries, and I define
frequencies for the speaker to play
<Minall> Saying something like: If I push the X button on the device,
play this frequency
<Minall> but this is specific for this game device, but it is the same
for the computer
<Minall> Use a system library to connect to a HW, and do something
according to what the HW does
[12:50]<Minall> I have to head out now, I think you can explain the ifs and
the math behind it, and the frequencies quiliro
* Minall Coming back after finishing a quick meeting
[12:53]<quiliro> Minall: the exercise is explaining your program to
newbies….in 7 minutes
[12:54]<quiliro> Minall: did you write this program or modified someone else’s
program?
[13:03]<LightBearer> Hello, greetings from the middle of the world.
[13:04]<rachad> hello LightBearer :)
[13:05]<quiliro> welcome to the meeting everyone…including you, LightBearer
<LightBearer> how are you rachad?
<rachad> im doing great LightBearer
<LightBearer> ty quiliro
[13:06]<rachad> how is life arround you LightBearer
<LightBearer> fine thanks a little cold and a small rain.
<rachad> nice
<LightBearer> and there? rachad
<rachad> a bit cold here as well
<rachad> see u later
* rachad is going to eat something tasty
[13:07]<quiliro> In this meeting we will discuss C language…feel free to
comment what you want about your experience with C languaje
just yet.
<LightBearer> ok
<quiliro> The power of C be giveth to you my dear!
[13:08]<quiliro> and the spirits of it are to give everyone power.
[13:09]<quiliro> to be free, to code, to read…to make machines serve us
<quiliro> machines shall not have any power over us as users
[13:10]<quiliro> has anyone read
https://0x00sec.org/t/programming-for-wannabes-part-i/1143 ?
<infinite_recursi> I have this book «The C programming Language» by
Dennis Ritchie
[13:11]<infinite_recursi> It’s good for people who have learnt other languages
before.
<infinite_recursi> It’s quite concise, just 190 pages total
<infinite_recursi> Without Appendices
<quiliro> https://www.tutorialspoint.com/cprogramming/index.htm
<quiliro> oh…nice infinite_recursi
[13:12]<biovoid> infinite_recursi: That’s the one recommended to me by a
friend. I started it yesterday
<quiliro> any link?
[13:13]<biovoid> A quick DDG search returns a pdf of the current version (v2),
but I am not sure if it is legally hosted, so I am hesitant
to share that
<biovoid> v1 is outdated, but available on archive.org
<quiliro> on tutorialspoint, C programming video tutorials require
javascript to be shown
<quiliro> biovoid: what is the license?
<quiliro> oof v2
[13:14]<quiliro> of v2
<quiliro> what can be outdated of C?
<infinite_recursi> biovoid: Dennis Ritchie is the creator of C
language. But it’s concise, it doesn’t explain what
happens on hardware when someone writes «float c =
3.14;»
[13:15]<infinite_recursi> I read this fantastic book «Teach yourself Ansi C++
in 24 days by Jesse Liberty.»
<infinite_recursi> Best of the best books to learn programming!
<infinite_recursi> It’s 1st 7 days are enough but it’s a long read.
<quiliro> what about for C?
<biovoid> quiliro: I don’t see an explicit license, but it is published
by Prentice Hall, so I hesitate to think it is freely
available
[13:16]<infinite_recursi> I don’t know any for C. I’ve read just this 1 for C
by Dennis Ritchie
<quiliro> weird it does not have a license
<quiliro> it is not illegal to give a link, biovoid
<quiliro> with that we can check the license
[13:17]<quiliro> even if it is illegal to publish copyrighted works, giving
links to them is not illegal
<biovoid>
https://hikage.freeshell.org/books/theCprogrammingLanguage.pdf
[13:18]<biovoid> on «outdated»: function calls have changed form since the
initial release (much better now IMO), and there are updated
notes on best practices
<infinite_recursi> https://b-ok.asia
<biovoid> but not very much has changed
<biovoid> but my pdf link above is for v2
[13:19]<quiliro> infinite_recursi: Checking available domains.
<quiliro>  Please wait…
<quiliro>  Unfortunately, no available domains were found. But you can
try to login using VPN, TOR browser or suggested domain
below.
[13:20]<infinite_recursi> try https://b-ok.cc
[13:21]<infinite_recursi> Try with tor.
<infinite_recursi> Anyways, I’ll leave now.
[13:23]<quiliro> infinite_recursi: you asked the early meeting
[13:24]<infinite_recursi> Yes, in general. I’ll be here tomorrow. I don’t
wanna learn C. I already know the syntax.
<infinite_recursi> I need to practice it
<quiliro> the publishing will be communicated in 30 minutes
<infinite_recursi> Also, throgh isn’t here
[13:25]<quiliro> when Emulatorman_ comes
<quiliro> so we can go back to the usual times
[13:26]<quiliro> since they could not come at these times, worse an hour
earlier
[13:28]<biovoid> Unfortunately I don’t think it will be possible to cater to
everyone’s schedule… I think leadership will have to
enforce a stable time, and those with conflicts will be
responsible for their own involvement
[13:29]<Emulatorman> hi guys
<Emulatorman> i’m available now
* rachad is back
<rachad> :)
<rachad> hi Emulatorman
[13:30]<quiliro> hey buddy
<Emulatorman> hi rachad
<quiliro> the people that called for an early meeting left
<Emulatorman> ok, seems so
<quiliro> and throgh did not come
<Emulatorman> it is common, because we have different time zones
[13:31]<quiliro> so I think the best is to keep the same time as before
<rachad> since the one who preponed the meeting is not intrested we
should get it back to the usual time
<quiliro> whoever can come, will come
<Emulatorman> yes i think so, i prefer the same time as before for
workload reasons
<rachad> for meal reasons here :D
[13:32]<LightBearer> I agree with you, for me was very hard to be on time and
people are not here with us
<quiliro> LightBearer revived
<Emulatorman> i was resting some time ago, because i’m working in the
nights by developing code and studying
<rachad> its so important though im fasting all day :)
[13:33]<LightBearer> quiliro you think you are funny ;=)
<quiliro> haha
[13:34]<LightBearer> haha or jaja are the same thing
<quiliro> we noticed yesterday, LightBearer
<Emulatorman> i would let you know guys coadde will complete the
struture for tomorrow, currently he is developing new
scripts to ease the options to create/delete/list git
repos for each member in their personal git accounts
inside our server
<quiliro> ok
[13:35]<quiliro> have you heard of throgh?
<rachad> im sure he will join in a bit quiliro
[13:36]<Emulatorman> no, as i said some time ago, i was sleeping/resting until
now
<quiliro> the draft concerning the summary of the chats we had before
is ready
[13:37]<quiliro> but it needs to be heavily edited
<quiliro> it would be nice to publish it on a git repo
<quiliro> is somewhere temporary available?
<rachad> i think i will start using some javascript from trusted
sources
[13:38]<rachad> like riseup pad or disroot cloud
<Emulatorman> quiliro: you can clone one of our git repos and create
commits locally until our git will be available to push
* quiliro weeps for the kidnaping of rachad
<rachad> ahha
<rachad> quiliro: im following Emulatorman
[13:39]<rachad> and throgh
* Minall Is back, with more weapons
<quiliro> nooooooo
<Minall> HI all
<Emulatorman>
https://git.hyperbola.info:50100/documentation/roadmap.git/
<quiliro> ok Emulatorman
<rachad> they use some javascript sometimes
<quiliro> hi Minall
<Emulatorman> you can clone it
<LightBearer> hello minall
<quiliro> will do now
[13:40]<Emulatorman> then you need create a git repo of that in your personal
git account
<Emulatorman> and another one for team
<quiliro> git clone
https://git.hyperbola.info:50100/documentation/roadmap.git/
<Emulatorman> to push your commits
<quiliro> on the command line
<Minall> quiliro roadmap or algorithmg?
<quiliro> neither
[13:41]<LightBearer> quiliro: the link you gave us says:  repository seems to
be empty
<quiliro> Emulatorman: if I clone it, why do I need to create a git
repo
<Emulatorman> then you will need change the URL to
ssh://git@git.hyperbola.info:51100/~git/~team/documentation/roadmap.git
<Emulatorman> quiliro ^
[13:42]<Emulatorman> that «user» git repo is focused for the team who will
have entire access there all members
<quiliro> LightBearer: it is not a link…it is a command for the
terminal
<Minall> roadmap.git/info/refs not valid: could not determine hash
algorithm; is this a git repository?
[13:43]<quiliro> I guess it is: git
ssh://git@git.hyperbola.info:51100/~git/~team/documentation/roadmap.git
<Minall> Was my C example of use on the meeting quiliro?
<quiliro> or not, Emulatorman
<quiliro> no Minall
<Emulatorman> quiliro: if you want create a copy for your personal git
account, you can create a different «origin» in
ssh://git@git.hyperbola.info:51100/~git/~~quiliro/documentation/roadmap.git
by creating a git bare repo clone
<quiliro> it would have been, if you would have explained, Minall
[13:44]<Minall> :c, I had to go, but I’m here now
<Emulatorman> quiliro: for that, coadde is creating a script to ease
the life of us
<Minall> Once we end this git topic I can explain a little
<quiliro> thanks Minall
<Emulatorman> quiliro: so you will can access to your personal git
account and just respond the options to create git bare
repos there
[13:45]<quiliro> but what can I do right now, Emulatorman ?
<Emulatorman> quiliro: even you could push your personal ones from
different projects while those ones are free and follow
the FSDG and Hyperbola Guidelines
<Emulatorman> quiliro: let me see the new coadde structure right now…
[13:46]<quiliro> «coadde structure» sounds so exclusive!
<Minall> So right now we’re making the git repo for us to clone?
<quiliro> coadde1: ^
[13:47]<Emulatorman> coadde will push the source codes of those scripts soon
<quiliro> Minall: coadde1 is making it easier to work with several
teams
<Emulatorman> they will be licensed under GPLv3
[13:48]<rachad> nice!
<Emulatorman> quiliro: i saw the new structure, so i suggest you clone
the repo in
https://git.hyperbola.info:50100/~team/documentation/roadmap.git
if it will be adapted for Roadmap
<Emulatorman> at least that repo will be adapted for the team
[13:49]<Emulatorman> and focused only for Roadmap
<Emulatorman> remember create an custom origin by pointing to your
personal git repo
[13:50]<Emulatorman> i suggest it for backup reasons (eg. if some member
messes the entire git repo), so you will have a backup to
restore
<Minall> Btw Emulatorman, can we make the other meetings over a tox
group chat?, it would be even better
<Minall> quiliro Ok
<Emulatorman> when that repo will be available for access, just edit in
.git/config by changing that URL to
ssh://git@git.hyperbola.info:51100/~git/~team/documentation/roadmap.git
[13:51]<rachad> why you would go to tox Minall
<Emulatorman> Minall, why? i think the IRC is transparent for everyone
<Minall> Yeah but, we’re talking about the project git and all rachad,
Emulatorman… Not about C
<quiliro> Emulatorman: git clone
https://git.hyperbola.info:50100/~team/documentation/roadmap.git
<quiliro> Cloning into ‘roadmap’…
<quiliro> fatal:
https://git.hyperbola.info:50100/~team/documentation/roadmap.git/info/refs
not valid: is this a git repository?
[13:52]<Minall> Or has the meeting ended?, then I’m confused
<Minall> Same message for me quiliro
<Emulatorman> quiliro: i see, seems it still under construction :s
<Emulatorman> quiliro: well, you will need wait for tomorrow sadly
<quiliro> ok
<LightBearer> I tried todo it and I had trouble with it.
[13:53]<Emulatorman> quiliro: try use a pad or something else
<LightBearer> I have used the console
<Emulatorman> quiliro: there are some pads without js, but i forget
their url right now
<quiliro> pastebin
[13:54]<quiliro> ok
[13:55]<Minall> What is a pad?
<LightBearer> pad and console are the same thing?
[13:56]<Minall> Not even sure what a pad is LightBearer
<quiliro> a pad is a collaborative text editor
[13:57]<Minall> console you mean console under Xorg or just console like
Ctrl+Alt+F6
<Emulatorman> in short, it is called «etherpad»
<Minall> Oh, I know
<LightBearer> ahhh is not a console…
<quiliro> a console or terminal is where you can type to a shell
<LightBearer> yes and a lot of people are working at the same time in
the same document.
<Minall> LightBearer they aren’t the same then, is like a odt document
which I’m editing with someone else remotely
[13:58]<LightBearer> Once I worked on it with a group.
<quiliro> an odt is very complicated to edit at the same time, a pad is
not
<quiliro> you can edit an odt sequentially, not simultaneosly
<LightBearer> ok thank you minall for asking and quiliro for responding
us.
[13:59]<quiliro> I think there was a packckage to use it as a pad…but it is
so heavy on the machine
<quiliro> it is like googledocs…horrible
[14:00]<quiliro> and nonfree
<quiliro> even more horrible
<quiliro> I think throgh is not comming
[14:01]<Emulatorman> quiliro: do you accept free js? or in short non-js
independent if it is free or not?
<LightBearer> quiliro packckage must be a munster :=)
<quiliro> would someone please remind him on the forum?
<Minall> I think that’s a no >.<
[14:02]<quiliro> LightBearer: yes…libreoffice online is a horrible munster!
<quiliro> but at least it is free
<quiliro> haha
<Minall> I find it cool since it is free, even if it can be bloated?
[14:03]<quiliro> you think you are funny too, don’t you, LightBearer ? LOL
<Minall> Lets me use unfree word documents that gave me at work without
depending on other more bloated non-free software like
microsoft office
<quiliro> oh…you can just start plain text
[14:04]<Minall> wdm?
<quiliro> that way, there is no problem with versioning
<Minall> Like when I have to see a table on xlxs, and I of course don’t
use office cause propietary
<quiliro> versioning and collaborating in these formats is almost
impossible
[14:05]<Minall> Libreoffice helps me there
<Minall> Yeah
<quiliro> the best is to make tables in org
<quiliro> not more simple and can have graphic output
[14:06]<quiliro> but that is off-topic
<quiliro> sorry to get carried away
[14:07]<Minall> jaja don’t worry
<Minall> This topics are educational
<quiliro> could anyone notify throgh on the forums?
[14:08]<rachad> why is he coonected in the forum right now
<rachad> email him quiliro
[14:09]<quiliro> I use javascript (even free code) as often as when I can eat
horrible foods…very once in a while
<Minall> I’m just registering LOL
<quiliro> I do not want to use javascript in the forum
<rachad> you can use the forum without javascript quiliro
[14:10]<quiliro> how?
<Minall> I think JavaScript isn’t the problem, unfreeness of it is
<quiliro> I can read them only
<Minall> Wait how rachad?, that’s cool
<rachad> kust disable it in your browser and use the forum
<quiliro> javascript will run code on my machine
<rachad> *kust = just
<Minall> quiliro True, I can access the forum through eww
[14:11]<quiliro> rachad: I cannot use eww to post
<rachad> it doesn’t require javascript to post in the forum though
<quiliro> really?
<quiliro> but it does to login
[14:12]<quiliro> without loggin in, I cannot post
<rachad> idk why eww doesn’t work quiliro but i use the forum without
javascript with iceweasel-uxp or iceap-uxp
<quiliro> yes
<rachad> and i can login and post as well :)
<Minall> Logged now
<quiliro> but I do not want a js-capable browser, even if it can be
blocked
[14:13]<LightBearer> quiliro I am readying the link you gave us today about
wannabe
<quiliro> It is possible to have a bug
<quiliro> it is a very big software
<quiliro> and it is very heavy
<rachad> i didn’t use javascript for a year less or more
[14:14]<quiliro> why does it work without js in iceweasel-uxp and not in eww?
<Minall> That’s indeed strange
<quiliro> LightBearer: that link was given to me by Minall
<quiliro> lets thank Minall
[14:15]<Minall> Perhaps try with another console browser without javascript,
to say it is not eww faulth
<Minall> Thanks quiliro
<quiliro> good idea
<rachad> i will try lisp
<quiliro> maybe lynx
[14:16]<Minall> Yeah
<rachad> lynx sorry
<rachad> lol
[14:20]<quiliro> terminal type? vt100
[14:27]<quiliro> inside of exwm it is very hard to use links, lynx or elinks
<quiliro> I would need to configure fonts for the terminal
<Minall> quiliro Use vterm, or term
<quiliro> I do not have a real terminal here
[14:28]<Minall> Use term then
<Minall> Or go Ctrl+Alt+F3
<quiliro> I will get disconnected from chat
[14:29]<quiliro> if I do that
<Minall> Then try term quiliro
<Minall> term is another terminal like shell or eshell
<quiliro> I do not have those programs
<Minall> But more of a terminal for what you need on lynx
<Minall> term is included in emacs
<Minall> M-x term
<quiliro> I have shell an eshell
[14:30]<Minall> You do not have M-x term?
<Minall> To exit it if you have it, just ‘exit’ like a normal terminal
[14:31]<quiliro> worked…but it has weird characters in lynx
[14:32]<Minall> No clue then… Perhaps you can install a temporal terminal
like xfce4-terminal?
<Minall> It works in these cases, you can call it when you have these
situations and it is lean
<Minall> From XFCE
[14:33]<quiliro> the idea to use exwm was not to do that
<rachad> how to search for or access a link in lynx
<quiliro> rachad: use ?
<rachad> yeah but i keep reading
[14:34]<rachad> its too much for someone who just wants to try hyperbola forum
[14:35]<Minall> quiliro just asking, what about Icecat?, it is fsf recommended
and all
<Minall> You introduced it to me, and it blocks JS by default
<Minall> Just for searching the hyperforum since, you don’t like
navigating to other pages
<throgh> Hello together!
<Minall> rachad What are you trying to achieve again?
<LightBearer> hello throgh
<Minall> through !rehtegot olleH
[14:36]<Minall> throgh
<throgh> Sorry being late, reworking the X200 was more work. :(
<throgh> Hello Minall.
<Emulatorman> hi throgh
<rachad> hi throgh
<hyperbot> hi throgh
<throgh> Hello :)
<rachad> even the bot lol
[14:37]<throgh> Now with account again. ;)
<rachad> Minall: im trying to test lynx
<throgh> Is there an update for doing another news-entry? Otherwise,
I’ll upload something done today for the course!
<rachad> maybe login to the forum and post something
<quiliro> we missed you, throgh … we’ve waited 96 minutes
[14:38]<throgh> Sorry, mentioned yesterday that I had to do a rework on my
machine -> display.
<rachad> yeah today we started the meeting 1 hour ealier
<Minall> throgh reworking? are you trying to libreboot?
[14:39]<Minall> rachad What do you need?, do you have it installed?
<throgh> No this is Libreboot, but with non-IPS. Now with IPS!
<quiliro> I am trying to enter the forum with plain text browser as
eww…but I cannot post
<throgh> Full better quality.
<Minall> throgh not sure what you mean
<throgh> @quiliro: Which browser?
<quiliro> Emacs eww
[14:40]<Minall> Of that’s cool!, that had to be a lot of work but, now you
have a 100 free device
<quiliro> Emacs web wowser
<Minall> throgh What is IPS?
<quiliro> what is IPS?
<quiliro> haha
<Minall> >.<
<rachad> throgh: who do i know if my display is ips or not
<rachad> quiliro: im trying to do the same using lynx maybe it will
work
[14:41]<throgh> @Minall
http://thinkwiki.org/wiki/TFT_display#Flexview_.28IPS.29
<rachad> i have a x200 as well throgh
<quiliro> i cannot see those characters, throgh
<elibrokeit> quiliro: I got pinged for some reason, what’s up?
<rachad> recently upgraded the ram to 8gb
[14:42]<quiliro> elibrokeit: in case you want to come to the hyperbolabsd
development meeting
<throgh> For the ones interested, just try to look from the side on
your TFT. If your display changes colour and cannot be viewed
good, than this NON-IPS.
[14:43]<elibrokeit> Ehhh…
<elibrokeit> I have been idling in this channel because I’m the
upstream for «pacman»
<quiliro> elibrokeit: you are late but the meeting is late too
<Minall> upstream for pacman?
<quiliro> oh…sorry then, elibrokeit
<Minall> throgh Cool, my laptop has IPS then
<elibrokeit> Yes, I’m an archlinux staff member
<rachad> okay throgh its non-ips here
[14:44]<elibrokeit> I’m in the parabola, manjaro, archlinux32, archlinux-arm
channels too… I was in the anterior channel but they’re
dead now.
<elibrokeit> *antergos
[14:45]<throgh> The upgrade can be done. If interested I’ll post later more
information about that. Had a tryout with another
Libreboot-machine and thought I just can change the full
monitor from the chassis, but no. :( Therefore more time.
<quiliro> throgh: can we start with some tips for C language, please?
[14:46]<quiliro> for learning, that is
<rachad> okay post more info about it throgh maybe pictures if you took
any doing the changes
<Minall> We aren’t in the meeting though, some people that were here
won’t read this
<throgh> Of course we can start. :)
[14:47]<elibrokeit> (but as far as hyperbola bsd goes I honestly don’t get why
not just be a BSD)
<throgh> Perhaps I’ll give some first little «Hello world»-program and
try to give some view on this.
<rachad> elibrokeit: your welcome to leave archlinux and join hyperbola
:)
[14:48]<quiliro> it would be great, but I doubt he has any interest, rachad
<quiliro> or she
<throgh> But first things first: This is real another entry into some
first steps for C.
<elibrokeit> (he)
<throgh> Looking onto this:
https://www.programiz.com/c-programming/examples/print-sentence
<rachad> maybe Emulatorman can answer that elibrokeit
[14:49]<quiliro> throgh: I cannot see those characters
<throgh> Okay, will use another one.
<rachad> quiliro: you have some font issues ?
[14:50]<quiliro> yes, rachad
<rachad> i fixed what i hade quiliro maybe i can help
[14:51]<quiliro> elibrokeit: https://itsfoss.com/hyperbola-linux-bsd/
<throgh> #include <stdio.h>
<throgh> int main() {
<throgh>    // printf() displays the string inside quotation
<throgh>    printf(«Hello, World!»);
<throgh>    return 0;
<throgh> }
<quiliro> oh! i cannot even see my own link!
<throgh> Is this better?
<quiliro> thanks throgh
[14:52]<Minall> This function can be done with void main()?, and just call it
or, am I mistaken
<quiliro> I think term was the guilty one
<elibrokeit> sorry, I don’t acknowledge your weird «the kernel is
including rust» panic
<throgh> Okay :) going line by line. First you see the directive to
include a so called header-file. In this case it is the
absolute base for some Standard-IO (Input / Output).
[14:53]<quiliro> test https://itsfoss.com/hyperbola-linux-bsd/
<quiliro> :-(
<elibrokeit> Do you even realize the kernel devs are even more against
rustc than you are?
<elibrokeit> they’re prospectively considering to add Kbuild support
for gcc-rs
<throgh> Afterwards you see in the next line your first function, the
so-called «main».
[14:54]<elibrokeit> which will be a GPL3 reimplementation of the language spec
in GCC
<Minall> throgh Can we use the stdio in our algorithms?, to test them
and print stuff?
<quiliro> elibrokeit: thank you for the information…will check it
later….we are now in a meeting to introduce C language
<Minall> elibrokeit so rust isn’t an issue?, or is it getting included
[14:55]<Minall> Well true
<throgh> @Minall: Regarding the kernel-development this is a bit more
complex. Of course there are possibilities for debugging, but
for now this little example is for the purpose to get some
entrypoint.
<Minall> throgh Thanks, Carry on
<throgh> Okidoki.
<throgh> :)
<elibrokeit> the LKML discussion on rust that I remembered seeing,
deadlocked when a bunch of high profile names said «no,
rust is completely unsuitable because linux compiled with
gcc cannot include LLVM-based rust object code»
[14:56]<throgh> When I mention return-values, everbody is able to follow?
<elibrokeit> and then gcc-rs got announced
<throgh> Or should we talk a short about return-values within
functions? Just to mention as in the forum: I’m making also a
bit more complex guide and course-material.
<elibrokeit> and that is being hailed as the future of the rust
programming language, and the way to bring its glories to
the kernel
[14:57]<Minall> elibrokeit Then we don’t have a rust problem?
<throgh> For everyone interested:
https://forums.hyperbola.info/viewtopic.php?pid=2914#p2914
<elibrokeit> So: my strong expectation is, Linus Torvalds is not going
to merge the technology preview of «rust support for
kernel modules», until after gcc-rs is stable
<Minall> throgh I think we should talk a little about return values,
since header algorithms return a lot of different types
[14:58]<elibrokeit> hence: there won’t be a problem of using rust-lang’s
trademarks, because rust-lang is not going to be invited
to the kernel
<Minall> Thanks, I will read it later throgh
<throgh> Okay, as Minall said: Then we talk about functions also. So
you see the «main()»-function and it got a value to return. In
programming there is one major: Divide complexity – no I won’t
use «Divide and Conquer» for now. ;)
[14:59]<Minall> elibrokeit But gcc-rs right?
<Minall> Divide complexity?
<elibrokeit> yes, gcc-rs will be at least optional, to begin with, for
the kernel
<throgh> Don’t only think about the syntax of a language itself. It is
more about: What do you want to do? What kind of algorithm do
you want to implement?
[15:00]<throgh> Yes, complexity is of course not within the example
above. Well in fact: This little program just output «Hello
World» in the terminal, nothing more and nothing less. :)
[15:01]<elibrokeit> (you’ll be able to write new code using rust and compiled
with GCC’s rs implementation into GCC «gimple» IR, then
unified into the resulting output artifacts. The minimum
version of GCC for building the kernel will,
appropriately, be raised.)
[15:02]<Emulatorman> throgh: it is our TODO’s phase process to develop our
kernel -> http://0x0.st/-TCC.txt
<quiliro> throgh: I could see your link with the example of Hello
World…it was very explanatory of the elements
<LightBearer> throgh, everybody is talking about different topics and I
don’t know what are the instructions for your class today
<LightBearer> please explain once again!
<LightBearer> explain it
<elibrokeit> I suspect they’ll be very cautious about rewriting the
core of the kernel in rust, until it has shown its value
over a long period of time.
[15:03]<elibrokeit> anyway!
<Minall> Thanks for the explanation elibrokeit, it was educational
<elibrokeit> the bigger issue which makes rustc *completely* unsuitable
for the kernel — and Linus Torvalds knows it
<throgh> Okay, wait. Could we please focus on one topic first? :) I
don’t want to break some talks here and I’m sorry for being
late to the talk now. So I’ll do my best keep an eye so
everyone has a chance to follow. :)
<Minall> Right now we will keep going with our C topic
<elibrokeit> is that rustc doesn’t support many CPU arches
<throgh> Thanks!
<throgh> :)
[15:04]<elibrokeit> the kernel *does*
<elibrokeit> GCC *does*
<quiliro> Minall, elibrokeit would you please delay your chat for 1
hour ?
<elibrokeit> GCC-rs *will*
<Minall> Sorry, ok
<throgh> Just give me half an hour. :)
[15:05]<LightBearer> quiliro, minal and elibrokeit, yes please to continue
with C language.  :=)
<rachad> :)
<throgh> Okay, I hope the short little program for everyone is in the
chat and you all can review the lines.
<throgh> But I’ll restart with «divide complexity» as major way.
[15:06]<quiliro> throgh: can we do a practical exercise?
<quiliro> it could be fun
<quiliro> but a very simple one
<throgh> @quiliro: Yes, this is one plan. But let me finish the
explanation first. :)
<quiliro> to show everyone that they can do it on their mchine
<quiliro> ok
[15:08]<throgh> Think about the following: The little program above is just
one function, showing you a nice greet within the
terminal. Nothing more! But what about programs doing even
more? Of course you can do most things for a smaller project
within «main()». But it is better to have the growing
complexity under your control.
[15:09]<throgh> So that’s the major task we all have: Getting to understand
WHAT we want to reach with one function, class and
enumeration. Also STRUCTURE the logic so it is readable for
everyone interested and with knowledge about the syntax.
[15:10]<throgh> Of course you could build everything just all within one line
for smaller programs, but I say: After one year you won’t even
understand what you’ve done. Therefore there are
code-stylguides and therefore you all have the way to get a
clear sight onto one package.
[15:11]<rachad> okay we want to help Emulatorman build the next verry secure
system :)
<throgh> You want to build a parser or a game? Okay, but therefore you
have to divide different parts of this so big task. Otherwise
the project won’t be done in any way and you don’t get it to
work.
<quiliro> throgh: what are those terms: function, class and enumeration
[15:12]<throgh> Building the next secure system? A kernel? Okay, but there are
many parts: Interfaces, system-calls, hardware-communication
in general.
<throgh> @quiliro: Good question: A function can be one part to execute
some snippet of code you have in mind to be called. I’ll give
you one example to follow.
[15:13]<throgh> I had the task to build a sort-program once: Just imagine
this. A folder full with PCL-files and all of them have at
minimum one page inside, but can be also include two pages,
three or more than three.
[15:14]<throgh> PCL-files are printer-commands generalized in a file. Can be
send right away to a printer. ;)
<throgh> Shortterm for «Printer-Command-Language».
<quiliro> I understand a function is a command to take some input, do
several things with it and give an output
<throgh> Absolutely!
[15:15]<Minall> Can a function return another function?, like high level
functions
[15:16]<throgh> You have in fact for any function some kind of
return-value. You can of course call functions within other
functions – perhaps to assign values to a variable.
<quiliro> throgh: that short program, what did it do?
[15:17]<throgh> @quiliro: You mean the one with PCL-files? Well as I’ve
mentioned: It should enumerate the files, sort them in
subfolders and afterwards quit.
<quiliro> oh
<quiliro> and that was a function?
[15:18]<throgh> Yeah, that’s the part I rely on here for explanation: Of
course I could do everything in the «main()»-function.
<throgh> But this would be a desaster and when looking at the program
within a year, I would not understand what I had done.
<LightBearer> throgh: in real life a short program like that, what can
be used for? give me an example please
[15:19]<quiliro> LightBearer: M-x erc-tls is a function
<throgh> @LightBearer: Of course, this program is right away in daily
use for output-management. It’s task is to sort the PCL-files
generated and afterwards sorting them in subfolders. A
cron-job is later called to merge all PCL-files into one
PDF-file.
[15:20]<Minall> cool
<quiliro> erc-tls is a function
<LightBearer> thanks guys, I see the usability of this powerful litle
program.
<throgh> Ah and you know even the program this example is using for the
cron-job. It is GhostPCL! :)
[15:21]<Minall> I assume LightBearer uses emacs then quiliro
<quiliro> cool
<quiliro> yes, Minall
<quiliro> ;-)
<LightBearer> yes Minall «what do you eat, that you guess?»
<LightBearer> que comes que adivinas
<Minall> Everything is emacs is a function, if you use: C-h k o, you
will see that when you press ‘o’, you call a function that
returns ‘o’
[15:22]<Minall> This is the beauty of emacs, this makes it easy to extend
<Minall> LightBearer LOL
<LightBearer> lol
<Minall> throgh So basically a function is: call and execute something?
<throgh> So as I’ve said: The first task is to divide complexity. In
our concurrent talk and the mentioned program (which I can
post later in the forum if you whish, but it is a
MinGW-source, not GCC alone) I had to divide the different
steps of the task.
<Minall> And if necessary, arguments, of course…
[15:23]<throgh> So I try to do a scribble of that: 1) Looking for all files in
a folder 2) reading every file and interpret the page-count 3)
sorting the file found into a subfolder
[15:24]<quiliro> GCC is the C compiler….what is MinGW?
<quiliro> arguments are the input?
<throgh> @quiliro: In fact the same but for Windows
(https://en.wikipedia.org/wiki/MinGW).
[15:25]<throgh> @Minall: Yes, calling a function means also doing some part of
the task you want to do.
<Minall> On a function: int main(), what comes inside the parentheses
are the arguments, these are variables you pass the function
if needed, for example, a function that returns the number we
gave to him from -outside- the function would be:
[15:26]<Minall> int main(int someVariable) {return someVariable * 2} where
someVariable is multiplied by 2
<Minall> Perhaps I’m mistaken on the syntax btw, correct me if I’m
wrong throgh
[15:27]<elibrokeit> mingw is not a C compiler, though it does include one
<throgh> @Minall: The main-function has no input-parameters. :)
<throgh> @elibrokeit: Thanks! :)
<elibrokeit> it’s just a collection of tools (including GCC!) built for
another platform (Windows)
<Minall> Didn’t knew that, but welp, not main but another function
like: returnTheDoublePls(int i) { … }
[15:28]<Minall> Just like other compile tools for arm or other arquitectures
<quiliro> is this clear, LightBearer
<quiliro> ?
[15:29]<throgh> That would be for later and also part of the style-guide
itself. Sometimes there are things better not to do: This is
some kind of code-quality.
<quiliro> please ask, if unsure
[15:30]<throgh> Of course: Please break the talk if something is not clear.
<quiliro> throgh is very patient ;-)
<throgh> And I know even this all is much for now. If I post the
program later in the forum, this is a bunch of code.
[15:31]<LightBearer> I readying the information and Iam trying to remember the
lecture I made of it.
<rachad> LightBearer: i think we should start by reading
https://www.tutorialspoint.com/cprogramming/index.htm and
follow with throgh in our meetings as well
<rachad> start coding and compiling small programs
<LightBearer> not lecture I tried to say the readying of the link that
throgh gave me yesterday.
[15:32]<throgh> When you look onto the code of HyperbolaBSD: You see different
C- and Headerfiles. Structured in general. Many different
information and data-structures. But that’s the main concept:
Structuring complexity and dividing it so you have capable
little snippets you can work on.
[15:34]<quiliro> rachad: that is a great manual
<throgh> Doing all of that in just one file? Perhaps possible, but more
or less later a problem for everyone to read, including
ourselves. :) So making readable code, making it
understandable is the first point. After that: C is using the
concept of Headerfiles and C-files for real execution and
commands.
<rachad> yeah quiliro its one of Emulatorman shared links and what he
started with wen learning C
[15:35]<quiliro> what is the difference between Headerfiles and C-files?
<quiliro> what are these?
[15:36]<throgh> Coming to this with an example from HyperbolaBSD.
<elibrokeit> I presume «header files» really means «C-header-files»
[15:37]<elibrokeit> and «C-files» really means «C-code-files»
<Minall> Makes sense
<throgh> Look here:
https://git.hyperbola.info:50100/hyperbolabsd/hyperbk.git/plain/arch/amd64/amd64/acpi_machdep.c
<Minall> Now, header and code files are exactly the same, but headers
are specific algorithms?
<throgh> This is one C-file with execution in it.
<elibrokeit> but maybe you could use less confusing terms, like,
perhaps… «.h files and .c files»
[15:38]<elibrokeit> both of which implement the C programming language
<throgh> Mentioned earlier we have the INCLUDE-directive.
<Emulatorman> quiliro: did you check to read this tutorial? ->
https://www.cprogramming.com/tutorial/c-tutorial.html
<throgh> So you see also there are many Headerfiles included for
definitions.
[15:39]<rachad> .h are the headers and .c are the code-files
<rachad> ?
<Emulatorman> quiliro: afaik, it is a simple website
<throgh> This is one:
https://git.hyperbola.info:50100/hyperbolabsd/hyperbk.git/plain/dev/acpi/acpireg.h
<throgh> Yes, rachad. :)
<Minall> This is the part that confuses me, structures, pointers and
externs
<Minall> And some unseen syntax like ->
<Emulatorman> through: did you check it too?
<throgh> You can see within the last file: There are definitions and
data-structures being used.
[15:40]<throgh> Yes, reading it already for the course-material in
preparation.
<Emulatorman> i suppose it should work in a simple browser such as the
Emacs one
[15:41]<rachad> i checked it Emulatorman and im starting to read wen ever i
find some free time
<Emulatorman> ok
<rachad> i think it will help give us the basics
<throgh> Hope so. But I also try to break this down, building a
PDF-file to read slide by slide (LibreOffice Impress).
<Emulatorman> at least, it could be as reference in conjuction with
throgh’s guidance
[15:42]<Minall> throgh Lets say I have to read a PDF file, and use a c library
for reading the file in the code
<Minall> At that point, I have the file, binaries, how can I ‘read it’?
[15:43]<throgh> Well, you need also some kind of library to read the PDF-file,
interpret perhaps data within in it. So you need the code from
the library, the so-called API to implement and use within
your program.
[15:44]<throgh> There are different approaches doing this: Compiling the
library with your program with a static link a build-time? Or
use the external libraries afterwards on the system – the
presumption: library MUST be installed or your program won’t
start.
[15:45]<LightBearer> throgh: I already found in the reading some  files .h  it
is one of them and I copy here:  #include
<machine/i82093reg.h>, but I cannot find the .c
<throgh> Okay, you need to use the git-repository itself. Wait!
<Minall> Makes sense, thank you throgh
[15:46]<Minall> Where could I find this library I need?, in the case I want to
statically compile it with my program?
<Minall> It would be better to just use a system one of course, but
just for the record
[15:48]<throgh> Oh, the git-repository seems to be broken for now? Ah damn,
using an alternative.
[15:49]<Emulatorman> throgh: our git repo still under contruction
<throgh> Okay, then in another way: Try to see the file viewing as the
concrete point where you look onto the structure of files and
folders.
[15:50]<Emulatorman> coadde is doing it
<throgh> @Emulatorman: No problem! :)
<throgh> So when looking at #include <machine/i82093reg.h> … there is
a folder including this file.
[15:51]<throgh> So it is also about structuring logic, using algorithms /
recipes and structuring the code-files itself.
[15:52]<Minall> throgh I see in some files that we have data types I don’t
recognized, are these also included from the header files?
<rachad> LightBearer: the .h work as refrence for the .c files so
inside the .c using #include something.h will use its values
as refrence for your a.out wen it gets compiled
<rachad> https://www.tutorialspoint.com/cprogramming/c_header_files.htm
[15:53]<rachad> correct me if im wrong throgh
<throgh> @Minall: You can define your own, perhaps you need some
further address-room later and no data is capable about doing
that.
<throgh> But perhaps it is best to do some work at the end? Much
theory, now some practice?
[15:54]<throgh> You all remember the little program at the entry?
<throgh> The «helloworld» one?
<Minall> Yeah
<rachad> yes
<throgh> Just copy the code and make some new file with your
terminal. Name the file as you want: Mine is «helloworld.c»!
:)
[15:55]<throgh> For the next step to follow, we need a compiler being
installed!
<throgh> So you all now the packages for your distribution to do this?
<throgh> If not, no problem: Let’s look onto this. :)
<rachad> then use: gcc helloworld.c
<throgh> Yep! :D
[15:56]<rachad> LightBearer: do you have gcc installed
<Minall> Done
<throgh> On Debian: «sudo apt-get install build-essentials»
<throgh> @Minall: gcc helloworld.c?
[15:57]<Minall> Yes, I have a.out as an output file
<rachad> its the compiler of your .c files LightBearer
<throgh> Okay, then try «./a.out»
<rachad> it should print hello world in your terminal :)
<Minall> Yeah
<throgh> As said: Just a little program, nothing ground-breaking.
<Emulatorman> Minall: you can rename the output file from the gcc
command eg. gcc helloworld.c -o helloworld.exe
<Minall> I have Hello World! in my terminal, without space though
[15:58]<Minall> That would be better
<throgh> Yes, now you can experiment with your own workflow. :) Just as
Emulatorman pointed on!
<Minall> Why .exe? lol
<Minall> Let me try that
<Emulatorman> Minall: just an example
<LightBearer> rachad yes I do have gcc installed on my computer.
<Emulatorman> you can create it as helloworld.peppapig
[15:59]<rachad> :D
<throgh> ;-)
<Emulatorman> lol
<Minall> Yes, I can change its name
<Minall> lol
<Minall> Wait
<Minall> Why is my pc burning after creating helloworld.peppapig?
<Minall> Matrix?, is my pc trying to tell me something
<LightBearer> I have used the console and I have typed the word gcc
<tab>
<throgh> For linebreak:    printf(«Hello, World!\n»);
[16:00]<throgh> @LightBearer: Tryout this: nano helloworld.c
[16:01]<throgh> Copy the content:   GNU nano 2.8.2
Datei: helloworld.c
<throgh> #include <stdio.h>
<throgh> int main() {
<throgh>    // printf() displays the string inside quotation
<throgh>    printf(«Hello, World!\n»);
<throgh>    return 0;
<throgh> }
<throgh> Ah okay, #include <stdio.h>
<throgh> int main() {
<throgh>    // printf() displays the string inside quotation
<throgh>    printf(«Hello, World!\n»);
<throgh>    return 0;
<throgh> }
<throgh> Again! :D
<throgh> #include <stdio.h>
<throgh> int main() {
<throgh>    // printf() displays the string inside quotation
<throgh>    printf(«Hello, World!\n»);
<throgh>    return 0;
<throgh> }
<throgh> So better.
[16:02]<throgh> Afterwards: gcc helloworld.c
[16:05]<Minall> Done
<Minall> Looks better,
[16:06]<Minall> Is now a break line, a Normal Hello, World!, then return to
terminal
[16:07]<throgh> Congratulations: Yes, it is simple but the first program to
compile. :)
<Minall> So this is all about compilation, that’s cool
<Minall> Now we go to the robots engineering part?
<throgh> Ha, there is more to come. ;)
* Minall is exited
[16:08]<throgh> First things first: You can also try to build more sentences
perhaps?
[16:09]<Minall> Just «»?, does it accept »?
<Emulatorman> Minall: could you send me again your public ssh key?
<Minall> I added 3 more printf’s
<Emulatorman> Minall: coadde lost it
[16:10]<Minall> Emulatorman right away, let me connect to tox
<Emulatorman> Minall: he is near to complete the structuring
<Minall> Nice!
<Minall> throgh Compiling error: expected ‘;’ before ‘return’
<LightBearer> throgh: Yupi! I have done,
<LightBearer> it
<Emulatorman> i’m trying to contact heckyel and pekman, the first one
isn’t responding from tox while pekman is offline
<Minall> And does the printf() function accept »?
<throgh> @LightBearer: Now try executing. :)
<Minall> And are there other ways of using the printf function?
[16:11]<throgh> Of course there are. I have another example, enhanced one. But
let’s wait until everbody has finished!
[16:12]<Minall> Emulatorman just sent it through tox
<Minall> throgh Very well
[16:13]<throgh> So another enhanced example with more for the curious ones.
<throgh> #include<stdio.h>
<throgh> #include<stdlib.h>
<throgh> int main()
<throgh> {
<throgh>       int count, num;
<throgh>       printf(«Ten Random Numbers:\t»);
<throgh>       for(count = 1; count <= 10; count++)
<throgh>       {
<throgh>             num = rand() % 100;
<throgh>             printf(«%d\t», num);
<throgh>       }
<throgh>       printf(«\n»);
<throgh>       return 0;
<throgh> }
<throgh> I know this is just one big jump now. ;)
<Minall> My problem was the last ;, is this necessary?
[16:14]<rachad> what did i miss
<throgh> Could you post your code?
<throgh> :)
<rachad> ?
<rachad> http://0x0.st/-AP8.png
<throgh> Welcome back, rachad.
<Minall> I had printf(«something more») but without the end ‘;’
<quiliro> I could do it too
<Minall> So compilation failed,
<rachad> thank you throgh :)
[16:15]<throgh> You need the «;» at the end of one command.
<throgh> Ah syntax-error. :)
<throgh> Yes, the compiler is the one in charge and control: Parsing
your source before compiling it for the machine.
<throgh> When not fitting the ruleset: Nothing compiles. My bad: Had to
mention that!
[16:16]<Minall> Makes sense
<Minall> What is this strange but amazing code you gave us
<Minall> Ten random numbers?
<throgh> Yes, I can show you the output. :)
<throgh> But perhaps lets go through line by line again for the end.
<Minall> I already have it my friend
<Minall> Ok
<throgh> First you have another included header from the
STD-definitions.
[16:17]<throgh> For the usage of «rand()» now.
<throgh> Afterwards we have our «main()»-function.
<LightBearer> #include <stdio.h>
<LightBearer> int main() {
<LightBearer>    // printf() displays the string inside quotation
<LightBearer>    printf(«Hello, World!»);
<LightBearer>    return 0;
<LightBearer> throgh I have typed in the console the phrase gcc
helloworld.c then ls *.out  and then the console
reflected Hello, World!
<LightBearer>
<throgh> Try «./a.out».
[16:18]<throgh> Another possibility and better way:
<throgh> gcc helloworld.c -o helloworld
<quiliro> my fonts are degrading
[16:19]<quiliro> I will loose the log if I exit
<quiliro> please do not post anything until I come back for 1 minute or
2
<rachad> quiliro: can you check /etc/locale.conf
<rachad> whats in there ?
[16:20]<quiliro> it has not changed, it is just my emacs
<throgh> Okay, waiting! :) No problem.
<quiliro> thanks, bye
<Minall> I’m heading out in 10 minutes guys
[16:24]*** Topic for #hyperbola: The official IRC channel of Hyperbola Project
– https://www.hyperbola.info | Ops: coadde, Emulatorman, Gaming4JC,
labelette | See «Hyperbola and anti-discrimination» in the social
contract for IRC rules –
https://wiki.hyperbola.info/social_contract | unregistered users:
want voice? pm to any op
*** #hyperbola: topic set by
Emulatorman!~andre@gateway/tor-sasl/emulatorman, 2018-10-31
01:13:21
*** Users on #hyperbola: quiliro rachad Glider_IRC coadde @Emulatorman
throgh LightBearer Minall tech_exorcist +hyperbot SomeHacker dmc
raghavgururajan asdflkj_shell GoatAvenger ZANSIGO leomd_ bandali
kisaja[m] Voitena[m] iortega[m] hook54321 nckx biovoid Redfoxmoon
GNUtoo bcavileer urluck jschwart asdflkj elibrokeit lukeshu ggoes
mai__ lablt
[16:25]<quiliro> hello again
<quiliro> any other messages sent?
<quiliro> throgh: what happened?
[16:26]<throgh> Welcome back, quiliro.
[16:27]*** #hyperbola modes: +cnt
*** #hyperbola was created on 2017-04-15 11:53:16
<Minall> bye bye
<Minall> NOpe
<throgh> @quiliro: Nothing so far. :) We waited.
[16:28]<quiliro> thanks
<quiliro> got back my fonts!
<throgh> So I’ll just give preview on the code posted above.
<quiliro> could not even read the nicks
[16:29]<throgh> Now everything is better?
<rachad> why does that happen quiliro
<quiliro> because I opened a terminal
<quiliro> but we’ll talk about that later
<rachad> okay
[16:30]<quiliro> I get errors
<throgh> Errors?
<quiliro> on the numbers.c
<quiliro> compilation
<throgh> Okay, what kind of errors?
[16:31]<rachad> LightBearer: did you print the hello world
[16:32]<quiliro> numbers.c:8:7: error: expected expression before ‘{’ token
<quiliro>        {
[16:33]<throgh> Seems like there is a problem with the copy?!
[16:34]<LightBearer> throgh: eureka
<throgh> Working? :)
<LightBearer> I could do it, it was hard for me, but I could do it!
<throgh> Ha, happy with that. :) Super!
[16:35]<throgh> So let’s have a short look onto the second example. I know
this is a right higher jump, but let’s give it a try.
<throgh> First this line here: int count, num;
<throgh> We have here two variables defined: «count» and «num».
<LightBearer> rachad: I could print both excercises
[16:36]<throgh> A variable is defined with name, type and value.
<quiliro> the newbie makes her first program before the teacher and her
second program too!
<throgh> You see: Both now have a type and a name.
<LightBearer> exercises
<throgh> :-) So «int» is a keyword in C.
[16:37]<rachad> nice LightBearer
<LightBearer> am I the newbie? the padawan?
<quiliro> yes
[16:38]<throgh> Looking here for some defined datatypes in C:
https://en.wikipedia.org/wiki/C_data_types
<quiliro> throgh: could you please post a paste? I have some problem
which I cannot solve
<throgh> Okay.
<throgh> #include<stdio.h>
<throgh> #include<stdlib.h>
<throgh> int main()
<throgh> {
<throgh>       int count, num;
<throgh>       printf(«Ten Random Numbers:\t»);
<throgh>       for(count = 1; count <= 10; count++)
[16:39]<throgh>       {
<throgh>             num = rand() % 100;
<throgh>             printf(«%d\t», num);
<throgh>       }
<throgh>       printf(«\n»);
<throgh>       return 0;
<throgh> }
<quiliro> I have exactly that
<quiliro> but I get errors
[16:40]<rachad> print your error here
<quiliro> please paste on a file…
<quiliro> http link
<throgh> Have you onw platform with best results?
<throgh> *one
[16:41]<quiliro> numbers.c:8:7: error: expected expression before ‘{’ token
<quiliro> 0x0.st ?
<throgh> Ah okay. Wait!
<quiliro> https://0xx0.st
<quiliro> woops
<quiliro> https://0x0.st
[16:42]<quiliro> that is better
<throgh> http://0x0.st/-APA.c
[16:44]<rachad> throgh: do you use vim or emacs ?
[16:45]<throgh> @rachad: No, just «nano» for now. :) But sometimes emacs. I
want to tryout vim also, but had no entry until now.
[16:46]<rachad> im learning with vim to get used to it
[16:47]<throgh> Should do the same! :)
[16:48]<throgh> Just to inform: Both code-snippets are also in the forum now.
<throgh> https://forums.hyperbola.info/viewtopic.php?pid=2916#p2916
<quiliro> works beautifully now
<throgh> Okidoki! :)
[16:49]<throgh> Now a look onto the snippet.
<throgh> After the variables being declared – without any value – we
have another «printf»-command.
<quiliro> rachad: I have used the editor of the beast before…it was
pleasant…but nothing beats the holyness of Emacs
[16:50]<rachad> why you call it the editor of the beast quiliro :D
<throgh> But this time with «\t» meaning TAB-character.
[16:51]<throgh> That’s the output «Ten Random Numbers:[TAB]»! You can see
here: The program is doing the execution line by line coming
to one result.
[16:52]<throgh> And what next? Well, this construct is called «for»-loop.
<throgh> What’s that? Well: You remember the variables?
<quiliro> rachad: it is just a joke
<throgh> We use them here right now.
<quiliro> rachad: vi vi vi is a joke about it
<rachad> how to use TAB throgh ?
<quiliro> it is not serious
<quiliro> sorry if it offends
[16:53]<throgh> The variable «count» is getting the value «1» and is increased
until «10» in this loop.
<throgh> Everything within is done for every execution-step.
<rachad> alright quiliro :)
<throgh> @rachad: With «/t». :)
<throgh> «\t»
[16:54]<rachad> yeah were we use that
<throgh> So we have «count» being initialized. Within the «for»-loop
now we use the other variable «num».
<throgh> Doing the construct: num = rand() % 100;
[16:55]<throgh> And here comes your first external function called from
outside: rand()
<throgh> https://linuxhint.com/rand-function-in-c-language/
<rachad> nevermind i get it now throgh
[16:56]<throgh> But that’s not all: There is a «Modulo» within this execution.
<throgh> https://manderc.com/operators/modoperator/index.php
<throgh> So the «rand()»-function just gives one number, afterwards
doing a «modulo» with 100.
[16:57]<throgh> Everything is saved for this one loop into the variable «num».
<throgh> After «num» gets one new value for a loop-execution we have
another «printf».
<throgh> This time with output for the number itself. :)
[16:58]<throgh> So Minall had the question if «printf» can do more. The answer
is: Yes!
<quiliro> is the modulus a multiplier for the result of rand()?
<throgh> My bad, here is a definition in English. Wrong link above.
<throgh> https://www.cprogramming.com/tutorial/modulus.html
[17:00]<rachad> i will have to read that slowly tomorrow i have all day to
study now im verry sleepy
<rachad> will leave you here guys
<throgh> Okay, rachad. :) We just speak about the rest. But take here
on later!
[17:01]<rachad> thank you throgh and everyone else :)
<throgh> Have a good rest, rachad.
<rachad> see u all next time
<throgh> See you later. ;-)
[17:02]<throgh> To mention the «printf»-command: It is about showing the
concurrent value of «num» with «%d».
<throgh> Now you see also to use variables within the «printf»-command.
<throgh> For a tryout: Just change the command.
[17:04]<throgh> printf(«number – %d\t», num);
<quiliro> did not get a chance to say bye
<quiliro> but made a change https://termbin.com/t3vs
[17:05]<quiliro> that is what I was busy with
<throgh> Ah I see: Playing with the code. That’s fine! :)
[17:07]<throgh> After the «loop» is finished – by reaching «10» as maximum:
There is another «printf» with a simple linebreak.
<throgh> What we can see here is a bit more complex program: Calling
outside functions coming from defined libraries and
source-files (the std-lib). Also some further operations for
computing itself.
[17:10]<throgh> Everything understandable so far?
<quiliro> the changes I made were: added num1 to the int definition,
added the operation to calculate num1 and changed the
operation for calculating num
[17:11]<LightBearer> quiliro beautiful, I could run it and I saw your
experiment.
<LightBearer> you are not the beautiful, your experiment :=)
<throgh> You can also output the concurrent «loop»-point you are into!
<quiliro> oh…and I added the other number and the formating (with an
additional %d\t) to printf
[17:12]<quiliro> I could also make it beautiful, LightBearer ;-)
<throgh> Sometimes it is even necessary when you are lazy to debug
further. But «debugging» is just another point for discussion
and talk later on.
[17:13]<LightBearer> please remind me the letter d means? the t is for TAB
<quiliro> I don’t know what it means…but it is for the number to
appear
[17:14]<quiliro> so two d mean 2 numbers
<throgh> The «\t» means TAB indeed. The «%d» is a sequence for
inserting a variable, numeric variable.
<quiliro> and they have tabs after each of them
<LightBearer> yes but i didn’t find it in my keyboard..
[17:15]<throgh> You can use different sequences depending on the type of your
variable. Using «long» for example means using the sequence
«%ld»!
[17:16]<throgh> long mylongnum = 0.3l;
<LightBearer> throgh: thank you.
<throgh> printf(«%ld», mylongnum);
[17:18]<throgh> Everything is now in the forums. Will also post a preview for
the «presentation», a deeper course-material with official
logo and more. :)
[17:19]<throgh> Based on the table of contents, posted yesterday.
<throgh> So for now I’ll have to leave, folks. :)
<throgh> Please feel free to play with the sources.
[17:20]<throgh> See you later!
[17:21]<quiliro> thanks throgh
[17:22]<LightBearer> thanks a lot throgh, for your valuable help.
<LightBearer> good bye
<throgh> Thank you all! Giving back information. :)
[17:23]<throgh> Until later! ;)
[17:36]<quiliro> It has been a great learning experience for me…it is as if
I had known this in another life…
[17:37]<quiliro> Emulatorman: what do you think? will I be able to code in C
for hyperbk?
<Emulatorman> quiliro: yes, i don’t see it impossible while you are
learning C
[17:38]<Emulatorman> C is not so hard as expected, just follow the tutorials
and throgh guidance
<quiliro> Emulatorman: he is a patient guide
[17:39]<quiliro> perhaps learning emacs lisp helped me
[17:40]<Emulatorman> quiliro: i suggest learn C first, because it is the base
to learn all programming languages
[17:42]<hyperbot> heckyel: you have messages, type something to see them.
<heckyel>
<hyperbot> heckyel: quiliro told me to tell you, (34 days ago):
https://invidious.namazso.eu/watch?v=cUS_22_lDiM tiene
solamente vídeo, no audio con Livie.
<hyperbot> heckyel: quiliro told me to tell you, (34 days ago): Supongo
que se podría escojer solamente los formatos que no son
«video only» o «audio only»
<hyperbot> heckyel: quiliro told me to tell you, (34 days ago):
hypervideo -F me bota un mensaje…. ERROR: ‘tiene’ is not a
valid URL. Set –default-search «ytsearch» (or run
hypervideo «ytsearch:tiene» ) to search YouTube
<hyperbot> heckyel: salome told me to tell you, (24 days ago): te
espero pronto de regreso
[17:43]* heckyel is back
[18:24]<quiliro> oh, heckyel
<quiliro> bemvindo, heckyel
<quiliro> te extrañamo
[18:25]<quiliro> justamente cuando estamos aprendiendo
<heckyel> quiliro: :-)
<quiliro> ¿qué te pasó? ¿todo bien?
<heckyel> quiliro: mucho trabajo para poder susistir :s
[18:26]<quiliro> haciendo platita! bueno!
<heckyel> quiliro: :/
[18:27]<heckyel> quiliro: bueno hoy estoy de regreso :-)
* quiliro llama la orquesta para festejar
[18:28]<quiliro> y eempieza la fiesta de bienvenida
[18:29]<quiliro> entra el primero…un grupo de samba cantando y bailando al
ritmo de heckyel
<quiliro> luego entra un mariachi….tu tu turutututututu
[18:30]<quiliro> seguido por un grupo de chicha
*** Topic for #hyperbola: The official IRC channel of Hyperbola Project
– https://www.hyperbola.info | Ops: coadde, Emulatorman, Gaming4JC,
labelette | See «Hyperbola and anti-discrimination» in the social
contract for IRC rules –
https://wiki.hyperbola.info/social_contract | unregistered users:
want voice? pm to any op
*** #hyperbola: topic set by
Emulatorman!~andre@gateway/tor-sasl/emulatorman, 2018-10-31
01:13:21
[18:31]*** You need to be a channel operator of #hyperbola to do that
[18:32]<quiliro> Emulatorman: /topic HyperbolaBSD developer meeting here every
day at 14h00 UTC-5
<quiliro> If you consider it useful
<heckyel> quiliro: :-)
<heckyel> quiliro: veo que han estado haciendo reuniones
[18:33]<quiliro> sí, heckyel https://www.asle.ec/entrevistas-hyperbolabsd/
<heckyel> quiliro: sí, he leído algo de ese enlace :)
<quiliro> y están en el foro posts por throgh
[18:37]<quiliro> heckyel: ¿cómo te encuentras de salud? ¿y la familia?
<heckyel> quiliro: diría que al límite
[18:38]<quiliro> oh…requieres descanso entonces
<heckyel> quiliro: familiares de mi sobrino están con el virus
SARS-CoV-2
<quiliro> mi sobrina tuvo eso
<heckyel> quiliro: en cuanto a mi familia por ahora estamos bien
<quiliro> y mi sobrino también
<quiliro> pero no los veo
[18:39]<heckyel> quiliro: mismo acá, estamos lejos de los familiares de mi
sobrino
<quiliro> este domingo nos reunimos los hermanos, los siete
[18:40]<quiliro> primera vez en 6 años
<quiliro> por mi cumpleaños, jaja
<heckyel> :-D
[18:41]<quiliro> es que mis hermanas viajan mucho
<quiliro> y yo no soy muy gregario
<quiliro> ayer cumplí 52
<quiliro> estoy con sejuela
[18:42]<quiliro> heckyel: has tenido sejuela?
[18:44]<heckyel> quiliro: tal vez… pero nunca hago caso a lo que dicen
acerca de mi
<quiliro> oh…se jue la juventud!
<quiliro> jaja
[18:45]<quiliro> heckyel: ^
<heckyel> quiliro: sí se a lo que os referís con sejuela :P
[18:46]<heckyel> *sí sé
<quiliro> Emulatorman: se requiere el log de hoy?
<Emulatorman> si quiliro
<quiliro> ok
<Emulatorman> creo que es necesario por el tema de transparencia para
aquellos que no pudieron
[18:47]*** Topic for #hyperbola: The official IRC channel of Hyperbola Project
– https://www.hyperbola.info | Ops: coadde, Emulatorman, Gaming4JC,
labelette | See «Hyperbola and anti-discrimination» in the social
contract for IRC rules –
https://wiki.hyperbola.info/social_contract | unregistered users:
want voice? pm to any op
*** #hyperbola: topic set by
Emulatorman!~andre@gateway/tor-sasl/emulatorman, 2018-10-31
01:13:21
<quiliro> Emulatorman: crees conveniente poner el horario de nuestras
reuniones en el topic?
[18:48]<quiliro> así nadie se retrasa
<Emulatorman> si, claro
[18:49]<Emulatorman> si se puede, obviamente
<Emulatorman> bueno, quiliro regreso en 1 hora
[18:51]<quiliro> por favor entonces, Emulatorman
<quiliro> no tengo privilegios
[18:56]<heckyel> quiliro: ¿cuál es el topic?
[19:21]<quiliro> el que te mandé antes, Emulatorman
<quiliro> Emulatorman: crees conveniente poner el horario de nuestras
reuniones en el topic?
<Emulatorman> si quiliro
[19:22]<Emulatorman> para que el resto sepa poder participar
<Emulatorman> y entrar en el horario estipulado
<Emulatorman> mucha gente no sabe
<Emulatorman> y quiere participar
<quiliro> Emulatorman: /topic HyperbolaBSD developer meeting here every
day at 14h00 UTC-5
[19:23]<quiliro> no es así
<Emulatorman> except weekends (at least me)
<Emulatorman> monday-friday
<quiliro> eso
<Emulatorman> regreso en 1 hora como mencioné
<quiliro> Emulatorman: /topic HyperbolaBSD developer meeting here
monday through friday at 14h00 UTC-5
[19:24]<quiliro> Emulatorman: antes de salir por favor cambia el topic
<Emulatorman> ok
<quiliro> gracias
[19:26]*** Emulatorman (~andre@gateway/tor-sasl/emulatorman) has set the topic
for #hyperbola: «The official IRC channel of Hyperbola Project –
https://www.hyperbola.info | HyperbolaBSD Developer Meeting here
Monday-Friday at 14h00 UTC-5 | Unregistered users: want voice? pm
to any op»»