=== Music_Shuffle [n=kumar@c-67-191-161-231.hsd1.ga.comcast.net] has joined #ubuntu-classroom === Music_Shuffle [n=kumar@c-67-191-161-231.hsd1.ga.comcast.net] has left #ubuntu-classroom ["Leaving"] === LjL [n=ljl@81-208-36-87.ip.fastwebnet.it] has joined #ubuntu-classroom === stalefries [n=stalefri@pool-71-121-157-20.sttlwa.dsl-w.verizon.net] has joined #ubuntu-classroom === tom56 [n=tom@82-46-1-156.stb.ubr01.azte.blueyonder.co.uk] has joined #ubuntu-classroom === tom56 [n=tom@82-46-1-156.stb.ubr01.azte.blueyonder.co.uk] has left #ubuntu-classroom ["Leaving"] === tom18 [n=tom@82-46-1-156.stb.ubr01.azte.blueyonder.co.uk] has joined #ubuntu-classroom === tom18 [n=tom@82-46-1-156.stb.ubr01.azte.blueyonder.co.uk] has left #ubuntu-classroom ["Leaving"] === selinuxium [n=selinium@82-34-184-232.cable.ubr02.sout.blueyonder.co.uk] has joined #ubuntu-classroom === neversfelde [n=neversfe@p549423D1.dip0.t-ipconnect.de] has joined #ubuntu-classroom === rrittenhouse [n=tad@cpe-76-188-35-66.neo.res.rr.com] has joined #ubuntu-classroom === stalefries [n=stalefri@pool-71-121-157-20.sttlwa.dsl-w.verizon.net] has left #ubuntu-classroom ["I've] === thebigearl [n=koptein@dslc-082-082-068-171.pools.arcor-ip.net] has joined #ubuntu-classroom === Limulf [n=Limulf@62.42.31.56] has joined #ubuntu-classroom === mbamford [n=Matt@d207-81-186-112.bchsia.telus.net] has joined #ubuntu-classroom === schiele [n=robert@p54ABEF57.dip.t-dialin.net] has joined #ubuntu-classroom === ash211 [n=andrew@user-1121kf1.dsl.mindspring.com] has joined #ubuntu-classroom === anuragJ [n=anurag@59.92.58.59] has joined #ubuntu-classroom === anurag_ [n=anurag@59.92.40.204] has joined #ubuntu-classroom === Limulf [n=Limulf@62.42.31.56] has joined #ubuntu-classroom === Chris7mas [n=floydian@89.39.4.39] has joined #ubuntu-classroom === enzo_ [n=enzo@75.80.30.108] has joined #ubuntu-classroom === fernando [n=fernando@unaffiliated/musb] has joined #ubuntu-classroom === fernando__ [n=fernando@189.0.143.109] has joined #ubuntu-classroom === Cas_ [n=cas@218.18.183.161] has joined #ubuntu-classroom === GK [n=salilgk@125.22.8.27] has joined #ubuntu-classroom === chrisjw [n=chris@unaffiliated/chrisjw] has joined #ubuntu-classroom [04:31] ok [04:31] chrisjw: type this command: which python === keeganX [n=keegan@CPE-76-178-92-102.natsow.res.rr.com] has joined #ubuntu-classroom [04:31] /usr/local/bin/python [04:32] chrisjw: do you still have the directory where you compiled it? [04:32] yes [04:32] go into the same directory that you typed 'make install'. Now, type 'make uninstall' [04:33] make: *** No rule to make target `uninstall'. Stop. [04:33] chrisjw: ls /usr/local/bin/ [04:33] glib-genmarshal glib-mkenums idle python python2.5 smtpd.py [04:33] glib-gettextize gobject-query pydoc python2.4 python2.5-config [04:34] ok, well you'll have to delete it manually then [04:34] hmm [04:35] I don't have the slightest idea how to do that or which one to remove, but once I have removed it, how would that fix the situation :/ [04:35] chrisjw: you would use the python version you have from the repository [04:35] you didn't uninstall those did you? [04:35] no [04:35] I just did make install with the new python [04:36] Can't I just install the python from the repository? [04:36] it is installed [04:36] Surely it would overwrite [04:36] no [04:36] you installed to /usr/local [04:36] ok [04:36] and that's preferred to /usr, where packages get installed to [04:36] there is another way, [04:36] you can install your python again using "checkinstall", then remove the package [04:37] hmm the python in /usr/bin [04:37] is 2.4.3 [04:37] how do you tell? [04:37] I ran the file and it said 2.4.3 [04:38] what version of ubuntu? [04:38] 6.06 [04:38] ah [04:40] chrisjw: dpkg -S $(which python) [04:40] actually, first lets get rid of your installation [04:40] chrisw69@FQ400:/$ dpkg -S $(which python) [04:40] dpkg: /usr/local/bin/python not found. [04:40] ty [04:41] right... I should have said dpkg -S /usr/bin/python [04:41] python-minimal: /usr/bin/python [04:41] returns [04:42] aptitude changelog python-minimal [04:42] see what the last comment was [04:42] and when [04:43] hmm ugh [04:43] it's listed past when I can see [04:43] python-defaults (2.4.2-0ubuntu3) dapper; urgency=low [04:43] that's at the very top [04:44] aptitude changelog python2.4-minimal [04:45] python2.4 (2.4.3-0ubuntu6) dapper-security; urgency=low [04:45] that's all i can see at the top === Limulf [n=Limulf@62.42.31.56] has joined #ubuntu-classroom [04:47] chrisjw: ok, have you used checkinstall before? [04:47] no :/ [04:47] ok, go ahead and install it [04:47] how do i do that :/ [04:47] apt-get checkinstall ? [04:47] sudo apt-get install checkinstall [04:48] ok done [04:48] !info checkinstall [04:48] checkinstall: installation tracker. In component universe, is optional. Version 1.6.0-2ubuntu1 (edgy), package size 88 kB, installed size 392 kB [04:48] useless description... [04:48] ok, checkinstall basically creates a deb package instead of doing 'make install' [04:49] ok [04:49] you use it by doing 'sudo checkinstall' instead of 'sudo make install' [04:49] so go ahead and install that python again using checkinstall [04:49] ok, but what's the difference [04:49] after it installs, your package system will be aware of it [04:49] ok [04:49] and you can do sudo apt-get remove python-my-special-package or whatever [04:50] ok, so i have checkinstall [04:50] chrisjw: name it something like that so it doesn't replace any python package you are supposed to have [04:50] ok but where am I getting this new package from? [04:50] checkinstall creates it [04:50] I mean [04:50] the python source [04:51] where is that coming from [04:51] yes, same place you typed 'make install' before [04:51] oh ok [04:52] so I just type sudo checkinstall [04:52] yes [04:53] ok, it's doing something fun, thanks for helping me btw [04:53] remember, change the package name [04:53] it hasn't made any package yet [04:53] k [04:54] it will ask you some questions soon [04:54] it's saying Installing debian package [04:54] writing backup now [04:54] Done. The new package has been installed and saved to [04:54] /home/chrisw69/Python-2.4.4/python_2.4.4-1_i386.deb [04:56] ok [04:56] now remove it [04:57] sudo apt-get remove [04:57] dsfsdfhkog wait [04:57] E: Couldn't find package python-package.deb [04:57] acs -n python 2.4.4 [04:58] erm: apt-cache search -n python 2.4.4 [04:58] python2.4-4suite - An open-source platform for XML and RDF processing for Python 2.4 [04:58] that's it? [04:58] yes [04:59] :/ [04:59] dpks -S $(which python) === Limulf [n=Limulf@62.42.31.56] has joined #ubuntu-classroom [04:59] python: /usr/local/bin/python [04:59] this is why I want you to change the name :) [04:59] heh that's not good [05:00] :( [05:00] sudo apt-get -s install python what does this say [05:01] python is already the newest version. [05:01] 0 upgraded, 0 newly installed, 0 to remove and 110 not upgraded. [05:01] apt-cache policy python [05:01] python: [05:01] Installed: 2.4.4-1 [05:01] Candidate: 2.4.4-1 [05:01] Version table: [05:01] *** 2.4.4-1 0 [05:01] 100 /var/lib/dpkg/status [05:01] 2.4.2-0ubuntu3 0 [05:01] 500 http://gb.archive.ubuntu.com dapper/main Packages [05:01] actually, does /usr/bin/python still exist? [05:02] yes [05:02] well that's good [05:02] sudo apt-get install python=2.4.2-0ubuntu3 [05:02] lets see if that removes the old one or not [05:03] it says do i want to downgrade i said yes [05:03] Setting up python (2.4.2-0ubuntu3) ... [05:03] then back to prompt [05:03] k, check if /usr/local/bin/python exists [05:03] or bash or whatever it is [05:03] no [05:03] its gone [05:03] check if your gedit works [05:04] yes it works [05:04] <3 [05:04] LOL [05:04] use checkinstall in the future instead of make install [05:04] so, upgrading to 2.4.4 [05:04] one option, use edgy [05:05] ok [05:05] I have 2.5 installed as an alternate installation [05:05] try this command please: [05:05] python -c "import sys; print sys.maxunicode" [05:05] 1114111 [05:06] hmm [05:06] shouldn't that be 65535 [05:06] no [05:06] well if you want it to be... [05:06] i'm reading http://www.python.org/news/security/PSF-2006-001/ [05:07] you have a couple of options the way I see it [05:08] 1) upgrade to edgy [05:08] 2) patch python yourself [05:08] 3) maybe python is already patched by ubuntu, find out [05:08] well from what it says, UCS4.0 is not vulnerable [05:08] sys.maxunicode is 1114111 [05:08] i just thought there could have been an upgrade [05:09] "The flaw only manifests itself in Python builds configured to support UCS-4 Unicode strings " [05:11] ioh lol [05:11] ! [05:11] oh right [05:11] so I am vulnerable [05:12] see 3) above [05:13] chrisjw: do you have the security repositories enabled? [05:13] im not sure, im new to this :/ [05:13] !pastebin [05:13] pastebin is a service to post large texts so you don't flood the channel. The Ubuntu pastebin is at http://paste.ubuntu-nl.org (be sure to give the URL of your paste - see also the #ubuntu channel topic) [05:13] pastebin the contents of your /etc/apt/sources.list file [05:14] there does seem to be a more recent version of python2.4-minimal than what you have [05:14] http://changelogs.ubuntu.com/changelogs/pool/main/p/python2.4/python2.4_2.4.3-0ubuntu6/changelog and look at the changelog :) [05:15] Fix buffer overrun in repr() for unicode strings. Ubuntu #56633. CVE-2006-4980. [05:15] I'm guessing that's the same [05:15] yes [05:16] http://paste.ubuntu-nl.org/36766/ [05:17] I'm used to windows :/ [05:17] you have security, type 'sudo apt-get update' [05:17] what is the difference between usr/local/bin and usr/bin [05:17] that will refresh the package list [05:17] chrisjw: /usr/local is reserved for stuff that you want to compile and install yourself [05:18] the package system uses /usr [05:18] is that on all distributions of linux? [05:18] do you know about the $PATH [05:18] no [05:18] chrisjw: yes, usually. Google for "fhs" [05:19] chrisjw: ok, about the $PATH, type 'echo $PATH' in your shell [05:20] yes i did that [05:21] ok, when you type a command in your shell, it searches the $PATH in that order [05:21] so if you have two python files: one in /usr/local/bin and one in/usr/bin, it finds the one in /usr/local/bin and uses that [05:22] that is if you jsut type 'python', you can always tell it exactly what you want with the full path, so say, /usr/bin/python as a command [05:22] that's what was happening before [05:23] i see [05:23] so if I put a file in usr/bin called blah [05:23] i type blah into bash [05:23] does it execute blah then, if it has the permissions and executable etc [05:23] yes and it will run /usr/bin/blah [05:24] there's an exception, your shell also has built-in commands. For example 'cd' [05:24] you can try 'type cd' and it will tell you what it is [05:25] or 'which cd' [05:25] or 'type type' :) [05:26] cool [05:26] I think I like linux, I've written a few python scripts before and done some work in c++ [05:26] I'm not very good though, how old are you? [05:26] 22 [05:27] linux is good for that type of person. If you like to learn and aren't scared to read how to do things it's really great [05:28] I've used a linux shell before when helping someone with their irc setup [05:29] but I'll certainly use checkinstall in the future [05:29] It seems useful [05:29] you shouldn't need to use it too often, most stuff is available in the repositories [05:32] I'd like to understand the CLI a little so I can work with unix and BSD flavours [05:32] have you read the rute book? [05:32] !rute [05:32] documentation is to be found at http://help.ubuntu.com and http://wiki.ubuntu.com - General linux documentation: http://www.tldp.org - http://rute.2038bug.com [05:32] it's a pretty good overview [05:33] and try a few different shells out to see which on you like === jrib suggests zsh [05:34] no i haven't but i'll add it to my favourites [05:36] !cli [05:36] The linux terminal or command-line interface is very powerful. Open a terminal via Applications -> Accessories -> Terminal (Gnome) or K-menu -> System -> Konsole (KDE). Manuals: https://help.ubuntu.com/community/BasicCommands [05:36] linuxcommand.org is good for beginners and introduces a lot of stuff (it's linked in help.ubuntu.com I believe) [05:38] and of course man pages and the contents of /usr/share/doc === jrib wonders why it is so cold [05:41] hey, I have to go it's 04:41 [05:41] DO you always hang here? [05:43] chrisjw: yeah, usually [05:43] ok, i'll see you another time [05:43] bye [05:43] thanks for your help [05:43] I really appreciate t === Limulf [n=Limulf@62.42.31.56] has left #ubuntu-classroom ["Abandonando"] [05:45] np, cya === chrisjw [n=chris@unaffiliated/chrisjw] has joined #ubuntu-classroom === elvstone [n=elvis@h251n2fls33o879.telia.com] has joined #ubuntu-classroom === Turgon [n=Limulf@unaffiliated/turgon] has joined #ubuntu-classroom === tonyyarusso [n=anthony@d235-240-148.home1.cgocable.net] has joined #ubuntu-classroom === jikanter [n=jordan@24.12.220.77] has joined #ubuntu-classroom === DerXero [n=patrick@dslb-082-083-158-201.pools.arcor-ip.net] has joined #ubuntu-classroom === tonyyarusso [n=anthony@d235-240-148.home1.cgocable.net] has joined #ubuntu-classroom === schiele [n=robert@p54ABDEB4.dip.t-dialin.net] has joined #ubuntu-classroom === hedix [i=usr2846@c1.edrana.lt] has joined #ubuntu-classroom === VerdROusseausit [n=k2pow@c-24-4-140-84.hsd1.ca.comcast.net] has joined #ubuntu-classroom === jikanter [n=jordan@c-24-12-220-77.hsd1.il.comcast.net] has joined #ubuntu-classroom === VerdROusseausit [n=k2pow@c-24-4-140-84.hsd1.ca.comcast.net] has left #ubuntu-classroom [] === tonyy [n=anthony@d235-240-148.home1.cgocable.net] has joined #ubuntu-classroom === selinuxium [n=selinium@82-34-184-232.cable.ubr02.sout.blueyonder.co.uk] has joined #ubuntu-classroom === rhkfin [n=rhk@a88-114-123-46.elisa-laajakaista.fi] has joined #ubuntu-classroom === croppa [n=stuart@135.27.233.220.exetel.com.au] has joined #ubuntu-classroom === termitor [n=proutage@sab57-1-82-231-109-37.fbx.proxad.net] has joined #ubuntu-classroom === croppa [n=stuart@135.27.233.220.exetel.com.au] has joined #ubuntu-classroom === emonkey-p [n=emonkey@adsl-84-227-190-216.adslplus.ch] has joined #ubuntu-classroom === termitor [n=proutage@sab57-1-82-231-109-37.fbx.proxad.net] has left #ubuntu-classroom ["Leaving"] === LoudMouthMan [n=nik@82-68-164-22.dsl.in-addr.zen.co.uk] has joined #ubuntu-classroom === tonyyarusso [n=anthony@ubuntu/member/tonyyarusso] has joined #ubuntu-classroom === emonkey--p [n=emonkey@adsl-84-226-125-237.adslplus.ch] has joined #ubuntu-classroom === tonyyarusso [n=anthony@ubuntu/member/tonyyarusso] has joined #ubuntu-classroom === tonyyserver [n=anthony@ubuntu/member/tonyyarusso] has joined #ubuntu-classroom === nothlit [n=nothlit@n218103200223.netvigator.com] has joined #ubuntu-classroom === EDVINAS_ [i=usr2890@c1.edrana.lt] has joined #ubuntu-classroom === jos [n=jos@muffin.jeriko.se] has joined #ubuntu-classroom === EDVINAS_ [i=usr2912@c1.edrana.lt] has joined #ubuntu-classroom === hedix [i=usr2929@c1.edrana.lt] has joined #ubuntu-classroom === thebigearl [n=koptein@dslb-088-070-013-143.pools.arcor-ip.net] has joined #ubuntu-classroom === gnomefreak [n=gnomefre@ubuntu/member/gnomefreak] has joined #ubuntu-classroom === emonkey--p [n=emonkey@adsl-84-227-214-110.adslplus.ch] has joined #ubuntu-classroom === Seveas [n=seveas@ubuntu/member/seveas] has joined #ubuntu-classroom === gnomefreak [n=gnomefre@ubuntu/member/gnomefreak] has joined #ubuntu-classroom === DerXero [n=patrick@dslb-082-083-158-201.pools.arcor-ip.net] has joined #ubuntu-classroom === emonkey-p [n=emonkey@adsl-89-217-159-107.adslplus.ch] has joined #ubuntu-classroom [01:47] jrib: since this seems your favorite place, shall we continue? [01:48] Oo, is jrib teaching a class for us? [01:48] trying to get him in here [01:48] for some 1 on 1 [01:48] oh, nvm [01:48] tonyyarusso: you can run along now, we've not seen your new cloak enough yet :P === jrib is here [01:49] nalioth: haha [01:49] I just installed beryl 2 days ago so I don't know much either === tonyyarusso actually had a question though [01:49] jrib: i couldn't tell you the difference 'tween them [01:49] DBO: Are you still on for a class this weekend? [01:49] i just followed the XGL from the wiki [01:49] DBO is not. [01:50] nalioth: is this edgy? [01:51] yessir [01:51] edgy x86 [01:51] one of my test boxen [01:51] beryl hasnt been built for feisty yet for feisty repos atleast. i havent seen a 3rd party repo for feisty beryl yet either. [01:51] ok, well I used aiglx, but I assume after getting xgl or aiglx, getting beryl is the same [01:52] nalioth: deb http://ubuntu.beryl-project.org/ edgy main is my line in /etc/apt/sources.list for beryl [01:52] c'mon, i'm a simple guy [01:53] any simple URLs to tell me how to play with it? [01:53] www.beryl-project.org has a wiki [01:53] nalioth: the key bindings are just about the same as compiz [01:53] gnomefreak: jrib: i JUST installed/enabled compiz/XGL from a wiki entry [01:53] atleast for the normal used things [01:54] i have NO idea how it works [01:54] i have NO idea how to pimp it [01:54] i have NO idea the difference 'tween beryl and compiz [01:55] in beryl I had to run 'beryl-manager', see anything similar for compiz? [01:55] there's gotta be a wiki page on how to use it [01:55] https://help.ubuntu.com/community/CompositeManager/ConfiguringCompiz [01:55] you guys are aiming way over my head [01:55] nalioth: at the bottom of this link are the things that can be done (not all of them i think) https://help.ubuntu.com/community/CompositeManager/ConfiguringCompiz [01:56] and it looks like compiz configuration is done through gconf. beryl gives you a preferences application to play with [01:56] it has things like how to rotate cube and use rain affects and so on [01:56] jrib: i think gconf was not used anylonger now csm or whatever it is is used now i thought [01:57] gnome-window-decorator & compiz --replace gconf & [01:57] gnomefreak: is newer version <= version in repository? [01:57] in quinns repo no more gconf i think. not sure about ubuntu repos [01:57] === nalioth tries to keep a current system so as to help folks . . . . . === nalioth needs to buy a new mouse [01:59] er, trackball [01:59] thanks fellows [02:00] do your windows wobble yet? [02:00] i'm surprised there isn't a "pimpmyubuntu.org" page [02:00] all that rubbish confuses me [02:00] perhaps i'll install beryl === hybrid_ [n=x@72.169.30.254] has joined #ubuntu-classroom [02:01] go for it [02:01] beryls nicer in IMO but as said the keybindings are the same. :( [02:01] still not sure the differences in aiglx compiz beryl etc [02:01] nalioth: afaik it just reduces the need for xgl [02:02] now that aiglx is built in to xorg [02:02] its a little faster also === nalioth is even more confused now [02:02] lol [02:02] aiglx is an alternative to xgl, beryl is an alternative to compiz [02:03] differences in beryl and compiz are? [02:03] beryl is a fork of compiz === Chris7mas [n=floydian@89.39.4.39] has joined #ubuntu-classroom [02:03] the way the themes work the menus for beryl its faster [02:04] there are more just cant think of them atm [02:04] i dont think compiz usses emarald for its themes [02:05] jrib: wiki page on how to get beryl running? [02:06] https://help.ubuntu.com/community/BerylOnEdgy#head-b9843696e5a3946c5a010759c00b3a6d40e0b0e6 [02:06] you dont need the #....... i guess that just leaves you off at tweeks [02:06] [02:06] https://help.ubuntu.com/community/BerylOnEdgy [02:07] where does one get the key for the beryl pkgs? === nalioth hates a lack of info [02:07] on the wiki [02:07] wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add - [02:07] wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add - [02:10] you need to install beryl and emerald-themes for some reason -themes isnt packaged in beryl-meta === johndarkhorse [n=johndark@cpe-70-122-94-131.houston.res.rr.com] has joined #ubuntu-classroom [02:11] unless that has been fixed [02:11] wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add - [02:12] gnomefreak: emerald recommends emerald themes it seems === Maikel [i=ma1kel@cp305656-b.tilbu1.nb.home.nl] has joined #ubuntu-classroom [02:14] crap, now that system has gone down [02:14] IMO it shoudl depend on eachother so you have some extra themes without having to go to art.gnome.org or wherever [02:14] === nalioth is gonna go back to bed === Maikel is now known as ma1kel [02:17] thanks guys for your time [02:18] i hate wikis that make you play guessing games [02:18] i'm going back to bed [02:18] i'll mess with it later [02:18] night === fernando [n=fernando@unaffiliated/musb] has joined #ubuntu-classroom === johndarkhorse [n=johndark@cpe-70-122-94-131.houston.res.rr.com] has joined #ubuntu-classroom [02:21] good night nalioth === macconline [n=macconli@190.37.46.212] has joined #ubuntu-classroom === fernando [n=fernando@unaffiliated/musb] has joined #ubuntu-classroom === hedix [i=usr2969@c1.edrana.lt] has joined #ubuntu-classroom === LjL [n=ljl@81-208-36-87.ip.fastwebnet.it] has joined #ubuntu-classroom === BuffaloSoldier [n=integral@60.50.122.182] has joined #ubuntu-classroom === leandro [n=leandro@adsl-ull-244-188.41-151.net24.it] has joined #ubuntu-classroom === Maikel [i=ma1kel@cp305656-b.tilbu1.nb.home.nl] has joined #ubuntu-classroom === leandro_ [n=leandro@adsl-138-78.38-151.net24.it] has joined #ubuntu-classroom === apuar [n=apuar@219.94.57.103] has joined #ubuntu-classroom === leandro__ [n=leandro@adsl-193-69.37-151.net24.it] has joined #ubuntu-classroom === Maikel [i=ma1kel@cp305656-b.tilbu1.nb.home.nl] has left #ubuntu-classroom [] === tonyyarusso [n=anthony@ubuntu/member/tonyyarusso] has joined #ubuntu-classroom === chrisjw [n=chris@unaffiliated/chrisjw] has joined #ubuntu-classroom === anushsh [n=anushshe@220.226.33.71] has joined #ubuntu-classroom === hybrid [n=x@72.169.30.254] has joined #ubuntu-classroom === N7C [n=slack@81.18.53.177] has joined #ubuntu-classroom === N7C [n=slack@81.18.53.177] has left #ubuntu-classroom ["..::] === pradeep [n=pradeep@59.92.58.22] has joined #ubuntu-classroom === silwol [n=silwol@193.170.135.113] has joined #ubuntu-classroom === poningru [n=poningru@ip72-209-68-178.ga.at.cox.net] has joined #ubuntu-classroom === Chris7mas [n=floydian@89.39.4.39] has joined #ubuntu-classroom === Chris7mas [n=floydian@89.39.4.39] has joined #ubuntu-classroom === yoshig3 [n=yoshig3@75-132-199-96.dhcp.stls.mo.charter.com] has joined #ubuntu-classroom === rikai [n=rikai@unaffiliated/rikai] has joined #ubuntu-classroom [06:36] yeah, that's why I said it was a windows based statement lol [06:37] yoshig3: the CPU executes instructions. there are various kind of instructions: we can focus on those that access memory, those that perform arithmetical or logical operations, and those that control the program flow (jump here, just there if something is zero, etc) [06:37] Program flow would be comparable to if statements, right? [06:38] yoshig3: hardware (meaning the graphics card, the hard drives, etc) are accessed through "fake" memory, i.e. memory locations that don't actually map to real RAM, but to registers in the cards [06:38] yoshig3: yes [06:38] (I am familiar with programming somewhat_ [06:38] yoshig3: well, then let's talk about this for a minute [06:38] yoshig3: when you do something like if(a=0) print("Hello!"), what happens? [06:39] yoshig3: you compile the program. this means a translator (the compiler) creates a bunch of CPU instructions (machine code) that correspond to your program [06:39] LjL: yes. [06:40] The C++ is translated, C++ was made because it's much easier for a human to read than machine code, right? [06:40] Isn't machine code just 1's and 0's? Or is that just memory and binary? [06:40] yoshig3: a program like that one would be translated similarly to the following: MOVE a, ACC ; BRANCH_NONZERO endif ; MOVE "h", console_buffer ; MOVE "e", console_buffer ; etc etc ; ::endif ....rest of the program [06:41] yoshig3: this assembly language (an assembly language is machine code put in "human readable" form) is completely fictional, but should give you the idea [06:42] See, you know assembly lol....I have no clue about assembly. Keep in mind I started off in VB6, and am gradually moving to C++. [06:42] I made a nifty Windows serial generator, but it's for the OLD programs, the one that use the simple algorithm [06:42] I figured out the algorithm by looking at the serials that a generator created [06:42] Wany me to tell you? [06:43] yoshig3: basically, it says: "move the contents of some memory location (maybe it's 23423, maybe it's 7934, but we'll call it "a" for readability) into the 'accumulator' register (an internal register many CPUs have); then if the contents of the accumulator is non-zero, don't just go on with the next instruction, but jump to the memory location that we'll call 'endif', and start executing the code that is there; but, if the contents of [06:43] the accumulator *is* indeed zero, proceed with the next instruction; the next instruction is, move the letter "h" to some memory location that actually represents the graphics card text-mode memory, then do the same for "ello!" [06:44] yoshig3: machine code is 1 and 0, but you can represent those in many ways (hexadecimal, or some other base... or assembly) [06:45] So that's how a if works....never knew that [06:45] I figured , but didn't know exactly about the memory addresses and whatnot [06:45] yoshig3: and machine code, once loaded from the disk, resides in memory, just like data (this is called the Von Neumann architecture -- other architectures keep programs and data separate, but most computers we normally use don't) [06:46] yoshig3: ok now back to the original topic... programs actually *do* execute that way. well, almost. what they do *not* do, in that case, is access the graphics card directly [06:46] So it runs quicker? [06:46] yoshig3: quicker than what? [06:46] Than if you were to keep the programs and machine code seperate? [06:47] yoshig3: no [06:47] LjL: Yeah, isn't that was OpenGL and DX is for? [06:47] yoshig3: the program IS the machine code [06:47] no [06:47] yoshig3, when you've compiled your program, what you're left with is just machine code [06:47] your "if"s and "print"s aren't left anywhere [06:47] yeah I Know, so the computer can read it [06:48] yoshig3: ok, then i don't understand what you mean by "keeping the programs and machine code separate" [06:49] LjL: I was just saying according to what you said. "other architectures keep programs and data separate" [06:49] yoshig3: programs and *data*, not programs and *machine code* -- the programs *are* the machine code [06:49] yoshig3: mind you, "data" is also made up of ones and zeroes... just like everything else is [06:50] yoshig3: but programs actually contain ones and zeroes that make sense to the CPU -- data contain ones and zeroes that may make sense to some programs [06:50] yoshig3: like ASCII or UTF-8 characters, which are just bytes (ones and zeroes), but make sense to the font rendering libraries (and company), so you can see actual letters on the screen [06:51] yeah I know that part lol [06:51] yoshig3: anyway, what i was saying is: that fictional "Hello" program can't really print "Hello" directly by writing stuff to the graphics card, because it's not *allowed* to, on most modern operating system [06:52] Then how does it do it? [06:52] yoshig3: (and even on some older systems, where it would be allowed to, it still isn't a good idea - but this for later) [06:52] yoshig3: well, the CPU can run in (at least) two different modes, let's call them "userland" and "kernelland" [06:53] yoshig3: when in "kernelland", *any* instruction that accesses *any* memory or whatever is allowed to execute [06:54] yoshig3: when in userland, "forbidden" instructions and forbidden areas of memory (such as the memory space used by the graphics card) can't be accessed -- if a program accesses them, the CPU doesn't execute them, and instead 1) stops executing that program 2) jumps to some specific piece of code (which is operating system, kernel code) to deal with the issue 3) starts running in "kernelland" [06:54] yoshig3: if this actually happens (i.e. a program tries to access something it shouldn't), in Linux you get a 'segmentation fault', or 'illegal instruction' error [06:54] yoshig3: but if the program actually wants to access something it "shouldn't", it can call the kernel [06:55] I see [06:55] yoshig3: it executes a special instruction (variously called a "trap", a "software interrupt", or a "syscall", or an "exception") [06:55] yoshig3: that instruction still causes the CPU to panic, as above, and call the kernel. it yells to the kernel "hey, this program is doing this ugly forbidden thing!" =) [06:55] yoshig3: but the kernel knows it's actually just a kernel request - a syscall [06:56] yoshig3: it looks at some registers (that the program has set), and sees that the syscall is, for instance, a request to write some pixels on the screen [06:56] yoshig3: it then asks a special part of the kernel (the "reference monitor") whether the program has the necessary privileges to actually do what it asked [06:56] yoshig3: if it does, then the kernel does it for it [06:56] yoshig3: otherwise, the request is denied [06:57] yoshig3: that's one thing that the kernel does [06:57] Well no wonder computers are slow [06:57] yoshig3: another thing is schedule processes [06:57] They go through so many operations to do one simple thing [06:57] yoshig3: how can you run many programs simultaneously on your computer? [06:57] But, I guess they are necessary === emonkey-p [n=emonkey@static-pro-212-101-27-121.adsl.solnet.ch] has joined #ubuntu-classroom [06:58] yoshig3: the hardware provides some timers. timers that cause an "interrupt" (i.e. a wire on the CPU gets some voltage into it), and the CPU jumps to a specific memory location [06:58] LjL: In Windows, I usually ran Steam(minimized), Trillian with IRC and AIM connected, usually a Firefox with 1-10 tabs, Windows Explorer, Winamp...hm...and pretty much anything else that comes up that I need to use [06:58] trillian? :O:O:O [06:59] yoshig3: this way, the kernel can 1) set up such a timer 2) start running a program 3) when the timer triggers, control goes back to the kernel 4) the kernel can then decide that the first program should be interrupted, and another program run instead, for some time [06:59] *shame* *shame* *shame* [06:59] yoshig3: obviously, these timers are set to trigger very fast, so you normally don't notice that the programs "take turns" [06:59] yoshig3: then another thing the kernel does is manage memory, i.e. decide which programs should write/read where in memory, and allocate the memory for them [07:00] yoshig3: and, in general, the kernel "manage resources" (hardware or software resources) for the programs === gabone [n=gabone@84.232.197.188] has joined #ubuntu-classroom [07:00] yoshig3: which brings us back to what i briefly mentioned earlier "(and even on some older systems, where it would be allowed to, it still isn't a good idea - but this for later)" [07:00] Thats one advantage of dual cores, less switching [07:01] yoshig3: even on an "old" system, a program shouldn't just write to the graphics card, or to the sound card, or to the hard drive, by itself... since, if multiple programs are running (and now we know we do, and how), it would become a mess. you'd have your screen garbled, your audio badly mixed, and you data corrupted ;) [07:01] yeah, dual cores are nice...we have quad cores now, but they are expensive....octi cores are being made, but they're just prototypes I believe [07:01] intel made something with like 80 cores [07:01] yoshig3: so, on multi-programmed systems, programs *really* should ask the kernel to do things for them. so the kernel, besides allowing/disallowing things, can make things work together nicely [07:01] LjL: You need to be a teacher. How old are you? [07:02] yoshig3: i'm 24 [07:03] yoshig3: now anyway, there are many kinds of kernels [07:03] yoshig3: there are kernels that are very small (they're sometimes called 'microkernels'), and really only do what i mentioned: 1) schedule processes for running 2) allocate memory 3) manage intercommunication between processes [07:04] yoshig3: these kernel defer many things (such as the actual specific of how to drive, say, a graphics card, or a HD) to userland processes, which are given specific privileges for what they need to manage [07:05] yoshig3: Linux is not one of these kernels - Linux does a lot of things itself, and it includes for instance many hardware drivers, and filesystem handlers [07:05] So the linux kernel is better than the windows? [07:05] yoshig3: still, Linux is incredibly small in size compared to your overall Ubuntu system, which is made up by lots and lots of libraries and stuff [07:05] yoshig3: no, both Linux and the Windows kernel are of the "big" kind [07:05] yoshig3: and there are arguments both for and against microkernels and "big" (aka "monolithic") kernels [07:06] Ehm isn't the windows kernel much more monolothic, and unsafe [07:06] yoshig3: it's just that, in Windows, you don't really even have a *name* for the kernel (you just call it "the kernel"), since it's part of a single project - Windows [07:06] it has version numbers though [07:06] nothlit: the Windows NT kernel actually started as a microkernel [07:07] nothlit: later it was expanded to include in-kernel GUI and other amenities [07:07] nothlit: they found that a microkernel was too slow for that [07:07] at least, their microkernel was [07:07] LjL: I would figure that microkernels would be faster? [07:07] yoshig3: wrong [07:08] yoshig3: they're usually slower, though microkernel proponents claim they can be made as fast, and faster, than monolithic kernels [07:08] yoshig3: the problem with microkernels is that there are lots of "layers". the kernel only does the very basic things (chiefly, task scheduling), and the rest is demanded to the task that are scheduled [07:09] the minix microkernel inspired linux :) [07:09] monolithic kernels are the "big" kernels, right? [07:10] yoshig3: so, when a program, say, tries to write on a file, 1) it calls the filesystem server (which is a process) 2) the kernel switches task, and makes the filesystem server execute 3) the filesystem server looks at what it has to do, prepares it, and then calls the HD driver to actually do it 4) the kernel switches to the HD driver 5) the HD driver does the actual writing 6) the kernel switches back to the initial process [07:10] yoshig3: yes [07:10] yoshig3: note that this "task switching" (also known as "context switch") thing can be kind of slow [07:10] LjL: Why is it slow? [07:10] yoshig3: on a "big"/monolithic kernel, the program would just call the kernel, which then runs routines (that are all embedded in the kernel itself) to do the entire job [07:11] actually windows has their own microkernel, but its not for regular os use [07:11] yoshig3: because in order to suspend and then restart a process, the kernel must save (and then restore) many things: the CPU registers, the memory table for the process, the stack pointer, ... [07:11] ah [07:11] My cousin tried explaining stacks to me a while back [07:11] I think I kind of get it [07:12] memory stacks === poningru [n=poningru@ip72-209-68-178.ga.at.cox.net] has joined #ubuntu-classroom [07:12] like pancakes :D [07:12] lol [07:12] my cousin is just about as smart as you , just probably not with linux [07:12] yoshig3: the downside with the monolithic kernels is: if everything's done by the kernel, and in kernel mode, then you can get in trouble as soon as the kernel "gets something wrong" -- remember that, in kernel mode, you can do *anything* [07:12] He might know linux [07:12] Although he's a very nonsocial person [07:12] so he pisses me off once in a while lol [07:12] yoshig3: so, if the filesystem driver (for example) has a problem, even a relatively trivial problem, it can bring down the whole system [07:12] "gets something wrong"? Is this the programs fault or the kernels? [07:13] yoshig3: the kernel, since it's a part of the kernel that's doing something wrong [07:13] yoshig3: even if the program is "lying" to the kernel, the kernel should spot the lie [07:14] whaaat about kernel modules [07:14] So is that a faulty kernel then? [07:14] yoshig3: also, with monolithic kernels, if you want to install a new driver, or filesystem handler, or ..... , it isn't just like "executing a program". you actually need to *modify the kernel*. in Linux and Windows, this is made easier in that the kernel can use "modules" (they're not called such in Windows, though), i.e. load parts of the kernel at runtime, via a special interface [07:14] brb guys [07:14] yoshig3: yes, it's a faulty kernel. but a big kernel that embeds filesystem handlers, drivers and what not is *bound* to be faulty, here and there [07:15] nothlit: see above [07:15] gonna go get my lappy so I can transfer files after windows install, but don't worry, I'm coming back to #ubuntu, #ubuntu-classroom, and #ubuntu-offtopic. [07:15] But I'm not getting off Ubuntu yet [07:15] just brb'ing, so hold on a bit for the teaching [07:16] nothlit: modules are still part of the kernel, though. most are actually made by the kernel developers. then there are modules made by other people, but they're still running in kernel mode, as a part of the kernel [07:17] so the only diff is you can modprobe and rmmod them? [07:18] nothlit: yeah. well, that's quite useful though, compared to having one single huge file (the kernel image) containing them all (even those you don't need) [07:18] nothlit: but it's still different from what a microkernel does [07:19] nothlit: in a microkernel (or near-microkernel), those "modules" would generally just be userland processes (services, in most microkernel-lingos) [07:24] LjL: They should thoroughly test the kernel before they release it, shouldn't they? [07:24] isn't that what i'm paying 400$ per distro for? [07:24] (windows) [07:25] (But no, I don't pay...who does) [07:26] They do really thorough tests, mostly for compatibility/legacy support (software, not hardware). [07:26] who said for stability :) [07:26] yoshig3: no program has no bugs. [07:26] hello world? [07:27] jrib: easy enough to put some in there :P [07:27] still, alright, that statement was too big [07:27] yeah should be a capital H [07:27] anyways windows is a lot more monolithic... if the video goes down the whole thing does... the way its designed isn't as stable [07:27] but, except for programs that can take a formal mathematical proof (which are very few, right now), you can't guarantee a program is free of bugs [07:28] and any sufficiently complex program will empirically have some/many [07:28] nothlit: i disagree... i believe X can make the entire system go down in Linux just as well [07:28] even if X itself isn't running as part of the kernel (kind of an exception to the Linux rule) [07:29] hmm listen to LjL, I know nothing [07:29] LjL: I can't find my windows CD T.T [07:29] Darn bad omens... [07:29] that's a feature [07:30] jrib: what, not being able to find a windows cd? [07:30] yeah [07:30] LOL [07:30] Okay, jrib, now THAT was funny [07:30] But, I found it :P [07:30] I just remembered-CD case [07:30] yeah windows is buggy like that [07:30] I finally decided to organize something [07:30] then I can't find it [07:30] lol [07:30] jrib, cd's are buggy? [07:31] nothlit: He said that it is a feature of windows to not be able to find your CD === Chris7mas [n=floydian@89.39.4.39] has joined #ubuntu-classroom [07:32] yoshig3, i was referring purely to the last line :P [07:32] !disks | jrib [07:32] jrib: Partitioning programs: !GParted or QTParted - Formatting partitions: see the manual page for mkfs ("man mkfs") - Mounting partitions in Gnome under Dapper: System -> Administration -> Disks - For Edgy, see !fstab and !DiskMounter [07:32] nothlit: ah k lol [07:32] LjL: I do enjoy being able to reload a GUI on demand though, like X [07:32] I wonder why qtparted still doesn't have the features gparted has [07:32] LjL: In windows, there is nothing like that [07:32] LjL: if it crashes, you just get screwed [07:33] yoshig3, well vista is supposed to be different [07:33] yoshig3: true enough. with X, if it crashes, you might or might not be screwed [07:33] LjL: sounds good, starting to get a bit long though [07:33] jrib, nothlit: do you know if qtparted can format? [07:34] I've been able to make X crash and lock me out completely. And usually I find it is the nvidia driver's fault [07:34] LjL: never used qtparted [07:35] jrib: Yeah, drivers blow for ubuntu, but that doesn't mean ubuntu does [07:35] or debian, I should say? [07:35] jrib: that's why i was saying X can still completely lock down the system, even though it's not in-kernel... [07:35] LjL, it can but can't resize ext3 and stuff [07:35] LjL, it can resize reiserfs though [07:35] nothlit: ok - that doesn't matter, i was just asking so i could decide whether to remove the mkfs part or not [07:36] !disks | jrib [07:36] pff [07:36] LjL: yeah though I haven't tried enabling those sysrq keys and seeing if it works when X crashes [07:36] jrib: i think sysrq is enabled by default, at least in edgy === Ubug2 [n=bugbot@ubuntu/bot/ubugtu] has joined #ubuntu-classroom [07:37] hmm [07:37] jrib: if you're in X, though, you need to know the key combinations ;) [07:37] what's that nmeonic again? [07:37] no idea [07:37] erm [07:37] oh i just memorise r 0 k e i s u b === ubotu [n=ubotu@ubuntu/bot/ubotu] has joined #ubuntu-classroom [07:37] its something about elephants [07:37] jrib: anyway altgr+sysrq+h, doesn't give you any mnemonic though :) [07:38] something to do with elephants [07:38] LjL: I have a question. When you update drivers, why can't you just UPDATE them? Why do you always have to uninstall, and then reinstall? [07:38] http://en.wikipedia.org/wiki/Raising_Skinny_Elephants_Is_Utterly_Boring [07:38] yoshig3: they don't. [07:38] yoshig3: i just updated my nvidia drivers. twice in a week. [07:39] LjL: yeah but usually they tell you "Uninstall previous drivers first" [07:39] yoshig3: where? [07:39] yoshig3: of course, if you installed them in awkward ways (i.e. not from packages), you could have issues [07:39] but otherwise, you should generally be fine [07:39] !disks [07:40] LjL I guess I'm speaking windows again....sorry. Although, envy did tell me to uninstall first, as did all the howto's [07:40] LjL, twice? do you install them from nvidia.com? [07:40] Partitioning programs: !GParted or QTParted (also "man mkfs" for formatting) - Mounting partitions in Gnome under Dapper: System -> Administration -> Disks - For Edgy, see !fstab and !DiskMounter [07:40] jrib: ^ [07:40] (linux envy and howto's) [07:40] nothlit: no. the amaranth repository first, and then the albertomilone repository [07:40] LjL, you just gave ubotu a factoid? [07:40] yoshig3, that's the catch - you aren't using repositories [07:40] oh [07:40] nothlit: hm? [07:40] LjL: Ah [07:40] LjL: sounds good to me [07:40] LjL, disks [07:40] nothlit: it was there already, i changed it though [07:41] LjL: See, I don't really understand repositories. Are they just archives of files? [07:41] LjL, how long does it usually take for factoids to get approved? [07:41] Or something dynamic? [07:41] nothlit: a couple of minutes, unless all operators are sleeping [07:41] yoshig3: they are a bunch of deb files basically [07:41] nothlit: or unless *too many* operators are awake, and quibble on semantics ;-P [07:41] Repositories are a place where packages are stored... and they can be contacted to find out what packages there are on it [07:42] then why don't they just call them archives? be a bit easier [07:42] LjL, :( then all my factoids got rejected? =/ [07:42] yoshig3: because an "archive" is usually something else (a tar file is generally called an "archive") [07:42] nothlit: like? [07:42] They do change and get updated [07:42] LjL, ehm something on sbackup, then /fastboot and /forcefsck... can't remember what else [07:42] LjL: yeah, I know what you mean by that, but it still would fix alot of confusion [07:42] yoshig3: a repository is a web or FTP site, but it contains many things that must follow a special format [07:43] a repository is a place where you store things :P [07:43] like packages [07:43] yoshig3: the contain programs in the end, yeah, but each of those program is packaged into a .deb archive, which has a strict format and handles versioning, dependencies and all that [07:44] yeah...true [07:44] But most people don't know what repository means lol [07:44] yoshig3: calling them "archives" wouldn't help a bit [07:44] explaining what they are definitely should [07:44] Well you don't have to incorrectly name something just because the masses don't get it [07:44] !repositories [07:44] The packages in Ubuntu are divided into several sections. More information at https://help.ubuntu.com/community/Repositories and http://www.ubuntu.com/ubuntu/components - See also !EasySource [07:45] !packages [07:45] You can browse and search for Ubuntu packages using !Synaptic, !Adept, "apt-cache search ", the "apt:/" URL in KDE, or online at http://packages.ubuntu.com - Ubuntu has about 20000 packages available, so please *search* for an official package before installing things in awkward ways! [07:45] !software [07:45] A general introduction to the ways software can be installed, removed and managed in Ubuntu can be found at https://help.ubuntu.com/community/SoftwareManagement - See also !Packages and !Equivalents [07:45] spammer [07:45] !flood [07:45] pastebin is a service to post large texts so you don't flood the channel. The Ubuntu pastebin is at http://paste.ubuntu-nl.org (be sure to give the URL of your paste - see also the #ubuntu channel topic) [07:48] nothlit: i don't have any of your factoids logged... if you have the logs, would you mind digging them up? [07:49] nothlit: as for forcefsck, i recently learned that shutdown -F -r