James Molloy tutorial gone

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Lionel
Member
Member
Posts: 117
Joined: Fri Jul 16, 2010 2:16 pm
Libera.chat IRC: ryanel
Location: California

Re: James Molloy tutorial gone

Post by Lionel »

It is back up.
wikiwolf
Posts: 13
Joined: Sun Apr 24, 2011 10:51 am

Re: James Molloy tutorial gone

Post by wikiwolf »

gravaera wrote: 1. Why are you using somebody else's code?
Because when I started I was only a C++ programmer with no experience in system programming...
Since it's not released, no licensing problems should occour, right?
Right now, the jamesm code is a very little part of the codebase and since it work with my code trought an interface, replacing it is only a matter of time.
gravaera wrote: 2. How could your project be ready for release when it relies on known, flawed code?
with 'release' I was speaking of alpha, nightbuild release... the system is not yet complete at this stage.
The jamesm is C code, I ported it to C++, modularized and corrected bugs. It's no longer vanilla code from tutorials.

gravaera wrote: 3. Where exactly do you think you're going with this lack-luster effort?
My objective is to learn system programming and I do it in free time. Problems?

I think we're going a little off-topic. Let's stop here, please.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: James Molloy tutorial gone

Post by gravaera »

No well designed kernel can use code from the JamesM series. Any kernel which has been designed portably, extensibly and with any real thought cannot use code from that article collection. It's meant to demonstrate ideas and not to be incorporated. From the time you paste any code from that series into your kernel, you know that it is flawed from day one.
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Synon
Member
Member
Posts: 169
Joined: Sun Sep 06, 2009 3:54 am
Location: Brighton, United Kingdom

Re: James Molloy tutorial gone

Post by Synon »

gravaera wrote:No well designed kernel can use code from the JamesM series. Any kernel which has been designed portably, extensibly and with any real thought cannot use code from that article collection. It's meant to demonstrate ideas and not to be incorporated. From the time you paste any code from that series into your kernel, you know that it is flawed from day one.
That's silly. When you learn to write games, you don't write an MMORPG with professional 3D graphics and a perfectly designed industry-quality game engine. You start off with something simple - a PacMan clone or even just a guy walking around. When you learn how to write a compiler, you don't write an optimising cross-platform C++ compiler, you write something simpler - maybe a Brainfuck compiler or a 6502 assembler. When you learn to write emulators you don't start with a fully featured x86 emulator. Similarly, when you learn to write a kernel, your goal shouldn't be to write the perfect kernel, with hitherto unthinkable features and brand new concepts; you write a UNIX or DOS clone, or something simple. You're learning how operating systems work and how to write one, not starting an OS revolution.

Maybe you can write a kernel so great your first time that academics and students study it and create derivatives of it (one of which is now the third most popular desktop OS in the world, and almost ubiquitous on servers). Most of us can't. Most of us have to learn how to do something before we actually do it.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: James Molloy tutorial gone

Post by gravaera »

But for all of those cases, you don't paste code from another project into your tree and then call it yours. You, as you yourself said, write some preliminary code and think about the problem, design a solution, and read about current practices to see how the industry has come to do it, how that matches up with your own initial solution, and what optimizations current practice has to offer in the event that your first-shot design was proven viable.

Again, in none of those cases do you begin copying and pasting code from anywhere and calling it your project...hopefully.
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: James Molloy tutorial gone

Post by Solar »

wikiwolf wrote:Since it's not released, no licensing problems should occour, right?
The license of a piece of code is whatever license the code is put under. If there is no license statement, that implicitly means "all rights reserved, no license given". Whether something is "released" or not does not matter.
Every good solution is obvious once you've found it.
wikiwolf
Posts: 13
Joined: Sun Apr 24, 2011 10:51 am

Re: James Molloy tutorial gone

Post by wikiwolf »

Solar wrote: The license of a piece of code is whatever license the code is put under. If there is no license statement, that implicitly means "all rights reserved, no license given". Whether something is "released" or not does not matter.
mh, this makes sense... but how useful can be a tutorial code that you can not modify to see what happens?
I mean: "hey, the GDT have the first descriptor set to zero, what happen if I remove it?" (yeah is a really dummy example...)
gravaera wrote: But for all of those cases, you don't paste code from another project into your tree and then call it yours. You, as you yourself said, write some preliminary code and think about the problem, design a solution, and read about current practices to see how the industry has come to do it, how that matches up with your own initial solution, and what optimizations current practice has to offer in the event that your first-shot design was proven viable.

