User talk:DavidCary

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Authoring webpages[edit source]

I've answered your question at Talk:Authoring Webpages, and have a question for you in return.--Branko 17:59, 4 January 2006 (UTC)[reply]

Disincentives to growth[edit source]

What makes Wikipedia work that is hard to reproduce (or needs to be pursued diligently) at Wikibooks:

  • At Wikipedia it is easy for a newbie to create a useful stub/seed in a few minutes. Could Wikibooks devise a way to encourage creating small how-tos that might blossom into complete texts?
  • The information Wikipedia presents is more popular than at Wikibooks, and naturally attracts more editors. Could Wikibooks somehow increase its popular attraction?
  • At Wikipedia it is generally possible to get an article overview in a matter of seconds by perusing a page, this makes contributing to an article in an orderly way a low-cost effort. Could Wikibooks find a way to make textbook organization more transparent and less intimidating to the casual visitor? Kupord Maizzed 20:02, 17 Aug 2004 (UTC)

One possibility to seed the early growth of Wikibooks is to capitalize on the How-to or recipe concept. Multitudes from all over are anxious to share their knowledge of how to do a certain task, though they may not be disposed to write a textbook. Perhaps Wikibooks could encourage writing "problem", "example", "recipe", or "solution" articles that can be building blocks for complete texts that are more friendly and useful than any texts heretofore seen. Kupord Maizzed 20:02, 17 Aug 2004 (UTC)

Top active on main page[edit source]

Hi, I took out the "edit" button from Top active on main page, because the list is not meant to be edited by everybody.. at least first-time users should not be able to easily click on "edit" to change the SQL generated ranking. An expert like you will know anyway how to make small modifications. --Andreas 18:31, 28 Feb 2005 (UTC)

Gumba gumba[edit source]

He just got a new username User:GumbaGumba. Apparently doesn't understand the concept of stealth...  :-) - Omegatron 23:12, 22 Apr 2005 (UTC)


Thanks![edit source]

Man tackar, yeah there seems to be an awful lot to do, my grammar is somewhere down in the basement, but I'll start writing some material and others can come in and straighten things up. Salleman 20:31, 14 May 2005 (UTC)[reply]

FHSST Physics Electronics[edit source]

Hi David, thanks for adding to the Electronics section of the FHSST Physics book. Its a real disaster and at the moment we've got nobody looking into it. Any help is greatly appreciated!

Marknewlyn 00:04, 4 Jun 2005 (UTC)

Lord's Table[edit source]

Hello, thanks for your interest. On my talk page, I put an example of table under your comment without <break> in first column and no wrap occurred. We can work together, so tell me what you think about Modernity and/or parallel version. Plan to only parallel the first chapter as example and concentrate on Modernity itself. Had to answer Portress so I am running out of time, but input is input and much appreciated. The prologue must be right on target. Made some changes suggested by Portress. More later. - Athrash | {Talk) 10:08, 8 Jun 2005 (UTC)

My last statement under your test table is predicated on the seeming lack of public domain Strong's Concordance, another Wikibook possibility? - Athrash | {Talk) 23:00, 8 Jun 2005 (UTC) Need to change another page with new table and Portress Comments. - Athrash | {Talk) 23:10, 8 Jun 2005 (UTC)

Made changes on John 1 in bold and the table compacted somewhat when I completed verses and changed titles because the first column was much wider than the others. Looks even better. Your help was immense. I will keep the prophecy table as is with <breaks>, no wrap... Just noticed the test table was also compacted? So reverted titles to original on my talk page to see what happens by tomorrow. - Athrash | {Talk) 06:46, 10 Jun 2005 (UTC)

I was fatigued, Internet Explorer gives table full screen. Netscape, Firefox are compacted. OK either way, decided to keep "The Updated Modernity Version" for final version. - Athrash | {Talk) 18:34, 10 Jun 2005 (UTC)


Curious as to why edits to Christianity, including the vandal (who also left a load on Religion), were in bold on RC page. That could be a good thing (revert) or a bad thing (deletion). There has been a deletion notice on John 2 which produced RC bold for my edits to that discussion page Talk:John_2, added, just to see what happened. The work goes forward. Oh, could you vote to keep if so inclined... I just noticed Wikiversity recognized Christianity under Theology and I made mention of Gospel 101 as course work. - Athrash | {Talk) 22:30, 27 Jun 2005 (UTC)

I have (finally!) figured out why.
You can choose to "watch" some pages (Help:Watching pages).
When you look at your watchlist ( Special:Watchlist ), you see *only* pages on your watchlist.
When you look at recent changes, you see *all* of the most-recently-changed pages -- the ones on your watchlist are in bold.
--DavidCary (talk) 01:40, 20 December 2007 (UTC)[reply]

I merged the PIC article that you had contributed into the Embedded Systems book, that i've been working on for a few days now. I'm in the process of cleaning the original page up, and expanding the information there, so if you would like to contribute to this project as well, it would be greatly appreciated. --Whiteknight TCE 15:17, 11 November 2005 (UTC)[reply]

OK, looks good. --DavidCary 07:45, 13 November 2005 (UTC)[reply]

Just a reminder: Wikibooks:Programming_languages_bookshelf is the bookshelf of books available on this wiki and neither a list of programming languages nor a list of wikis around the world. I have changed the entries you made into "Suggested Books".

--Krischik T 13:22, 10 January 2006 (UTC)[reply]

I thought it was weird that the page mentioned "Gambas – Lua" even though there was no Wikibook (yet) about Lua.

When people (like me) are looking for a wiki about, say, the Lua programming language, the Wikibooks:Programming_languages_bookshelf is the first place we look. I am glad you kept those links to help people (like me) find what we are looking for.

I am OK with your edits. They do a good job clarifying that those external wiki are *not* internal Wikibooks.

--DavidCary 06:31, 12 January 2006 (UTC)[reply]

I just wanted to let you know personally that I started the "Programmable Logic" wikibook that previously was just an outline on my user page. As you can see, I took the suggestions that I got and changed the name from "VLSI System Design", which wasn't appropriate for the subject material that I intend to cover. I wanted to thank you for your comments and suggestions while I was outlining this book, and I wanted to get your help (and the help of all wikibookians) in making this book grow! --Whiteknight(talk) (projects) 18:54, 10 May 2006 (UTC)[reply]

email, password[edit source]

I'm going to get in touch with the techs. I am going to need your email address. Hopefully, they will manually insert your address into the database, and then your "email new password" function will work. As soon as I get your email address, I can get to work on this for you. --Whiteknight (talk) (projects) 12:56, 5 September 2006 (UTC)[reply]

Okay, I asked the wikimedia techs, and they said that they can insert your email address into the database manually, if you provide a new email address, and if you can prove your identity. Send me an email to wknight8111 <at> hotmail <dot> com, with your username and your email address, and the word "wikibooks" in the subject like. the subject part is important, so you dont get lost in my spam filter. I will ask the techs to insert that email into the database, and then you can select to have your password emailed to you.
The techs did say that you needed to prove that you were who you say you are, if you can prove it to me by sending the email, they should be able to take my word for it. --Whiteknight (talk) (projects) 02:37, 6 September 2006 (UTC)[reply]

