<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>Software</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>For Open-Source Software, the Developers Are All of Us</title>
  <link>https://www.linuxjournal.com/content/open-source-software-developers-are-all-us</link>
  <description>  &lt;div data-history-node-id="1339653" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/derek-zimmer-0" lang="" about="https://www.linuxjournal.com/users/derek-zimmer-0" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Derek Zimmer&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;
"We are stronger together than on our own." This is a core principle
that many people adhere to in their daily lives. Whether we are
overcoming adversity, fighting the powers that be, protecting our
livelihoods or advancing our business strategy, this mantra propels
people and ideas to success.&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
In the world of cybersecurity, the message of the decade is
"you're not safe." Your business secrets, your personal
information,
your money and your livelihood are at stake. And the worst part of it
is, you're on your own. Every business is beholden to hundreds of
companies handling its information and security. You enter
information into your Google Chrome browser, on a website running
Microsoft Internet Information Server, and the website is verified
through Comodo certificate verification. Your data is transmitted
through Cisco firewalls and routed by Juniper routers. It passes
through an Intel-branded network card on your Dell server and through
a SuperMicro motherboard. Then the data is transmitted through the
motherboard's serial bus to the SandForce chip that controls your Solid
State Disk and is then written to Micron flash memory, in an Oracle
MySQL database.
&lt;/p&gt;

&lt;p&gt;
You are reliant on every single one of those steps being secure,
in a world where the trillion-dollar problem is getting computers to
do exactly what they are supposed to do. All of these systems have flaws.
Every step has problems and challenges. And if something goes wrong,
there is no liability. The lost data damages your company, your
livelihood, you.
&lt;/p&gt;

&lt;p&gt;
This problem goes back decades and has multiple root causes
that culminate in the mess we have today. Hardware and software makers
lack liability for flaws, which leads to sub-par rigor in verifying
that systems are hardened against known vulnerabilities. A rise in
advertising revenue from "big data" encourages firms to hoard
information, looking for the right time to cash out their users'
information. Privacy violations go largely unpunished in courts, and
firms regularly get away with enormous data breaches without paying
any real price other than pride.
&lt;/p&gt;

&lt;p&gt;
But it doesn't have to be this way. Open software development has
been a resounding success for businesses, in the form of Linux, BSD
and the hundreds of interconnected projects for their platforms. These
open platforms now account for the lion's share of the market for
servers, and businesses are increasingly looking to open software for
their client structure as well as for being a low-cost and high-security
alternative to Windows and OS X.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/open-source-software-developers-are-all-us" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 07 Feb 2018 19:06:20 +0000</pubDate>
    <dc:creator>Derek Zimmer</dc:creator>
    <guid isPermaLink="false">1339653 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Lotfi ben Othmane, Martin Gilje Jaatun and Edgar Weippl's Empirical Research for Software Security (CRC Press)</title>
  <link>https://www.linuxjournal.com/content/lotfi-ben-othmane-martin-gilje-jaatun-and-edgar-weippls-empirical-research-software-security</link>
  <description>  &lt;div data-history-node-id="1339525" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Developing truly secure software is no walk through the park. In an effort to
apply the scientific method to the art of secure software development, a trio of
authors—Lotfi ben Othmane, Martin Gilje Jaatun and Edgar Weippl—teamed up to
write &lt;em&gt;Empirical Research for Software Security: Foundations and
Experience&lt;/em&gt;, which is published by &lt;a href="https://www.crcpress.com"&gt;CRC Press&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
The book is a guide for using empirical research methods to study
secure software challenges. Empirical methods, including data analytics, allow
extraction of knowledge and insights from the data that organizations gather from
their tools and processes, as well as from the opinions of the experts who
practice those methods and processes. These methods can be used to perfect a
secure software development lifecycle based on empirical data and published
industry best practices. 
&lt;/p&gt;

