Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Wednesday, March 8, 2023

Want to learn C++? Here's the best way to do it

If you want to be a serious software professional, eventually you will need to learn C++ (pronounced "c plus plus"). You can avoid it and dodge it for as long as you want, but it's inevitable.

There are several good books about it, some of which I've mentioned here before. But I think the best resource today for learning or relearning C++ is the online tutorial, Learn C++

Learn C++ is an exceptional piece of work. It's easy to follow. It avoids a lot of the mess that burdens most other C++ resources.

The site is modest and uncluttered. It gets down to the business of teaching you C++, and it doesn't do anything else. And it's constantly updated. 

The craziest part about Learn C++ is that it's absolutely free. It's supported by ads and by user contributions. The ads are not obnoxious, and since the site gets a small amount of $$ every time someone clicks on an ad, I make sure to click on a few of them every time I view a new page. As far as user contributions go, it does not nag you for them, and it doesn't even advertise them. I had to dig through the site to find that information. 

Thursday, May 17, 2012

LibreOffice vs. OpenOffice

When Oracle bought Sun Microsystems in January 2010, it inherited a collection of community-based  software projects, such as Java, VirtualBox, and OpenOffice.org. Free software and open-source software are both contrary to Oracle's way of doing business. Of the two named projects, VirtualBox flourished. But Oracle mismanaged both Java and OpenOffice.org so badly that it almost killed them.

Java seems to have recovered from the trauma. There was a while in 2010 and 2011 when it looked like Java had fallen out of favor with professionals, but that's another story for another time.

As for OpenOffice.org, Oracle decided to assert their control over the project, and did so in such a heavy-handed manner that the majority of the OOo community rebelled. In only a few months, the rebels re-created a free and open-source office suite called LibreOffice. LO's first production release was in January 2011. Unfettered by Oracle, LO flourished and soon replaced OOo as the default office suite in many Linux distributions. Oracle didn't do anything to make OOo competitive, and, for about a year, it looked like Oracle was going to let it starve to death.

But Oracle showed some good sense when, in late 2011, they decided to transfer "stewardship" of OOo to the Apache Incubator, a part of the Apache Software Foundation. The ASF is an organization dedicated to the care and keeping of some very powerful, free and open source, software tools - for example, the Apache HTTP Server, which is the engine behind a galactic buttload of websites all over the world.

Nine days ago, the ASF announced that OpenOffice.org is back. Apache Open Office (as it's now known) version 3.4 was officially released on May 8.

The big question is whether it will be able to regain the users it lost to LibreOffice. Like many LO users, I don't see a crying need to switch back from LO to AOO. The Document Foundation, stewards of LO, have done some really good stuff. I think it's going to require some competition from ASF to win me back to AOO.

Tuesday, February 1, 2011

LibreOffice: the desktop version

Here are some quick notes about installing LibreOffice 3.3 on my PC's internal hard drive.

The LibreOffice Installer installed MS Visual C++ 2008 Redistributable on my PC. That's not necessarily a bad thing, especially if it's required for LO 3.3 to run on a PC. By including it in the installation, the creators saved me the step of hunting it down and downloading it for myself. Other programs that use run-time executables don't do that. It was a nice touch.

But it does make me wonder what kind of run-time executable the Linux version uses. (I assume the OS X version uses the same RTE as the Linux one.)

At some point in the installation process, the Installer also opened a browser window with a link to http://update.services.openoffice.org/ooo/index.html?cid=920899 , entitled "Thank you for using OpenOffice.org" and with an Oracle logo on the bottom. I don't know how. I didn't do anything to bring it up. Seriously. It was a moment both surreal and humorous.

Reports from early, pre-release versions of LO were that it didn't play nicely with OpenOffice.org. If I recall correctly (which doesn't happen very often anymore), LO hijacked key elements of the OOo installation for its own use, so OOo didn't start up properly anymore. Well, they fixed that. I now have MS Office 2010, OOo 3.2, and LO 3.3 all playing together nicely on my PC.

As would be expected, there is little discernible difference in either the appearance or the, um, "gameplay" of OpenOffice.org and LibreOffice. Users of OOo will feel instantly comfortable with LO.

And as for performance, the hard-drive version exhibits none of the hesitation I reported in the USB-drive version. Every keypress and mouse click/move gets an instant response.

Now here's an interesting feature: Help is a separate download. If you don't download it, Help works anyway: the online version can be found at http://help.libreoffice.org/. If you downloaded and installed Help on your hard drive, then clicking Help opens the local version; if not, then clicking Help opens the online version. They're identical.

I won't be able to comment on issues of stability or durability for a few months yet.