Again, in none of those cases do you begin copying and pasting code from anywhere and calling it your project...hopefully.
The project obviously is mine, this not means that I'm claiming the jamesm code to be mine.

I'm not very used to licensing, if (as Solar said) the jamesm license do not permit to hack on code privately then I apologize and remove it immediately; I'm going to rewrite it anyway, as I said before, because I want to find my own way of doing things... I just wanted to play with the vesafb before caring of the x86 details.


#EDIT: Done, code removed.
Last edited by wikiwolf on Mon Dec 26, 2011 4:52 am, edited 1 time in total.
orafy
Posts: 12
Joined: Thu Aug 12, 2010 9:05 pm

Re: James Molloy tutorial gone

Post by orafy »

We can copy/paste some of its asm code, multiboot part, readEIP() function..
Still useful.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: James Molloy tutorial gone

Post by Kevin »

Solar wrote:The license of a piece of code is whatever license the code is put under. If there is no license statement, that implicitly means "all rights reserved, no license given". Whether something is "released" or not does not matter.
"no license given" isn't the full truth, you don't need a license for everything. For example, even though it's not written anywhere, you're not only allowed, but in fact supposed to read the text. If no license is given, the rules of the copyright law of your country apply unchanged. Copyright law is mostly about publishing, so as long as you use the code only for yourself and don't distribute any copies of your OS (i.e. it gets "released"), why should there be any problem?
Developer of tyndur - community OS of Lowlevel (German)
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: James Molloy tutorial gone

Post by Combuster »

Because no license basically includes the prohibition to show it off to your friends.

After all, that's what everybody wants, right :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: James Molloy tutorial gone

Post by JamesM »

To alleviate any problems and to inform everyone:

Many people have contacted me regarding copying, modifying and redistributing the tutorial series on my site. As you're aware there is no explicit license or disclaimer on the site.

As I've said to everyone, I'll say here.

I hereby revoke all rights to (but not ownership of) the code and text contained at http://www.jamesmolloy.co.uk/tutorial_html and related subdirectories. The contents of said subdirectories are released with no restrictions - be that to modification or redistribution.

This comes with the following request (and I do stress request), that redistributed or modified code maintains a link to the site from which it came - for example the "From JamesM's tutorials" comment header available in all files.

I have no intention of persuing any sort of copyright or licence related claim whatsoever, with the sole exception of if someone somehow uses those tutorials as something libellous against me. Which isn't going to happen, so for all intents and purposes go ahead, I honestly couldn't care less and although they're poorly written, I'm glad they've helped you.

EDIT: Shameless as it is, it's Christmas. I'm working still on rewriting those tutorials, and if they've helped you or you feel like it, why not buy me a beer via paypal? ;) [email protected].

Cheers,

James
Synon
Member
Member
Posts: 169
Joined: Sun Sep 06, 2009 3:54 am
Location: Brighton, United Kingdom

Re: James Molloy tutorial gone

Post by Synon »

gravaera wrote:But for all of those cases, you don't paste code from another project into your tree and then call it yours. You, as you yourself said, write some preliminary code and think about the problem, design a solution, and read about current practices to see how the industry has come to do it, how that matches up with your own initial solution, and what optimizations current practice has to offer in the event that your first-shot design was proven viable.

Again, in none of those cases do you begin copying and pasting code from anywhere and calling it your project...hopefully.
If someone downloaded James M's kernel, modified a little bit of the code, and then called it their own, that would be plagiarism. If someone looked at the tutorial and copied the code verbatim, that would be plagiarism. Additionally, they wouldn't have learned much, if anything at all. But it's different if you read through the tutorial and write your own code based on what James M has written (which is what I do; I restructure the code, format it the way I like, name things the way I want, etc. and most importantly, I make it my own, and I understand it). That's not plagiarism, it's creating a derivative work. If you distribute it, it might still be illegal (depending on the license James M uses) but as long as you don't distribute it, you're not doing anything wrong. When the whole thing actually works, having gained an understanding of how it actually works, you can rewrite any code that isn't your own.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: James Molloy tutorial gone

Post by JamesM »

berkus wrote:What was the beer price in your region again?

Like the loch ness monster in South Park, around £3.50...
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: James Molloy tutorial gone

Post by gravaera »

Tree fiddy to be exact :wink:
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Post Reply