Why n*x


91 posts   Page 4 of 4   1, 2, 3, 4
by DavidS » Sun Jun 17, 2012 2:42 pm
jamesh wrote:Up front cast iron specs don't work. Look at any government project for evidence of that


Can not argue that. That is the reason that it is only designed down to the module level, and beyond that is implementation time design. The agree on interface for a procedure rule is at implementation and needed, if the interface to a procedure changes after it is being called from many others you break it. And the first version is only the first version. With most mid sized projects following my rules the first version takes about one month. Larger projects, it depends on the project. Part of the idea is to keep the first version so simple that it can be completed in a short period. In practice the v1.0.0 mentioned in my rules (written when I was 13 years old) is actually v0.0.1, and then is revised many times.
ARM Assembly Language: For those that want: Simple, Powerful, Easy to learn, and Easy to debug.
User avatar
Posts: 1251
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
by johnbeetem » Sun Jun 17, 2012 2:58 pm
In honor of USA Father's Day, a quote from Mark Twain:
When I was a boy of fourteen, my father was so ignorant I could hardly stand to have the old man around. But when I got to be twenty-one, I was astonished by how much he'd learned in seven years.
User avatar
Posts: 942
Joined: Mon Oct 17, 2011 11:18 pm
Location: The Coast
by tufty » Sun Jun 17, 2012 4:46 pm
Up front cast iron specs /can/ work. All you need is a situation where the requirements don't change before delivery of a particular version.
Posts: 1367
Joined: Sun Sep 11, 2011 2:32 pm
by DavidS » Sun Jun 17, 2012 4:55 pm
tufty wrote:Up front cast iron specs /can/ work. All you need is a situation where the requirements don't change before delivery of a particular version.

Well if the requirements change, that is another version :) .
As long as the software engineer always remembers that the implementation of any module/procedure can change (so long as the interface does NOT change).

The main thing is Optimize, Debug, Optimize, Debug, Debug, debug. And of course; never rely on code written by another to be well debugged or optimized (even if it is just a standard library).
ARM Assembly Language: For those that want: Simple, Powerful, Easy to learn, and Easy to debug.
User avatar
Posts: 1251
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
by DavidS » Sun Jun 17, 2012 5:01 pm
And I forgot: Always know that even after you go to extremes in debugging, there will always be bugs left to find, so be willing to fix them once they are found. Know as well, that no matter how well you have optimized your code, it can always be better optimized, so always be ready to further optimize once you figure out a better way to implement something.
ARM Assembly Language: For those that want: Simple, Powerful, Easy to learn, and Easy to debug.
User avatar
Posts: 1251
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
by doobedoobedo » Sun Jun 17, 2012 5:16 pm
tufty wrote:Up front cast iron specs /can/ work. All you need is a situation where the requirements don't change before delivery of a particular version.

So you only have 5 minutes from receiving the spec to release?
Posts: 36
Joined: Sun Aug 28, 2011 11:03 pm
by msemtd » Sun Jun 17, 2012 5:35 pm
TL;DR

Why n*x? Because it works (for the best (but not all) definitions of "works"). Apologies if anyone already answered this :lol:

Nothing more to see here. Move along, move along...
Posts: 10
Joined: Wed Jun 13, 2012 8:09 am
by tufty » Sun Jun 17, 2012 5:37 pm
doobedoobedo wrote:
tufty wrote:Up front cast iron specs /can/ work. All you need is a situation where the requirements don't change before delivery of a particular version.

So you only have 5 minutes from receiving the spec to release?

I know where you're coming from (often you have ~5 minutes from getting client signoff on the requirements), but it rather depends on the field you're working in. For instance way back in the dim and distant past, I worked for a major high street bank writing software for their cashpoint network. We worked to totally ironclad specs, and the only time we ever broke anything (in fact, I personally took down cashpoint for the weekend, oops) was due to some enforced "cowboy coding" at the last minute. Likewise when I was working for 'the' major UK airline's engineering department. Because lives are worth something. And the stock market. And the financial futures exchange. Yes, requirements change, but in many cases you know about it well in advance.

Simon
Posts: 1367
Joined: Sun Sep 11, 2011 2:32 pm
by AndrewS » Wed Jun 20, 2012 6:22 pm
DavidS wrote:no matter how well you have optimized your code, it can always be better optimized, so always be ready to further optimize once you figure out a better way to implement something.