&lt;p&gt;
The book also features examples that illustrate the
application of data analytics in the context of secure software engineering.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12237f5.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/lotfi-ben-othmane-martin-gilje-jaatun-and-edgar-weippls-empirical-research-software-security" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 20 Oct 2017 16:47:34 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339525 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Heirloom Software: the Past as Adventure</title>
  <link>https://www.linuxjournal.com/content/heirloom-software-past-adventure</link>
  <description>  &lt;div data-history-node-id="1339482" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/eric-s-raymond" lang="" about="https://www.linuxjournal.com/users/eric-s-raymond" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Eric S. Raymond&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Through the years, I've spent what might seem to some people an inordinate
amount of time cleaning up and preserving ancient software. My
&lt;a href="http://www.catb.org/retro"&gt;Retrocomputing Museum&lt;/a&gt; page archives any
number of computer languages and games that might seem utterly
obsolete.
&lt;/p&gt;

&lt;p&gt;
I preserve this material because I think there are very good reasons
to care about it. Sometimes these old designs reveal unexpected
artistry, surprising approaches that can help us break free of
assumptions and limits we didn't know we were carrying.
&lt;/p&gt;

&lt;p&gt;
But just as important, cultures understand themselves through their
history and their artifacts, and this is no less true of programming
cultures than of any other kind. If you're a computer hacker, great
works of heirloom software are your heritage as surely as Old Master
paintings are a visual artist's; knowing about them enriches you and
helps solidify your relationship to your craft.
&lt;/p&gt;

&lt;p&gt;
For exactly re-creating historical computing experiences, not much
can beat running the original binary executables on a software emulator
for their host hardware. There are small but flourishing groups
of re-creationists who do that sort of thing for dozens of different
historical computers.
&lt;/p&gt;

&lt;p&gt;
But that's not what I'm here to write about today, because I don't
find that kind of museumization very interesting. It doesn't typically
yield deep insight into the old code, nor into the thinking of its
designers. For that—to have the experience parallel to
appreciating an Old Master painting fully—you need not just a running
program but source code you can &lt;em&gt;read&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Therefore, I've always been more interested in forward-porting
heirloom source code so it can be run and studied in modern
environments. I don't necessarily even consider it vital to retain
the original language of implementation; the important goals, in my
view, are 1) to preserve the original design in a way that makes it
possible to study that design as a work of craft and art, and 2) to
replicate as nearly as possible the UI of the original so casual
explorers not interested in dipping into source code can at least get
a feel for the experiences had by its original users.
&lt;/p&gt;

&lt;p&gt;
Now I'll get specific and talk about &lt;em&gt;Colossal Cave Adventure&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
This game, still known as ADVENT to many of its fans because it was
written on an operating system that supported only monocase filenames
at most six characters long, is one of the great early classics of
software. Written in 1976–77, it was the very first text adventure
game. It's also the direct ancestor of every rogue-like dungeon
simulation, and through those the indirect ancestor of a pretty large
percentage of the games being written even today.
&lt;/p&gt;

&lt;p&gt;
If you're of a certain age, the following opening sequence will bring
back some fond memories:

&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/heirloom-software-past-adventure" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 07 Sep 2017 12:17:29 +0000</pubDate>
    <dc:creator>Eric S. Raymond</dc:creator>
    <guid isPermaLink="false">1339482 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>SoftMaker FreeOffice</title>
  <link>https://www.linuxjournal.com/content/softmaker-freeoffice</link>
  <description>  &lt;div data-history-node-id="1339089" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12028f8.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
