<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[nixers - GNU/Linux]]></title>
		<link>https://nixers.net/</link>
		<description><![CDATA[nixers - https://nixers.net]]></description>
		<pubDate>Tue, 05 May 2026 04:09:23 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Atomic Distros]]></title>
			<link>https://nixers.net/Thread-Atomic-Distros</link>
			<pubDate>Thu, 18 Sep 2025 10:05:50 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1822">pkal</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Atomic-Distros</guid>
			<description><![CDATA[Hey, does anyone here have strong opinions or real experience with atomic distributions, like Fedora Silverblue?  I am considering it for a professional laptop, where I want to avoid components breaking so the immutability and containerization is something that sounds good.  And I have come to terms with GNOME, so that is not an issue for me at least.  What I worry about is, e.g. with Fedora Silverblue, that my previous experience with regular Fedora always degraded after an upgrade or two, and I don't know if this is something that Silverblue can help me here.]]></description>
			<content:encoded><![CDATA[Hey, does anyone here have strong opinions or real experience with atomic distributions, like Fedora Silverblue?  I am considering it for a professional laptop, where I want to avoid components breaking so the immutability and containerization is something that sounds good.  And I have come to terms with GNOME, so that is not an issue for me at least.  What I worry about is, e.g. with Fedora Silverblue, that my previous experience with regular Fedora always degraded after an upgrade or two, and I don't know if this is something that Silverblue can help me here.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Filesystem choice]]></title>
			<link>https://nixers.net/Thread-Filesystem-choice</link>
			<pubDate>Thu, 18 Apr 2024 09:25:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=2411">maksim</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Filesystem-choice</guid>
			<description><![CDATA[I've been thinking about moving to <a href="https://artixlinux.org/" target="_blank" rel="noopener" class="mycode_url">Artix Linux</a> because I kinda dislike systemd. So I've been thinking about a lot of choices that have to be made while installing and the one I can't answer for myself is the filesystem I should choose. I am currently choosing between ext4, btrfs, zfs, xfs, reiser(fs/4), heard it's a killer filesystem ;). I've also learnt about bcachefs, which seems kind of interesting. I'm not interested in using RAID, LVM and encryption. I want to have a simple setup with one /boot partition and one / partition.<br />
<br />
So I'd like to hear from you]]></description>
			<content:encoded><![CDATA[I've been thinking about moving to <a href="https://artixlinux.org/" target="_blank" rel="noopener" class="mycode_url">Artix Linux</a> because I kinda dislike systemd. So I've been thinking about a lot of choices that have to be made while installing and the one I can't answer for myself is the filesystem I should choose. I am currently choosing between ext4, btrfs, zfs, xfs, reiser(fs/4), heard it's a killer filesystem ;). I've also learnt about bcachefs, which seems kind of interesting. I'm not interested in using RAID, LVM and encryption. I want to have a simple setup with one /boot partition and one / partition.<br />
<br />
So I'd like to hear from you]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How do I Ubuntu ?]]></title>
			<link>https://nixers.net/Thread-How-do-I-Ubuntu</link>
			<pubDate>Fri, 06 Aug 2021 15:36:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=579">z3bra</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-How-do-I-Ubuntu</guid>
			<description><![CDATA[Hello folks,<br />
<br />
This thread will be a little awkward (for me at least!).<br />
Next monday, I'll have my work laptop reinstalled under stock Ubuntu 21.04, as per my company's policies.<br />
<br />
The thing is, I have not used a pre-configured distro in years !<br />
I don't want to use the default Gnome shell, or the default software provided with the distro. I don't mind keeping everything installed though, in case a coworker needs to login on my computer (it'll be connected to the active directory).<br />
<br />
So my question will be simple (though the answer might be complex…) :<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How do I <span style="font-style: italic;" class="mycode_i">cleanly</span> change my login session under Ubuntu ?</span><br />
<br />
I basically have my ~/.xsession setup for use with the "xdm" login manager (it is equivalent to an .xinitrc). How do I translate/change it so I can use it under Ubuntu ? I've found that it uses GDM3 and that I'd possibly have to create a .desktop entry to /usr/share/xsessions to launch my own "session script" or whatever. Is that correct ?<br />
<br />
Also, Ubuntu 21.04 ships with Wayland by default. Apparently X is still installed, but I'd like to confirm that if anyone has the info.<br />
<br />
Help me as the Ubuntu login stack is totally unknown to me, and I don't want to loose too much time setting up my machine next week. <br />
<br />
Thanks everyone !]]></description>
			<content:encoded><![CDATA[Hello folks,<br />
<br />
This thread will be a little awkward (for me at least!).<br />
Next monday, I'll have my work laptop reinstalled under stock Ubuntu 21.04, as per my company's policies.<br />
<br />
The thing is, I have not used a pre-configured distro in years !<br />
I don't want to use the default Gnome shell, or the default software provided with the distro. I don't mind keeping everything installed though, in case a coworker needs to login on my computer (it'll be connected to the active directory).<br />
<br />
So my question will be simple (though the answer might be complex…) :<br />
<br />
<span style="font-weight: bold;" class="mycode_b">How do I <span style="font-style: italic;" class="mycode_i">cleanly</span> change my login session under Ubuntu ?</span><br />
<br />
I basically have my ~/.xsession setup for use with the "xdm" login manager (it is equivalent to an .xinitrc). How do I translate/change it so I can use it under Ubuntu ? I've found that it uses GDM3 and that I'd possibly have to create a .desktop entry to /usr/share/xsessions to launch my own "session script" or whatever. Is that correct ?<br />
<br />
Also, Ubuntu 21.04 ships with Wayland by default. Apparently X is still installed, but I'd like to confirm that if anyone has the info.<br />
<br />
Help me as the Ubuntu login stack is totally unknown to me, and I don't want to loose too much time setting up my machine next week. <br />
<br />
Thanks everyone !]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Picking a new distribution]]></title>
			<link>https://nixers.net/Thread-Picking-a-new-distribution</link>
			<pubDate>Sat, 08 May 2021 20:45:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=2112">stratex</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Picking-a-new-distribution</guid>
			<description><![CDATA[I want to migrate from Gentoo and thinking about my options. My main goal is to be portable, in a sense of my package manager, I want for "install x" to install x in any distribution/system I happen to find myself on. So it would mean a portable package manager. I don't really want to go all-in to BSD either, because I need lots of things from my system (nvidia drivers, virtualization, heavy browsing in chromium, occasional steam, openssl support etc.) I don't think that OpenBSD is suitable for heavy PC usage. So I'm thinking about this combo: T2 SDE+pkgsrc. What do you guys think? Did anyone had an experience with pkgsrc? Can it be used as the main package manager for heavy usage scenario (not only servers)?]]></description>
			<content:encoded><![CDATA[I want to migrate from Gentoo and thinking about my options. My main goal is to be portable, in a sense of my package manager, I want for "install x" to install x in any distribution/system I happen to find myself on. So it would mean a portable package manager. I don't really want to go all-in to BSD either, because I need lots of things from my system (nvidia drivers, virtualization, heavy browsing in chromium, occasional steam, openssl support etc.) I don't think that OpenBSD is suitable for heavy PC usage. So I'm thinking about this combo: T2 SDE+pkgsrc. What do you guys think? Did anyone had an experience with pkgsrc? Can it be used as the main package manager for heavy usage scenario (not only servers)?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[gkh vs umn, or: what IS human research, anyways?]]></title>
			<link>https://nixers.net/Thread-gkh-vs-umn-or-what-IS-human-research-anyways</link>
			<pubDate>Wed, 21 Apr 2021 23:02:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1445">sth</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-gkh-vs-umn-or-what-IS-human-research-anyways</guid>
			<description><![CDATA[i'm sure this won't be the first place most people hear about this... some researchers are in hot water with the kernel team after being accused of intentionally submitting bad patches in some overwrought attempt to prove that kernel maintainers are... humans?<br />
<br />
<a href="https://lore.kernel.org/linux-nfs/YH+7ZydHv4+Y1hlx@kroah.com/" target="_blank" rel="noopener" class="mycode_url">https://lore.kernel.org/linux-nfs/YH+7Zy...kroah.com/</a><br />
<br />
UMN's response: <a href="https://cse.umn.edu/cs/statement-cse-linux-kernel-research-april-21-2021" target="_blank" rel="noopener" class="mycode_url">https://cse.umn.edu/cs/statement-cse-lin...il-21-2021</a><br />
<br />
there's a great breakdown of the whole situation on lwn.net if you're a subscriber - otherwise the mailing list thread is pretty clear as well.]]></description>
			<content:encoded><![CDATA[i'm sure this won't be the first place most people hear about this... some researchers are in hot water with the kernel team after being accused of intentionally submitting bad patches in some overwrought attempt to prove that kernel maintainers are... humans?<br />
<br />
<a href="https://lore.kernel.org/linux-nfs/YH+7ZydHv4+Y1hlx@kroah.com/" target="_blank" rel="noopener" class="mycode_url">https://lore.kernel.org/linux-nfs/YH+7Zy...kroah.com/</a><br />
<br />
UMN's response: <a href="https://cse.umn.edu/cs/statement-cse-linux-kernel-research-april-21-2021" target="_blank" rel="noopener" class="mycode_url">https://cse.umn.edu/cs/statement-cse-lin...il-21-2021</a><br />
<br />
there's a great breakdown of the whole situation on lwn.net if you're a subscriber - otherwise the mailing list thread is pretty clear as well.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[showing system's health on /dev/tty1]]></title>
			<link>https://nixers.net/Thread-showing-system-s-health-on-dev-tty1</link>
			<pubDate>Thu, 17 Dec 2020 11:45:56 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=2054">freem</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-showing-system-s-health-on-dev-tty1</guid>
			<description><![CDATA[Hello.<br />
<br />
I am growing tired of /dev/tty1 showing a boot sequence which is... useless.<br />
<br />
It is useless because, basically, it spits a lot of lines, that no-one will ever be able to read (yes, even with the --noclear option of getty).<br />
Also, in practice, my system starts services in parallel (with runit) and most of the logs are redirected to svlogd, which means several things:<br />
<br />
1) gettys are initialized far _before_ the system is completely up and running (especially network interfaces)<br />
2) you don't know if something is wrong except if if's so wrong that you can't login or other similar big issues<br />
<br />
So, I had the idea of using /dev/tty1 to *not* be used as a login manager (you know, the usual line in ~/.profile: `test &#36;(tty) = /dev/tty1 &amp;&amp; exec xinit`) but for showing a quick health summary.<br />
What I would need is a tool which can show:<br />
<br />
* (only "bad"?) lines in dmesg<br />
* daemons' status and their age (so that one can know if they are trying to boot every few seconds)<br />
* system's uptime<br />
* system's NICs and IPs<br />
* system's hostname<br />
<br />
Constraints:<br />
<br />
* run the checks either in real time or with reasonably slow delay<br />
* minimal dependencies, especially in terms of daemons already being up and running (obviously: the goal is to be able to quickly see what is wrong when something is)<br />
<br />
Ideally, it would work with any POSIX system and only be "active" when the TTY it runs on is actually displayed (I know it's doable) but those are just ideal stuff, not mandatoty (I could hack my way in there if necessary).<br />
<br />
Anyone knows such tool (if I write such a tool myself, it will likely be a statically linkable C++ application using linux's framebuffer's API, which means that would not run on non-linux kernels)?]]></description>
			<content:encoded><![CDATA[Hello.<br />
<br />
I am growing tired of /dev/tty1 showing a boot sequence which is... useless.<br />
<br />
It is useless because, basically, it spits a lot of lines, that no-one will ever be able to read (yes, even with the --noclear option of getty).<br />
Also, in practice, my system starts services in parallel (with runit) and most of the logs are redirected to svlogd, which means several things:<br />
<br />
1) gettys are initialized far _before_ the system is completely up and running (especially network interfaces)<br />
2) you don't know if something is wrong except if if's so wrong that you can't login or other similar big issues<br />
<br />
So, I had the idea of using /dev/tty1 to *not* be used as a login manager (you know, the usual line in ~/.profile: `test &#36;(tty) = /dev/tty1 &amp;&amp; exec xinit`) but for showing a quick health summary.<br />
What I would need is a tool which can show:<br />
<br />
* (only "bad"?) lines in dmesg<br />
* daemons' status and their age (so that one can know if they are trying to boot every few seconds)<br />
* system's uptime<br />
* system's NICs and IPs<br />
* system's hostname<br />
<br />
Constraints:<br />
<br />
* run the checks either in real time or with reasonably slow delay<br />
* minimal dependencies, especially in terms of daemons already being up and running (obviously: the goal is to be able to quickly see what is wrong when something is)<br />
<br />
Ideally, it would work with any POSIX system and only be "active" when the TTY it runs on is actually displayed (I know it's doable) but those are just ideal stuff, not mandatoty (I could hack my way in there if necessary).<br />
<br />
Anyone knows such tool (if I write such a tool myself, it will likely be a statically linkable C++ application using linux's framebuffer's API, which means that would not run on non-linux kernels)?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[`time(1)` and children]]></title>
			<link>https://nixers.net/Thread-time-1-and-children</link>
			<pubDate>Sat, 29 Aug 2020 08:43:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1254">movq</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-time-1-and-children</guid>
			<description><![CDATA[Recently dug a little into how time(1) works. Put the results in a blog post:<br />
<br />
<a href="https://www.uninformativ.de/blog/postings/2020-08-29/0/POSTING-en.html" target="_blank" rel="noopener" class="mycode_url">https://www.uninformativ.de/blog/posting...NG-en.html</a><br />
<br />
I copied the blog post below in full, so you don't have to visit my page.<br />
<br />
Let me know if this model (blog post + discussion over here) is a good idea or not, whether or not the post should be copied, and so on.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">`time(1)` and children</span></span><br />
<br />
I was running a shell script on a server. It forked off several other processes and then waited for them to quit. I was making some optimizations to that script and wanted to see if they were actually making it run faster. So, I did the obvious thing:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; time my_script</code></div></div><br />
The numbers looked reasonable. Then I wondered: Hold on, the script itself isn’t doing anything. It just launches a bunch of other processes and then just sits there and waits. Why does `time` show such high numbers for *my script*?<br />
<br />
Turns out, the output of `time` is a little bit misleading. At least to naïve readers like me.<br />
<br />
It so happened that the real `/usr/bin/time` was used on my server, so I’m not looking at a potential shell builtin for `time`, but that probably works the same way.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">The syscall `times(2)`</span></span><br />
<br />
Looking at the <a href="https://git.savannah.gnu.org/cgit/time.git/tree/src/resuse.c" target="_blank" rel="noopener" class="mycode_url">implementation of GNU `time`</a>, you can see that there are (of course) multiple `ifdef`s. One of them assumes that the operating system only provides a simple `wait()`: It waits until some child quits. In this case, this is of course the command spawned earlier, so it’s `my_script`.<br />
<br />
`wait()` only tells you about the exit status of the child. So how do we get its execution times? Also keep in mind that `wait()` reaps that process from its zombie state, so we can’t issue any other calls for the child PID.<br />
<br />
We ask the operating system for the execution times of the *current process*, that is `time` itself. You can do that using `times()`:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>times() stores the current process times in the struct tms that<br />
&nbsp;&nbsp;&nbsp;&nbsp;buf points to.&nbsp;&nbsp;The struct tms is as defined in &lt;sys/times.h&gt;:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;struct tms {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_utime;&nbsp;&nbsp;/* user time */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_stime;&nbsp;&nbsp;/* system time */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_cutime; /* user time of children */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_cstime; /* system time of children */<br />
&nbsp;&nbsp;&nbsp;&nbsp;};</code></div></div><br />
There you go, `tms_cutime` and `tms_cstime` tell us about the execution times of `time`’s children.<br />
<br />
Still doesn’t answer my original question, but it’s explained just a few lines below:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>The&nbsp;&nbsp;tms_cutime&nbsp;&nbsp;field&nbsp;&nbsp;contains&nbsp;&nbsp;the&nbsp;&nbsp;sum of the tms_utime and<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cutime values for all waited-for terminated children.&nbsp;&nbsp; The<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cstime&nbsp;&nbsp; field&nbsp;&nbsp;contains&nbsp;&nbsp;the&nbsp;&nbsp;sum&nbsp;&nbsp;of&nbsp;&nbsp;the&nbsp;&nbsp;tms_stime&nbsp;&nbsp;and<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cstime values for all waited-for terminated children.</code></div></div><br />
So, `tms_cutime` is not only the child’s “user time”, but the “user time” plus “user time of its children”. As this is presumably tansitive, you get the times of the entire process tree.<br />
<br />
In other words, `time` doesn’t even have a way in this case to tell the execution time of `my_script` apart from the execution time of the processes it launches.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">`wait3()` and `wait4()`</span></span><br />
<br />
The GNU implementation also has another code path where it uses one of those syscalls (actually, only `wait3()`, but that’s implemented using `wait4()` on my system). It does what I originally expected would happen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>pid_t wait3(int *wstatus, int options, struct rusage *rusage);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;&nbsp;rusage&nbsp;&nbsp;is&nbsp;&nbsp;not&nbsp;&nbsp;NULL, the struct rusage to which it points<br />
&nbsp;&nbsp;&nbsp;&nbsp;will be filled with accounting&nbsp;&nbsp;information&nbsp;&nbsp;about&nbsp;&nbsp;the&nbsp;&nbsp;child.<br />
&nbsp;&nbsp;&nbsp;&nbsp;See getrusage(2) for details.</code></div></div><br />
I guess it’s safe to assume that this version also operates transitively / recursively, so you get the times of the entire process tree.<br />
<br />
This is much more flexible than `times()` in cases where you have to deal with multiple children.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Initial confusion</span></span><br />
<br />
My first (naïve) attempt to figure out what’s going on looked like this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (( i = 0; i &lt; 10000000; i++ ))<br />
&nbsp;&nbsp;&nbsp;&nbsp;do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;done &amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;killpid=&#36;!<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;kill &#36;killpid</code></div></div><br />
And the result:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; /usr/bin/time ./a.sh <br />
&nbsp;&nbsp;&nbsp;&nbsp;0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 3852maxresident)k<br />
&nbsp;&nbsp;&nbsp;&nbsp;0inputs+0outputs (0major+371minor)pagefaults 0swaps</code></div></div><br />
Whoops, all zero.<br />
<br />
Well, with the knowledge above, it’s trivial. We don’t `wait`.<br />
<br />
The whole `wait` vs. no `wait` issue took me a second to notice. I mean, in theory, the operating system *could* always include the execution times of children in the times reported for their parent, even without a `wait`. In my mind, `wait` was simply a way to tell the OS to wait for end of that process – I wasn’t aware that it also had implications on resource usage statistics.<br />
<br />
And, well, I’m not sure if it’s entirely obvious that execution times of children should be included in the first place. What if I wanted to measure `my_script`, really, just my script? To find out if it adds any significant overhead? It appears that’s not possible from “the outside” and must be done in `my_script` directly, but I’d be happy to learn otherwise.]]></description>
			<content:encoded><![CDATA[Recently dug a little into how time(1) works. Put the results in a blog post:<br />
<br />
<a href="https://www.uninformativ.de/blog/postings/2020-08-29/0/POSTING-en.html" target="_blank" rel="noopener" class="mycode_url">https://www.uninformativ.de/blog/posting...NG-en.html</a><br />
<br />
I copied the blog post below in full, so you don't have to visit my page.<br />
<br />
Let me know if this model (blog post + discussion over here) is a good idea or not, whether or not the post should be copied, and so on.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">`time(1)` and children</span></span><br />
<br />
I was running a shell script on a server. It forked off several other processes and then waited for them to quit. I was making some optimizations to that script and wanted to see if they were actually making it run faster. So, I did the obvious thing:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; time my_script</code></div></div><br />
The numbers looked reasonable. Then I wondered: Hold on, the script itself isn’t doing anything. It just launches a bunch of other processes and then just sits there and waits. Why does `time` show such high numbers for *my script*?<br />
<br />
Turns out, the output of `time` is a little bit misleading. At least to naïve readers like me.<br />
<br />
It so happened that the real `/usr/bin/time` was used on my server, so I’m not looking at a potential shell builtin for `time`, but that probably works the same way.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">The syscall `times(2)`</span></span><br />
<br />
Looking at the <a href="https://git.savannah.gnu.org/cgit/time.git/tree/src/resuse.c" target="_blank" rel="noopener" class="mycode_url">implementation of GNU `time`</a>, you can see that there are (of course) multiple `ifdef`s. One of them assumes that the operating system only provides a simple `wait()`: It waits until some child quits. In this case, this is of course the command spawned earlier, so it’s `my_script`.<br />
<br />
`wait()` only tells you about the exit status of the child. So how do we get its execution times? Also keep in mind that `wait()` reaps that process from its zombie state, so we can’t issue any other calls for the child PID.<br />
<br />
We ask the operating system for the execution times of the *current process*, that is `time` itself. You can do that using `times()`:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>times() stores the current process times in the struct tms that<br />
&nbsp;&nbsp;&nbsp;&nbsp;buf points to.&nbsp;&nbsp;The struct tms is as defined in &lt;sys/times.h&gt;:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;struct tms {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_utime;&nbsp;&nbsp;/* user time */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_stime;&nbsp;&nbsp;/* system time */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_cutime; /* user time of children */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clock_t tms_cstime; /* system time of children */<br />
&nbsp;&nbsp;&nbsp;&nbsp;};</code></div></div><br />
There you go, `tms_cutime` and `tms_cstime` tell us about the execution times of `time`’s children.<br />
<br />
Still doesn’t answer my original question, but it’s explained just a few lines below:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>The&nbsp;&nbsp;tms_cutime&nbsp;&nbsp;field&nbsp;&nbsp;contains&nbsp;&nbsp;the&nbsp;&nbsp;sum of the tms_utime and<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cutime values for all waited-for terminated children.&nbsp;&nbsp; The<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cstime&nbsp;&nbsp; field&nbsp;&nbsp;contains&nbsp;&nbsp;the&nbsp;&nbsp;sum&nbsp;&nbsp;of&nbsp;&nbsp;the&nbsp;&nbsp;tms_stime&nbsp;&nbsp;and<br />
&nbsp;&nbsp;&nbsp;&nbsp;tms_cstime values for all waited-for terminated children.</code></div></div><br />
So, `tms_cutime` is not only the child’s “user time”, but the “user time” plus “user time of its children”. As this is presumably tansitive, you get the times of the entire process tree.<br />
<br />
In other words, `time` doesn’t even have a way in this case to tell the execution time of `my_script` apart from the execution time of the processes it launches.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">`wait3()` and `wait4()`</span></span><br />
<br />
The GNU implementation also has another code path where it uses one of those syscalls (actually, only `wait3()`, but that’s implemented using `wait4()` on my system). It does what I originally expected would happen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>pid_t wait3(int *wstatus, int options, struct rusage *rusage);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;&nbsp;rusage&nbsp;&nbsp;is&nbsp;&nbsp;not&nbsp;&nbsp;NULL, the struct rusage to which it points<br />
&nbsp;&nbsp;&nbsp;&nbsp;will be filled with accounting&nbsp;&nbsp;information&nbsp;&nbsp;about&nbsp;&nbsp;the&nbsp;&nbsp;child.<br />
&nbsp;&nbsp;&nbsp;&nbsp;See getrusage(2) for details.</code></div></div><br />
I guess it’s safe to assume that this version also operates transitively / recursively, so you get the times of the entire process tree.<br />
<br />
This is much more flexible than `times()` in cases where you have to deal with multiple children.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Initial confusion</span></span><br />
<br />
My first (naïve) attempt to figure out what’s going on looked like this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (( i = 0; i &lt; 10000000; i++ ))<br />
&nbsp;&nbsp;&nbsp;&nbsp;do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;done &amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;killpid=&#36;!<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;kill &#36;killpid</code></div></div><br />
And the result:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; /usr/bin/time ./a.sh <br />
&nbsp;&nbsp;&nbsp;&nbsp;0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 3852maxresident)k<br />
&nbsp;&nbsp;&nbsp;&nbsp;0inputs+0outputs (0major+371minor)pagefaults 0swaps</code></div></div><br />
Whoops, all zero.<br />
<br />
Well, with the knowledge above, it’s trivial. We don’t `wait`.<br />
<br />
The whole `wait` vs. no `wait` issue took me a second to notice. I mean, in theory, the operating system *could* always include the execution times of children in the times reported for their parent, even without a `wait`. In my mind, `wait` was simply a way to tell the OS to wait for end of that process – I wasn’t aware that it also had implications on resource usage statistics.<br />
<br />
And, well, I’m not sure if it’s entirely obvious that execution times of children should be included in the first place. What if I wanted to measure `my_script`, really, just my script? To find out if it adds any significant overhead? It appears that’s not possible from “the outside” and must be done in `my_script` directly, but I’d be happy to learn otherwise.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[My new distro "Glacies"]]></title>
			<link>https://nixers.net/Thread-My-new-distro-Glacies</link>
			<pubDate>Sun, 08 Dec 2019 18:55:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1956">eadwardus</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-My-new-distro-Glacies</guid>
			<description><![CDATA[I'm building an operating system, or so is the intention, and i have started with the userland (which should run upon any posix system) as it were the thing, specially on Linux, that i were more discontent with, the result is the current distro that i am building "Glacies", that is the "Eltanin" userland with Linux as kernel.<br />
<br />
<a href="https://cloud.disroot.org/s/jGzYHPgZwNi5sfg/preview" target="_blank" rel="noopener" class="mycode_url"><img src="https://cloud.disroot.org/s/jGzYHPgZwNi5sfg/preview" width="350" height="260" alt="[Image: preview]" class="mycode_img" loading="lazy" /></a><br />
<br />
All is still in pretty early stage, but i have done quite a few things:<br />
* tertium (own non-posix libc)<br />
* ecore (unix utilities)<br />
* ccore (complementary core, mostly heirloom-toolchest)<br />
* ports (source-based package manager)<br />
* simia (posix compatibility layer upon tertium, supposed to replace musl later)<br />
* venus (binary package manager)<br />
<br />
The system is built with simplicity in mind, so the tools that compose the base system are selected with this in mind.<br />
<br />
A few uncommon things, worth to citate:<br />
* the entire system is statically linked<br />
* the filesystem hierarchy is the standard, but with /usr as link to /<br />
* manpages are compressed with zlib (.zz)<br />
* sinit and perp compose the init system<br />
* rc is the default shell (dash is the posix one)<br />
<br />
I'm now deciding how to provide a more complete desktop, i have tried to add Xorg to ports but it has being painful to make it work statically (a LOT of dependencies, cyclic dependencies with drivers, ignoring flags, etc.).<br />
<br />
Links:<br />
<a href="https://eltan.in.net" target="_blank" rel="noopener" class="mycode_url">https://eltan.in.net</a><br />
<a href="https://github.com/eltanin-os" target="_blank" rel="noopener" class="mycode_url">https://github.com/eltanin-os</a><br />
<a href="https://gitlab.com/eltanin-os" target="_blank" rel="noopener" class="mycode_url">https://gitlab.com/eltanin-os</a><br />
<a href="https://git.tuxfamily.org/eltaninos" target="_blank" rel="noopener" class="mycode_url">https://git.tuxfamily.org/eltaninos</a><br />
<br />
Please leave your opinions and feel free to ask anything.]]></description>
			<content:encoded><![CDATA[I'm building an operating system, or so is the intention, and i have started with the userland (which should run upon any posix system) as it were the thing, specially on Linux, that i were more discontent with, the result is the current distro that i am building "Glacies", that is the "Eltanin" userland with Linux as kernel.<br />
<br />
<a href="https://cloud.disroot.org/s/jGzYHPgZwNi5sfg/preview" target="_blank" rel="noopener" class="mycode_url"><img src="https://cloud.disroot.org/s/jGzYHPgZwNi5sfg/preview" width="350" height="260" alt="[Image: preview]" class="mycode_img" loading="lazy" /></a><br />
<br />
All is still in pretty early stage, but i have done quite a few things:<br />
* tertium (own non-posix libc)<br />
* ecore (unix utilities)<br />
* ccore (complementary core, mostly heirloom-toolchest)<br />
* ports (source-based package manager)<br />
* simia (posix compatibility layer upon tertium, supposed to replace musl later)<br />
* venus (binary package manager)<br />
<br />
The system is built with simplicity in mind, so the tools that compose the base system are selected with this in mind.<br />
<br />
A few uncommon things, worth to citate:<br />
* the entire system is statically linked<br />
* the filesystem hierarchy is the standard, but with /usr as link to /<br />
* manpages are compressed with zlib (.zz)<br />
* sinit and perp compose the init system<br />
* rc is the default shell (dash is the posix one)<br />
<br />
I'm now deciding how to provide a more complete desktop, i have tried to add Xorg to ports but it has being painful to make it work statically (a LOT of dependencies, cyclic dependencies with drivers, ignoring flags, etc.).<br />
<br />
Links:<br />
<a href="https://eltan.in.net" target="_blank" rel="noopener" class="mycode_url">https://eltan.in.net</a><br />
<a href="https://github.com/eltanin-os" target="_blank" rel="noopener" class="mycode_url">https://github.com/eltanin-os</a><br />
<a href="https://gitlab.com/eltanin-os" target="_blank" rel="noopener" class="mycode_url">https://gitlab.com/eltanin-os</a><br />
<a href="https://git.tuxfamily.org/eltaninos" target="_blank" rel="noopener" class="mycode_url">https://git.tuxfamily.org/eltaninos</a><br />
<br />
Please leave your opinions and feel free to ask anything.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[The userland problems]]></title>
			<link>https://nixers.net/Thread-The-userland-problems</link>
			<pubDate>Thu, 07 Nov 2019 00:14:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1956">eadwardus</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-The-userland-problems</guid>
			<description><![CDATA[Most of the "standard" linux userland (in here i'm referring to the most fundamental parts), in my opinion, suffers from bad quality implementations and/or interfaces.<br />
For example the current "standard" is:<br />
Grub, Glibc, SystemD (and its companions), GNU Coreutils<br />
All of those, falls in one or both of that problems, what accumulates to result in a bloated non-reliable system.<br />
<br />
And a more general problem (this one affects any POSIX system) for unix utitilities is the lack of consistency, we are supposed to have one tool, each one with its own job, but we instead have a LOT of duplication and out of context flags for most unix utilities, a simple example is the recursion flag '-R' while we already have another utility to do recursion (find(1)).<br />
<br />
We also have the problem of no co-work between the system; for example if you are using some scripting language to interact with the system that is not shell, you probably will suffer to make the unix utilities interoperate with it.<br />
<br />
How to deal with those problems?<br />
1-: Using alternatives is becoming harder,  as software in general tends to born/grow in the same style, with little care about the "underneath quality". What alternatives you know? which of those would compose your "ideal" system?<br />
2-: Should we ignore other things such as performance and "convenience" to have as much consistency as possible?  Is even possible to break posix-compatibility and stay relevant?<br />
3-: Maybe we should have a "coreutils-lib" written in C to give others language a way to interoperate with the unix utilities, or should they rely only on their own std lib?<br />
<br />
What are your opinions in all of this? what things do you think that should change?]]></description>
			<content:encoded><![CDATA[Most of the "standard" linux userland (in here i'm referring to the most fundamental parts), in my opinion, suffers from bad quality implementations and/or interfaces.<br />
For example the current "standard" is:<br />
Grub, Glibc, SystemD (and its companions), GNU Coreutils<br />
All of those, falls in one or both of that problems, what accumulates to result in a bloated non-reliable system.<br />
<br />
And a more general problem (this one affects any POSIX system) for unix utitilities is the lack of consistency, we are supposed to have one tool, each one with its own job, but we instead have a LOT of duplication and out of context flags for most unix utilities, a simple example is the recursion flag '-R' while we already have another utility to do recursion (find(1)).<br />
<br />
We also have the problem of no co-work between the system; for example if you are using some scripting language to interact with the system that is not shell, you probably will suffer to make the unix utilities interoperate with it.<br />
<br />
How to deal with those problems?<br />
1-: Using alternatives is becoming harder,  as software in general tends to born/grow in the same style, with little care about the "underneath quality". What alternatives you know? which of those would compose your "ideal" system?<br />
2-: Should we ignore other things such as performance and "convenience" to have as much consistency as possible?  Is even possible to break posix-compatibility and stay relevant?<br />
3-: Maybe we should have a "coreutils-lib" written in C to give others language a way to interoperate with the unix utilities, or should they rely only on their own std lib?<br />
<br />
What are your opinions in all of this? what things do you think that should change?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Global Aur equivalent]]></title>
			<link>https://nixers.net/Thread-Global-Aur-equivalent</link>
			<pubDate>Tue, 04 Dec 2018 23:58:35 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1898">eduarch42</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Global-Aur-equivalent</guid>
			<description><![CDATA[Hi, this is my first post, <br />
<br />
Imagine an all distro compatible AUR equivalent, will it be easy to maintain or will it be even possible?<br />
<br />
What do you guys think?]]></description>
			<content:encoded><![CDATA[Hi, this is my first post, <br />
<br />
Imagine an all distro compatible AUR equivalent, will it be easy to maintain or will it be even possible?<br />
<br />
What do you guys think?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[moving towards a completely "free" (gentoo) system]]></title>
			<link>https://nixers.net/Thread-moving-towards-a-completely-free-gentoo-system</link>
			<pubDate>Tue, 20 Nov 2018 16:48:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1903">aeymxq</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-moving-towards-a-completely-free-gentoo-system</guid>
			<description><![CDATA[i'm relatively new to linux, and only recently came across the controversy surrounding systemd (i'm running arch btw). my first experience with linux as a teenager was with ubuntu, but i quickly migrated to slackware because its og status appealed to me. it seems like the controversy surrounding systemd is fairly nitpicky, more based on unix philosophy than any actual questions of performance, but i am down with that philosophy. knowing that systemd breaks fundamental tenets of unix design does turn me off--admittedly, because i am fairly ignorant, without good reason.<br />
<br />
reading about systemd lead me to read about gnu / free software, which is obviously a concept that i was familiar with, but didn't properly understand. after watching a few interviews with RMS, even disregarding computers--we share very similar political ideologies, and the philosophy of "free software as in free" is actually more relevant to me than whether or not something is posix compliant. that latter concept is specific to programming, and as a baby, amateur programmer whose IRL background is in philosophy and marxist politics, it is more abstract than the gnu ideology.<br />
<br />
let me first say that my machine is a thinkpad x1c (5th gen.), so there are blobs and intel MEs and yadda yadda which make it so that i can't actually run libreboot--you may be able to tell that my understanding is getting hazy. however, with that exception in mind, i am now thinking of switching from arch to a gentoo-based system. i know that gentoo is not officially endorsed by gnu, and RMS explicitly says that he doesn't like it, but afaict it's possible to install gentoo with completely free software.<br />
<br />
at this point i'm fairly committed to installing gentoo because i know that it will be extremely educational, and i have not really approached linux / programming in any kind of systematic way. that said, all of the knowledge i've acquired through installing and ricing my arch system really strokes my brain in a deeply pleasurable way. maybe it's just because i'm new to this discipline and it's easy to really get off on things when you're new, but based on how easy it is for me to spend hours figuring something out about my system VS. how difficult it is for me to spend hours writing a philosophy essay makes me think that i was actually born to be a computer guy...but whatever, i digress.<br />
<br />
i apologize for the long, rambly post. the general questions i put to you are something like: how much do you think it actually matters to run completely GPL-compliant software? should i expect a significant loss of performance / usability of my computer?<br />
<br />
also, does it make any sense to try to set up a fully liberated linux system when i am prohibited from completely breaking free because of my computer's processor?<br />
<br />
if anyone wants to share their experience installing gentoo using only free software, i'm very interested to hear. if anyone wants to encourage me to switch to gentoo as an educational experience, i could use that too.<br />
<br />
thanks for reading!<br />
<br />
p.s. i'm going to post this on reddit because idk how active this forum actually is, apologies if that's disrespectful.]]></description>
			<content:encoded><![CDATA[i'm relatively new to linux, and only recently came across the controversy surrounding systemd (i'm running arch btw). my first experience with linux as a teenager was with ubuntu, but i quickly migrated to slackware because its og status appealed to me. it seems like the controversy surrounding systemd is fairly nitpicky, more based on unix philosophy than any actual questions of performance, but i am down with that philosophy. knowing that systemd breaks fundamental tenets of unix design does turn me off--admittedly, because i am fairly ignorant, without good reason.<br />
<br />
reading about systemd lead me to read about gnu / free software, which is obviously a concept that i was familiar with, but didn't properly understand. after watching a few interviews with RMS, even disregarding computers--we share very similar political ideologies, and the philosophy of "free software as in free" is actually more relevant to me than whether or not something is posix compliant. that latter concept is specific to programming, and as a baby, amateur programmer whose IRL background is in philosophy and marxist politics, it is more abstract than the gnu ideology.<br />
<br />
let me first say that my machine is a thinkpad x1c (5th gen.), so there are blobs and intel MEs and yadda yadda which make it so that i can't actually run libreboot--you may be able to tell that my understanding is getting hazy. however, with that exception in mind, i am now thinking of switching from arch to a gentoo-based system. i know that gentoo is not officially endorsed by gnu, and RMS explicitly says that he doesn't like it, but afaict it's possible to install gentoo with completely free software.<br />
<br />
at this point i'm fairly committed to installing gentoo because i know that it will be extremely educational, and i have not really approached linux / programming in any kind of systematic way. that said, all of the knowledge i've acquired through installing and ricing my arch system really strokes my brain in a deeply pleasurable way. maybe it's just because i'm new to this discipline and it's easy to really get off on things when you're new, but based on how easy it is for me to spend hours figuring something out about my system VS. how difficult it is for me to spend hours writing a philosophy essay makes me think that i was actually born to be a computer guy...but whatever, i digress.<br />
<br />
i apologize for the long, rambly post. the general questions i put to you are something like: how much do you think it actually matters to run completely GPL-compliant software? should i expect a significant loss of performance / usability of my computer?<br />
<br />
also, does it make any sense to try to set up a fully liberated linux system when i am prohibited from completely breaking free because of my computer's processor?<br />
<br />
if anyone wants to share their experience installing gentoo using only free software, i'm very interested to hear. if anyone wants to encourage me to switch to gentoo as an educational experience, i could use that too.<br />
<br />
thanks for reading!<br />
<br />
p.s. i'm going to post this on reddit because idk how active this forum actually is, apologies if that's disrespectful.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Linux CoC]]></title>
			<link>https://nixers.net/Thread-Linux-CoC</link>
			<pubDate>Tue, 18 Sep 2018 18:07:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1883">Steph</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Linux-CoC</guid>
			<description><![CDATA[I see a lot of people freaking out about the recent changes to the linux Code of Conduct. <br />
<br />
What's the big deal about?<br />
What's wrong with promoting a more open atmosphere for an open project?]]></description>
			<content:encoded><![CDATA[I see a lot of people freaking out about the recent changes to the linux Code of Conduct. <br />
<br />
What's the big deal about?<br />
What's wrong with promoting a more open atmosphere for an open project?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Struggling to use linux in college]]></title>
			<link>https://nixers.net/Thread-Struggling-to-use-linux-in-college</link>
			<pubDate>Sun, 24 Dec 2017 21:50:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1311">Houseoftea</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Struggling-to-use-linux-in-college</guid>
			<description><![CDATA[Hey everyone, <br />
I thought I would share what I have been working on recently. <br />
<br />
Sadly this past semester I was forced to scrap my lean debian system and use OS X +  a windows 7 vm to get my school work done. <br />
<br />
Being an economics major, I'm constantly using excel, and ran into issues using libre office calc. Most professors also insist upon posting their assignments in .docx format, which was really difficult to deal with on my linux machine that lacked a real WYSISYG word processor. Another difficulty I ran into was that class presentations are often done with powerpoint, I had originally planned to use the suckless tool sent for this, but professors like to have a copy of the presentation to view and are used to getting .ppt files to view in powerpoint.<br />
<br />
Because of the switch I had to make, my productivity and workflow both suffered. I had to use the mouse a whole lot more. Instead of neat tiles, I had to drag and dig through windows to find what I was looking for. There was always a new update to be installed which would pop up in the corner, there was always something flashing around on screen. I knew I needed to get back to my linux set up.<br />
<br />
Now that I have some more time over break, I want to prepare a linux set up for the spring semester. <br />
<br />
What I want:<br />
 * Avoid using a virtual machine and the OS X / windows operating systems<br />
 * Find vim plugins that can ease in essay writing (live preview of markup!)<br />
 * Devise a way to handle .docx files (conversion?)<br />
 * Figure out how to get the functionality of excel through the command line (perhaps a program like sc?)<br />
 * Devise a way to handle .xls files<br />
 * Transition to using sent for presentations<br />
 * Editing pdf's on linux?<br />
<br />
In particular I'm afraid of being unable to replace microsoft excel. <br />
<br />
If anyone has advice or has experience using linux during college I would love to hear!]]></description>
			<content:encoded><![CDATA[Hey everyone, <br />
I thought I would share what I have been working on recently. <br />
<br />
Sadly this past semester I was forced to scrap my lean debian system and use OS X +  a windows 7 vm to get my school work done. <br />
<br />
Being an economics major, I'm constantly using excel, and ran into issues using libre office calc. Most professors also insist upon posting their assignments in .docx format, which was really difficult to deal with on my linux machine that lacked a real WYSISYG word processor. Another difficulty I ran into was that class presentations are often done with powerpoint, I had originally planned to use the suckless tool sent for this, but professors like to have a copy of the presentation to view and are used to getting .ppt files to view in powerpoint.<br />
<br />
Because of the switch I had to make, my productivity and workflow both suffered. I had to use the mouse a whole lot more. Instead of neat tiles, I had to drag and dig through windows to find what I was looking for. There was always a new update to be installed which would pop up in the corner, there was always something flashing around on screen. I knew I needed to get back to my linux set up.<br />
<br />
Now that I have some more time over break, I want to prepare a linux set up for the spring semester. <br />
<br />
What I want:<br />
 * Avoid using a virtual machine and the OS X / windows operating systems<br />
 * Find vim plugins that can ease in essay writing (live preview of markup!)<br />
 * Devise a way to handle .docx files (conversion?)<br />
 * Figure out how to get the functionality of excel through the command line (perhaps a program like sc?)<br />
 * Devise a way to handle .xls files<br />
 * Transition to using sent for presentations<br />
 * Editing pdf's on linux?<br />
<br />
In particular I'm afraid of being unable to replace microsoft excel. <br />
<br />
If anyone has advice or has experience using linux during college I would love to hear!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[utmp]]></title>
			<link>https://nixers.net/Thread-utmp</link>
			<pubDate>Wed, 19 Apr 2017 21:28:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1613">robotchaos</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-utmp</guid>
			<description><![CDATA[anyone using the suckless 'utmp'? i'm having difficulties figuring out how to use it...]]></description>
			<content:encoded><![CDATA[anyone using the suckless 'utmp'? i'm having difficulties figuring out how to use it...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Eudyptula Challenge]]></title>
			<link>https://nixers.net/Thread-Eudyptula-Challenge</link>
			<pubDate>Fri, 24 Mar 2017 09:21:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://nixers.net/member.php?action=profile&uid=1609">pyratebeard</a>]]></dc:creator>
			<guid isPermaLink="false">https://nixers.net/Thread-Eudyptula-Challenge</guid>
			<description><![CDATA[Hey guys,<br />
<br />
Has anybody here heard of the <a href="http://eudyptula-challenge.org/" target="_blank" rel="noopener" class="mycode_url">Eudyptula Challenge</a>?<br />
<br />
The description taken from their website:<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>The Eudyptula Challenge is a series of programming exercises for the Linux kernel, that start from a very basic "Hello world" kernel module, moving on up in complexity to getting patches accepted into the main Linux kernel source tree.</blockquote>
<br />
It was announced this morning in their mailing list that they will no longer accept new participants when they reach 20k people.  Currently they have around 19k (only 149 have completed!).<br />
<br />
I signed up to it a few weeks ago but with moving countries haven't had the time to do much with it.<br />
<br />
If anybody has worked on it I would be interested to hear your thoughts on the challenge, no spoilers though!]]></description>
			<content:encoded><![CDATA[Hey guys,<br />
<br />
Has anybody here heard of the <a href="http://eudyptula-challenge.org/" target="_blank" rel="noopener" class="mycode_url">Eudyptula Challenge</a>?<br />
<br />
The description taken from their website:<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>The Eudyptula Challenge is a series of programming exercises for the Linux kernel, that start from a very basic "Hello world" kernel module, moving on up in complexity to getting patches accepted into the main Linux kernel source tree.</blockquote>
<br />
It was announced this morning in their mailing list that they will no longer accept new participants when they reach 20k people.  Currently they have around 19k (only 149 have completed!).<br />
<br />
I signed up to it a few weeks ago but with moving countries haven't had the time to do much with it.<br />
<br />
If anybody has worked on it I would be interested to hear your thoughts on the challenge, no spoilers though!]]></content:encoded>
		</item>
	</channel>
</rss>