IMHO it depends if there's a need for optimizing the code (e.g. frame-rate in a game) or if you're just optimising for the sake of optimising. The latter can be counter-productive e.g. by making the code harder to understand, or introducing subtle side-effect bugs.
Last edited by AndrewS on Wed Jun 20, 2012 6:32 pm, edited 1 time in total.
User avatar
Posts: 3577
Joined: Sun Apr 22, 2012 4:50 pm
Location: Cambridge, UK
by AndrewS » Wed Jun 20, 2012 6:31 pm
DavidS wrote:Also I should note that the problem sited at the start of this thread is not n*x in and of itself, though rather the bloated variants that we currently have. Unfortunately creating another n*x is just an invite to port all the bloat to another n*x.

If you define what limitations you're willing to put up with, you can strip out a lot of the 'bloat'. Look at http://distro.ibiblio.org/tinycorelinux/ for an example.

Being realistic, do you realy think that KDE or GNOME is easier to use than GEM?

Ermm, hands up all those that have used GEM? :roll:
Should business users still be using Windows3.1 instead of Windows7? ;) (sorry, cheap jibe)
User avatar
Posts: 3577
Joined: Sun Apr 22, 2012 4:50 pm
Location: Cambridge, UK
by jamesh » Wed Jun 20, 2012 9:15 pm
If people really want specs more than 3 days before some vital deadline, I suggest they never work for Samsung.
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11651
Joined: Sat Jul 30, 2011 7:41 pm
by johnbeetem » Wed Jun 20, 2012 9:38 pm
AndrewS wrote:Should business users still be using Windows3.1 instead of Windows7? ;) (sorry, cheap jibe)

No, they should be using Windows 2000, which is the only version of Windows I ever liked. It's all been downhill since then IMO.
User avatar
Posts: 942
Joined: Mon Oct 17, 2011 11:18 pm
Location: The Coast
by obarthelemy » Thu Jun 21, 2012 1:28 pm
jamesh wrote:Up front cast iron specs don't work. Look at any government project for evidence of that


Or is it "Large government projects" don't work ? ^^
Posts: 1399
Joined: Tue Aug 09, 2011 10:53 pm
by Pirx-Danford » Wed Jun 27, 2012 2:52 pm
obarthelemy wrote:
jamesh wrote:Up front cast iron specs don't work. Look at any government project for evidence of that


Or is it "Large government projects" don't work ? ^^


In order for government projects to work you would need public servants that work.

Find the mistake.
Posts: 62
Joined: Thu Oct 06, 2011 2:05 pm
by 6677 » Tue Jul 17, 2012 7:29 pm
I'm going to ignore everything else said so far because its going over my head a little now (and I only got half way through page 3).

Why n*x?
Because it works, sure its bloated but theres nothing preventing someone from stripping the bloat off for a dedicated rasberry pi OS (or just a generic lightweight linux kernel), can probably be done.

Why write your own?
Its educational, some find it fun, and wasn't linux made for no particular reason. There may be a 99% chance of this failing but theres still that 1% chance of something revolutionary coming out of it. One of the things I wanted to do with my pi (when I can afford one, yes I said that) was write an OS (I have some limited assembly experience). I've now decided that actually thats a bad idea because my assembly skills are probably too limited, kinda looking at the Cosmos project instead, arm support is planned eventually but they have other things to deal with currently.

OP:
I wish you the best of luck in this endeavor, even if its just a bootable command line not a nix killer it will still be awesome that someone has booted their own code on the pi.
Posts: 382
Joined: Wed Mar 14, 2012 9:23 pm
by DavidS » Tue Jan 15, 2013 6:15 pm
It has been a while since I have loked at this thread. Havin had my RPi now for ony a few days, I have been workng on finnishing up my OS, There are things that needed to be added, and moified that were found during testing on real HW. I had not yet implemented a USB driver, though had created an interface specification for the KB & mouse Drivers. I am thankfull for the Chadderz CSUD USB Driver, that I have modified for my OS. Hopefully soon I will have my OS running simi-stable. And I have decided once it works I will release it as a pre-alpa. Thankfully I whas able to do most of the development using a simple homebrewed emulator.

Though I am now begging to learn a bit about programming the VdeoCore IV processors, and as such will likely be making some significant changes to parts of my operating system after I get it woking completely in ARM code.

Also this thread caused me to reevaluate the wording of the rules of programming that I had written. I do see that 1: They are misseading and 2: They apear to mention absolutes where things are not absolute and 3: They appear to be applied to a final project, though they are intended for small sections of a project (the little chunks that you can do in a few hours). and 4: they neglect to mention that a given portion may, later, need to be completely redisigned.
ARM Assembly Language: For those that want: Simple, Powerful, Easy to learn, and Easy to debug.
User avatar
Posts: 1251
Joined: Thu Dec 15, 2011 6:39 am
Location: USA