Thank you. The "email a new password" worked fine here at Wikibooks. ( But it didn't seem to work at wikipedia ). --DavidCary 05:51, 8 September 2006 (UTC)[reply]

That's good, I'm glad you got it back. To be honest, I was never able to get ahold of any of the techs, so somebody else must be responsible for this. Either way, I'm happy to see you back. --Whiteknight (talk) (projects) 13:31, 8 September 2006 (UTC)[reply]

Microprocessors Book[edit source]

I have been planning this book for months now, and I am just waiting until I have enough time in my schedule to finally create it. I am not planning on discussing the history of CPUs much, although a little discussion on the topic will be interesting. From a high-enough level of abstraction, it doesnt particularly matter whether we discuss FPGA design, or TTL design, or whatever. A CPU that is hand-made out of transistors certainly won't have a multi-level cache, but the people building such CPUs can still benefit from a discussion of them.

My plan for the book is to identify the mathematical and electrical basis for CPU design, but leave details about the specific implementation techniques out. After all, the implementation techniques for designing a CPU are identical to the Implementation techniques in designing any other ASIC. We can leave discussions on how to program an FPGA to the Programming Logic book, and we can leave information about how to lay out transistors to a different book as well (perhaps a new book that we need to start?). I am also not planning on talking much about fabrication techniques, because I feel that those techniques are not necessarily specific to CPUs, but instead to all ASICs. Perhaps we need to start a companion book about ASIC design as well?

--Whiteknight (talk) (projects) 17:21, 5 October 2006 (UTC)[reply]

There are a lot of people who think "it would be cool to build a CPU". Some of them go on to build their own CPU out of TTL chips (the Homebuilt CPUs WebRing). I think it would be cool to have a wikibook dedicated to that audience.

You are right that all the information necessary *should* already be in about 6 of the Wikibooks we already have or are soon planning to have: Assembly-language programming; high-level CPU design with pipelining and VHDL down to register-transfer language (RTL); state machine design down to individual flip-flops; digital logic from ALU design down to NAND gates; switching power supply design; oscillator design; schematic drawing tips; PCB layout; wire-wrapping tips; ... and probably something else I've forgotten.

But I think it would be nifty to build a book that left out all the distracting "clutter" in those other books that doesn't move me forward to my goal: a Turing-complete machine, and the understanding that comes from building it myself (rather than buying a magical off-the-shelf black box).

  • Focus on just a few chips that give a good bang for the buck -- a "universal" chip such as the 74HC253 mux, and a few "shortcut" chips that reduce assembly time "significantly": static RAM, the 74HC374N, ... perhaps one or two others. (Alas, the 74LS181 ALU seems to be going obsolete?)
  • Describe the 74HC253 mux without getting sidetracked into how it is built out of logic gates, their truth tables, how those logic gates are built out of transistors, how the transistors are built, etc.
  • testing *is* essential
    • LEDs ... 7 segment displays
    • quick serial port interface
  • the grand climax: a functioning Turing-complete machine
  • After the climax: other ways to improve performance:
    • Other computronium substrates: relays, individual transistors, FPGAs, ...
    • Interfacing to IDE hard drives?
    • links to other Wikibooks that discuss pipelining, etc.

Hopefully this will point out and fill in gaps in the other 6 or so related Wikibooks. (Do any of them discuss interfacing to static RAM?)

--DavidCary 04:24, 6 October 2006 (UTC)[reply]

In this subject, as in most subjects, there is a large distinction between the theoretical discussion of the topic, and the practical application of the subject. If we blur the lines too much, this book could become more cluttered then the other books, and far less readable. I think it is far more valuable to describe the theory behind a CPU, and to show some general schematics, then it is to provide a design for a single brew-your-own model.
Also, I think that it's perfectly acceptable for us to build a new book on the shoulders of previous books. For instance, we should be able to say "read Semiconductors, Digital Circuits, and Electronics before you read this book". In that way, we don't need to reinvent the wheel. Digital Circuits does have sections on ALU, MUX, and other integrated logic devices. If we know the theory of what an ALU does, the specifics about which model number should be used are arbitrary.
With that said, my intention for this outline was to cater to a more theoretical discussion, and less of a practical one. Once it is described how an ALU works, and where it goes in the schematic, the hobbyists can figure out which specific brand/model of ALU to put in their circuit. Conversely, we could also create a second book that discusses the topic from a "build your own" standpoint. Consider the relationship between a course textbook, and the lab manual. --Whiteknight (talk) (projects) 12:55, 6 October 2006 (UTC)[reply]

I've seen several articles/web pages on "Here is the schematic diagram for one particular CPU, and an analysis of how it works". What I would like to do is something more along the lines of "So you want to build a CPU? Let me tell you how I did it, but also let me tell you some other alternatives that would certainly make things different, perhaps more clever, but with their own quirks and tradeoffs, and reasons you may want to do it this other way ... let me tell you what went wrong, some pitfalls along this path ... let me tell you what I wish I had did different ... and some other ways of doing things that I haven't really investigated, but might make things much better/simpler ..." Wiki:CategoryComputerArchitecture

In particular, mentioning differences between the wire-wrap design flow, the PCB design flow, the FPGA design flow, and the ASIC design flow.

I suspect I'm biting off more than I can chew, so I hope the "wiki magic" allows other people to add stuff in (where I vaguely wave my hands), and also take stuff out (where I know only one complicated way of doing things, but others know simpler and better ways).

I hope a book on "how to build a CPU" won't get too cluttered, because I would encourage editors to use ruthless deletion when I get sidetracked onto factoids that don't really help building a CPU. If it doesn't help me pick and order the parts I need, and it doesn't help me put the parts together, leave it out (perhaps it belongs in some other book).

Last week I was thinking that "how to build a CPU" ( User:Whiteknight/Microprocessor Design ?) and Digital Circuits would all go into one book. Too many technical books explain how something works, but utterly fail to tell us why we need to learn it, what the alternatives are, and when one should use that thing (rather than the alternatives). The "how to build a CPU" perspective (possibly in sidebars) illustrate why we need to learn truth tables, state machines, etc. (Or perhaps the "building a CPU" would be the main text, with digressions into digital circuit theory going into long sidebars). It would also help us editors remember to to make the Digital Circuits book "complete", at least in the sense that it covers everything needed to build a CPU -- it would make it more obvious when we've forgotten something crucial.

You have almost convinced me that these should be seperate books (perhaps with heavy cross-linking so we don't re-invent an inferior wheel).

--DavidCary 20:18, 9 October 2006 (UTC)[reply]

The only problem that I see is that there is no easy way to implement some of the large, complicated CPU structures that do exist in the world. Can you imagine trying to implement high-level cache, CISC instruction decoding, or branch predictors in brew-your-own hardware? There are plenty of things that need to be discussed when it comes to this topic, and not all of them can really be implemented in your own basement.
Also, if we use a bottom-up approach to this book (introduce the basic structure, and then build on that structure to add more complicated features), it will make building your own CPU difficult. Changing an unpipelined processor into a multistage processor is a few changes in the schematic (and the truth table of your control path), but will require gigantic changes in hardware implementation. I would definately recommend two books, but I agree that there would need to be an enormous amount of cross-linking between them. --Whiteknight (talk) (projects) 22:09, 9 October 2006 (UTC)[reply]
If I can't implement them, why do we "need to discuss" them? Seriously?
Perhaps there is some good reason -- the way there is a good reason to learn that some countries standardize on (roughly) 110 VAC power, while others have standardized on (roughly) 220 VAC power, even though it is unlikely I'll ever implement a national voltage standard.
<tangent>Most wire-wrapped homebrew CPUs do, in fact, implement CISC decoding. Hard-wired no-microcode CPUs are very much the exception in wire-wrapped homebrewed CPUs.</tangent>
I agree that the most complicated features of modern custom-CMOS CPUs transistors would be crazy to implement in my basement.
Are there any digital circuits outside of CPUs that use any of those complex features?
Are those complex features really *necessary* to implement any instruction set?
Since the answer is "no" to both of those, then a merged "build a CPU" and "Digital Circuits" in one book would simply not mention those features (or relegate them to an appendix or a footnote).
Could I start "How to build a CPU" as an independent book, and then later (if others think it is a good idea, considering how much they overlap) merge it with the Digital Circuits book?
a bottom-up approach to this book ... will make building your own CPU difficult. ... gigantic changes in hardware implementation
You may be right. Do you have any suggestions for how to make building my own CPU "easy" ?
--DavidCary 03:12, 22 October 2006 (UTC)[reply]
I see I'm too late to start a book on building your own CPU in a FPGA -- someone else already started it at Wikiversity:Computer Architecture Lab. --DavidCary 16:28, 24 October 2006 (UTC)[reply]

fixing images[edit source]

I downloaded and corrected and downloaded a few media files today. I had to reformat a couple of them, and forgot the license on a couple. Tried to delete the old ones but had no authority to do so. Who will clean that up? The ones I want are embedded in the text of Telescope Making. --Vorblesnak 21:25, 11 November 2006 (UTC)[reply]

I am confused. When I check http://en.wikibooks.org/w/index.php?title=Special:Contributions&target=Vorblesnak I see that you have contributed several items with the "image:" tag. But every single one of them is in use in the Telescope Making module -- have the unnecessary ones already been deleted?

I spotted 3 that have no license yet:

Would you mind going to each of your images that have no license, hit the "edit this page" tab at the top, and copy-and-paste the 11 characters

{{PD-self}}

into each one, then bang the "save" button? That would take care of it. (I *could* do that, but some people around here frown at me when I change the license on someone else's pictures). --DavidCary 17:17, 17 November 2006 (UTC)[reply]

Done today. I had not been back for a day or two. I was tired after the last edit session and then noticed the text and images were not where I left them. Different screen resolution. i posted over at the Staff Lounge, need to go see if I have an answer on that one. Thanks for your time and effort with a newbie.

--Vorblesnak 23:53, 17 November 2006 (UTC)[reply]

Thank you. You are welcome. --DavidCary 18:26, 23 February 2007 (UTC)[reply]

Category discussion[edit source]

Well I'm afraid to say that putting your comment (which I think is well worthwhile) on Category talk:Main page which seemed sensible has not attracted any interest. I guess the staff lounge is watched far more so it may be worth placing something there. It is a subject that I feel warrants some real time and that I do have some queries on myself but I do not see me giving it the time for a little while. Do get back to me if you feel I can help - regards --Herby talk thyme 10:19, 7 December 2006 (UTC)[reply]

Wikibooks Newsletter, Volume 1[edit source]

(Wikibooks gazette home | Discuss | Bulletin board | Subscription list)

This is a short newsletter that is being distributed to all active wikibookians. You are getting this message because you are recognized as an established contributor to the project. This newsletter will be distributed on a regular basis to help share news, information, and tips. It comes from a bot account, User:The Staff. User:The Staff is currently operated by a team of wikibooks admins, the complete list of which is available on the user page of the bot. If you would like to not receive this newletter anymore, please remove your name from the list at Wikibooks:Active wikibookians.

The work you do at Wikibooks is greatly appreciated. However there are plenty of other opportunities for you to get involved and help us to create a thriving Wikibooks community. We are sure that there are things we can do to help you and your understanding of Wikibooks and similarly there are certainly things you could do to help Wikibooks become a better place.

We would like to ask all wikibookians to add the Bulletin Board to your watchlists. The Bulletin Board is a fast and easy way for wikibookians to communicate important news and events to the entire community. If you have important news to share with the community, you can feel free to add your own entry to that page.

If you have general questions or comments about Wikibooks, you are welcome to post a message on The Staff Lounge, a free discussion area. Your input would also be welcomed in the Votes for Deletion and Requests for Adminship discussion pages. These pages are all active discussion areas that help to shape the Wikibooks community as a whole.

Sometimes it is easy to forget that the Wikibooks community is much larger and more diverse then the people who work in a single book, or on a single bookshelf. Hopefully, together we can all make Wikibooks a better place, and a more valuable educational resource.

The Staff
04:16, 19 December 2006 (UTC)[reply]

I just wanted to let you know that I've created this book. I'm taking a graduate class in this area, and I'm TA-ing an undergraduate class in a related field. I'm going to start authoring this book using material from these classes. We can expand the book later to include additional information, but right now I want to just start writing information. Come on in and contribute as well, if you want. --Whiteknight (talk) (projects) 02:02, 18 January 2007 (UTC)[reply]

Excellent. Now I need to dig up my rough draft and post it to Microprocessor Design. --DavidCary 18:26, 23 February 2007 (UTC)[reply]

I've been planning to overhaul the ARM book for some time now, I created a "planning page" at User:Whiteknight/ARM Assembly. Unfortunately, I haven't done alot of planning on it yet. If you want to get started on revamping that book, I would definately like to help out. --Whiteknight (talk) (projects) 01:48, 23 February 2007 (UTC)[reply]

I did a bit of ARM assembly language a few years ago, and it is still one of my favorite languages. Alas, none of my current projects are using an ARM processor. Perhaps I can squeeze one into my next project. I'll try to dump what I remember into that book. Hopefully my not-entirely accurate 3-year-old memories will be better than nothing. --DavidCary 18:26, 23 February 2007 (UTC)[reply]

Currently the ARM book is gestating at Embedded Systems/ARM Microprocessors, until it gets big enough to split off into a separate book. --DavidCary (discusscontribs) 08:22, 10 July 2013 (UTC)[reply]

File validation with Javascript[edit source]

About your question of using javascript to validate if a file in the <input type="file"... tag you could probably use javascript to get the name attribute of the tag and check the file's extension... so if it was .exe and you only want .txt then it could find the .exe and that is != to .txt. Haha. Ok. yeah.

Thank you for the welcome message[edit source]

Dear David,

Thank you for the responsiveness. Maybe, it looks strange but your message is only the second reaction (the first one was of Whiteknight) of a wikibookian to Circuit Idea that I started with enthusiasm two months ago. I have moved from Wikipedia to Wikibooks in the hope of meeting adherents; only, I note again that there are very few people who are interested in revealing circuit ideas and who have their own philosophy about circuits. So, I would be grateful to you for joining the discussion page and giving valuable ideas about the content and implementation of the book.

Thank you for the valuable links to the great materials of William J. Beaty. I read some of them (e.g., the article about capacitor) a few years ago; then I was deeply impressed by his philosophy. I will scrutinize his user discussion page; it seems to be very interesting.

Finally, I would like to know if it is possible to place web trackers (counters) on the wikibooks pages. If so, can you help me to place a tracker on the Circuit Idea home page?

Best regards, Circuit-fantasist 17:24, 15 July 2007 (UTC)[reply]

About Quick Design Process[edit source]

Dear David, I have finally revealed the idea behind the Dieter's design procedure. It is a great idea and he is a beautiful mind! I would like to know your email address, in order to send a detailed email to you. My address is cyril@circuit-fantasia.com. Regards, Circuit-fantasist 15:00, 1 September 2007 (UTC)[reply]

Hey david, i saw your suggestion to merge Signal Processing into Signals and Systems. I oppose the merger (which should be obvious since I created both book separately), for a number of reasons. The Signals and Systems book really deals with the concept of linear systems, which is a very broad foundational subject. What I wanted was to create a book from the shared prerequisite information from many other advanced books, such as Communication Systems, Signal Processing, or Control Systems. The Signal Processing book no more needs to be merged into Signals and Systems then either of the other two books need to be. The field of signal processing is really large in it's own right, and I think there is more then enough information to fill at least one book (likely more, as time goes on). --Whiteknight (Page) (Talk) 03:00, 24 September 2007 (UTC)[reply]

I hope you dont mind, but i've gone ahead and removed those merger tags. If you really think they should be merged we can discuss the issue some more, but I would really like to keep the two books separate. I'm trying my hardest to differentiate the two, including making different prerequisites, different topics, etc. Give me a little while to lay some ground work, and we can reevaluate the merger later. --Whiteknight (Page) (Talk) 16:17, 25 September 2007 (UTC)[reply]
OK. At the current rough-draft state, it appeared that these books almost totally overlap -- both talk about Fourier analysis, filtering, and "signals". But now I see that Signals and Systems is intended to be a minimum pre-requisite for a bunch of other books, and the other book is about a bunch of related topics that aren't necessary to understand those other books. So breaking up the subject into a short "intro" and a "advanced topics" now makes more sense to me.
I've had several classes that just covered the "first half" of a thick, relatively expensive engineering book. Such classes were generally a prerequisite to the few classes that covered the "second half" of that book. (Which led to a lot of student complaining when they bought the Fifth Revision for the first class, and the professor for the second class insists on the Sixth Revision).
Why were books were so big that they were clearly marked with a "introduction" half and a "advanced" half (rather printed as 2 smaller books)?
Do those reasons apply to Wikibooks?
How does transclusion -- in particular, the way a Fourier table can be transcluded into a bunch of books ( Special:Whatlinkshere/Engineering_Tables/Fourier_Transform_Table ) -- affect things?
I see now that Signal Processing lists Signals and Systems as a prerequisite. Would it make sense for Signals and Systems to explicitly list all the books (that you mention above) that it was designed to support? Where's a good place for that list? For the reader, perhaps it would make sense at the end of the book to give hints on how to continue the education. But for the writers, perhaps they should learn up-front that the target audience is people who wanted to read those other books, but were told this was the prerequisite. --DavidCary 21:34, 25 September 2007 (UTC)[reply]
Thanks for the reply! Signals and Systems contains a partial list of books that it supports at Signals_and_Systems/Introduction#Where_to_Go_From_Here. Many of those books are also listed at the end in Signals and Systems/Resources, although they are just listed as "resources", not places to continue reading further. I will add a note about that. Maybe I'll create a category for all books that use Signals and Systems as a prerequisite. I'll get to work on all this, and report back when i have some results. --Whiteknight (Page) (Talk) 21:45, 25 September 2007 (UTC)[reply]
Excellent. I see you are already ahead of me. --DavidCary 21:52, 25 September 2007 (UTC)[reply]
Okay, check out the template {{Signals and Systems/Prerequisite}}, and the list at the bottom of Signals and Systems/Resources. That list is dynamically generated from the list of pages that contain that template. I hope this makes things more clear. let me know what you think. --Whiteknight (Page) (Talk) 22:57, 25 September 2007 (UTC)[reply]


Email failure[edit source]

David, I have tried to send an email to you, but a failure has occured. Here is the message.

140.98.193.224 failed after I sent the message. Remote host said: 554 5.7.1 Message rejected because of unacceptable content. For help, please quote incident ID 54103352. For details, send to postmaster@ieee.org. You can also send a plain text message to the recipient and request adding your address to his/her UCE whitelist.

What do I do? Regards, Circuit-fantasist 15:59, 19 October 2007 (UTC)[reply]

Electric Power[edit source]

I was planning a merger between Basic Electrical Generation and Distribution and Electric Motors And Generators, although I haven't gotten far into it. I was planning on making a book titled simply "Electric Power". This would cover power generation, distribution and the grid, and actuation. I have an outline set up for the book here: User:Whiteknight/Electric Power. I dont have the time now to start such a project, but if we could attract a volunteer or two to help with it we could knock it out pretty quickly, i think. Thoughts? --Whiteknight (Page) (Talk) 21:06, 19 December 2007 (UTC)[reply]

Yes, I think they should be merged. And I prefer simple names for wiki books, like Electric Power. And I agree that another volunteer or two would be nice :-). --DavidCary (talk) 02:04, 20 December 2007 (UTC)[reply]

Hello David, how are you? I've been thinking a lot about the Reverse Engineering book, and I think I want to change it up. I've posted some rationale behind the idea at Talk:Reverse Engineering, and I've started up an outline for the split at User:Whiteknight/Reverse Engineering.

At the moment, the book just doesnt have any focus, and many of the pages outside of the "core" subject area are short, stubby, etc. What I want to do is split the book into smaller books that are more focused on particular subjects. If we do this, I have high hopes that the book about the x86/C disassembly stuff could easily become a featured book within a month, while the whole of the Reverse Engineering book might never earn such a distinction because there are too many stub pages and too much missing information (based on the apparent scope of the book as it is now). Plus, the name "Reverse Engineering" is too ambiguous (as has been pointed out by many people on the talk page and other places).

Anyway, I wanted to get your opinion of this idea, if you don't mind. I feel like there are too few people around here who understand that subject matter. --Whiteknight (Page) (Talk) 17:43, 3 January 2008 (UTC)[reply]

Cool pressure-to-flow analogies[edit source]

David, thank for joining the story about LC oscillations. I had just started it and I hadn't put a link to the story when you noticed it (I usually prefer to make about 75% of the new story and then to announce it by putting a link in the contents). Well then, only give me a few days to develop briefly the idea. Thank you for the cool analogies and especially for "putting the pedal to the metal". As regards to integrators, I will give reasons for such a classification in the talk page. If you want, you might show (prove) mathematically why the LC curve is just a sinusoid; today, I will show by intuition why it is rounded. Regards, Circuit-fantasist (talk) 09:10, 12 January 2008 (UTC)[reply]

David, thanks for your words of encouragement re: Embedded Systems/Atmel AVR. I have "finished" the clean-up of the article, and would like to solicit any feedback you may have. Of course, it's never actually finished, and I'll be doing more on the article in the future, but it feels like it's at a much better place than when I started on it. Pfagerburg (talk) 23:33, 13 March 2008 (UTC)[reply]

Errata Book[edit source]

Errata (link to prev. vote) is again up for VfD, the rational you used on the last discussion seems to still be valid and one that I share, If you still think the same please state you opinion/vote on the active VfD discussion. --Panic (talk) 16:45, 20 April 2008 (UTC)[reply]

Thanks for cleaning up my messes here. You can tell the times when I was writing faster then I was thinking. No wonder that reader was confused. --Whiteknight (Page) (Talk) 03:36, 2 May 2008 (UTC)[reply]

circuit idea pictures[edit source]

(a copy of Group_64a page)

I enjoyed reading this page. Alas, I see that an earlier edit deleted some pictures[1]. Is there anything I can do to help? --DavidCary 03:00, 25 May 2008 (UTC)[reply]

Hi David! Thank you for your willingness to help. I decided to involve my students in Circuit idea two months ago somehow "in sport"; but it turned out so successful and exciting that I was entirely absorbed in this new web undertaking. I have told how it has begun in the discussion of the first completely finished page that my students and I have dedicated to the famous Ohm's experiment.
In general, you can second this "open student wikibooks project" by expressing your opinion about the concrete circuit phenomena considered in the student pages. I'm sorry I haven't invited you (see for example my invitation to Bill Beauty); but I hoped you would note the new initiative.
David, have you any idea how to restore the deleted pictures? They were created by students; probably, they haven't placed license tags. The problem is that the term has finished, the students have gone away and I have not copies of these pictures on my computer.
Regards, Circuit-fantasist (talk) 10:16, 25 May 2008 (UTC)[reply]
I'll take a look at these pictures and see if they can be restored. I do need to know licensing information about them, however. I'll get to work on that in a few minutes, and I'll let you know what's up. --Whiteknight (Page) (Talk) 12:43, 5 June 2008 (UTC)[reply]
Hi Whiteknight! Thank you for your responsiveness. The license tag is the conventional {{self|GFDL|cc-by-sa-all}}. Regards, Circuit-fantasist (talk) 15:08, 5 June 2008 (UTC)[reply]
Okay, the images that were deleted appear to have been on commons, so I can't undelete them myself (i'm not an admin over there). I need to get together a complete list of the affected images, and post them over at commons for somebody over there to deal with. We have a few wikibookians here that are admins at commons, so I will try to pull a few strings. I will try to keep everybody updated. --Whiteknight (Page) (Talk) 17:24, 8 June 2008 (UTC)[reply]
Whiteknight, I have finally managed to find the author of the images and he has sent the files to me. Thank you again! Regards, Circuit-fantasist (talk) 17:41, 9 June 2008 (UTC).[reply]

The page in question appears to have been deleted as a copyvio. According to the accusation, it was a copy+paste of some kind of ARM manual. The talk page should probably be deleted too (it should have been deleted with the page itself was, i think). --Whiteknight (Page) (Talk) 12:23, 5 June 2008 (UTC)[reply]

clustering[edit source]

I've moved this discussion to the Optimal Classification discussion page to be sure others can see it and can participate.

Typative (talk) 11:31, 10 September 2008 (UTC)[reply]

Good idea. --DavidCary (talk) 16:48, 10 September 2008 (UTC)[reply]

Crazy categorizing for Computers & Society[edit source]

Hi! You said:

„I personally don't create a category unless I know of more than one page that will go into that category. And so I am mystified -- why do you create categories which contain only one page each, such as Category:Learning how to ask questions, Category:Learning how to read stuff, Category:WikiWorld, and Category:Back cover ?“

I had similar query/comment from User:Mike.lifeguard

I am afraid that it was a complete misunderstanding on my part about what categororization in Wikibooks is for. I mis-read something somewhere that each page chapter had to be categorized... and so I did just that for each page. Help/advice in cleaning up would be appreciated.

And thanks for commenting and asking. --Михал Орела 12:11, 17 September 2008 (UTC)

RE: Thank You[edit source]

Thanks however all I did was to merge the page Transwiki:Useful unix command into that page. The merger was proposed about three years ago and the page was not being maintained. -- CFeyecare Talk! 23:44, 5 November 2008 (UTC)[reply]

Thanks[edit source]

I am sorry for the delay. I was facing problems with my network connection. And thank you very much for keeping me updated :-) -RavichandarMy coffee shop 09:12, 30 November 2008 (UTC)[reply]