One of my favorite features of OpenOffice.org, carried over into LibreOffice, is the formula editor. MS Office and MathType have had a good working relationship for years, and the formula editor is OpenOffice's answer to MathType/EquationEditor. The cool thing about formula editor is that you don't have to take your fingers off the keyboard, if you know what you're doing. You can type this:

x = {-b +- sqrt{b^2 - 4 a c}} over {2 a}

and end up with this:






You gotta admit, that's pretty cool!

I'm sure that OpenOffice.org and LibreOffice will diverge in appearance and functionality as time goes on. Right now, it's pretty clear that they share the same origins.

One final note for this installment: I added a comment to my earlier post, regarding a "cloud version." Apparently, they did consider "the cloud" when creating LibreOffice.

Friday, January 28, 2011

LibreOffice: An Intriguing Alternative to Microsoft Office

Other than the cost, I have no objections to Microsoft Office. I've used it perforce for years, and I've gotten used to it. Like Xerox copiers and HP LaserJet printers, MS Office is the standard against which all other "office" programs are measured.

(And the cost is perfectly understandable. MS is in business to make money, and they charge what the market will bear. Entities who sell software deserve to make a profit doing it. Don't ever use pirated software, and always pay a reasonable price for software.)

I've also used and enjoyed OpenOffice.org for years. OOo, as it's called, is a "free and open-source" alternative to MS Office. It's very well put together. It's a little larger than MS Office, and it's a little slower than MS Office, but it does some things that MS Office doesn't do, and it does some things better than MS Office does. The user interface (how it looks on the screen and how you interact with it) are a little different from MS Office, but even the MS Office UI changes from version to version. You get used to the OOo interface quickly, and the Help function is very good.

When Oracle bought Sun Microsystems (who were the custodians of OOo), the future of OOo was suddenly called into question. Oracle didn't do anything to allay peoples' fears, and in fact said some things that aggravated those fears. So a movement was started to create another version of OOo, independent of OOo and Oracle's influence. The movement eventually took the name "The Document Foundation," and the name "LibreOffice" was chosen ("libre" as in "free") for the new version of OOo.

TDF embarked on a rapid effort to develop and release LibreOffice before OOo disappeared for good. This week, they released their first production version, called LibreOffice 3.3. (The latest public release of OpenOffice.org is 3.3, and LibreOffice 3.3 is a direct derivative, or fork, of the previous version, OOo 3.2.)

LO 3.3 has some great features. One intriguing feature is the ability to import, edit, and save SVG (Scalable Vector Graphics) files. SVG is an open format that is gaining respect, even popularity, among the graphics community for its power and portability.

Another great feature, and the one that excites me the most, is its portability. LO 3.3 can be installed on your hard disk drive, like any other software, but it can also be installed on a removable storage medium - the ubiquitous Flash drive. I installed it on a flash drive, just to try it out.

First, the minuses:
Flash drives aren't fast. Any time the program needs to do a "disk access," as it were, it hesitates. You will notice this when you're typing or mousing and suddenly things freeze for several seconds. You'll also notice that, once in a while, the letters appearing on the screen are a few keystrokes behind your fingers and trying hard to catch up.

I expect that the non-portable version of LO, installed on a hard drive instead of on a flash drive, will run faster. I'll keep you posted.

One area that LO hasn't explored yet is the cloud - the world of software that runs inside a Web browser. Microsoft has a web-based version of MS Office. Google, Yahoo and other big Web actors also have web-based office suites. Whether LO will go there remains to be seen.

Okay, that's it for the minuses. Now for the pluses:
It really, truly works! Please forgive the exclamation point. I was skeptical at first. I tried it on my home computer, an Intel i3 M330 64-bit running at 2.13 GHz with Windows 7, it works fine. I then tried it on my work computer, an older machine with an Intel Pentium D dual-core running at 2.8 GHz with Windows XP Pro, and it works equally well. I'll have to try it on some older machines and see how they do.

Okay, so the fact that it works is the only plus so far. I'm sure I'll be adding to the list as time goes on.

Cautions:
As one would expect, it eats up a lot of disk space. Installation on a flash drive takes 482 MB.

And be careful removing the flash drive! I don't know what tricks TDF did to make LO run directly from the flash drive, but because of those tricks, you must make sure that you have completely exited LibreOffice, and closed all of its windows, before you remove the flash drive from the computer. It's also a good idea to tell your computer you want to "Eject" or "Safely remove" the flash drive before you pull it out. If you don't know how to do this, you shouldn't be using the portable version of LibreOffice. Just install it on your hard drive, and you'll be happy.

Where to get it:LibreOffice 3.3 is available for free download from http://www.libreoffice.org/ . The portable version is available for free download from http://www.libreofficeportable.org/ . If that link stops working, then try http://portableapps.com/apps/office/libreoffice_portable/ .

PortableApps.com is an intriguing concept, the gist of which is that you put portable versions of all the apps (er, programs) you really need on a portable device such as a flash drive or MP3 player, and carry it around with you all the time. To run your applications, you plug the flash drive into the nearest computer, open the flash drive, and click on the program you want to run. It doesn't require you to install anything on the host computer, and it doesn't secretly install anything, either, or write any temporary files on the host computer. It's very clean, and very polite.

PortableApps.com has an entire suite of such programs, and they're proud to add LibreOffice Portable to their suite. At this time, LO Portable and PortableApps.com only work on Windows machines. But the non-portable version of LO 3.3 works on Windows, Mac OS X and Linux machines.

End note 1, Nerd talk: Some people keep their Linux on a bootable flash drive as well. I guess you could install LO 3.3 on your bootable Linux flash drive!

End note 2, Money talk:
LO is free. So is OOo. In the phrase "free and open source," free means free, like the air you breathe. But they're always willing to accept donations. If you save $100 to $500 by using LO in place of MS Office, consider donating part of the money you saved to TDF. Your donation will help to keep it free.

End note 3, Truth in advertising:
Unlike that crap that passes for reviews of the ripoff known as ProFlightSimulator, this is an honest, original, and independent review. Nobody asked me to write it, and I don't get any compensation of any kind for writing it. I simply think that this is a good product, one that other people will want to know about. If you don't believe me, go read my article, "Blogging for Dollars". If you still don't believe me, I don't care.

UPDATE! MAY 17, 2012: OpenOffice is back! Who would have imagined? Oracle decided they didn't want it, but rather than kill it, they put it in a basket on the Apache Incubator's doorstep. Now it's been renamed Apache Open Office and it's ready to roll. Will you switch back?

Thursday, May 6, 2010

What was once a "program" is now an "app"

Observe, with me, the interesting progression of terminology in the software industry.

(For those who are not computerly inclined, here's a quick definition of basic terms. Way back in the dawn of digital time, computers were composed of hardware and software. Hardware is all the tangible, physical parts of a computer: the metal case, the printed circuit board and all the little components on it, even the wires that connect everything together. Even soft plastic parts are still tangible, so we still call them "hard" ware.

Software is all the intangible stuff that makes computers run -- the programs. They're not tangible or physical, so they can't really be called "hard" ware. But since they're as essential to the computer's functioning as the hardware, they had to be called something -- hence, "soft" ware.)

Today we consider all the synonyms for "software":
  • program
  • software program
  • firmware
  • code
  • suite
  • application
  • app
Back when computers were brand new, they used to run programs. A program was a series of instructions that the computer followed to complete a task. The earliest computers had to be programmed, or fed instructions, by flipping a series of switches on the front panel. (After flipping the switches hundreds of times just to enter one program, and still getting it wrong, engineers decided they needed to invent a different way to program a computer -- in a hurry. That's how we ended up with mass storage devices.)

Even in the early days of home computers, people called them programs. One program fit on one floppy disk, and to use the computer, users ran the program.

As computing tasks got more complicated, programmers started including other things on the disk: data files, libraries, configuration files, and additional programs to be run automatically by the main program. Since users weren't just running a single program anymore, programs began to be marketed as software -- an interesting, and not at all inappropriate, reuse of the generic term.

I still crack up when I see a marketing department or a magazine writer refer to these things as software programs. It's a hilarious redundancy.

Some software is critical enough to the computer's operation that it's stored in a memory chip inside the computer. Because this software is stored in hardware, it's neither hard nor soft, so the pros call it firmware.

We've come a long way from the days of flipping switches. Today you can use one programming tool on one machine to write programs in many different programming languages, for many different systems. This has led programmers to start referring to the stuff they produce as code. There's source code, object code, assembly code, byte code, high-level code, low-level code, compiled code, interpreted code, Mac code, Linux code, Windows code, ... and it's all just programs and programming.

Somewhere along the way, software vendors began to combine separate programs into agglomerations that were (supposed to be) more powerful than the individual programs. These were referred to as suites. For a while, everyone was selling an office suite. Adobe has a lock on the best graphics suite in the world. Other companies sell animation suites, CAD suites, audio/video production suites, gaming suites, and in a beautiful recursion, software development suites.

Also somewhere along the way, someone said, "We're not selling programs, we're selling applications." After that, what was formerly known as something else became known as an application -- still just a collection of programs and related software items.

With the introduction of very smart handheld devices such as the iPhone, someone said, "Since these devices are small, the term for the software they run should also be small." So an application became an app, as in "There's an app for that."

Ah, but the term app got away from its creators. First it spread to non-iPhone handhelds, and then to non-handheld hardware, and finally to browsers. Now any software that runs on any kind of computing device is an "app".

But when you distill it down to its essential parts, it's still just a program.