The bottom line on SoftMaker &lt;a href="http://freeoffice.com"&gt;FreeOffice 2016&lt;/a&gt;—the updated, free,
full-featured Office alternative to the expensive Microsoft Office
suite—is this: no other free office suite offers as high a level of file
compatibility with Word, Excel and PowerPoint. This maxim applies to both
Windows and Linux operating systems, says the suite's maker, SoftMaker
Software GmbH. SoftMaker asserts that the myriad competing free
alternatives often harbor problems opening the Excel, Word and PowerPoint
file formats loss-free. Sometimes the layout and formatting get lost, and
on other occasions, files cannot even be opened. SoftMaker sees itself as
the positive exception to this rule, especially with the newly overhauled
FreeOffice 2016. Benefiting greatly from SoftMaker's commercial
offering, SoftMaker Office 2016, FreeOffice 2016 adds features such as
improved graphics rendering, compatibility with all current Linux
distributions and Windows flavors (XP to Windows 10), new EPUB export and
improved PDF export and many other MS-Office interoperability enhancements.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/softmaker-freeoffice" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 20 Jun 2016 15:20:20 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339089 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The Usability of GNOME</title>
  <link>https://www.linuxjournal.com/content/usability-gnome</link>
  <description>  &lt;div data-history-node-id="1338622" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/jim-hall" lang="" about="https://www.linuxjournal.com/users/jim-hall" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Jim Hall&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
I work at a university, and one of our faculty members often repeats to me,
"Software needs to be like a rock; it needs to be that easy to
use." And,
she's right. Because if software is too hard to use, no one will want
to use it.
&lt;/p&gt;

&lt;p&gt;
I recently spoke at GUADEC, the GNOME Users And Developers European
Conference, and I opened my presentation with a reminder that GNOME is
competing for mind share with other systems that are fairly easy for
most people to use: Mac, iPad, Windows and Chromebook. So for GNOME
to continue to be successful, it needs to be easy for everyone to
use—experts and newcomers alike. And, that's where usability comes in.
&lt;/p&gt;

&lt;p&gt;
So, what is usability? Usability is about the users. Users often
are busy people who are trying to get things done. They use programs to be
productive, so the users decide when a program is easy to use. Generally,
a program has good usability if it is easy for new users to learn,
easy for them to use, and easy for them to remember when they use the
program again.
&lt;/p&gt;

&lt;p&gt;
In a more practical view, average users with typical knowledge should be
able to use the software to perform real tasks. The purpose of usability
testing, therefore, is to uncover issues that prevent general users
from employing the software successfully. As such, usability testing
differs from quality assurance testing or unit testing, the purpose of
which is to uncover errors in the program. Usability testing is not a
functional evaluation of the program's features, but rather a practical
determination of the program's operability.
&lt;/p&gt;

&lt;p&gt;
Usability testing does not rely on a single method. There are multiple
approaches to implement usability practices, from interviews and focus
groups to formal usability testing. Whatever method you use, the value of
usability testing lies in performing the evaluation during development,
not after the program enters functional testing when user interface
changes become more difficult to implement. In open-source software
development, the community of developers must apply usability testing
iteratively throughout development. Developers do not require extensive
usability experience to apply these usability practices in open-source
software.
&lt;/p&gt;

&lt;p&gt;
I prefer the formal usability test, and it's not hard. You can gain
significant insight just by gathering a few testers and watching them use
the software. With each iteration, usability testing identifies a number
of issues to resolve and uncovers additional issues that, when addressed,
will further improve the program's ease of use. Usability cannot be
addressed only at the end of a software development lifecycle. If you
wait until the end, it is usually too late to make changes.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/usability-gnome" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 16 Feb 2015 20:49:20 +0000</pubDate>
    <dc:creator>Jim Hall</dc:creator>
    <guid isPermaLink="false">1338622 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Designing Electronics with Linux</title>
  <link>https://www.linuxjournal.com/content/designing-electronics-linux</link>
  <description>  &lt;div data-history-node-id="1085187" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/joey-bernard" lang="" about="https://www.linuxjournal.com/users/joey-bernard" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Joey Bernard&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
In many scientific disciplines, the research you may be doing is
completely new. It may be so new that there isn't even any instrumentation
available to make your experimental measurements. In those cases, you
have no choice but to design and build your own measuring devices. Although
you could build them using trial and error, having a way to model them
first to see how they will behave is a much better choice—in steps
&lt;a href="https://github.com/marc-lorber/oregano"&gt;oregano&lt;/a&gt;.
With oregano, you can design your circuitry ahead of time
and run simulations on it to iron out any problems you may encounter.
&lt;/p&gt;