Thanks for your message on my talk page[edit source]

As you might have seen I'm not familiar with the wiki system and the collaborative way of working. I'm diving into it right now. Thanks also for your contribution, I'll try to add more precise links to other relevant wikibooks in the curriculum. Trolli101 (talk) 07:53, 5 January 2009 (UTC)[reply]

Voyage Century Online Moving[edit source]

see User talk:DJ K-Jtan#Voyage Century Online. --DavidCary (talk) 15:24, 7 January 2009 (UTC)[reply]

It is about the ultimate limits of human knowledge, also the possibility of using a hyperpowered network of quantum computers far in the future to possibly predict the future state of the universe, something that classical computers cannot calculate because of nonlocality. Thanks for reading; I welcome your feedback.

Blender Noob to Pro[edit source]

Hallo DavidCary,

you have restored two links on the page Blender 3D: Noob to Pro. These links have been removed on purpose. I just didn't want to revert you. How shall we proceed? --SoylentGreen (talk) 06:21, 9 March 2009 (UTC)[reply]

I hope we agree that the table of contents of a Wikibook should link to every "module" of that wikibook.
Which one of a, b, c, or d do you think we should do next?
There are many good reasons to delete a link. Here's what I think we should do.
(a) It's a redundant link, the table of contents doesn't need 2 links to the same module. Please go ahead and remove those redundant links, and state they are redundant in the edit comment.
(b) We don't need a module by that name. In that case, please go through the Wikibooks:Deletion policy first to delete the pages. Later, after the table of comments shows them as redlinks, delete those links and state "deleting redlinks" in the edit comment.
(c) That module really belongs to some other book. Rename the module to clarify which book it belongs to. Then use (b) on the redirect page that leaves behind.
(d) The pages have poorly-written content. Slap the {{attention}} tag and perhaps the {{expand}} tag on the page. While I love it when people post a finished masterpiece, the Wikibooks:Editing guideline also encourages people to post poorly-written first drafts and gradually improve it. It's not possible to improve a page that no one ever sees (an Wikibooks:Orphan Modules or a deleted module), so we should keep those links.
Feel free to go ahead with the proposed action, or else tell me which of a, b, c, or d you think I should do next.
--DavidCary (talk) 03:24, 10 March 2009 (UTC)[reply]
For the page Blender 3D: Noob to Pro/modelling tips it would be the wrong page name (so it should be moved) and (d). The page Blender 3D: Noob to Pro/Creating Weapons based on 2D Images is IMHO really difficult to handle, it describes a you tube video. I wanted to move the pages to the bottom of the page, now Bullercruz has done that, so no further action is necessary. I will mark the pages as you suggested. --SoylentGreen (talk) 09:15, 10 March 2009 (UTC)[reply]

Operating System History Book[edit source]

I was so underwhelmed with the quality of the operating system book, in its present configuration that I updated the history, to include some information from Tanenbaums Operating Systems Design and Implementation. It's rewritten so it shouldn't break copyright, but it does probably break the patterns of the original authors statements since I put in about a couple of pages of historical information that the original author had ignored. The information probably needs to be reformatted to fit the original purpose, if we want to keep it. I have also reworked his timeline, to favor CP which was a mainframe operating system that was rewritten for minicomputers and became CP/M. As far as I know CP predated MULTICS in the way that MULTICS predated UNIX. Perhaps MULTICS Derivatives would be a better top line for the Unix branch as well. I have juggled things around a bit, if only to stop the screaming of the Linux people who quite rightly suggest that Linux is not Unix. Everything below the POSIX level can be seen to be completely rewritten to exclude Unix copyright. And I moved Mac OSX away from OS9 and into the Unix branch because it was based on the CUBE operating system. I also noted that BASIC was implemented as an operating system. I remember my Commodore 64 with it's Basic Language that included commands like load, and run. I believe the first implementation of this was Stand Alone Basic written for the 4 bit Altair S-100 bus computer by Microsoft. I swapped place between LISP and SMALLTALK because LISP came first, things like that. Anyway, I can see fleshing this book out a bit more if there is any interest in keeping it alive.--Graeme E. Smith (talk) 17:49, 23 April 2009 (UTC)[reply]

I added a chapter on Network security to Evolution of Operating System Design, but now that I look back on it, I may have mistaken the meaning of the chapter heading. When the original author was talking about Network distribution was he talking about the history of networks and their security problems or about how to distribute CD-Roms via the internet... I chose the first interpretation but on second thought, I could do a simple move, I suppose to a module named...Network Security or something, since I might have made a mistake. How hard is it to change a filename once the file is created? If it is a mistake, then the problem probably came about because he put the distribution file up at the middle of the book instead of putting it down lower where it would make more sense. I mean the last thing you want to do before rewriting your operating system is distribute the current version... I think the guy was overspecifying his modules. For instance the Memory transparency page, doesn't make sense to me, considering he hasn't laid the groundwork for memory systems. Maybe I should lay off adding modules until I understand their purpose better.--Graeme E. Smith (talk) 19:47, 27 April 2009 (UTC)[reply]

It's easy to change file names. Help:Editing FAQ#Q: How can I easily change the title of a book?. I would be happy to do that for you -- just ask.
Lots of people distribute the "current version" of their software even while making major changes to it. See wikipedia: continuous integration for a list of some of the more notable projects that do that.
Are you talking about the "Storage: transparent persistence" module mentioned in the Evolution of Operating Systems Designs ? I suspect that has something to do with wiki: TransparentPersistence. --DavidCary (talk) 04:53, 28 April 2009 (UTC)[reply]

OK, now that makes sense. The guy was generating his module names according to high level concepts, that he wanted the modules to cover, more a shopping list, than a framework. I can live with that, but I do not personally work that way. My frameworks always start with a low level concept and build up to a high level concept, they don't usually start with the high level concept. But that is a failure of mine from an OOP programming perspective. Still I suppose I could build the framework within the module. The problem is that the framework might have to extend beyond his point in evolution because evolution of operating systems has proceeded beyond that point. In other words we have the case of an inappropriate module name because it limits the development of the modules to evolve with the operating systems. Since this is to be a living book, probably updated from time to time, as new data comes in, we want a more general statement for the title, and for transparent persistence to be a subheading within the module. Don't mind me running on at the mouth, I am thinking as I write. OK, I think I can take over from here. I just needed a conceptual framework under which to understand the nature of the original authors ideas.--Graeme E. Smith (talk) 15:55, 28 April 2009 (UTC)[reply]

