Maybe, but this denial of evolution is a US-only phenomena.
Not really.
I have several Jesus freak and/or Pentecostalist acquaintances who believe the earth is
4,000 years old (4,015 by now; I haven't met them in a while).
And I'm in Sweden, which is supposed to be one of the most secularized
countries on the planet.
Putty is a poor imitation of Xterm, and an even worse simulation of a Linux VT.
Nice to see someone actually come out and say that. Personally, I think the vast majority of Putty users belong the Don't Know Any Different category. If there's a compromise to be made along those lines, the better choice would be Cygwin, but that brings us close to your rdesktop comparison.
I use PuTTY (with screen(1) sessions) 8 hours a day, and I haven't seen any problem whatsoever.
As far as I am concerned, it's an xterm without the need for X and with Lucida Console
as a very good fixed-width font.
My Windows PC at work is in reality just a PuTTY and emacs terminal.
The only thing that makes it inferior to a Unix workstation is that
it is capable of running Word, Excel, PowerPoint and Outlook.
OpenOffice for all it's virtues is a SHITTY PROGRAM that no sane proper experienced developer would have come up with.
I don't doubt OO is shitty -- I wouldn't poke it with a stick.
But one important thing to realize is that
smart people end up writing shitty programs all the time.
For example, I once tested an API that was obviously designed and written by
utter morons.
Yet each time I had to talk to one of the programmers, or their manager,
I was pleasantly surprised. They were smart, committed, had the right knowledge,
and often happily admitted that the result sucked.
The key in these cases is: how are the projects run, by whom, and why?
PolySpace attempts to mathematically discover runtime flaws in the code while only using static analysis to do so. It does a great job on smaller projects, but because of the complexity and thoroughness of its analysis, it is somewhat slow.
Last time I heard, Polyspace didn't do C++ --
just C and some random toy language (Java or Ada?).
Cool but extremely expensive.
"C/C++". That's like saying "Fortran/LISP". Which language is it? Both?
If you are like all projects I have seen, you haven't turned on the
relevant compiler switches for ANSI/ISO compliance and full warnings.
Do that first.
Second, get yourselves a few more compilers. If you use gcc, fetch the
latest version. It doesn't matter if you can run the compiled code.
Third, write type safe code. If it's really C++ code you are writing,
disable C-style casts and see how much of those monstrosities
(from a C++ point of view) you use.
After you are done, look for linters (aka static analysis tools).
One weak spot of C and C++ compilers is that they work
on the translation unit level;
they don't see the complete source code at once.
Don't bother with books aimed purely at C#. If you know OO well, you can appreciate other languages too. I recently went from coding C# to Java for the first time, with very little change of pace, simply because the tools, APIs, syntax and general patterns are so similar. I'd expect the same from C/C++, because the C# syntax is both similar and simpler.
You don't think you need to learn C to program in C,
because you know object-oriented programming and C#?
Remind me not to let you near my code.
Even if your phrase "C/C++" really meant "C++", you are wrong.
Similar syntax, yes.
But different object model, different resource allocation schemes,
RAII, different idioms and ideals shared by most people programming in that language...
hell, many C++ programmers don't even feel that "OO" is the way to go all of the time.
Your pleasant experience moving from C# to Java came was either caused by the fact that
C# is pretty much a clone of Java, or by you writing caveman code in a small subset.
People write 1000 lines of code to solve a problem when it could have been done in 150 if they were more creative.
Of course, if the "uncreative" 1000 line version is 7-times bigger for the right reason, it is avoiding clever-clever tricks so it is easy to determine that it does what it's supposed to and it's easy to maintain.
Uncreative may equally well mean choosing the wrong programming language;
choosing a heavy design which would suit a large program but is overkill for this small one;
not bothering to think hard about the requirements;
choosing to create a GUI application for a task that really needs to be scripted;
and so on.
It happens all the time, and it generates more lines of code and
worse software.
["There's never time to do it right, but always time to do it over."]
As frustrating as it may seem, there are actually fairly sound reasons for this in some situations. I would argue the internet was one.
I think he was mocking the clean slate scheme, rather than criticizing the original design of the internet.
As far as I'm concerned, the internet was done right
(which doesn't mean it was finished and carved in stone thirty years ago, but rather the opposite).
In all honesty, it's a miracle the world wide web has scaled the way it has - consider the original scope of the military networks and the small amounts of data they were transmitting.
Do you know where i can change the width of a tab in Kate/KDevelop? The docs tell me to go to one option pane to change it, but there's nothing relating to tab width there. The whole 8-space thing is really annoying me, but it's also the only decent IDE for C++ that's stable...
Please never ever change the definition of TAB-width from 8!
It will force everyone who reads your files to change, too
(or more likely discard them as unreadable junk).
The only good reason to do it is if all your colleagues do it.
All decent editors let you indent code by pressing TAB, then insert the
correct number of SPACE and/or (8-valued) TAB characters.
If Kate/KDevelop doesn't, it's broken.
Re:Static analysis is the sh-t
on
PMD Applied
·
· Score: 1
As an aside though, I question the sanity of such tools. Why does the language allow you to use constructs that an automated tool could tell you were screwy?!?
Because the linter is only right 90% of the time.
A language has to be flexible to be useful, a linter doesn't.
Re:Business logic? Algorithms?
on
PMD Applied
·
· Score: 1
Err... call me old-fashioned, but aren't code reviews supposed to focus on the business logic
(What is "business logic", anyway?
Can I assume it's a synonym for "logic", only made more palatable to PHBs?)
implementation, potential side effects, and the algorithms used?
I guess that's way of putting it, yes.
It's also a tool for people to learn each others parts of the code,
and for understanding each others' styles and design choices.
Re:Misses the point
on
PMD Applied
·
· Score: 2, Funny
Heh - you would think people compile with all warnings turned on. I've been working on a project recently that didn't.
This is, in my experience, more of a rule than an exception.
Some moron starts programming,
doesn't bother with the compiler, figures someone will clean that up later...
and five years later you cannot even add a CFLAGS=-ansi -Wall without having the
whole codebase barf thousands of warnings at you.
I've felt for many years that source should be stored as syntax trees and that editors should show you the source how every _you_ want to see it so it's most clear to you, not to the author.
I do not believe that is possible.
My tastes in formatting cannot be encoded into an algorithm.
And besides, how many fellow programmers do you know
who have horrible formatting,
but at the same time happen to name variables and types well,
and document tastefully? I know none.
This idea was hot back in the early 1990s
(I remember doing a syntax tree editor as a lab exercise)
but no, I don't think it can lead to anything but more pain.
If you think that's bad, see what my isp (netcabo, Portugal) is doing:
Every now and then when they want to send me a message (e.g. to tell me about "special offers" or whatever), they intercept one of my http requests and reply with a redirect to a page on their website, with the oh-so-important message and a link to the page I had asked for.
Needless to say that scripts that automatically parse web pages get confused.
It also means your ISP has some equipment capable of hijacking TCP connections,
a.k.a. performing man-in-the-middle-attacks. And that they spent good money on
it, and are looking for new interesting ways to use it.
If I were you I'd run, not walk, away from that ISP.
By the way, that's another worrying thing about ISPs being creative with DNS.
Unless you use ssh or some other protocol that authenticates the remote host,
you trust the DNS to guarantee you're not talking to the host you think it is,
rather than an impostor.
And here you have people who believe delivering phony DNS responses is a good thing...
Surely the fact that Microsoft does not include a manual with the product, instead providing the user with a context-sensitive electronic help system, indicates that Microsoft doesn't actually feel that a printed manual is necessary at all?
No, it just indicates that they believe they can get away with not providing one.
I have no experience of any MS OS later than W2k,
but the so-called context-sensitive help there is worthless.
For me it has been a waste of time three times out of four.
It's just a bunch of shallow recipes and boring walkthroughs.
Overviews and longer discussions of concepts and ideas are missing.
For example, there are no sections describing the metaphors behind
MS Word's styles and typesettings primitives.
The help system is probably good for something,
but it's not a manual.
I don't even blame them. Feature-richness and backwards compatibility are key aspects of what Microsoft provides, and it inevitably results in a mess. These are practically requirements if you have a big expensive software infrastructure built over a long period of time, as many businesses do.
OK, but shouldn't that make a Unix syscall interface even more messy?
After all, it was created thirty-five years ago.
On the other hand, you might want to count each ioctl
and each read(2) or write(2) of different character devices
as separate system calls...
Re:Many "software engineering" books are trash.
on
Why Software is Hard
·
· Score: 3, Interesting
A large number of the modern books suggest UML as a solution. Anyone who has actually employed UML knows that it's virtually nothing but hype. Yes, a UML class diagram may be somewhat useful when demonstrating how existing code is structured, and a sequence diagram may prove helpful in showing the flow of messages between objects. But it's unsuitable when used for the design of a large-scale system. One you get beyond 10 or so classes, UML diagrams become too complex to work with, and are basically useless.
Utter bullshit. I use UML for not only analysis, but design, programming and working on things in daily life. It's a matter of understanding the techniques. I've designed four cooperative wire transfer subsystems using it myself.
I sometimes wonder if it's a questions of
people who naturally see things as images,
versus people who don't.
Anyway, I'm with the grandparent.
A small class or state diagram can be useful to me,
but I get lost very quickly in a big or detailed one.
And when I go into details, I soon find that what I want to say is easier to express in text,
where I am not limited to the few languages permitted by the UML.
I'm amazed by the number of hard-core Linux programmers I've met who have never even heard of Freshmeat. They've simply never heard of anyone offering a listing of what software was out there - and Freshmeat barely scratches the surface in a lot of areas. They use the tools they know of, imagining those to be the only ones to exist.
Really?
I search the Debian package list first.
If noone has packaged it for Debian, chances are that it sucks or is non-free.
If that doesn't help, I prefer Google to Freshmeat, so I can see how other
people reason about the problem.
And this is coming from an ex amiga user. If anyone was made to whine about the best technology losing it would be me, but I've come to accept reality:)
You know, it's been ten years since I moved from my Amiga to Linux,
but those two sentences still piss me off.
I'd like the Slashdot audience to know that the (traitor) parent poster
is in no way representative for us ex-Amiga users.
We still foam at the mouth.
Does anyone here actually work for a company that currently (or ever has) used true dumb terminals?
I have, a few years back. X terminals and a heterogenous mix of at
least five different Unixes, one per server. Worked wonderfully with
(as I understood it) very little maintenance.
At my current job, my bosses probably think I work on a full Windows PC.
In practice, what I do with my local admin privileges is install PuTTY,
turning it into a big, expensive terminal multiplexor against the Linux servers.
An old-fashioned timesharing system (which is what we're really talking about,
not dumb terminals) is, in my experience, a great place to be.
For one thing, if you need something, someone else probably needed it before you, so it's most
likely installed already.
My breakfast is muesli with filmjölk, långfil or yoghurt
(all kinds of bacteriologically altered milks),
plus two to four sandwiches with cheese or messmör.
What really gets me going, though, is the
first cup of lousy coffee at work. And the aggravation.
You seem to critizise CERN. Thus, by your own logic, you either work at CERN, or you are anti US.
Not really. I have several Jesus freak and/or Pentecostalist acquaintances who believe the earth is 4,000 years old (4,015 by now; I haven't met them in a while). And I'm in Sweden, which is supposed to be one of the most secularized countries on the planet.
But yes, the US figures are staggering.
I use PuTTY (with screen(1) sessions) 8 hours a day, and I haven't seen any problem whatsoever. As far as I am concerned, it's an xterm without the need for X and with Lucida Console as a very good fixed-width font.
My Windows PC at work is in reality just a PuTTY and emacs terminal. The only thing that makes it inferior to a Unix workstation is that it is capable of running Word, Excel, PowerPoint and Outlook.
I don't doubt OO is shitty -- I wouldn't poke it with a stick. But one important thing to realize is that smart people end up writing shitty programs all the time.
For example, I once tested an API that was obviously designed and written by utter morons. Yet each time I had to talk to one of the programmers, or their manager, I was pleasantly surprised. They were smart, committed, had the right knowledge, and often happily admitted that the result sucked.
The key in these cases is: how are the projects run, by whom, and why?
Last time I heard, Polyspace didn't do C++ -- just C and some random toy language (Java or Ada?). Cool but extremely expensive.
If valgrind isn't available on Windows (I wouldn't know, or care), there's the always the classic, Rational Purify. It's probably expensive.
If you are like all projects I have seen, you haven't turned on the relevant compiler switches for ANSI/ISO compliance and full warnings. Do that first.
Second, get yourselves a few more compilers. If you use gcc, fetch the latest version. It doesn't matter if you can run the compiled code.
Third, write type safe code. If it's really C++ code you are writing, disable C-style casts and see how much of those monstrosities (from a C++ point of view) you use.
After you are done, look for linters (aka static analysis tools). One weak spot of C and C++ compilers is that they work on the translation unit level; they don't see the complete source code at once.
You don't think you need to learn C to program in C, because you know object-oriented programming and C#? Remind me not to let you near my code.
Even if your phrase "C/C++" really meant "C++", you are wrong. Similar syntax, yes. But different object model, different resource allocation schemes, RAII, different idioms and ideals shared by most people programming in that language ...
hell, many C++ programmers don't even feel that "OO" is the way to go all of the time.
Your pleasant experience moving from C# to Java came was either caused by the fact that C# is pretty much a clone of Java, or by you writing caveman code in a small subset.
Uncreative may equally well mean choosing the wrong programming language; choosing a heavy design which would suit a large program but is overkill for this small one; not bothering to think hard about the requirements; choosing to create a GUI application for a task that really needs to be scripted; and so on.
It happens all the time, and it generates more lines of code and worse software.
I don't know what the semi-standard says, but the sane interpretation would be
I think he was mocking the clean slate scheme, rather than criticizing the original design of the internet. As far as I'm concerned, the internet was done right (which doesn't mean it was finished and carved in stone thirty years ago, but rather the opposite).
Uh, the WWW is not the internet.
Please never ever change the definition of TAB-width from 8! It will force everyone who reads your files to change, too (or more likely discard them as unreadable junk). The only good reason to do it is if all your colleagues do it.
All decent editors let you indent code by pressing TAB, then insert the correct number of SPACE and/or (8-valued) TAB characters. If Kate/KDevelop doesn't, it's broken.
Because the linter is only right 90% of the time. A language has to be flexible to be useful, a linter doesn't.
(What is "business logic", anyway? Can I assume it's a synonym for "logic", only made more palatable to PHBs?)
I guess that's way of putting it, yes. It's also a tool for people to learn each others parts of the code, and for understanding each others' styles and design choices.
This is, in my experience, more of a rule than an exception. Some moron starts programming, doesn't bother with the compiler, figures someone will clean that up later ...
and five years later you cannot even add a CFLAGS=-ansi -Wall without having the
whole codebase barf thousands of warnings at you.
I do not believe that is possible. My tastes in formatting cannot be encoded into an algorithm.
And besides, how many fellow programmers do you know who have horrible formatting, but at the same time happen to name variables and types well, and document tastefully? I know none.
This idea was hot back in the early 1990s (I remember doing a syntax tree editor as a lab exercise) but no, I don't think it can lead to anything but more pain.
It also means your ISP has some equipment capable of hijacking TCP connections, a.k.a. performing man-in-the-middle-attacks. And that they spent good money on it, and are looking for new interesting ways to use it. If I were you I'd run, not walk, away from that ISP.
By the way, that's another worrying thing about ISPs being creative with DNS. Unless you use ssh or some other protocol that authenticates the remote host, you trust the DNS to guarantee you're not talking to the host you think it is, rather than an impostor. And here you have people who believe delivering phony DNS responses is a good thing ...
No, it just indicates that they believe they can get away with not providing one.
I have no experience of any MS OS later than W2k, but the so-called context-sensitive help there is worthless. For me it has been a waste of time three times out of four. It's just a bunch of shallow recipes and boring walkthroughs. Overviews and longer discussions of concepts and ideas are missing. For example, there are no sections describing the metaphors behind MS Word's styles and typesettings primitives.
The help system is probably good for something, but it's not a manual.
I don't know ...
'Ogg' just reminds me of the neanderthals
in a Far Side cartoon.
But they're low bitrate; that's good, I suppose ...
OK, but shouldn't that make a Unix syscall interface even more messy? After all, it was created thirty-five years ago.
On the other hand, you might want to count each ioctl and each read(2) or write(2) of different character devices as separate system calls ...
I sometimes wonder if it's a questions of people who naturally see things as images, versus people who don't.
Anyway, I'm with the grandparent. A small class or state diagram can be useful to me, but I get lost very quickly in a big or detailed one. And when I go into details, I soon find that what I want to say is easier to express in text, where I am not limited to the few languages permitted by the UML.
Really? I search the Debian package list first. If noone has packaged it for Debian, chances are that it sucks or is non-free.
If that doesn't help, I prefer Google to Freshmeat, so I can see how other people reason about the problem.
You know, it's been ten years since I moved from my Amiga to Linux, but those two sentences still piss me off.
I'd like the Slashdot audience to know that the (traitor) parent poster is in no way representative for us ex-Amiga users. We still foam at the mouth.
I have, a few years back. X terminals and a heterogenous mix of at least five different Unixes, one per server. Worked wonderfully with (as I understood it) very little maintenance.
At my current job, my bosses probably think I work on a full Windows PC. In practice, what I do with my local admin privileges is install PuTTY, turning it into a big, expensive terminal multiplexor against the Linux servers.
An old-fashioned timesharing system (which is what we're really talking about, not dumb terminals) is, in my experience, a great place to be. For one thing, if you need something, someone else probably needed it before you, so it's most likely installed already.
What really gets me going, though, is the first cup of lousy coffee at work. And the aggravation.