&lt;p&gt;
The first step, as always, is installing the software.
Most
distributions should have a package for oregano available. If you want to
follow the source version, it is available at GitHub. Oregano also needs
another software package to handle the actual simulation. The two packages
it currently can work with are Gnucap and ngspice. Either of these two
packages needs to be installed in order to do the calculations
for the simulation. While this is handled automagically by your
distribution's package manager, you will need to install this dependency
yourself if you are building from source.
&lt;/p&gt;

&lt;p&gt;
Once it's installed, you will get a blank new project when you
first start up oregano (Figure 1). On the right-hand side, you should
see a list of elements you can use to build your circuits. It
starts up with the default library selected. This library provides
all the standard electronic components you likely will want to
use. But, this isn't the only library included. You can select from other
libraries, such as TTL, Linear, CPU or Power Devices, among others. 
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11486oreganof1.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 1. On startup, you get a blank canvas and a parts list.
&lt;/p&gt;

&lt;p&gt;
Each
of these libraries contains a list of associated elements you can use
in your circuits. Selecting one of the elements shows a preview of
the schematic drawing of that element in the bottom window. You then
can drag and drop the element onto your canvas and start building your
circuit. Once you have an element on the canvas, you can double-click
the element to edit its properties (Figure 2). 
You need to click on the "Draw wires" icon at the top of the window
in order to connect the elements together into a proper circuit. 
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11486oreganof2.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 2. The property window depends on which properties are available for
that element.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/designing-electronics-linux" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 22 May 2013 20:28:41 +0000</pubDate>
    <dc:creator>Joey Bernard</dc:creator>
    <guid isPermaLink="false">1085187 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Trying to Tame the Tablet</title>
  <link>https://www.linuxjournal.com/content/trying-tame-tablet</link>
  <description>  &lt;div data-history-node-id="1084590" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Like many folks, I received a shiny new Nexus 7 tablet for Christmas. This
brought me great joy and excitement as I began to plot my future
paperless life. For most of the evening and an hour or so the next day,
I was sure the new Android tablet would change my life forever. Sadly,
it wasn't that easy. This month, I want to dive head first into the
tablet lifestyle, but I'm not sure if it's really the lifestyle for me. I'll
try to keep everyone posted during the next few months (most likely in the
Upfront section of &lt;em&gt;LJ&lt;/em&gt;). And please,
&lt;em&gt;please&lt;/em&gt; don't hesitate to send me messages about the ways you
find your Android tablet useful at work/home/play.
&lt;/p&gt;


&lt;span class="h3-replacement"&gt;
At Work&lt;/span&gt;

&lt;p&gt;
The main reason I decided on the Nexus 7 was because with the leather
case I bought for it (Figure 1), it was small enough to carry
to meetings easily, yet big enough to view full-size documents. I figured with
a tablet computer, I might be able to do away with most of the paper in
my life. I have cabinets &lt;em&gt;full&lt;/em&gt; of filed papers that I never use. I do,
however, search my e-mail on a regular basis for communications sent or
received years ago. I want that same accessibility for items that
exist only in paper form now.
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11431f1.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 1. My case doubles as a stand.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Paperless: Evernote or Dropbox&lt;/span&gt;

&lt;p&gt;
I've been trying to go paperless since long before I got a tablet computer.
There seems to be two schools of thought in the paperless
department. There are the Evernote people, and there are the
"every-other-kind"
of people. I have Evernote on every electronic device I own (which is a
significant number), and I have to admit, for raw information, Evernote
is amazing. The problem comes with documents. Granted, documents can
be added to an Evernote note, but they are like e-mail attachments, and
they can't be modified once attached. This means, at least for me, that the
only documents I ever attach are "complete" documents that are printed
as PDF files.
&lt;/p&gt;