"Everything should be built top-down, except the first time." - Alan Perlis
Yes, this is a living book. As time goes on, we'll probably shuffle the order of the modules many times -- this is easily done by editing the table of contents page: Evolution of Operating Systems Designs. As you said, we'll probably merge small modules into one larger module with a more general name. We'll probably split modules that grow too large into smaller modules with more specific names. We'll probably add entirely new modules about topics in operating systems that we all overlooked before -- perhaps even topics that didn't even exist back in 2010. This is all part of the natural process of growing any Wikibook. Thank you again for taking the initiative to help us write this one. --DavidCary (talk) 03:44, 29 April 2009 (UTC)[reply]

No problem, this (Operating System Design) was part of my areas of study before I began to get into Artificial Consciousness. I noticed that someone caught my error on how many times the data bus width had doubled I dropped it back to 3 and referenced it with an Intel Processor book I had lying around.(I keep getting confused between number and instance values, it's a personal failing). I plan to take lessons from my Artificial Consciousness research and feed them back into operating system design at some point. My section on the Workspace, and Slipnet are actually based on a competing cognitive architecture to my own called IDA which in turn was based on Hoffsteaders CopyCat program. I figure that it is related to Transparent Persistence, and can be built on top of that architecture.--Graeme E. Smith (talk) 18:12, 29 April 2009 (UTC)[reply]

Oh, by the way, I had expressly created the red ink you just fixed by moving the data you linked to, to a new better module name. So what you did by "fixing the red ink" was essentially install two versions of the same data, at two different locations in the same TOC. I guess I should have given you an update about that, but I was too busy putting content into the Storage area and my father is in hospital so I had to take my blind mother over to visit him so I was away from the computer for a while and forgot to give you a heads up. My bad, sorry.--Graeme E. Smith (talk) 18:29, 29 April 2009 (UTC)[reply]

OK, well, I am stalled for the nonce on the Evolution of Operating Systems Designs book, I promoted the sub-modules out of the HCI Module so that they are easier to work on, but I don't know what the original author meant by Direct Manipulation, unless they are talking about something like direct X, and the next sub-module is also hazy for me, so I can't expand on it.

At the Module level, the next Original Module is the one about uniformity and Reflection. In my Artificial Consciousness work I have been exposed to Refexivity, but I am not sure that that would translate out to reflection, in operating system design. So I think I have more or less reached the limit of my ability to help on this book.--Graeme E. Smith (talk) 16:04, 2 May 2009 (UTC)[reply]

Direct manipulation usually refers to manipulating hardware in some way directly, without using a library's interface. Like directly manipulating a graphic's card to speed up some graphic operation. Someone whose designing an operating system is likely to interface directly with the hardware in order to provide an interface between the hardware, parts of the system and any software that is intended to be designed to be used with the operating system. --darklama 21:11, 2 May 2009 (UTC)[reply]
Dear Darklama,
I agree that many people use the term "direct" to describe applications that directly write to hardware, rather than use a system call (Wikipedia: framebuffer).
However, the people who wrote the Wikipedia: direct manipulation interface article use the term "direct manipulation" to mean something else entirely.
To avoid conflicting with that term, is there some other term we can use to describe directly writing to the hardware? Perhaps "raw mode" (Wikipedia: cooked mode)?
--DavidCary (talk) 14:35, 5 May 2009 (UTC)[reply]
Direct manipulation may be different from a direct manipulation interface, or perhaps a direct manipulation interface may have a more general meaning beyond computers. The w:Direct manipulation interface article does seem to mention/acknowledge briefly the meaning as I described it as well. The article also has a notice about needing to be improved. I will admit that "direct manipulation" may be a coined term that has no official recognition, even though I happened to recognize the term. "Raw mode" might be ambiguous too. Raw mode can refer to a form of communication over a terminal or port, how files should be read or saved to disk, etc. Other possibilities which might describe the concept include "direct communication", "direct hardware manipulation", "direct hardware communication", "hardware-system interface", "hardware-system integration", "hardware-system interaction", "direct device control", "raw access control", "hardware access control", "device access control", ... anyways I was just trying to point out what "direct manipulation" is likely to have meant, so that Graeme E. Smith and you could figure out how to move forward. I don't even know what page you are referring to, I just figure its one in the Evolution of Operating Systems Designs book, otherwise I would take a look and see if I could help clarify. --darklama 19:19, 6 May 2009 (UTC)[reply]

Hmm... You have a good point there. I will go back and update the sub-module I wrote on Darklama's recommendation. The problem is that I have been working mostly on the guts of the operating system, and haven't worried about the HCI interface so the terms go over my head. I think that both are HCI issues aren't they? How about Direct Access to Hardware and Direct Manipulation sub-modules will that work? I was wondering, has anyone thought about the evolution of the Interprocess Communication? You know, Locks, Semaphores, Mutexes, etc? It is necessary for understanding concurrency.--Graeme E. Smith (talk) 16:09, 5 May 2009 (UTC)[reply]

"Direct Access to Hardware" and "Direct Manipulation" may be referring to the same thing depending on the context. --darklama 19:19, 6 May 2009 (UTC)[reply]
We are discussing Evolution_of_Operating_Systems_Designs/HCI:_beyond_WIMP#Direct_Manipulation. Feel free to help us improve this book.
"both are HCI issues aren't they?" No. Direct access to hardware is not a HCI issue. If you have one program that directly writes to the hardware (for example, a game designed to run on the Super NES), it's possible to make a program have exactly the same human interface on a computer without ever directly writing to the hardware (for example, that exact same game software running on a Super NES Programming/SNES Emulators). Therefore, since it makes no difference to the human interfaces, it is not a HCI issue. --DavidCary (talk) 05:33, 7 May 2009 (UTC)[reply]

Hmmm... Let us separate virtualization from direct access to hardware. I was thinking about the issue of the human interface to a movie. If the movie is jerky, it doesn't have a good interface to the the human, whereas if it is smooth, it does. Going through the system call interface, gives the operating system leave to decide if a program should be given time slices or not, which means that it can be delayed while a higher priority task is running.

This is different from the program thinking it is running on bare silicone like when it runs on the super NES versus when it runs on the Super NES Programming/SNES Emulator. The problem then is to determine if the machine is running on the real computer or on a Virtual Machine version, which involves detection of virtualization. A completely different problem with a completely different solution since it often requires that the computer hardware have a command that can't be virtualized in order to detect the state. The former paragraph describes direct access to hardware while this paragraph describes virtualization.--Graeme E. Smith (talk) 14:41, 7 May 2009 (UTC)[reply]

I don't understand.
When I play a classic game on an emulator, I want the game to have exactly the same human-computer interface as if I was running on the original hardware. Right? I don't want the game to "determine if the machine is running on the real computer or on a Virtual Machine". I want it to appear to run smoothly either way -- I agree that smooth is good. I don't want the game to have "detection of virtualization". When I play a classic game on new hardware, the new hardware does not "require ... a comand that can't be virtualized", and the old software does not need "to detect the state". Right? Or am I missing something important about emulators? --DavidCary (talk) 21:56, 7 May 2009 (UTC)[reply]

The latter I am afraid. Virtualization is about making the software think it is running on bare silicon when it really isn't. To do that you actually have to intercept the machine language commands, and monitor them to see if the software is going to try to work outside the virtual memory page, and if so, trick it into thinking that the new page you add to its memory framework is the page it wanted to deal with, not a copy, possibly addressed in a different location in memory. Ideally you do this super quick, and only have a quick test to make sure a command is not out of range, and then do the machine language on the real silicon, but that quick check slows down the machines effective speed, and in doing so, you can desynchronize something like a movie player. Ideally if you want to work on the bare silicon, you have to detect that you are running on an emulator, and dig down below the emulator to the real silicon below it. This is especially true if you want a secure operating system, the first kernel must load on bare silicon, or a phishing site could be running below it. If your virtualization kernel is not running on bare silicon and the only way to tell is to test a command that can't be virtualized without breaking it, Then you might have a virtual machine being virtualized. Emulation is not really possible on the same speed machine as it is trying to emulate if only because of the overhead for virtualization. However when you run an emulator for a slower machine, the difference in speed can be hidden by timing the virtual commands so they take up exactly the same amount of time as the original. Then it is a true emulator. Mostly when you run a gamebox emulator on a computer what you are running is a slower system on a faster general computer the emulator has to overcome the overhead of translations between the two machine languages as well as the virtualization interface. However there is no reason why you can't run a Windows system on a windows system, or a Linux system on a linux system, the main requirement seems to be either a software virtualization kernel, or a special hardware cpu designed for virtualization. One example of this is XEN which I have successfully managed to run 5 versions of RedHat Enterprise Linux 4.5 on a Red Hat Enterprise Linux 5.0 platform with an XEN Virtualization kernel. I was able to successfully prove that this package was incompatible with most Cluster Software making the virtual cluster implementation annoyingly useless. Each virtual processor ran at nearly full speed, unless there were other virtual processors working, in which case they timeshared the processing and all slowed down. While I didn't do the tests such systems tend to be 80% efficient or less. the 20% loss in efficiency can be directly linked to the fact that the programs are being virtualized.--Graeme E. Smith (talk) 23:28, 7 May 2009 (UTC)[reply]

Some CPUs meet the Wikipedia: Popek and Goldberg virtualization requirements.
Is it really true that "you have to detect that you are running on an emulator, and dig down below the emulator to the real silicon below it"? Because that is impossible on a CPU that meets the Popek and Goldberg virtualization requirements.
Only if you want a secure operating system or to work on bare silicon. The problem with running a virtualization interface on a virtualization interface, is that, the root virtualization interface can choose to overcome the secondary virtualization interfaces security appliances, without the second virtualization being aware of it. This is OK, if you are the guy in control of the more secure primary virtualization interface, but if someone slips you a ringer, and puts their own virtualization interface underneath yours, you are the person being unaware that your security is being breached. Which is why you really do want at least one atomic instruction that can't be virtualized.--Graeme E. Smith (talk) 15:37, 26 May 2009 (UTC)[reply]
Is "the only way to tell is to test a command that can't be virtualized without breaking it"? Because no such comand exists on a CPU that meets the Popek and Goldberg virtualization requirements.
Any task that "requires that the computer hardware have a command that can't be virtualized in order to detect the state" can't be done on a CPU that meets the Popek and Goldberg virtualization requirements.
When you tell me "you have to X", where X is something that is impossible to do on my hardware -- perhaps you are right and I need to throw away this inadequate hardware and get new hardware. But I hope you forgive me for wondering if perhaps I don't really need to have X, since my hardware seems to me to be adequate, and then asking what benefits (if any) do I get from X.
It depends on whether you are in a secure network, and are unlikely to have friends that like to play with your mind. I am not telling you that you have to do anything, I am telling you the facts of life about virtualization. If you don't mind someone running a phishing site right under your nose or using your interface with the network to run a child porn ring, then there is no problem with using a processor that follows a standard that has few if any commands that can detect the presence of a virtualization interface. On the other hand, one of the reasons why the industry is going to HARDWARE virtualization is that they can embed the security appliances into the hardware and not have to worry about double virtualization layers. If every virtualized process is running using the same hardware security appliances, then there is no second level of virtualization even if you are running two virtualization programs one on top of another. Just be sure that you got the hardware security appliance along with the hardware virtualization, and you are golden.--Graeme E. Smith (talk) 15:37, 26 May 2009 (UTC)[reply]
What benefit (if any) do I get by switching to a processor that fails to meet the Popek and Goldberg virtualization requirements?
Who is asking you to switch?--Graeme E. Smith (talk) 15:37, 26 May 2009 (UTC)[reply]
Does it look any different from the "outside", at the human-computer interface? --DavidCary (talk) 14:04, 26 May 2009 (UTC)[reply]
The whole idea of virtualization is that you can't detect it is there unless, there is a difference in the time it takes for the system to do a particualr task. There are so many other ways that computers are slowed down that even that might not be obvious.--Graeme E. Smith (talk) 15:37, 26 May 2009 (UTC)[reply]
Who is asking you to switch?
When someone tells me "you have to X", where X is something that is impossible to do on my curent hardware, I interpret that as saying I have to switch to new hardware that does have X.
When I ask When I play a classic game on new hardware, the new hardware does not "require ... a command that can't be virtualized", and the old software does not need "to detect the state". Right? Or am I missing something important about emulators?, and I get the response The latter I am afraid., I start to think that I am missing something important about emulators. I mis-interpret that as saying that, to fulfill my goal of playing classic games on new hardware, I need hardware that does have "a command that can't be virtualized". Since my old hardware does not have such a command, that seems to imply that I need to switch to hardware that does have such a command.
May I ask what is this "hardware security appliance" you speak of?
Is this "hardware security appliance" something different than the hardware device emulated by the "Software-based TPM Emulator for Unix"?
Is this "hardware security appliance" something different than the system that the Wikipedia: Trusted Computing article calls "extremely controversial"?
virtualization ... might not be obvious. Then we agree that, as long as the performance degradation is not large enough to be noticeable, "Direct access to hardware is not a HCI issue.". --DavidCary (talk) 05:20, 31 May 2009 (UTC)[reply]

Actually now you have it, Direct access to hardware is all about performance degradation. Whether you are talking about a movie interface, or Virtualization, it is the performance degradation that makes it necessary for some programs usually related to graphics to dig down to silicon. Since the performance degradation impacts the Computer Human Interface, it is a HCI issue. Whether you are playing an old game on a new computer, or worrying about the security of a trusted system, it is the performance degradation that is the factor that makes it an HCI issue. What I had tried to explain was that it wasn't whether the computer was new or not, but the relative speed of the hardware and consistency in action of the software, versus the cost of emulation that determined whether there would be degradation, you assumed that I was talking about the relative trustworthiness of the computer. I answered the questions you put, sorry if you read more into it, than I put there.

As for the Hardware Security Appliance, I was talking generically about a design process that is ongoing, not trying to push a particular device. I have no doubt that hardware security appliances are controversial. Especially specific Hardware Security Devices that may or may not have some specific vulnerability, or could be software emulated indetectably because there is no way to tell if the machine is running a Virtualization of the device without being able to tell when you are down on bare silicon. It is like your game emulator, one of the things it does is implement a virtual version of the Graphics System of your old game machine on the completely different graphics card in your new machine. To do so, it might have to directly control the graphics card to be able to do timely emulation of complex graphics capabilities in the original game system. Now, suppose your grandson, wants to play your old Tetris game in his new super-super-blapunkt stereo-video entertainment system. His superNES emulator, might have to go through two steps of virtualization instead of one, where it first converts the emulator to say IBM PC, and then converts the IBM PC to Super-Super-Blapunkt. Depending on whether the speed of the machine has increased significantly, and who knows how powerful an entertainment system would be compared to an equivalent computer, the game might run extremely slowly, and your grandson would be annoyed at grandpas stupid game, when really the problem is that the game is being emulated multiple times in order to convert from its original architecture to the new stereo-video entertainment unit. Does this make sense?--Graeme E. Smith (talk) 22:21, 31 May 2009 (UTC)[reply]

Yes, I think I was reading far more into it than you intended.
"I was talking generically about a design process that is ongoing, not trying to push a particular device."
I was under the impression that the particular device I mentioned -- as described in the Wikipedia: Trusted Computing article -- was the only one. Is there any other hardware security device(s) that I have overlooked?
"Especially specific Hardware Security Devices that ... could be software emulated indetectably"
Is there any other kind? There are ways the user can figure out if a piece of software is running on top of an emulator, but -- as far as I know -- it's not possible for the software itself (without the cooperation of the user or the emulator) to tell the difference between "running on bare silicon" vs. "running on an emulator which is running on a completely different kind of CPU".
"emulated multiple times" -- I agree that when there are multiple layers of emulators, each layer sacrifices some performance when the game executes a "privileged instruction". --DavidCary (talk) 00:53, 7 June 2009 (UTC)[reply]

All a privelidged instruction that can't be emulated without detection offers, is a way of telling whether or not emulation is running. Essentially it is an instruction that takes a specific amount of time to execute, so the emulator would have to falsify the time-clock in order to emulate it, and that is a significant amount of software emulation of a hardware facility. Think of Hardware as fossilized software, There is nothing that hardware can do that can't be done by software, except that software emulation takes longer, often because more software is needed to emulate the hardware and because the hardware can be running in parallel to the software. Given enough parallelism in the software environment this advantage would eventually disappear. But today it is still possible to tell whether or not an emulator is running by testing a command that takes a known amount of time to run. Set the clock run the command, and sample the clock, against a known value and you know if you are running an emulation or not. The reason is simple to do that process in an emulation you have to escape out of the emulation between setting the clock, and triggering the command, and that takes a detectable period of time. It is just a split second, but it is detectable. Whether that is important to you again depends on how public your humiliation is going to be if someone sticks an emulator under your normal operating environment that bypasses your security appliances. Right now the hardware guys are madly trying to figure out how to develop a security appliance that can't be emulated, and the software guys are emulating everything that the hardware guys come up with, and may the best design team win.--Graeme E. Smith (talk) 03:19, 7 June 2009 (UTC)[reply]

Initialization Page on Operating System Design[edit source]

I took a look at the Operating System Design book, and noticed that Initialization was still red-inked. I took the liberty of fleshing it out a bit since it is a level of software I am fairly familiar with. You might want to check other sources for Plug and play and Hot Socketing however as I am not sure how accurate those entries are.--Graeme E. Smith (talk) 16:32, 26 April 2009 (UTC)[reply]

Table of Fourier transforms[edit source]

I noticed your response to Taku's comment in the reading room, and thought I would specifically make some comments about the table directly. I did a lot of work at some point in the past finding references and cleaning up the Fourier transform tables at w:Fourier transform#Tables of important Fourier transforms, which is a bit more extensive then we have here. Would you like to see any of that material appear here, (using our existing notational convention of course)? On a separate note, to what extent is including the references interesting to a wikibooks projects? And should the references appear on the page with the table itself since the tables are transcluded? Anyways thought you might be interested. Thenub314 (talk) 10:25, 9 July 2009 (UTC)[reply]

Yes, please do. Improving the Wikibooks tables would be great.
References are good -- they make it obvious to the casual reader that we are following WB:NOR policy.
I don't know what is the best way to display references, so just stick them in there in whatever way you find easiest -- on the same page as the table, I guess.
If anyone complains, tell that person "{{sofixit}}" and let that person pretty up how those references are displayed. --DavidCary (talk) 14:45, 21 July 2009 (UTC)[reply]

non-terminal[edit source]

Not opposing the change. They have equal value, but since there are also terminal symbols having (non-terminal) expressed seemed more readable. Basically hyphens are meant to aid comprehension.
From Wikipedia: British English tends towards hyphenation (pre-school) whereas American English tends towards omission of the hyphen (preschool). (w:English compound, w:Hyphen ).
This seems to be a common practice on more technical books (the use of the hyphen). I've been thinking on adopting this as convention on the books I'm working (so to provide consistency). Do you have one opinion on this subject in general ? Am I getting something wrong ?

(did a search on google also "convention of hyphen of words technical": 1 this one resumes my views on the issue)

PS: On the VFD decission process I fully agree with your last expressed views even if it goes from one extreme to the next, see my talk page my response to Arlen22. Some time ago I even attempted an undelete on those same grounds... --Panic (talk) 04:30, 10 August 2009 (UTC)[reply]

I've moved ahead and proposed the hyphenation to the C++ book (will probably extend to the others I'm working), any input will be welcomed. --Panic (talk) 19:18, 21 August 2009 (UTC)[reply]
I am all in favor of whatever helps aid comprehension.
In the case of Compiler Construction, I'm viewing this as two different spellings, "nonterminal" (as used at Wikipedia: EBNF) and "non-terminal".
I am not surprised that you find the particular spelling that you are most familiar with "more readable"; but I suspect that other readers of this book are more familiar with the other spelling, and find that other spelling "more readable".
I feel one should not "correct" someone else's spelling, when the original spelling is a correct spelling, and the new spelling has no advantage over the old spelling.
I feel that Help:Contributing FAQ#Which spelling should I use? supports my opinion.
If you could give me some sort of link to someone who claims that hyphens in words like "non-terminal" make text more comprehensible, then I would be all in favor of using more hyphens.
Alas, I don't see any of the links you've given me saing that. In particular, "Science and technical writing: a manual of style" by Philip Rubens says "The hyphen helps readers identify the relationship between any words modifying a noun.", which apparently says that hyphens are helpful, but it's in the context of "words modifying a noun", which does not apply to the prefix "non". Do you have any links or books that support this idea that adding hyphens to words like "nonterminal" makes text easy to read?
"I am much less convinced by arguments in favour of the orthographic hyphen to make some phonological point, as in the case of microorganism, cooperate, antiimmigration, readjust and even nonnuclear. I would be glad to see this particular hyphen abolished in any spelling system." -- Patrick Hanks.
"The hyphen does not promote comprehension, but slows it down." -- Alan Brandon
"Why add a hyphen when it's just not necessary, and adds nothing to either asthetics or understanding?" ... ""It's just that during the Boston Tea Party we accidentally threw several boxes of perfectly good hyphens overboard by mistake as well, and we've been short ever since." ... "If you want to attract attention and slow the reader down, use it." -- The Volokh Conspiracy (which also has many pro-hyphen arguments)
--DavidCary (talk) 09:56, 22 August 2009 (UTC)[reply]
Yes the use of hyphen is a spelling issue. In that particular case it was not a correction, I was merely using it to call attention that there are terminal and non-terminal characters, with the intention of attracting attention and aid the comprehension of text (sort as to highlight that distinction). As I'm not a natural English speaker I have less reasons to defend a particular view point over the other but without the hyphen words like "microorganism" or "antiimmigration" seem weird. (The hyphen is used not only used in the English language, it's basic nature is common to other languages) --Panic (talk) 16:59, 22 August 2009 (UTC)[reply]

