Domain: informit.com
Stories and comments across the archive that link to informit.com.
Comments · 253
-
Re:Not a New Problem
Here is an excerpt from the 2003 article The Competitor: Jack Welch's Burning Platform:
Devising a Business Philosophy
In pursuit of growth, Welch wanted only those businesses that were number 1 or 2 in their markets in the GE portfolio.Taken at face value, this doesn't make sense to me. If you want businesses that can grow, you don't want them to already fill the room the most or the second-most. You'd want a lot of room left to grow in.
Without the Number 1, Number 2 strategy, Welch said, inflation would start to impede worldwide growth.
I have no idea how that is supposed to work. Anyone want to enlighten me? It sounds like a mostly meaningless buzzword salad to me.
There would be no room for a mediocre supplier of products and services.
Going for "#1, #2" does not guarantee an absence of mediocre products and services. The biggest companies in a market tend to be dominant and arrogant, not particularly good at maintaining the high standards that might have helped get them there.
My reading is that Welch equated "success" with being the biggest at all costs, in the most markets, but that doesn't imply that what you're doing is going to be good for the customer. Instead of attracting custom through quality, you're focusing on (effectively) taking the customer's choice away by being the "(second) most looming" choice in any market, regardless of how this came to be.
I'm sure
/.ers can think of companies who maintain being the biggest by dint of relentlessly bullying everyone and everything, including competitors, related manufacturers, and customers.Anyway, mr. Welch legacy either didn't pan out or didn't last, since GE needed bailouts not too long after.
-
Not a New Problem
This rapid growth at all costs strategy is not new. The robber barons of the gilded age would literally kill the competition if given the chance. In more recent times Jack Welch, the CEO of GE from 1981 until 2001, was famous for his "#1 or #2" strategy.
Here is an excerpt from the 2003 article The Competitor: Jack Welch's Burning Platform:
Devising a Business Philosophy
In pursuit of growth, Welch wanted only those businesses that were number 1 or 2 in their markets in the GE portfolio.As a result of this restructuring, the business could employ more aggressive tactics, such as in pricing, and have the resources to develop new products.
Without the Number 1, Number 2 strategy, Welch said, inflation would start to impede worldwide growth. There would be no room for a mediocre supplier of products and services. Successful companies in such a slow-growth environment would be those that searched out and participated in growth industries and insisted on being number 1 or number 2 in every business they were in. They would need to be the number 1 or number 2 leanest, lowest cost, worldwide producers of quality goods and services, or they would have to have a definite technological edge in some market.
He downsized the GE payroll, ending the “no layoff” policy that had characterized the company and many other large U.S. firms. He sold $12-billion worth of businesses and purchased $26-billion worth of others. And, he pared GE’s workforce from 412,000 to a mere 229,000.
To Welch, keeping people in place who contributed little or nothing to the company represented a failed strategy. It was a major reason why a company under-performed. GE’s key competition in the early 1980s was coming from overseas enterprises that paid their employees less and achieved higher productivity rates. To compete successfully with such companies, GE had to upgrade equipment and cut employee rolls.
-
Re:I don't think you have that right.
The first GPL clause says that you lose your license under certain conditions, but everyone who already has a license is fine.
No it doesn't. It says "However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance." You're rewording it, e.g., "However, parties who have already received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance." There is no qualification upon time included in the anti-termination provision.
The second one could be construed as applying to legal distribution only.
No, it can't. It says "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions." There's no condition on the automatic grant of a license from the original licensor to the recipient, and there's no required grant of license from the distributor. There is no termination of the recipient's rights under even a particular instance of license under the GPLv2 -- see the statement that it "will automatically terminate your rights under this License" in addition to the above-quoted "However..." clarification.
the courts might rule that they can't transfer a license (disagreeing with the SFLC)
They don't have to transfer a license. The recipient is an intended third party beneficiary of a direct license from the original licensor under GPLv2 sec. 6, and the third party beneficiaries' rights are not terminated under GPLv2 sec. 4, both by the terms of actual termination clause and the subsequent "However" clarification.
Even if you argue that the GPLv2 is not a contract with third party beneficiaries, sec. 6 creates a promissory estoppel with respect to the recipients. Sec. 6 is not conditioned on the distributor's compliance with secs. 2 and 3, is automatic, and is not terminated by sec. 4.
The SFLC quote, while more definite, is the SFLC's interpretation, and the SFLC does not represent all Linux contributors.
Irrelevant. The SFLC is a group of lawyers who have expertise concerning this license. Without a coutervailing analysis from a lawyer, or any indication that any Linux kernal contributor even holds such an opinion, this is merely FUD.
I don't think there's any case law here (and would be fascinated to be corrected).
Your wish is granted. Skip down to "The use of GPLv2-licensed code is authorized for compliant users, even if they receive the code from a non-compliant licensee."
-
Re: Peachpit ebooks
More information on DRM-free ebooks sold at informit.com: http://www.informit.com/store/...
-
Re:Closures?
I agree. Threads are OK IF YOU USE THEM THROUGH A LIBRARY. It is a horror if you try to go down to the primitives and lock things yourself. shared objects and threads are an absolute no-no. The problem with locks is that they look very simple but the interactions are actually very, very hard. It is like building computers from discrete logic gates. Digital logic is not hard in principle, but the emergent complexity quickly becomes totally overwhelming.
All programmers should be required to read this:
https://pragprog.com/book/pb7c...
and Doug Lea's book about Java Concurrency.
http://www.informit.com/store/...
Lea is so good his stuff became part of the official Java Spec.
-
Re:OpenWRT for $25
This is not as good as it appears. Their "Enterprise router" has 128 mb ram and there is no way that's going to hold up to a significant amount of simultaneous (connections let alone the 64 mb ram that most of the devices have,
Is that really an issue? According to this, each NAT entry needs <200Bytes, in which case 2000 simultaneous connections (plenty for most any single dwelling) require less than 1MB RAM.
It wasn't that long ago that even enterprise-class routers got by on 32MB or less of RAM.
-
Re:Simple ...
Wow the smug condesention is strong in this one.
I for my part wrote an STL clone around 1993 when the STL was just a lab experiment at HP.
The hard bit about the STL is the whole concept of, well, concepts that Stepanov finally hammered out. The STL, especially 1993 era is not all that complex.
Well, iostreams and their interaction with locales is deeply fiddly and I'd steer clear of that. But the basic algorithms, you know, vector, list, set/ma/multiset/multimap, sort, heap, priority_queue and so on and so forth are not too bad.
Not to say it's not an achievement, but it's not enough to convince me that you're an uber-guru. I've written STL compatible containers, and STL like algorithms for things that weren't in there. Apart from quantity the principle is the same.
Perhaps you should read what I wrote: I have roughly 15 years consecutive C++ experience from 1989 till 2005, plus random 3 or 4 years over the last decade.
15 years experience, or 1 year of experience repeated 15 different times?
Given you've never seen code without new in it (as your other post claimed), I'm inclined to think the latter because you seem to be deeply ignorant of whole swathes of C++ style. In a lot of code, you never see new and delete. Everything is managed by containers. I work on computer vision systems, and you can get entire working, robust systems without a new anywhere in sight. The custom containers might have a new in, but that's---well, let me check the library I'm using---let's see there's 80 instances of new in 40k lines. Of those most are in old code from before TR1 gave us many standardised smart pointers, and others could easily be replaced with a std::vector (the code's not perfect, it's been hacked on for the last 15 years), some are strange, silly uses and the rest are to initialise now deprecated auto_ptr.
There's about one legit one which uses placement new and posix_memalign.
With spare time, I could make that one in 40k lines of code easily. In fact that's going to happen slowly as the library is being transitioned to C++14.
I find it terrifying that someone who pust themselves forward as a super C++ guru is splattering new so much all over the place. But you won't believe me because without knowing anything about me you've convinced yourself that you're superior.
Let's see what a real, certifiable C++ guru says:
http://www.informit.com/articl...
Bjarne doesn't like new/delete either. No offence, but I'll take his invention ans stewardship of the language over your 1 year of experience repeated 15 times.
I doubt you regularly find one here on
/. who has significantly more C++ experience.Out of interest, do you have any T-shirts with disparaging things written about n00bs on them? And are those slogans visible under the cheeto dust?
-
Re:Casting
C casts are a necessary evil! While "C++ cast operators are nothing but a major annoyance":
-
Ah yes, for that we have D
Not to be a fanboy, but: a lot of this stuff makes me think "Ah yes, that's why we have D".
We dream of cleaning up the mess
Yep. D is pleasantly free of the mess.
a direct mapping to hardware plus zero-overhead abstraction
Here, D and C++ differ somewhat. D isn't totally unusable without its trusty garbage-collector, but it's not something that's often done.
Being a fan of range/container algorithms
Andrei Alexandrescu agrees. See also these.
Ranges are a standard thing in D.
I think we should think more about isolating unsafe code in a program than to eliminate it. Putting the necessary unsafe code into a different language limits our control of it, limits what can be communicated to it, and typically imposes overheads.
Precisely why D has a safe subset and the @safe and @trusted attributes.
Of course, D doesn't have compatibility with old C++ code, or even with old D code (that's why there's the ancient-but-stable D 1.0 language).
-
Re:DRM-free largely stops at 1922
I used feedbooks with my eInk device. They have all of the Project Gutenberg collection, as well as a load of CC works, and a nice typesetting engine for generating PDFs for your device (or ePub or other formats). For technical books, Safari Books Online carries all of the major publishers and lets you access chapters via a subscription, or download entire books in PDF or ePUB. If you just want to buy them, InformIT carries all of Pearson's books (Prentice Hall, Addison-Wesley, and so on), and they usually charge less for DRM-free ePUB + PDF than Amazon charges for a DRM'd Kindle book. Oh, and on my last book Amazon managed to fuck up the formatting of the Kindle version (the version on InformIT was fine)...
-
Re:464 pages
You retard, it's meant to be read in 24 *hours*, not "24 hours". So really they probably meant within a month, if you read a chapter per day.
It's similar for Sams' "10 minutes" or "21 days" books - each chapter taking 10 minutes/1 hour/1 day. The 21 days books are more in-depth from what I know. The logical steps would be to start with a 10 minutes book to get the nuggets of information you need (like the TY SQL in 10 Minutes book, which is really good as a quick reference), then take it up to 24 hours if you need more, and progress onto 21 days if you're still wanting yet more.
The official website for this book can be found at http://nodejsbook.io/ and further info on the series can be found at https://www.informit.com/imprint/series_detail.aspx?st=61327
-
Re:Virtual books are retarded.
While O'Reilly does make their work available DRM-free, I take exception to the 'the one company' part of your post. Pearson[1] makes all of their books available in DRM-free PDF and ePub versions from here. O'Reilly may be the underdog in this market, but they're not the only one doing the right thing. They've been providing DRM-free books since at least 2007 (I only started paying attention when they published my first book).
[1] Owner of the Addison Wesley and Prentice Hall brands, among others.
-
Re:Alternatively...
A CP/M system has only one directory, which contains fixed-size (32-byte) entries. The directory size, although fixed for a given implementation, may be different in other implementations of CP/M All files in the system are listed in this directory. After CP/M boots, it reads in the directory and computes a bitmap containing the free disk blocks by seeing which blocks are not in any file. This bitmap, which is only 23 bytes for a 180-KB disk, is kept in memory during execution. At system shutdown time it is discarded, that is, not written back to the disk. This approach eliminates the need for a disk consistency checker (like fsck) and saves 1 block on the disk (percentually equivalent to saving 90 MB on a modern 16-GB disk).
-
Re:Measured from where?
By the time you've finished the boot process, you're likely to be using more GNU code than Linux code.
-
Re:Mandatory Lisp observation...
*facepalm* C++0x has closures. For example, here is an article talking about them in C++0x. Hell the article is 3 years old at this point.
-
Re:Derp?I wrote an article about this a little while ago. Basically, Microsoft has two options:
They already own an x86-on-PowerPC emulator, which they got when they acquired Connectix. Porting this to ARM is not a weekend task, but it is a lot simpler than writing an x86 emulator from scratch.
They can license the same emulator from Transitive Technologies that Apple licensed and branded Rosetta. This already emulates x86 on a variety of architectures.
I also wouldn't be surprised if Transitive shipped their own product to OEMs wanting to sell Windows on ARM. The nice thing about their emulator is that it supports calling out to native libraries, so things like DirectX DLLs and video CODECs will all be native ARM binaries, even if the core application isn't.
-
Re:can you hack the iphone / ipad to run windows 8
Thing is, emulation introduces a huge overhead
The thing is, no it doesn't. For one thing, most modern emulators don't emulate everything. A platform like Windows ships with a large number of standard libraries, including things for drawing and even video playback. When you draw a line in a window, 99% of the CPU time is spent computing the pixel intersections, and this is all done in Win32 code. When you draw a character on the screen, you're drawing a set of antialiased bezier curves and compositing them onto a buffer. Pretty processor intensive. However, when you do this in emulated code, only the initial call is emulated - the 99% part is native code.
For really CPU-intensive things, like video decoding, this can be even more pronounced. A Windows app playing back video will typically use DirectShow filters for the decoding. It passes a chunk of data to the filter and gets a decoded frame back (often passing it directly to the display device). In an emulated environment, the decoder filter will likely run on the ARM SoC's DSP, and the emulated code will be woken up periodically to pass it new data. Very little of the application actually runs in the emulator.
For 3D stuff the code is even shipped as bytecode already. nVidia and AMD don't even provide the same instruction set between product generations, let alone between vendors. When you run a 3D application, all of that shader code is already being JIT compiled (by the drivers) for the current target GPU. Doing it for the GPU on an ARM SoC is not a challenging problem.
I've written an article on the challenges Microsoft faces with the ARM port. None of them are insurmountable.
-
Sample the Book from Safari FirstFor whatever reason, they left out a few links I put at the end of my submission:
To sample some of the book, check out the Safari Books page. Test-Driven Javascript Development is available in many open formats with watermarks or from Amazon.com.
That Safari link is especially useful if you're on the fence about getting this title, you can view some of the book there. Also, I'm not seeing my score (9/10), publisher information, number of pages (475) or ISBN or any of that.
-
Re:WebM will never catch on
Not at the moment. I post quite often on the Étoilé blog, although I haven't posted there since October, apparently. I also write quite regularly for InformIT (their stupid new UI means I can't link directly to the articles list, you have to click on the articles tab from that link). I used to blog on theravensnest.org, but I never got around to reinstating the blog after I moved servers ages ago. I'll probably get around to it eventually...
-
Re:C++ is convoluted and hard
It's a topic that comes up very often, and I've written an article answering it already. The short version, for people who don't want to click on the link:
The more programming languages that you learn from different paradigms, the better a programmer you will be in any language. The ones that I'd recommend:
- C, or an assembly language. C is close to what's really happening, so thinking about how you'd translate what you're writing into C helps you understand how it will perform on real hardware.
- Smalltalk (maybe Self as well). Few people really understand OOP without learning Smalltalk, and almost no one writes good JavaScript without learning Self.
- Erlang, teaches you how to right concurrent code that doesn't break.
- Lisp teaches about metaprogramming.
- Haskell teaches about pure functional programming, and in particular the use of higher-order functions.
- Prolog teaches about structuring information logically.
Even if you never actually write code in any of these languages, learning them will help you think about the languages that you do use more clearly.
-
Re:What do UKers think?
You could buy something from this page, if you can find something that you find interesting.
I've not tried for a while, but Google used to return a pirate download site as the first hit when you searched for my Xen book's title. Some asshat also decided to post a copy of the PDF version to the Xen Devel mailing list a while ago. I don't encourage piracy, but I don't see the point in doing anything that harms legitimate customers in an attempt to reduce it, which is why I added a clause to the contracts for all of the books that I've written (the third one's due out later this year) forbidding the use of DRM in the eBook editions.
I recently talked to a guy in India who pirated my second book. His family's income for a week is about the cover price (he's using it to learn GNUstep - he can't afford a Mac either) so I've clearly not lost anything from his piracy - he couldn't have afforded it anyway, and he wrote a positive review of it so I might have got some sales out of that.
-
Re:Why really does Apple behave this way?
Your words resound in my mind strongly. I do have a bitter feeling that my new "favorite" platform (mac) has a weird-ass development language. The objective C did not click for me when I tried it
I would really encourage you to try again. Obviously, I'm biased here, because I wrote the GNUstep Objective-C runtime, the associated code in clang for targeting it (supporting Objective-C 2 on non-Apple platforms), contribute to GNUstep (which implements the same frameworks as Cocoa on OS X), and co-maintain a desktop environment written in Objective-C, but...
Objective-C is a really small language, but is amazingly flexible. If you're coming from C++, you might want to read this short series of articles I wrote for C++ programmers learning Objective-C. Once you understand object orientation, Objective-C is trivial to learn. The only thing that you might find strange is the syntax, but if you've used Smalltalk then this will be familiar. The point of using Smalltalk-style syntax in Objective-C for object oriented stuff is to highlight the fact that it is different. In C++, you use the same C-like syntax for everything, even for things that have very different semantics.
The core frameworks are also amazingly well designed. Tim Berners-Lee credited the NeXT Objective-C APIs as the main reason that he was able to implement the first web browser. These APIs have undergone incremental improvements since they were created in 1988. The biggest changes came in 1991/2 when Sun and NeXT published the OpenStep specification, adding the Foundation framework, which handled platform abstractions, so code could run on Windows NT, Solaris and OPENSTEP.
Apple has made some improvements (and made a few things worse), but if you pick up a book on programming NeXT systems from 1992, you'll find that a lot of it is still very relevant today - for simple apps, you'd use exactly the same set of classes and methods. It's hard to find another API that's stood the test of time so well. At the time the OpenStep spec was published, Windows was using win16 and most other UNIX systems were using Motif, with a few using Athena. None of these really survive today. Meanwhile, code written for NeXTStep will often compile and run on a Mac or a *NIX/Windows system with GNUstep, and a number of popular OS X apps have been incrementally improved since they created as old NeXT apps, without ever needing a rewrite.
-
Re:Start with Python
Logo is just scheme with some syntax and a nice drawing system, so it works nicely as a first language (although most people teaching it don't realise that it has things like first-class closures). I'd mostly agree with the rest of your list, but there's no point in learning two Algol-family languages (C and Pascal). If you know one, you can pick up the other in a couple of days, so I'd substitute Prolog for one of them. My list also had Erlang on it, which is very important these days if you want to learn about concurrency. I'd also add Forth to the list. If you want something really interesting, try APL, but it only really works if you have an APL keyboard. Anyone designing a programming language should learn APL first and read the Turing Award lecture from its designer.
-
Re:I'd just like to interject.
Not true. Linux compiles with ICC and with Clang. It used to compile with some patches with TCC too, but I don't know if it still does.
That said, it's a lot easier to build a GNU system without Linux than a Linux system without GNU.
-
Re:I'll explain oppressive development environment
First of all, thank you. It's always good to hear some criticism on definite and specific issues, rather than the generic "M$ sucks".
(I am a VS developer)
Or how about, starting in either VS2005 or 2008 (can't remember which one), I opened up a project written in VC++6 and freaked when I suddenly started seeing hundred and hundreds of warnings, telling me that functions like strncat() (strncat!) were "unsafe" and I should use something like _strnscat or something like that, which supposedly was "more" safe at the cost of being totally Microsoft-specific.
It was added in VS2005, but it's not quite MS-specific. OpenWatcom also provides it out of the box, and there's a cross-platform FOSS implementation available now.
The reason why the text says that they are unsafe is because, frankly, they are - as a result of several security studies, they account for a very significant proportion of known buffer overrun vulnerabilities. Of course, it's perfectly possible to use them in a safe way, but surprisingly many people actually do... but this take has been fairly controversial, anyway, I won't deny that.
It should also be noted that this isn't actually the default for the compiler as such - if you directly do "cl.exe foo.cpp", you won't get any warnings for strcpy. It only pops up if you raise the warning level to
/W3 or higher, which is what IDE does by default for newly created C++ projects. The text of the warning also clearly states what to do to get rid of it:warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use CRT_SECURE_NO_WARNINGS. See online help for details.
When you refer to it being per-project, do you imply that it was inconvenient to add the define to all the numerous projects you've had in the solution?
How about the auto-hide windows that seem to randomly decide to suddenly be pinned or to suddenly appear during unrelated actions?
Tool windows in VS have different and separate settings depending on which mode you're in - aside from the default one which you get on normal VS start and/or project open, debugging is a separate mode, and opening VS with a single file (aka "simple editing") is yet another. This is somewhat similar to Eclipse perspectives.
If you pinned a toolwindow in one of those modes, it will not be pinned in other modes. The idea is that you generally want different toolwindow configurations depending on activity - e.g. you might want Breakpoints window to be set to auto-hide during normal editing, but pinned in debugging. So you will, at most, need to pin the window in all modes in which you've made it visible, and most likely, you'll be dealing with just the default mode and the debugging one.
If you experience random pinning/unpinning that cannot be explained by the above, then please describe the scenario under which it happens - which toolwindow, what were you doing when it got unpinned, etc. Better yet, do it in a bug tracker.
When working with C#, the compiler and editor will give you a red squiggle under code it can't compile, but gives you know way to know where or how many places in the file they are
If you open the Error tool window (which will happen after the first build, but you can do it manually), it will list all IntelliSense errors just as if they were compiler errors, so you can see the error descriptions, and double-click to jump to location. By the way, this (as well as squiggles themselves) also works for C++ in VS2010.
If you want margin markers as in Eclipse, you can
-
Re:A job? How twentieth-century.
Could you post links to your books please?
I guess it's not technically spam if you ask (please feel free to mod this off-topic though - the 'no karma bonus' checkbox seems to have gone, or I'd use that)...
The first one was The Definitive Guide to the Xen Hypervisor. This was a lot of fun to write - I knew absolutely nothing about Xen when I started (and I was doing it as a procrastination activity to avoid writing my thesis). The publisher sent me to Cambridge for a bit to talk to the XenSource guys and to the XenSummit in upstate New York (I got a nice holiday in NYC too, as it turned out to be cheaper to put me in a hotel in Manhattan for a few days than to fly me back the day after the conference ended).
The second was Cocoa Programming Developer's Handbook. A couple of open source projects I work on are Clang and GNUstep, so I know the Cocoa APIs inside out (literally - I've spent almost as much time reimplementing them as using them). I found that really useful when writing it, because I knew the sort of trades involved in implementing a lot of the classes and how that should affect how they are used.
There's also a LiveLessons (video instruction) series accompanying this book. That was a lot less fun. I am really rubbish at talking into a microphone (I don't like telephones or videoconferencing either) and it was a lot of time with me spent recording 'and if you look at uh, that thing, wait, what was I talking about?' then deleting it and recording it again.
The most recent one is not out yet. It's the Objective-C Phrasebook, which was also fun to write. It's the shortest of the three, and will fit in a pocket. The Phrasebook series is intended for experienced programmers moving to a new language / framework. For this one, I was very lucky to get Fred Keifer (the GNUstep AppKit maintainer) to do a technical review - he's both very knowledgable and amazingly pedantic, which is the perfect combination for a technical reviewer. The draft incorporating his comments is much better than the first one. I'm really looking forward to seeing that one published.
I also write regularly on InformIT. I think a couple of my articles there have been Slashdot'd, and OSNews picks them up periodically. I tend to write about whatever technology I've been playing with the most recently on there. I find the best way of testing whether you really understand something is to see if you can explain it to someone else. If I can't explain something clearly in an article, it tells me which bits I don't understand properly.
-
std::nothrow
ability to declare variables in the middle of code blocks
That's been in C for the past decade.
if there was a way to do that without dragging in the full suite of OOP features, they'd go that route. They don't want exceptions.
In C++, you pay for what you use. If you don't throw, and you don't link to a library that throws, then you won't have exceptions. I guess their problem is that the standard library uses the version of operator new that throws std::bad_alloc on failure rather than the version that returns a null pointer.
Maybe they don't want function overloading
You can disable overloading for a function by putting extern "C" before the name of the function's return type.
Extended initializers
Something like that is already in C99.
-
Cocoa Design Patterns
See the following explanation for WHY two stage initialization: http://www.informit.com/articles/article.aspx?p=1339553
-
Re:WHATWG: The worst thing to happen to the Web.
Many of its new elements have gone out of their way to bring back the combination of presentation and content that we've tried to get rid of for over 15 years now.
Absolutely not true. The new tags are for things like articles, sections, and so on. They provide more semantic information, not less. The HTML 2 approach removed all of these as redundant because you can implement them with class attributes. The problem with this is that one site will use <div class="article">, another will use <div class="post">, a third will use <div class="blog">, and this makes it very difficult for the browser to render them in a consistent way and for other user agents to know that they represent articles. In contrast, HTML5 pages will use the <article> tag.
Others, like canvas, encourage JavaScript to be used more than it ever should be. Furthermore, the audio and video playback will end up as the next-generation marquee or blink element; annoying, misused and hated by all.
They don't allow you to do anything that you can't do in Flash already. Flash is often abused, but in some cases it's used very effectively. I'd rather have an open standard than a proprietary system. Things like Web Socket are also very useful, allowing you to keep a connection to the server open and incrementally fetch data without polling. Something like Slashdot could use this to insert posts into an open page whenever someone posts them, rather than fetching them in a blob when you hit 'more,' for example.
What's worst of all, though, is that XHTML, XForms and other sensible standards are being discarded for something so much worse.
XHTML is not being discarded. XHTML 2 is. I like XHTML 2 a lot, and if I were creating the web now as a new system, I'd want something like XHTML 2. Unfortunately, this is not the current situation. XHTML 2 is a great standard for designing document formats, but it doesn't in any way reflect how people are building web sites today, let alone tomorrow. If every browser supported XHTML 2 tomorrow, I doubt you'd see more than a handful of sites using it in a year's time. In contrast, people are already using bits of [X]HTML 5, because they're actually useful.
XHTML 2 made the same mistake the W3C did with HTML 4 and XHTML 1. The spec was written before the implementation. With HTML 5, every feature has to have a well-defined use case and must have two independent implementations before it goes into the final spec.
I've written in more detail about HTML 5 in two articles. I don't agree with everything in the spec, but it's a lot better than HTML 4 + Flash.
-
Re:WHATWG: The worst thing to happen to the Web.
Many of its new elements have gone out of their way to bring back the combination of presentation and content that we've tried to get rid of for over 15 years now.
Absolutely not true. The new tags are for things like articles, sections, and so on. They provide more semantic information, not less. The HTML 2 approach removed all of these as redundant because you can implement them with class attributes. The problem with this is that one site will use <div class="article">, another will use <div class="post">, a third will use <div class="blog">, and this makes it very difficult for the browser to render them in a consistent way and for other user agents to know that they represent articles. In contrast, HTML5 pages will use the <article> tag.
Others, like canvas, encourage JavaScript to be used more than it ever should be. Furthermore, the audio and video playback will end up as the next-generation marquee or blink element; annoying, misused and hated by all.
They don't allow you to do anything that you can't do in Flash already. Flash is often abused, but in some cases it's used very effectively. I'd rather have an open standard than a proprietary system. Things like Web Socket are also very useful, allowing you to keep a connection to the server open and incrementally fetch data without polling. Something like Slashdot could use this to insert posts into an open page whenever someone posts them, rather than fetching them in a blob when you hit 'more,' for example.
What's worst of all, though, is that XHTML, XForms and other sensible standards are being discarded for something so much worse.
XHTML is not being discarded. XHTML 2 is. I like XHTML 2 a lot, and if I were creating the web now as a new system, I'd want something like XHTML 2. Unfortunately, this is not the current situation. XHTML 2 is a great standard for designing document formats, but it doesn't in any way reflect how people are building web sites today, let alone tomorrow. If every browser supported XHTML 2 tomorrow, I doubt you'd see more than a handful of sites using it in a year's time. In contrast, people are already using bits of [X]HTML 5, because they're actually useful.
XHTML 2 made the same mistake the W3C did with HTML 4 and XHTML 1. The spec was written before the implementation. With HTML 5, every feature has to have a well-defined use case and must have two independent implementations before it goes into the final spec.
I've written in more detail about HTML 5 in two articles. I don't agree with everything in the spec, but it's a lot better than HTML 4 + Flash.
-
Two minor corrections...
Two minor corrections: (1) The downloadable content is available. The publisher's had a glitch on their web site that has since been corrected (but not until after I had finished the review - oh well!) If you go to http://www.informit.com/title/0672330970 and click the Download tab, you'll get it. (2) The link for purchasing goes to the 7th edition. This is the 8th edition, and the link to that book is http://www.amazon.com/Sams-Teach-Yourself-Hours-Coverage/dp/0672330970/ref=sr_1_1?ie=UTF8&qid=1265061056&sr=8-1.
-
Re:Please educate me a bit.
The FreeBSD kernel gives you a few nice things. ZFS, DTrace, and a high-performance in-kernel sound system that eliminates the need to mess about with things like PulseAudio just to get half a dozen applications going 'bing' at the same time while another one plays music (although this got a lot of improvements in the FreeBSD 8 kernel, which isn't in Debian yet, as did ZFS). It also gives you the ULE scheduler, which has had several years of testing and refinement (unlike Linux's scheduler-of-the-week) and performs very well (was outperforming Linux by a large margin on 8+ cores, now they're pretty similar). It includes Jails, which are like chroot but with a complete environment inside so you can have a different IP, different users, and so on in a jail (and you can create them with a complete clone of a skeleton system almost instantly with ZFS clones).
As to why you'd use Debian rather than FreeBSD, the big difference is glibc rather than BSD libc. When people talk about Linuxisms in code, they most often really mean GNUisms and the code depends on something weird in glibc, rather than on anything specific to the kernel. It will therefore work with glibc on kFreeBSD just as it would with glibc on Linux. You may also prefer the GNU userland utilities. Some people install these on FreeBSD anyway, but with Debian they are the default ones. This means that a few other common GNUisms (e.g. assuming that
/bin/sh is bash and that POSIX utilities accept GNU arguments in shell scripts) will work.This means that it's easier to port crappy code (and there is a lot of it about) from GNU/Linux to GNU/kFreeBSD than to FreeBSD. I've written a bit about which bits are GNU and which bits are Linux before: most of what the user or developer interacts with is GNU.
-
Re:Nokia has a good history when it comes to paten
I think he's talking about the NeXT libraries, which we can conclude were in violation since they were eventually contributed to GCC as required but never maintained. I don't think he's talking about Clang or anything.
-
Re:Code in high-levelThe GCC manual tells you everything you need to know. First you declare a vector type, so if you want four shorts representing an RGBA colour value , you declare a type like this:
typedef short colour_t __attribute__ ((vector_size (4 * sizeof(short))));
This will give you a 64-bit vector type, so you can fit one in an MMX register, or two in an SSE or AltiVec register. You can then create these and do simple operations on them. For example, if you wanted to add two together, you could do this:
colour_t a = {1,2,3,4};
colour_t b = {1,2,3,4};
colour_t c = a + b;In this case, the add is constant so it will be evaluated at compile time, but in the case where a and b have unknown values GCC will emit either four scalar add operations or one 64-bit vector add.
You can also pass them as arguments to vector intrinsics, which are listed in the manual under target-specific builtins. These correspond directly to a single underlying vector instruction, so if you look in the assembly language reference for the target CPU then you will find a detailed explanation of what each one does.
Rather than declare vector types directly, it's often a good idea to declare unions of vector and array types. This lets you use the same value as both an array and a vector.
I wrote a longer explanation a while ago.
-
My LaTeX Companion
As I true geek, I'm sticking with my LaTeX Companion.
-
Re:Correction
If you'd like to read a bit more about ZFS, I'd recommend thispage on the OpenSolaris site and this article that I wrote a couple of years ago (somewhat out of date now; both of the limitations I listed have since been addressed). There are also some good presentations on how ZFS works linked to from the OpenSolaris docs. You will find a lot of criticisms of ZFS come from people who don't really understand how it works, or claim to need some esoteric feature that their current FS doesn't support either, but something like Veritas does.
-
Re:Already happened
http://elbitz.net/home.php is good, but they only open up registering every now and then (I remember I waited like 2 months to get my user). In general, though I just use the same popular torrent sites for everything else I get for books, too and I've gotten 6.28GB that way. Also, appear to have just found a
.pdf with a huge list of ebook sites (and one for how to swear in all languages!). Haven't tried any of them, but go for it:
O'Reilly online http://www.oreilly.com/openbook/ | http://sysadmin.oreilly.com/ Computer books and manuals http://www.hoganbooks.com/freebook/webbooks.html | http://www.informit.com/itlibrary/ | http://www.fore.com/support/manuals/home/home.htm | http://www.adobe.com/products/acrobat/webbuy/freebooks.html The Network Book http://www.cs.columbia.edu/netbook/ Some #bookwarez.efnet.irc links http://www.extrema.net/books/links.shtml Some #bookwarez.efnet.irc fiction http://194.58.154.90:4431/enscifi/ Pimpas online books (Indonesia) http://202.159.16.55/~pimpa2000 | http://202.159.15.46/~om-pimpa/buku Security, privacy and cryptography http://theory.lcs.mit.edu/~rivest/crypto-security.html | http://www.oberlin.edu/~brchkind/cyphernomicon/ My own misc online reading material http://www.eastcoastfx.com/docs/admin-guides/ | http://www.eastcoastfx.com/~jorn/reading/ Computer books http://solaris.inorg.chem.msu.ru/cs-books/ | http://sweetrude.net/~cab/books/ | http://alaska.mine.nu/books/ | http://poprocks.dyn.ns.ca/dave/books/ | http://58-160.skarland.uaf.edu/books/ | http://202.186.247.194/~ebook/ | http://hooligans.org/reference/ Linux documentation http://www.linuxdoc.org/docs.html FreeBSD documentation http://www.freebsd.org/tutorials/ Sun documentation http://osiris.imw.tu-clausthal.de:8888/ | http://uran.vvsu.ru:8888/ SGI documentation http://newton.unicc.chalmers.se/ebt-bin/nph-dweb/dynaweb;td=2 | http://techpubs.sgi.com/library/tpl/cgi-bin/init.cgi IBM Online Redbooks http://www.redbooks.ibm.com/ Digital Unix documentation http://www.unix.digital.com/faqs/publications/base_doc/DOCUMENTATION/V40D_HTML/V40D_HTML/LIBRARY.HTM Filesystem Hierarchy Standard http://www.pathname.com/fhs/2.0/fhs-toc.html | http://www.linuxbase.com/ UNIX stuff http://ww -
Re:Apple's activity is criminal here, Palm's is le
-
Re:So, does the Duct Tape Programmer...
Such as
...?Among other things, templates tend to lead to problems debugging, designs that aren't well thought out, etc.
http://www.ski-epic.com/templates_stl_rant/index.html
http://www.informit.com/articles/article.aspx?p=26017You also can't safely use the STL classes as base classes because they have no virtual destructor, so if you end up using them and need to do interesting stuff on top of them later, you can be in for a world of hurt.
Finally, if you use STL classes with mixed types that are polymorphic and expect them to behave reasonably, you're in for a world of hurt.
http://www.oonumerics.org/tmpw00/kuehl.html
Yeah, that's probably going to take up a few kilobytes of your gigabyte of RAM. Seriously, I believe this is very, very rarely a problem.
In large pieces of software coded with heavy use of templates, it can bloat code pretty dramatically. RAM isn't free.
Most threading is due to stupidity, not a real need.
I guess it depends on what you're doing. If you are writing something that doesn't need multiple threads for performance, though, you usually don't need more than about a two core CPU, either, in which case you probably have already bought the last computer you will ever need. If we're focusing most of our coding effort on those folks, we're mainly wasting time because they've also probably bought the last version of the app they will ever need.
:-)Let's face it, CPUs aren't getting any faster, for all practical purposes. Performance is reaching a plateau. This means that if software continues to grow larger and more complex at the current rate, the user experience is going to get exponentially slower. The most promising way to improve upon this is with multiple cores, but only if the software can take advantage of it. Single threaded apps need not apply.
-
Re:Hospital management at fault, not employee
Indeed, it gives one great pause since that computer *should* have been running anti-virus software to check each download and executable as it was opened, and, presumably, would have caught this installation. Through professional contacts, I'm passingly familiar with the IT environment in a Big University Hospital and the hoops that my colleagues have to jump through to put a PC on the hospital network are near onerous. Those machines are sterile, or as close to sterile as humanly possible.
Don't be a shithead. E-Mail is not a replacement for a file system. Nor should hospitals be using systems that are even remotely succeptible to malware. Pretending otherwise or, worse, blaming the user for defective products is an M$ attitude. There are two underlying problems hidden:
1) How the hell was it possible for a hospital unit to have Windows on any of their computers in the first place? HIPAA compliance has been mandatory for many years now and there has been more than enough time to phase out Windows. Did you read the dozen EULAs for the Windows box and all its software and server hooks? For all service packs and CALs? Thought not. Neither did the hospital management. The woman is not at fault, the hospital management who signed of on the purchase or deployment of the Windows machines is the sole group to blame (excepting the sender of course).
2) Any self-respecting milter can strip ALL attachments automatically and delete them. MIMEDefang is a good example, but one of many. The stripping of attachments can even include a non-looping auto-reply to the sender including instructions on the correct way to transfer files.
Dear SgtChaireBourne, Your comments are well founded, however in the UK most hospitals use Windows as does the DWP (Department for Work and Pensions) along with other government agencies and Police. The National Health Service is also open to attack despite spending over 4 billion pounds on an new IT system which is totally foobar. Maybe this should be another story for another slashdot, if a user wants to digg a little deeper and google "The Big Opt Out". But otherwise I have to concur with your comments. All the best, NSN
-
Re:Hospital management at fault, not employee
1) How the hell was it possible for a hospital unit to have Windows on any of their computers in the first place? HIPAA compliance has been mandatory for many years now and there has been more than enough time to phase out Windows. Did you read the dozen EULAs for the Windows box and all its software and server hooks? For all service packs and CALs? Thought not. Neither did the hospital management. The woman is not at fault, the hospital management who signed of on the purchase or deployment of the Windows machines is the sole group to blame (excepting the sender of course).
I have an ugly truth for you - almost every hospital in the US uses Windows (95 through XP) for every single workstation. Every single Healthcare IT software vendor develops solely for windows (save a few web-based packages.) It's a very pure MS monoculture. I know, I know, it's sick. I agree completely with the above, but the emperor is threadless here.
-
Hospital management at fault, not employee
Indeed, it gives one great pause since that computer *should* have been running anti-virus software to check each download and executable as it was opened, and, presumably, would have caught this installation. Through professional contacts, I'm passingly familiar with the IT environment in a Big University Hospital and the hoops that my colleagues have to jump through to put a PC on the hospital network are near onerous. Those machines are sterile, or as close to sterile as humanly possible.
Don't be a shithead. E-Mail is not a replacement for a file system. Nor should hospitals be using systems that are even remotely succeptible to malware. Pretending otherwise or, worse, blaming the user for defective products is an M$ attitude. There are two underlying problems hidden:
1) How the hell was it possible for a hospital unit to have Windows on any of their computers in the first place? HIPAA compliance has been mandatory for many years now and there has been more than enough time to phase out Windows. Did you read the dozen EULAs for the Windows box and all its software and server hooks? For all service packs and CALs? Thought not. Neither did the hospital management. The woman is not at fault, the hospital management who signed of on the purchase or deployment of the Windows machines is the sole group to blame (excepting the sender of course).
2) Any self-respecting milter can strip ALL attachments automatically and delete them. MIMEDefang is a good example, but one of many. The stripping of attachments can even include a non-looping auto-reply to the sender including instructions on the correct way to transfer files.
-
Talk to Bruce Perens
You might be able to publish it as part of his Bruce Perens' Open Source Series.
-
Wikipedia chart (from hell?) and reading rec
This sounds like the perfect opportunity to harness the power of app partisans to fix the wikipedia article comparing monitoring software. See http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems . Some good info there. And probably bad info. But certainly has a good list of applications. Also, if you like nagios (and he seems to me to be fair to a lot of packages, including ossim), you might check out some of David Josephsen's articles (or Nagios book), etc.. His site is http://www.skeptech.org/ . A decent design article is here -- Best Practices for Designing a Nagios Monitoring System -- http://www.informit.com/articles/printerfriendly.aspx?p=705685 .
-
preinstalled REAL Linux distros on netbooks
are a very good thing. Too many vendors are still using Linux to attempt to deliver a fixed-function 'websurf and office app only' netappliance experience that there is no known market for outside the imaginations of Yet Another Generation of Marketdroids. Personally, I see 'positive' reviews of Linux netbooks that start with "after I replaced the OEM OS with Ubuntu" as evidence of EPIC FAIL on the software side of OEM netbook vendors... people generally don't replace OSs which deliver satisfactory performance.
Given driver support, an ordinary Linux install on a netbook is just like any other Linux install, open the install wizard, set a few things, find something else to do for quite a while, loading the OS files on a netbook SSD takes a long time.
Unfortunately, if you like your hardware warranty, you can't do this on most netbooks. So I installed Kubuntu Jaunty to a flash card living in the card reader of my Eee PC900. Here's how I did it, part II of the article refers to customizing Ubuntu-Gnome-Intrepid using tweaks that aren't needed with Kubuntu Jaunty. This is probably not for n00bs, the first step is installing Sun Virtualbox on your desktop Linux box so you can install the OS to a flash card that shows up in Virtualbox as the only available HD if you've set it up correctly.
Having a vendor willing to pre-install it and back it up via warranty saves quite a lot of time and work. It took me weeks to figure out how to make the alternative install to flash card work so I could write it up for publication. -
competive netbook OSs?
The netbook looks enough like a "real computer" that people expect to see conventional-looking desktops on it. This is a major reason why XP-Home is the dominant player at this point, if XP-Home had been repackaged as the netappliance desktop suppliers of netbook "Linux" are under delusion that the public wants, and the XP desktops were locked down so you couldn't install standard Windows apps to them, nobody would buy XP-Home netbooks, either.
IMO, Intel's efforts would be better spent building drivers for Open Source distros so that more netbooks will run straight out of the box with Open Source installed, and pushing vendors to install conventional desktop UIs rather than "netbook UIs".
Smartphones don't have that problem because people don't have fixed expectations as to what a smartphone desktop ought to look like, it just has to be easy to use and mildly extensible.
That said, I'm running Kubuntu Jaunty 'right out of the box' on my Eee PC900 (and yes, that's a 900MHz computer with the original 1G DRAM) . . . without concern about my warranty because it lives on an SDHC flash card sitting in the internal card reader. Looks great, works well, and it's a standard KDE4.2.2 desktop.
Find out how here. Just Part 1, the tweaks needed for Ubuntu-Intrepid described in Part II are not needed with the new Kubuntu. If you don't have an Eee PC900, make sure Kubuntu-Jaunty has the drivers required to support your netbook or you know where to get them first. Google is your friend. -
you've never seen a Linux netbook, right?First, who the hell is going to do serious graphics design on a 9" netbook screen, on a computer with a CPU in the 900 Mhz range with 1G DRAM? That's the Eee PC 900 and similar models. You're going to run a high-end webserver or a gigantic DB on a netbook? Doesn't matter whether it's XP, Win7, or Linux, it's A Bad Idea regardless.
Second, the Linux UI on the Eee PC is a dumbed down, locked down older version of Xandros modified to provide a tabbed interface designed as a Net appliance whose program selection for ordinary installation is limited to a handful of programs), and a response to another post of mine downthread says that Acer's Linux UI is similar. If you install anything that is not in the Asus repository (presumably via binaries) it will not show up in any of the UI tabs. To run that installed program, one will have to open a terminal and invoke it via CLI.
So your whines about the differences between Linux software and XP are completely irrelevant to any recognizable netbook reality. The current and last generations of netbooks are too underpowered to run large-scale Linux apps with large datasets, and the screen size is really too small to make that class of work comfortable. I deal with the CPU power problem when need be by running a remote control connection to my far more powerful desktop from anywhere around a wireless AP.
The real problems with Linux sales on netbooks are:- that you won't find them at ordinary computer stores
- the people who know that Linux netbooks exist and order one on purpose are going to be seriously disappointed that we bought netbook appliances
- it takes some research to find out how to replace the OS with something that's actually functional for a power user. Unless you follow this link and read how I installed Ubuntu with a slightly modified standard desktop UI (turnes out I hate tabbed UIs on netbooks even if they're Open Source, too) on my Eee PC.
Any problem with Linux on netbooks comes down to the manufacturers using Linux to deliver a net appliance experience. Remember the companies that used to sell net appliances? The ones that still exist don't sell them anymore. Not to say that for the few people left who are still unfamiliar with computers, a net appliance is necessarily a bad idea, I think I could hand a Linux netbook to the proverbial computer-illiterate grandmother and get her websurfing in a few minutes. But these people are increasingly rare, everyone else expects a computer to have a recognizable desktop with icons that do things and a bottom panel with a start menu and some apps that can be selected from it.
Manufacturers can do different things with a smartphone UI because we don't have fixed expectations of what a phone UI is going to look like other than we expect some way to enter phone numbers and a button to push to accept a call when the phone rings. -
while I don't know about non-ASUS netbook Linux UI
the Linux desktop on the Asus Eee PC 900 out of the box is an abomination for anyone who qualifies as a power user on ANY OS. It's a dumbed down older version of Xandros modified for a tab-based UI.
Basically, it's a locked down net appliance UI... the only programs you can install without drastically modifying or replacing the OS that will show up on any desktop tab are the handful of programs available on the Asus repository site. Running nxclient required me opening a terminal window and using the CLI to manually enter /path-to/nxclient . Note that nxclient has a perfectly good desktop icon and is happy to install itself to a menu if given the chance, i.e. on any normal Linux OS.
I turned myself from a pissed off Eee PC Linux user to a happy one by replacing the OEM desktop with a standard Ubuntu desktop plus hardware drivers from the Ubuntu-eee project, you can find out how I did it here.
However, I also have some serious doubts about the accuracy of the original "analyst" report. If Linux sucks so badly on netbooks, why are any netbook vendors still selling it to anybody? Note that by and large, computer retail stores have not exactly put any great effort into selling Linux netbooks, the only place it's easy to get them is via online ordering, so it can be assumed that people who buy the Linux netbooks thought they knew what they were getting in advance. -
Re:Good thing it's a beta
-
Re:Alternatives
>as long as the form submits to an HTTPS page, your login credentials are still SSL-encrypted.
No, If any part of a page is not encrypted then an attacker can effectively strip all encryption from the entire page. See this page from a Microsoft Internet Explorer programmer: http://blogs.msdn.com/ie/archive/2005/04/20/410240.aspx
and this page about airpwn where attendees at a security conference had the images in their web pages turned upside down.
http://www.informit.com/guides/content.aspx?g=security&seqNum=158Say for example you're using an unsecured wireless access point at an Internet cafe. There can be an attacker five miles away with a high gain antenna listening for someone to log into their bank by a login page that only encrypts the password. When your computer sends out the request for your bank's page, if the hacker's computer is fast enough, it can impersonate the wireless access point and send a version of your bank's login page with the password encryption stripped and the password redirected to whatever computer your attacker wants. When the real server finally responds to your request a few milliseconds later, your computer will think it's a mistaken duplicate and ignore it. This is not a theoretical attack, it has been publicly demonstrated. Your first login attempt may fail as the password is redirected to the attacker, but once your attacker has your password, he can return things to normal so your second login attempt will succeed. You'll just think you mistyped the password on the first try.