&lt;p&gt;
I don't have a good solution for how to handle Word/LibreOffice documents
in Evernote. So, that means I have an inconvenient combination of Evernote
for unformatted information and Dropbox for documents. Thankfully,
both applications run &lt;em&gt;very&lt;/em&gt; well on Android, so
although I don't have a
central repository for all my information, at least I can access all
the information from my tablet.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/trying-tame-tablet" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 08 May 2013 18:50:57 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1084590 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Interfacing Disparate Systems </title>
  <link>https://www.linuxjournal.com/content/interfacing-disparate-systems</link>
  <description>  &lt;div data-history-node-id="1047291" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-litton" lang="" about="https://www.linuxjournal.com/users/james-litton" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Litton&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
When hearing the word interface, most people probably think of a Graphical User
Interface or a physical hardware interface (serial, USB). If you dabble in
scripting or are a serious developer, you, no doubt, are familiar with
the concept of software interfaces as well. Occasionally, the need arises
to integrate disparate systems where an interface doesn't already exist,
but with a little ingenuity, an interface can be created to bridge the
disparity and help you meet your specific needs.
&lt;/p&gt;

&lt;p&gt;
I have an extensive home automation implementation I developed
over the years. As I knocked out the "easy" integrations, I eventually came
to a point of wanting to integrate systems that are not home
automation-friendly. An example of this is my alarm system. Excellent alarm
panels exist on the market that make integration a cinch, but I already had a
fully functional alarm system and was determined to integrate it into my
home automation setup rather than replace it.
&lt;/p&gt;

&lt;p&gt;
My first inclination was to hack a keypad or build my own hardware
interface that would allow me to capture status information. Both of those approaches
are viable, but as I thought about other options, I realized I could
integrate my proprietary alarm system into my home automation system
without even cracking open the alarm panel.
&lt;/p&gt;

&lt;p&gt;
Before I reveal the details of how I achieved the outcome I wanted,
let me first lay out my integration goals. Although it would be nice to
capture sensor data from the alarm system, in my case, it was totally
unnecessary as the only data that might be helpful was motion sensor data
or specific zone faults. Because I already have numerous motion sensors
installed that are native to my home automation build, and because fault
data wasn't a factor in my immediate integration requirements, I concluded
that I needed to know only if my alarm was "armed" or
"unarmed". Knowing the
state of the alarm system helps me make my home automation system
smarter. An example of this added intelligence might be to change the
thermostat setting and turn off all lights if the alarm state changes to
armed. Another example might be to turn on all of the lights in the house
when the garage door opens after dark and the alarm is armed.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/interfacing-disparate-systems" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 04 Sep 2012 20:37:40 +0000</pubDate>
    <dc:creator>James Litton</dc:creator>
    <guid isPermaLink="false">1047291 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Fade In Pro</title>
  <link>https://www.linuxjournal.com/content/fade-pro</link>
  <description>  &lt;div data-history-node-id="1032445" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/charles-olsen" lang="" about="https://www.linuxjournal.com/users/charles-olsen" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Charles Olsen&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;When I switched from Windows to Linux, I found software to replace almost everything I had been doing in Windows. Most of the software I needed was in the repos, although I did pay for a couple commercial programs.&lt;/p&gt;