Linux categories[edit source]

I know there's a tendency to want to have one's book show up everywhere to get the most hits, but the categories are keeping a narrow scope. Books in Linux should actually be on Linux or categories become diluted. As an example, say there's a program that runs on Windows, is written in C++, and is software for a business. Books in Category:Windows are covering the Windows operating system. Books in Category:C++ programming language are covering the language. This hypothetical book being used as an example would be a best fit for Category:Business software.

Imagine, if you will, how many categories Adventist Youth Honors Answer Book would show up in if categories were assigned based on a single chapter rather than the topic of the book as a whole. There's also been a tendency by some to want to put their books in high-level categories instead of low-level categories for greater visibility as opposed to fine-grained categorization. You have to consider our 3,000+ books. If every book's authors wanted their book to be present in one of five top-level categories, you'd have an average of 600 books in each top-level category. And if every book were put in five categories, four of which were not directly related, I hope you can see how this would become overwhelming to the person browsing. -- Adrignola talk contribs 03:08, 25 August 2009 (UTC)[reply]

I agree that putting hundreds of books in a high-level category can overwhelm our users. If someone is looking for some high-level overview of, say, operating systems in general, he's not going to want a book that focuses on one small facet of programming one particular OS. The solution to that problem is to edit those books to use a more specific, lower-level category instead of a high-level category.
On the other hand, occasionally someone *is* interested in the highly specialized topic of writing programs for one particular OS. I know someone familiar with programming on some other OS, but today he wants to write GUI programs to run on Linux. How can I help my friend find information on programming on Linux?
Would a "Linux programming" category help that person? (Currently we don't have any "subject category" sub-categories under the Linux category).
Books in Linux should actually be on Linux
Each of the 8 books I tagged yesterday with the "Linux" category has a module "on Linux". For example, if the module Operating System Design/Case Studies/Linux is not on Linux, then what is it on? Those modules are closer to that category than any other category I've seen.
I agree that hundreds of books in a narrow, specialized "bottom-level" topic would be just as overwhelming to our users as hundreds of books in a high-level category. But I don't see how it is possible to have hundreds of books, each of which have a chapter on the same "bottom-level" topic, given the number of people here who support our (draft) Wikibooks:Forking policy. --DavidCary (talk) 23:46, 25 August 2009 (UTC)[reply]
Sorry to intrude but since I gave this issue a thought when I gave it a shoot on working on categories and subjects I think this view had some strengths.
Categories and Subjects shouldn't promote books but themselves (this will increase visibility to all books), this means that a book should only have a 2 categories displayed (adding subjects will only confuse things as they run very parallel due to the purpose they were created).
Subjects were added to pass the categories namespace and the recent substitution to the bookshelves did give the subject namespace a purpose, having said that by having the cover page (the entry point of a book) using only that book category and the one that closely relates to the subject covered should be enough, all other relations to any other categories should be placed on the book category page, this will only require that anyone interested performs a click in any of the book's pages to be shown all the interconnections (not only the cover page as it is now). --Panic (talk) 00:06, 26 August 2009 (UTC)[reply]
Well the cover page should have a subject (related to the scope) and the book category on the "cover" but there aren't yet subject pages for all books. Maybe a mixed approach but that will be harder to maintain consistent. --Panic (talk) 00:21, 26 August 2009 (UTC)[reply]
Thank you for jumping in. Tagging the book's "book category" page with other related "subject categories" sounds much better than the way I was doing it, tagging the book's "cover page" with those categories.
I'm still confused about "subjects" and I don't understand why they are different from "categories". Do either of you (or any other gentle reader) know of any pages that give more detail than Using Wikibooks/Subjects, Categories, and Classifications ? --DavidCary (talk) 02:06, 26 August 2009 (UTC)[reply]
Well, since I was largely responsible for writing the page you've linked to, I can try to elaborate further on details you need more information on. In all actuality, subjects and categories which I've termed "subject categories" will not be different at all from one another. Subjects serve to display books in a friendly manner without categories holding a book's pages getting in the way. I'm perfectly content to browse by category, but others besides myself felt subject pages were needed to enhance the book browsing process. Subject pages can also be styled any way you want, while category listings' appearance is largely governed by the software.
A much simpler system could likely be implemented were the software designed with subpages in mind from the start (rather than it being kludged in later). I don't know that the six systems in place (categories, alphabetical, Dewey Decimal, Library of Congress, subjects, and bookshelves) help in avoiding confusion for readers. I do know they increase administrative overhead categorizing from personal experience.
Hopefully I clarified subjects compared to categories. I knew of other pages with more information on the subject, but those were whittled down for conciseness and to keep things simple. That probably led to my being asked to write the above page, as others needed help understanding the nuances of the system, which I had to try to get a hold of myself when I first went through trying to clean things up. -- Adrignola talk contribs 02:46, 26 August 2009 (UTC)[reply]
I hadn't seen that yet, and for what I've now read the content describes the common practice so far (that needs to be clarified that the practice is performed by a few Wikibookians/bots not the general community, most Wikibookians ignore or comply to what is there). Regarding Filing your book's main page do you have any objections to the moving of most of those categories into the book's category page ? If so why ? --Panic (talk) 03:27, 26 August 2009 (UTC)[reply]
(edit conflict)
For what I understand of the history (of why we have now a subject namespace), was because the categories was so messed up (at least that was the first justification for the new namespace), the person to talk about the real rational would probably be WitheKnight, he made the announcement at the time and was the first one to attempt to make something of the new namespace.
I don't see having the two as problematic as we now have found some very distinct (even if related) functions for them. The tow pound gorilla in the room at the moment (and one that I warned Adrignola at the time) is that there aren't any guidelines approved that can establish a stable and functional structure to the use we are giving them. I know that you are aware of some of my objections to the issue of booknames and this is very closely related to how categories and subject are intertwined. One can safely state (based on the present uses) that without books there would not be subjects but categories would exist in any of the Wikimedia projects.
I'm very afraid that without constant argumentation/control/protection from those working on those structures all the work that has been put on them would quickly become undone at least this has happened always to any previous attempts to provide structure to them. This is why as soon I understood that Adrignola was putting such a great effort on the categories, I warned that it was being done in a vacuum and there is a real possibility of losing it all as soon as Adrignola losses interest or just becomes absent from the project.
To begin solving this issue I see an extreme need on Wikibooks to create a simple guideline that defines ans separates namespaces since we don't have one. We need to clearly state what the different existing namespaces are for not only for future uses but as a clear statement of the community vision for them.
  1. Clearly define the functions of Template, Help, Category, Subject and any other we see as relevant to define. More or less on how we define what is a Wikibook and what should be deleted/moved around at present this has been done on the VFD page but have you haver seen a Category or Subject page VFD given time they will come in force and for those discussions a clearly definition of what is acceptable/wanted is required...
  2. Clearly state how new namespace can be created the steps to get them. This would resolve the lingering issue about the use of : on project names and explain why Cookbook and the other more self contained projects exit, the normal Wikibookian isn't aware of all this.
After those steps to define what they are, the next is to implement, probably in the same guideline (if not to verbose and if people easily reach a consensus), a definition on how to use the namespaces and provide a greater level of consistency on the type information they display and even in some cases how it is structured. --Panic (talk) 03:20, 26 August 2009 (UTC)[reply]
Categories on a book's category are supposed to mirror those on the book's main page, so the main page and the category containing all the pages appear in the same places. Adding categories to a book's main page causes it to appear in more categories, while you can add categories to a book's category all day long and it won't change any subject pages at all. My comments above still apply whether we're talking about the main page or the main category. In fact, if you add a category to a main page I expect it to be added to the category and vice versa. Whether a specific category is correct for a book in general is unfortunately something that is subjective and best evaluated on a case-by-case basis. My overarching concern is that categories don't become so bloated that they cease to be useful. -- Adrignola talk contribs 04:42, 26 August 2009 (UTC)[reply]
I never maintained cohesion between the category between books main pages and their categories, and from my previous edits on categories this wasn't a practice and it seems very hard to maintain consistent on the long run, on the other hand what I was proposing (and I've tested this partially in the past, in particular in regard with some of the programming books), works fine and is easier to maintain. Having the main page of a book only link only to its own category and one subject (this would involve completing the list of all missing subjects) makes the sporadic editor think twice in adding more categories to that page. This would make maintaining a consistent category system only an issue on categories pages, much easier and step away from the books (if a user needs that information, he would only need to click on that book category on any page of that book, personally I never click on other categories besides the book category or template, I use the category navigation page something that is somewhat hidden from the user).
Subject pages shouldn't be categorized (this would indeed increase confusion) they should have only other subjects added, probably only parent subjects as to aid navigation. (ie: C++ subject would have a subject of Programming languages), this would also help determine over-categorization.
The above two practices would reduce duplication of information, work and help create real tree structure (if possible).
In any case you didn't reply to the question. Do you see or have any issue with those simplifications ? --Panic (talk) 05:41, 26 August 2009 (UTC)[reply]

I take severe issue with those simplifications. It is not the direction the system was evolving in and I went through a great deal of trouble to ensure a book's category had the same categories as a book's main page when reorganizing. There were many books with the book category in one place but the book's main page in another. I also removed overcategorization from main pages so nearly all books now reflect the one subject and book category scheme. Adding categories to a book's category won't change the display of what books are on what subject pages because the subject pages look at the categories on the book's main page and ignore a book's category. It would indeed change the way books are displayed on the page you linked to above, but that is hidden from users and so lacks effect. It would also make the category tree inconsistent with the subject tree and force debate over which of several categories (maybe all of which are relevant) gets top billing as the only one allowed on a book's main page and the only one allowed to affect its position within the subjects.

And subject page categorization must be maintained else the subject pages don't work. The sub-subjects are based on the subjects in a particular sub-category. You remove the categories from the subjects and suddenly none of the subjects link to each other in a dynamic fashion. You say they should only have other subjects added. Well, that is currently the case. The categories they have reflect the parent subjects they are part of. This brings me full circle back to my comment to DavidCary that subjects and 'subject categories' are not much different from one another. In fact, subjects are inextricably linked to categories because of the way they are dynamically generated using them. -- Adrignola talk contribs 12:24, 26 August 2009 (UTC)[reply]

I understand that you have put much work into this (more than anyone else before), and I'm not pushing for a change, but as I said before you started, not all views were in agreement. I could also have made a similar claim when you started implementing those changes, as I was the last one to tackle the issue. If you are putting your hopes on the argument that things are now as they should, then it was all for not, it hasn't historically been successful, it has indeed created stronger objections and people willing to commit to the tasks of restructuring.
The system has not been evolving into any particular direction, Whiteknight took a shot next Darklama made some headway and then I did some work (this is a bit of oversimplification and I can't include bots as I don't monitor those changes).
We do agree in things more than we disagree. We seem to agree in preferring one subject and the book category in the title page, all subpages part of that book category, dislike overcategorization and like the subject namespeace structure to mirror the categories, these are the most important points.
But those points aren't affected by the differences of implementation I defend and those would resolve having book title pages outside of those book category pages, for no particular purpose, since it is duplicating the subject function. It would also remove the need of having subject shown inside categories mixed with book titles. It would permit to link subject with other subjects as they should.
The likes and dislikes aren't incompatible at all, and there are several ways of going about it. I pertinently stated in the start of your changes, that we should write this stuff down and agree on it first (before a large scale undertaking). The more time it takes to define the community opinion on the subject the less opportunity will there be for compromises and less secure will be the work you have put into it and without a guideline as soon as you relent your attention on the subject chaos will rain once more, and the cycle will begin again.
In any case you now have my opinion. DavidCary also raised some questions and I remember Darklama also not fully committing to all of the decisions. These are only the top points, we can then go down into the details of case, plural versus singular, etc...
I continue to support all the work you are putting into it, but again I hope that sooner than later you decide to bring the issue to community validation so it will have a chance to survive beyond you. --Panic (talk) 19:23, 26 August 2009 (UTC)[reply]
One need only point to the stalled discussion on the lone issue of bookshelves versus subjects to see that, had I tried to get everyone's support before "being bold" and working to bring organization to chaos, I'd still be waiting and the books would still be a mess. The issue of image uploads to Wikibooks or not has also stalled out, and I started that discussion at your request. The name casing discussion as DavidCary has noted on several talk pages has spread out and gone on for quite a while despite supposed guidelines on the issue. Look how many books have no clear consensus right now at votes for deletion despite being up for weeks, because nobody participates in the discussions.
I have not sought "community validation" for what appeared to me at the time to be improvements/continuations of trends because of the factors noted above. Wikibooks has a nice friendly small town atmosphere that's encouraged me to try to make a great deal of improvements, but at the same time it is analogous to a rural community where things occur slowly and resistance to change is high. -- Adrignola talk contribs 19:59, 26 August 2009 (UTC)[reply]
I understand your frustration in any case I did not participate in the bookshelves discussion (and can't even remember if I was aware, on that subject my understanding is that they are deprecated but still partially maintained until the subjects can really take their place, I think I saw one weak objection based on the fact that the subjects at that moment weren't up to the job).
As for the why the discussions stalled, I can only evaluate the image proposal. It was because you didn't attempt to reach a consensus decission, you stated a proposal and asked for opinions without a time-limit to conclude the proceedings nor have you attempted for instance to clarify if the only standing opposing opinion has been changed (in regards to the images, for what I've read the Wikibookian was willing to compromise and Darklama seemed to assure him that his point would be covered), was it lacking yet is a final statement of non objection, just place a message with the new understanding of what was agreed, requiring any lingering objections to be stated or the proposal will be considered approved in 7 days and that is all. There was no real objections to the proposal about images only a few minor consideration that seemed to have been resolved. --Panic (talk) 23:20, 26 August 2009 (UTC)[reply]

Query re Data Compression[edit source]

Casting about for something to do I note that Data Compression could use splitting up and extending. From its history you (and only you) have made a number of recent small edits to it. Do you have any further plans/designs on extending that book, or know of any? Fernly | Talk

I plan on adding more to the book.
Little by little, I hope to build an excellent book.
But I have no overarching Grand Design right now, and I don't know that anyone else does, either.
I expect it to take years to develop into an excellent book.
So please go ahead and split it up and extend it.
Have you seen the "Big Buckets First" essay? It suggests splitting wiki pages into a few large pieces at first, rather than many small pieces.
--DavidCary (talk) 04:42, 28 August 2009 (UTC)[reply]

I see some structural problems with the book as it is conceived of now. By making coding a prerequisite you eliminate some of the explicatory power of definitions, and imply that coding is going to be the major element that makes tighter storage possible. What I would do, if you allow me, is to split the page up into chapters, one of which would explain the relationship between coding and symbolic content showing how different codings of the same data, can result in more or less storage even though the content remains the same.

Another chapter would explore the necessity for a model, perhaps taking statistical modelling as an example and showing how different statistical modelling techniques allow for different storage sizes.

Another chapter might explore the Library/Dictionary coding schemes, and how common content can be used to reduce the size of storage, inflating the size of the program rather than the compressed file.

Another chapter might explore the Order/Entropy aspect, and how compression increases the Entropy of the file at the expense of order, while imposing order on the interpretation of the file, and thus why compression is not necessarily a good form of encryption. This chapter could also deal with order injection, and Entropy Injection as ways of extending compressability.

Another chapter might explore the Assymetric nature of compression, where extended processing during compression might result in smaller files, that are quickly and easily recovered.

Another chapter might explore Lossy versus Non-Lossy compression using the example of the JPEG and how fractals make it possible to compress the relatively large graphics data file into a variable compression scheme capable of much smaller files than data content suggests.

I actually did some work on an inference compression scheme some years back, but abandoned the project when my coding ability came up against the limitations of the programming language I was programming the project in, and no one offered me any help debugging a particularly buggy section of code. I have since decided that I am not a professional programmer, and therefore should not attempt coding that is too complex.--Graeme E. Smith (talk) 15:58, 29 August 2009 (UTC)[reply]

Some people believe that even expert programmers "should not attempt coding that is too complex". Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. --Brian Kernighan
I'm thinking about adding source code to this book. I'm hoping that with enough eyeballs looking at this Wikibook, that bugs in the code I write will be quickly spotted and fixed. (Or should I be posting that compression algorithm source code at the Algorithmist wiki ?)
I don't think I'd mind if a couple of the algorithms in the book are things someone made up one day -- the Wikipedia: Wikipedia:Wikipedia is not for things made up one day apparently does not apply to Wikibooks, especially to the sort of "self-verifying" statements that we have in mathematical proofs and computer source code.
Feel free to slip in some a little extremely experimental and somewhat buggy compression code. Perhaps someone might help debug it; and in the worst case someone will decide it doesn't help our readers and simply delete it.
Also, I hope that people edit my source code such that it is extremely easy to read. Such code often *appears* simple or even "screechingly obvious code".
As I said before, please go ahead and split it up and extend it. Do whatever you think will make this a better book. If I tried to tell you "don't touch it!", then the book would end up worse. I -- and the people who wrote Wikibooks:Ownership -- think the same is true of every book at Wikibooks.
--DavidCary (talk) 04:03, 1 September 2009 (UTC)[reply]