&lt;p&gt;The most difficult program to replace was Final Draft, a commercial program for writing screenplays. Final Draft is available for Windows and Macs, but not for Linux. It also does not run in Wine or CrossOver Office.&lt;/p&gt;
&lt;p&gt;I understand that software for writing screenplays is a small niche, but it's not limited only to writers in Hollywood. Any company that prepares videos for training or other purposes would benefit from a program that helps write scripts.&lt;/p&gt;
&lt;p&gt;You can write scripts with a word processor, of course. But, the formatting is tricky and goes beyond what you can accomplish just by using styles. A dedicated script-writing tool ensures that all your formatting is correct, and it also can help in other ways.&lt;/p&gt;
&lt;p&gt;At first, I was able to get by with Celtx, a free screenplay program that is available for Windows, Mac and Linux. But a nasty bug crept into the Linux version, making it painful to enter character names for dialogue. Although the developer acknowledged the issue two years ago, and several new versions have been released since then, the bug is still there.&lt;/p&gt;
&lt;p&gt;A new solution now is available. Fade In Professional Screenwriting Software is a powerful application for writing screenplays, and it includes tools for organizing and navigating the script, as well as tools for managing revisions and rewrites.&lt;/p&gt;
&lt;p&gt;Fade In intelligently handles the various formatting elements of a screenplay. You can format the elements manually using key combinations or menus, or you can format everything just by using the Enter and Tab keys. Type a Scene Heading and press Enter, and the next element automatically is formatted as Action. Press Tab to change the formatting to Character, which automatically is followed by Dialogue. Press Tab to change from Dialogue to Parenthetical, which formats properly and inserts the parentheses.&lt;/p&gt;
&lt;p&gt;Fade In builds autocomplete lists of your characters and locations. Once you've written a character or location, you can re-enter it with a couple keystrokes.&lt;/p&gt;
&lt;p&gt;When it's time to produce a screenplay, Fade In can help by generating standard production reports including scenes, cast, locations and so on. You then can print these reports or save them to HTML or CSV.&lt;/p&gt;
&lt;p&gt;Fade In can import and export files in these formats: Final Draft, Formatted Text, Screenplay Markdown, Unformatted Text and XML. It  also can import files in Celtx or Rich Text Format and export to PDF and  HTML. The Final Draft format is particularly important if you want to sell your script or submit it to certain screenplay-writing contests.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/fade-pro" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 21 Feb 2012 17:27:25 +0000</pubDate>
    <dc:creator>Charles Olsen</dc:creator>
    <guid isPermaLink="false">1032445 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Astronomy on the Desktop</title>
  <link>https://www.linuxjournal.com/content/astronomy-desktop</link>
  <description>  &lt;div data-history-node-id="1031435" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/joey-bernard" lang="" about="https://www.linuxjournal.com/users/joey-bernard" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Joey Bernard&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Many people's initial exposure to science is through astronomy, and they are inspired by that first look through a
telescope or their first glimpse of a Hubble image. Several
software packages are available for the Linux desktop that allow users to
enjoy their love of the stars. I look at several packages in this
article that
should be available for most distributions.
&lt;/p&gt;

&lt;p&gt;
The first is Stellarium, 
my personal favorite for day-to-day stargazing. When you install it,
you get a thorough star catalog. By default, Stellarium
starts up in full-screen mode. The layout makes for a
very attractive display of the sky above you, and almost all the details
of the display are customizable. 
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11193stellarf1.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 1. Opening Stellarium gives you a look at the local sky.
&lt;/p&gt;

&lt;p&gt;
If you hover your mouse pointer over
either the bottom-left border or the lower-left-side border, one of
two configuration panels appears. From here,
you can set visual items, such as constellation outlines, constellation
names, whether galaxies and nebulae are visible, as well as 
a coordinate grid. You also can set location and time values. This means
you not only can see what the sky looked like in the past or what it
will look like in the future, but you also can see what it looks like on
the other side of the planet. Additionally, you can add even more stars to the catalog
that Stellarium uses. 
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11193stellarf2.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 2. You can set the time so it's later, letting you check out what you might want to
look for that evening.
&lt;/p&gt;

&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11193stellarf3.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Figure 3. The configuration window lets you download even more star catalogs.
&lt;/p&gt;

&lt;p&gt;
Stellarium includes a script capability. With it, you can script views of
starfields and share them with others. When you install Stellarium, you get
several demo scripts to use as examples. As of version 0.10.1,
there is a new scripting engine based on the Qt scripting engine. 
A full API is available, allowing you to interact with all of the
functions that Stellarium provides. It is a full scripting language
called ECMAscript. You may know it better as JavaScript. You can define
your own functions, encapsulating larger chunks of work. There is a
for statement, providing a loop structure that will look familiar to C and
Java programmers. 
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/astronomy-desktop" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 15 Feb 2012 16:53:29 +0000</pubDate>
    <dc:creator>Joey Bernard</dc:creator>
    <guid isPermaLink="false">1031435 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