OK, I added a Contents section and gave it about 5 chapters, each one with a blurb describing the type of compression scheme I was suggesting in that chapter, take a look at it, and tell me what you think, any screamingly obvious errors and such like.

I finally got around to folding the first page back into the chapters in the contents list, so you might want to take a new look at it especially since I am not sure that I should have put some of the data into the chapters I did, because of a sort of incongruency between the chapters and the data on the front page. For instance I left auditory compression to last, because I wasn't really shure where to put it.

How to Write a Program[edit source]

Hi DavidCary!

Thanks for you Wikibooks contributions.

In any case, you've assigned How to Write a Program as a prerequisite for Optimizing Code for Speed, the latter of which I have originated. However, on the "How to Write a Program" talk-page, I've said that I've been feeling that its style was horrible, and that it mentioned only several private resources (e.g: Google, Freshmeat.net, etc.), and not some other prominent alternatives, and was also too opinionated and/or fatalist. I'd like to change it and remedy it, but not sure I've got a green light for that. Please reply here and/or on that page.

Shlomif (talk) 11:38, 14 November 2009 (UTC)[reply]

Responded at Talk:How to Write a Program. --DavidCary (talk) 03:31, 20 November 2009 (UTC)[reply]

Hi!

Please respond to my new comment.

Shlomif (talk) 23:39, 25 February 2010 (UTC)[reply]

Take a look http://hackspire.unsads.com/wiki/index.php/Hardware#CPU, http://www.datamath.org/Graphing/NSpire_P.htm and http://www.datamath.org/Graphing/NSpire_KBD_Y.htm Using a TODO box or rewording it to reduce the use of the question marks would improve it, but maybe you can do more with it using the info above or if you are interested in more research.
"The TI-Nspire seems to use an ARM processor (ARM926EJ-S), that may be capable of running TI-84 Z80 assembly language programs using its TI-84 mode emulator." (something on these lines, this is not my area) --Panic (talk) 02:56, 6 December 2009 (UTC)[reply]

OK, that sounds like a good idea ...
Done. --DavidCary (talk) 05:58, 6 December 2009 (UTC)[reply]

Further reading...[edit source]

Hi David.
Noticed that you added a further reading to C++ Programming/Programming Languages/C++/Code/Style Conventions, I think I had already talked to you about the issues of adding those sections, they can be useful but if unwatched and unverified they can serve to dump clutter on what is not a self contained article about a subject (like a Wikipedia article) but a page of a book.
Adding a Further reading will also increase a sense of "things that are still not covered" we in the book have adopted the TODO box for pending work but in this case the coverage seems satisfactory (the page has been stable for some time). I also don't know if you browsed the information that is already present on that page, at least from my part it was an attempt to keep it NPOV (my personal preferences are here), and it aims to aggregate all the different rationals behind the available choices (that is why only the historical styles are present on the Web links) anything else should/could be "adopted" in.
Regarding these 2 new links, the first is a collection of Style Conventions (some are C only so a better way to integrate it is to expand the Weblinks#C++ Coding Conventions list (it already has the top 3 styles) with only the relevant links and/or "import" (without directly coping it) some of the useful sections. Note that the text already points to that list "A list of different approaches can be found on the C++ coding conventions Reference Section."
The second link is more problematic since it specifically attempts to deal with one single issue, security. This is something that hasn't yet have a specific section on the book (even if I and others, have attempted to place notes where relevant) it can probably be converted into the content in that way or just added to the above list also (with the note that it is problem specific and as stated on the PDF as one of its objectives "a C++ subset suitable for use in critical systems" it doesn't really conform to "normal" use (I had already known of the paper and browsed over it sometime ago) it usefulness (to the book) it a bit debatable in that section.
In any case if I hadn't, I'll ask you to continue to add useful information but integrating it with the book text where pertinent, verify and use the correct subset of the linked information, you can also add you finds and rational about what is missing on the content discussion page and I (or others) will deal with it, if you aren't interested in doing more. If you agree (even if only partially) that those sections shouldn't really be added to book pages, create a post on the Talk:C++ Programming/Content were we can both reduce, the first url list, see if all references are already covered, came to a positive outcome if or what of the second url information can be "adopted" into the book.
PS:The second link is somewhat broken, the pdf ( http://www.misra-cpp.org/downloads/SCSC-Tapp.pdf ) or at least I'm thinking that this is the conventions you found interesting. --Panic (talk) 05:12, 14 February 2010 (UTC)[reply]

OK, I did what you suggested -- I moved those two items to the C++ Programming/Weblinks#C++ Coding Conventions section. I agree that's a better place for those external links.
I certainly agree that writing code with memory leaks and buffer overflow bugs and undefined behavior is all too often the "normal" use of C++.
However, I think the readers of this Wikibook would benefit from knowing where to learn more about techniques that reduce the number of such bugs in software, just like the readers of this Wikibook benefit from knowing a little about techniques used in internationalization, even if they "normally" don't bother with the extra hassle of using those techniques.
p.s.: I think you were just seeing a temporary glitch.
Would you mind going to C++ Programming/Weblinks#C++ Coding Conventions, clicking on the MISRA link, then choose "Resources" and then "Introduction to MISRA C++:2008". That seems to load the "SCSC-Tapp.pdf" document on my end -- or am I just seeing a stale cache? Is it still broken when you try it?
--DavidCary (talk) 18:56, 15 February 2010 (UTC)[reply]
Thanks. Going by you script it goes there but a user will probably not fallow that sequence, it will see the blinking line and click there if persistent enough. In any case I've reexamined the information available there, it doesn't really cover C++ but a subset of the language and the information consists in 2 small paragraphs, and I think the goto information is already present on our book. I'll put on my todo to try to examine the links one by one and see if the content can be made redundant by covering it locally. --Panic (talk) 21:04, 15 February 2010 (UTC)[reply]
I don't understand. The module C++ Programming/Programming Languages/C++/Code/Statements/Variables/Operators, like pretty much every individual page in the C++ book, doesn't really cover C++ but a subset of the language.
I agree that the "SCSC-Tapp.pdf" doesn't say much that isn't already in the wikibook, so I don't understand why you brought it up. --DavidCary (talk) 22:55, 16 February 2010 (UTC)[reply]
I thought that your second link was because of the content of that PDF, if so it states that the conventions about security it promotes are only valid on a subset of the language (I don't clearly understand what they mean by that and I suppose that it is because it only cover a set of instructions not all the standard, as they only provide 2 paragraphs of instructions). It is a bit hard to compare a link to a work to a single page of a work like you did, its oranges and apples. Going to the absurd to better pass what I was attempting to say, it would be like adding links to newsgroups posts that provided any useful info, I don't think we should promote that, not on the book (it is welcomed to point it on the content discussion page if relevant). --Panic (talk) 02:59, 17 February 2010 (UTC)[reply]
By "subset of the language", they mean that when a programmer writes code that follows all those guidelines, that code can be complied on any standard ANSI C++ compiler.
It's a way of clarifying that "code written in MISRA C++" means "code written in C++ that follows all the guidelines from MISRA; code that you can compile with any ANSI C++ compiler"; and not "code written in a language that is similar to ANSI C++, but it can only be compiled using some crazy expensive compiler from one particular company".
I wish MISRA allowed me to show the readers of this book the complete "MISRA Guidelines for the use of the C++ language in critical systems" document.
The closest I've found so far is the link I posted to the main page of "the MISRA C++ website". (That website also happens to include the "SCSC-Tapp.pdf" file. The "SCSC-Tapp.pdf" document covers 2 or 3 out of over 100 MISRA recommendations in the complete "MISRA Guidelines for the use of the C++ language in critical systems" document.)
Let me try to compare apples to apples:
I think it would help the readers of the C++ Wikibook to know that the Unicode Consortium exists and has a standard code for information interchange, even if the Wikibook doesn't list any particular numeric values of that code. I don't think leaving out every one those numeric values makes the C++ wikibook "incomplete", althought not mentioning Unicode at all would make it incomplete.
Likewise, I think it would help the readers of the C++ Wikibook to know that MISRA exists and has guidelines for programmers working on safety critical systems, even if the Wikibook doesn't list any of those guidelines. I don't think leaving out every one of those particular guidelines makes the C++ wikibook "incomplete", although not mentioning MISRA at all would make it incomplete.
--DavidCary (talk) 06:06, 19 February 2010 (UTC)[reply]
As an introduction I must inform that I'm also the person removing all mentions of unmanaged C++ as a language on Wikipedia. :) So I hope you appreciate my point of view...
I agree with your interpretation of subset, but not to the complete rational you make above (even if I understand your meaning in reality ANSI C++ never existed, a C++ language committee was formed but never concluded to formalize it under the ANSI, ANSI C did) we have ISO C++ (or the standard C++ language, or simply C++), so a thing is C++ or a subset of C++ but portability (I think that was you reference to ANSI C++) is another issue and deals with stuff that isn't defined on the standard. I don't believe that they intended to make that the distinction. Why do they make a point of calling their instructions as based on a subset of C++ (what implications/limitations are they attempting to convey), they could just state that it covers the standard C++ language. I got a bit of an inkling that they seem to be attempting to use their guide/standards as a certification base as they make a point of writing MISRA C++ in almost every instance that simply indicating C++ would have sufficed. As certifications are often more about creating revenue than producing added value or open standards it didn't convince me...
[Addendum] I saw this at the Lambda the Ultimate blog and thought it relates to the intent/meaning about the subset. Joe-E: A Security-Oriented Subset of Java "...Joe-E, a language designed to support the development of secure software systems. Joe-E is a subset of Java that makes it easier to architect and implement programs with strong security properties that can be checked during a security review." if this is close to the meaning that the MISRA is promoting, it means that it doesn't relate to C++ but to the use of a subset that is closer to a new language (C++ with restrictions)...
Is the MISRA Guidelines for the use of the C++ language in critical systems publicly available ? I got the PDF you linked a year+ ago IIRC but thought it was very "low" in content and that was why (besides the need to navigate the site), I don't see it as a benefit for readers (we could indeed add/plan a section about security and critical system for the book and then integrate MISRA and similar organizations on the text).
As for the Unicode and character encoding schemes in general, it was my intention to cover that, it features on the editor's list of things to do.
There is still more important things missing, the STL has yet many content missing (I had already got permission from the http://www.cppreference.com/ to use their content before they relicensed it for compatibility) but I have reduced my content contributions to Wikibooks in general since I've keep my attention more on the politics of the project (not by preference but necessity). I think in general things in the Wikibooks project are getting better, consensus has been taking an higher impact on decisions, people are demonstrating more respect for the opinion of others, the Be Bold was approved, books can now be created to cover the same topic from distinct perspectives (there are two other great books on C++, the "optimization" and the "more idioms") and users seem to be more aware of licensing issues and problems of ownership, all this have been huge improvements from the situation we had before.
After the debacle of the TOCs the book lost a lot momentum, even the sporadic contributions have dropped, probably because the current situation makes navigating the book harder and in general puts people off. The request for restoration is still pending, with time I hope things will be put on the original locations, the cover/entry page is already unlocked and I've been slowly organizing the pages, some of the content deleted is still missing and people have complained about the missing low level introductory content, the language comparison section needs to be rewritten and reformatted, there is still a lot to do. More important the chapters still need to be renamed since the names they have were a result of a compromise, not my first option, so until that is done adding new sections/pages is a bit tricky since a move would be needed later on.
Recently I've been attempting to provide a bridge to Wikiversity C++ (take a look if you haven't) to the exercises already present on the book and interweave them with the chapters to provide a end of chapter exercise section.
Things proceed but at a slow rate... --Panic (talk) 07:39, 19 February 2010 (UTC) Edited and added more stuff. --Panic (talk) 03:56, 20 February 2010 (UTC)[reply]
My understanding is that "ANSI C++" was formalized as ANSI 14882 in 1997, and is practically identical to ISO C++, British Standards Institute C++, etc. [2] [3] [4].
Thank you for telling me about Joe-E; I find that very interesting.
I don't understand why you think a set of guidelines for C++ "doesn't relate to C++ but to the use of a subset that is closer to a new language". For example, some people follow the guideline "variable names are never all uppercase". Those people are programming in a subset of C++. Would you say that the "variable names are never all uppercase" subset "doesn't relate to C++" ?
The "MISRA Guidelines for the use of the C++ language in critical systems" is publicly available from the web site I linked to, but I wish it was freely available.
Much like the ISO C++ standard is publicly available, but I wish it was freely available.
Much like the ISO C# standard (ISO/IEC 23270) is publicly available, but I wish it was freely available.
Much like the Unicode standard is publicly available, but I wish it was freely available.
I am glad that you now have permission to put a big chunk of content about STL into this book. I wish it was freely available -- and it is! Yay!
I agree that the C++ Programming Wikibook is growing slower than I had hoped.
I still have hopes that it will, someday, grow into an excellent book.
adding new sections/pages is a bit tricky since a move would be needed later on.
That is why some people prefer the "flat structure" (Wikibooks:Local manuals of style#Flat structure (Book/chapters)). Then pages (or "modules" or whatever we are calling them) never need to be renamed with the "move" tab when they are placed in a different chapter.
one single issue, security ... is something that hasn't yet have a specific section on the book ... it usefulness (to the book) it a bit debatable in that section.
I completely disagree. I think the people who read this book need to learn how to fix code that has security-related flaws -- such information is highly useful. I think I must be misunderstanding what you are saying here. I can't believe you are suggesting that we shouldn't talk about security anywhere in the entire C++ book, except perhaps in one specific "security" section. --DavidCary (talk) 03:37, 13 March 2010 (UTC)[reply]
  • reset of indentation

I would put the limit on what constitutes a subset of a language to the level of complexity of the adopted limitations. Today I reread part of our last discussion on Talk:C++ Programming/Content regarding C style and C++ style, this is more or less the same issue if the excluded section of the language is computationally significant it becomes a subset (I like this last definition).
As for the format of the book, as an Editor I prefer the monolithic but after many requests to split it into subsections and due to the size of the content (IIRC the books is the second biggest work on Wikibooks), subsections and modularity became a necessity and useful since the C++ language can't be really understood linearly since there are too many interconnections.
Regarding security yes you misunderstood me (or I wasn't clear) but "I and others, have attempted to place notes where relevant" seems clear. Security is a concern I share with you but wouldn't like to exclude including insecure alternatives from the content, since security considerations often depends on the requirements and objectives. Security may not always be a goal or a primary consideration... --Panic (talk) 05:10, 22 March 2010 (UTC)[reply]

That is an interesting definition of "subset". Please forgive me if I, my teachers, MISRA, and every mathematician I know, all use some other definition of "subset".
--DavidCary (talk) 15:50, 14 July 2010 (UTC)[reply]
Without any added qualifications or restrictions a subset is one that is strictly contained within a larger class and excludes some of its members. Symbol A⊂B. Now you made me curious, what other definitions do you know? --Panic (talk) 16:20, 14 July 2010 (UTC)[reply]
I heard that someone once said on this talk page "if the excluded section of the language is computationally significant it becomes a subset (I like this last definition)."
For example, some people follow the guideline "variable names are never all uppercase".
Even though that is not computationally significant, I say "Those people are programming in a subset of C++." --DavidCary (talk) 22:21, 14 July 2010 (UTC)[reply]
I would agree if they established that as an obligatory subset, for instance I have strongly worked on Wikipedia to remove mention of Unmanaged C++ outside of a .Net context, since Unmanaged C++ isn't a language, in the same way an intention or even a practice can't by itself be taken as a subset if not generally accepted. One example example of a subset of C++ would be for instance the (failed) attempt to create Embedded C++.
The "computationally significant" bit is that the compiler will act on violations of the restrictions that define the subset. --Panic (talk) 22:35, 14 July 2010 (UTC)[reply]

Data Compression/Inference Compression[edit source]

The example used my be unnecessarily confusing. "For instance a compression scheme that assumes capital letters are common, will probably not deal well with a list of URLs. " It implies a supposition from the reader that letter case is relevant (it may be or not) and erodes the notion that URLs are by default case insensitive. I call your attention here since I couldn't came up with a good enough substitute example (emails have the same issue) and the comment would probably be lost in the edit history. --Panic (discusscontribs) 03:59, 1 August 2011 (UTC)[reply]

PS:I removed part of the alteration on the title page, because of the issue I relate on the general discussion forum (Vector the def. skin cuts the fonts) in any case I defer to your aesthetic choice on the subject. I thought that the image reflects the infinitely great and the power of compression, especially in such a large data set, feel free to change or remove it if you don't like it. --Panic (discusscontribs) 04:03, 1 August 2011 (UTC) This was solved. --Panic (discusscontribs) 02:20, 7 August 2011 (UTC)[reply]

PPS:I've attempted to address the Library/Dictionary issue especially since the text locally doesn't use the word library in that context (and I never saw it used but I kept the information you had there, providing some conceptualization). In that page all other library mentions refer to code implementations, but I think there are other pages that I saw the use of library in the context of dictionary... --Panic (discusscontribs) 01:48, 2 August 2011 (UTC)[reply]

Thank you. I swapped out that example for a different example in Data Compression/Inference Compression. Is that better? Feel free to substitute or add better examples.
I like the photo of the star cluster. Thank you. The photo also reminds me of the astronomical numbers involved in some applications of the pigeonhole principle. I feel this book could use many more illustrations.
I'm debating whether or not this book needs a "glossary" page. For now I guess I'll define each term as it occurs; perhaps some later editor will gather all those definitions into a glossary. I generally prefer "In this book, 'dictionary' always means X. Other works may sometimes use 'dictionary' to mean Y, but in this book we will call that a Z." rather than an ambiguous (but accurate description of the literature) "Sometimes 'dictionary' means X, and other times 'dictionary' means Y. The more specific term Z always means Y.". --DavidCary (discusscontribs) 01:38, 7 August 2011 (UTC)[reply]
Changing of examples is hard, I did attempt to came up with a good example and failed, your last change is a bit more complex but resolves the issue.
I don't particularly like glossary pages on a Wikibook (they are just impossible to maintain in the context of multiple editors), those pages have some usefulness on paper books (especially if the works cover extremely technical details and introduces a lot of new concepts, generally new or new to he reader, depending on the scope). Do you remember the last time you looked into a glossary page ? Myself I rarely do. I prefer an index that points to the locations where a specific topic is covered and of course a list of acronyms is at times also extensively useful. My view is that the glossary if needed should be the last stage of a usable book, on Wikibooks we can use Wikipedia links extensively (or when introducing the concept), in "my" books I attempt to fallow this practice at a later stage this can, if needed, be used to create the the glossary section.
The problem with illustrations is that Wikipedia still seems not to use Commons to host most of the images, like we do. From time to time I do some searches on commons to find usable items, for example I got a lot of images for the Hypnosis work but more technical projects have limited options and coming up with good illustrations is hard, I have done some myself for the C++ Programming book... --Panic (discusscontribs) 02:17, 7 August 2011 (UTC)[reply]

If and when you have the time take a look on the edit history of the page (previously named "Weaknesses of C"). I'm calling your attention since you have done several edits previously and been active in its talk page. Thanks. --Panic (discusscontribs) 05:40, 16 December 2011 (UTC)[reply]

Thank you for the heads-up. --DavidCary (discusscontribs) 01:59, 21 December 2011 (UTC)[reply]

More C++ idioms Copyright issues[edit source]

I just tagged a page of the work due to copyright infringement and noticed that it had at some point already been mentioned on Sutambe's talk. Did you get any reply? Reached any conclusion? Made any content comparisons, for instance if it can be rewritten ? --Panic (discusscontribs) 03:54, 17 April 2012 (UTC)[reply]

Closed. Page was deleted as a copyvio. --Panic (discusscontribs) 05:36, 25 April 2012 (UTC)[reply]

Space Transport and Engineering Methods Merge[edit source]

I completed the merger into Space Transport and Engineering Methods of Rocket Propulsion per your suggestion on Talk:Space Transport and_Engineering Methods. On the premise that I should not review my own work, how do we proceed to get the merger reviewed and the latter wikibook deleted if that is warranted?

Sorry to intrude.
To finish a merge you tag the source pages with {{now merged|<destination of the content>}}. If you feel that you have not used a large part of the content and that what remains can be used elsewhere but you do not know where start a Request for deletion (indicating your view and that is was reached in the process of a merge with the other work), this permits the community to salvage any useful but unused content and informs the administration that depending on the degree of content copied to what destination to perform the edit history merge.
By your question I gather that you haven't noticed the discussion Wikibooks:Reading room/General#Two questions about history merges you could take a look to understand more about the process if you wish. Note that you should have probably most of the Wikibooks:Reading_rooms on your page watchlist since discussions there may affect your work on the project or your views on how the project should operate. --Panic (discusscontribs) 21:29, 17 April 2012 (UTC)[reply]

OpenSSH / SSH[edit source]

It would make sense to have only one book on SSH but OpenSSH is nearly a complete book of publishable length and the SSH wikibook is two very sparse pages. So if there is any merging to do it would make sense to use the OpenSSH book as the base and add material from Tectia or whatever the competitor is now called. Who knows but most of the material might be applicable as-is for more than one implementation of SSH.

https://en.wikibooks.org/wiki/Wikibooks:Collections/OpenSSH

You have convinced me. Talk:OpenSSH#merge is probably the best place for any further discussion of this merge. --DavidCary (discusscontribs) 08:55, 12 August 2012 (UTC)[reply]
"Consensus is to keep." -- Wikibooks:Requests for deletion/JavaScript. --DavidCary (discusscontribs) 00:08, 18 February 2016 (UTC)[reply]

Citations[edit source]

We should avoid tagging requests for citations on the core text of wikibooks (it is not a established requirement here nor one requirement that seems needed due to the low number of editors and ease of verifying most claims on Wikipedia citations or our own reviews). If one has issues the best is to use the TODO template to mark them it is more visible and less distressing (as in authoritarian, since more that seeming a question mark it becomes a tag for something that is being actively disputed) and stays out of printing copies.

In particular to the MD5 collision issue you tagger (I didn't read all the text only the paragraph and your comment), IIRC there has been indeed papers published regarding MD5 issues I think up to 256bits and SHA1 up to 128 bits (that is equal or below those sizes the hash is considered very weak to attack). --Panic (discusscontribs) 20:24, 7 March 2016 (UTC)[reply]

I agree that there are published issues with MD5 such that MD5 is no longer recommended for new systems.
I'll try using the "{{TODO}}" template rather than the "{{fact}}" template.
I assume you're talking about the Cryptography/Breaking Hash Algorithms page.
There are two specific statements that seemed technically wrong to me on that page.
"MD5 ... have been found to have collisions that allow one to take an existing hash and compute a value that, once been hashed, will yield that value."
As far as I can tell, all known md5 collisions have been generated by someone who generated *both* of the two texts whose hashes ended up colliding.
As far as I can tell from reading the Wikipedia: MD5 article, no one has ever taken a md5 hash value or SHA1 hash value published by someone else and then found a collision by "compute a value that, once been hashed, will yield that" hash value.
If anyone has actually done that (performed a successful second-preimage attack on MD5 or SHA1), I would very much like to know a few more details, please? Otherwise I'm going to continue to assume that there has been a misunderstanding, and no one has actually done that.
"Even though these hashes are not designed to be reversed, ... some of attacks possible to succeed: ... Frequency Analysis..."
I think I understand how "Frequency Analysis" attacks are applied to (and often breaking) pencil-and-paper encryption. How does "Frequency Analysis" apply to hash functions?
I would like to know a few more details, please? Otherwise I'm going to continue to assume there has been a misunderstanding, and Frequency Analysis doesn't apply to hash functions, only to encrypted messages.
I hate assuming that I'm always right -- when I do that, I never learn anything.
--DavidCary (discusscontribs) 17:02, 9 May 2016 (UTC)[reply]
Collisions on ND4 and MD5 were an issue in several P2P networks to spoof or corrupt copyright material being distributed and if you think about it unless there is some shenanigans behind the claim of being able to generate a collision once someone proves that it can be done even by generating both hashes it is safe to assume that others will soon be able not only to replicate it but to get collisions at higher bit sizes.
On Collisions for MD5PDF
Cryptanalysis of SHA-1 (2005)
When Will We See Collisions for SHA-1? (2012) --Panic (discusscontribs) 17:37, 9 May 2016 (UTC)[reply]
Dear Panic,
Thank you for those articles. I found them interesting.
I agree that once someone proves it can be done at a cost of several million dollars to generate a pair of colliding messages, it is safe to assume that others will soon figure out ways of creating collisions at lower cost -- since "Attacks always get better; they never get worse." as mentioned in one of those articles.
I feel like I am doing a bad job communicating why exactly the following sentence from the Cryptography/Breaking Hash Algorithms page is wrong:
"MD5 ... have been found to have collisions that allow one to take an existing hash and compute a value that, once been hashed, will yield that value."
There are two parts to that sentence:
"MD5 ... have been found to have collisions" -- Yes, people have generated pairs of messages with colliding MD5 hash values, which proves that MD5 is flawed and we should be using a better hash function such as SHA-3.
"... that allow one to take an existing hash and compute a value that, once been hashed, will yield that value." -- Really?! This is huge! I've heard similar claims before involving a given existing MD5 hash value, and then someone generates a message that when run through MD5 produces that same hash value. However, every time I've heard such claims, so far such claims always turn out to be based on a misunderstanding. I kind of hope this time the claim is correct, and I'll learn something new, but I doubt it.
Can you help me improve the Cryptography book so it helps people understand things correctly, and avoids perpetuating misunderstandings? --DavidCary (discusscontribs) 15:40, 12 May 2016 (UTC)[reply]