Applications Desktop Environments Distributions Web Development

Corona Time is Learning Time 2020

I admit it. I haven’t posted for nearly two years. Since I’m socially-distancing and keeping at home due to Coronavirus COVID-19 concerns. May as well put the time to good use eh?

Since the last written post, so much has happened. I’ve sold all my laptops except one. I’ve set it up as a dual-boot and I’m happy with it. Boots Windows 10 and my distro is KDE Neon 18.04.

It’s a good distro, so far. It does the things I expect of it. I’ve added the Cinnamon desktop environment as I’m used to the key combinations (hotkeys) to do desktop switching. I’ve even got the Nemo file manager properly opening a terminal and this is due in large part to the great Ubuntu and Mint communities out there on the old interwebs.

I have done quite a bit of Development work while in furlough (again thanks Covid-19 => you suck), but mainly the work has focused on Automated Acceptance testing with BDD. Namely:
• Python with Behave
• Eclipse Java with Cucumber
• IntelliJ Java with Cucumber

So far, the easiest I’ve found to set up and run out-of-the box is Python and behave. With IntelliJ as a close second.
With Eclipse, I fell into the old “follow an old tutorial down dependency nightmares in the waiting” trap. Yah. Probably a few changes since 2016 can do that. While I did learn a lot about Cucumber BDD from the lesson, I could not get the most trivial of cucumber-driven IDE functionality to work without error. That is, until I found this really cool tutorial cucumber eclipse maven project that made use of Maven and a pom.xml file, containing just the needed dependencies.
It then requires a few “maven” build and test steps, but then its good to go. About 98% in my view.

Why only 98%? Because if you’re anything like me, you prefer that the IDE show no errors, and no warnings. at. all.
I do get a warning that the cucumber plugin feature of discovering the step implementations will not work because it is not a cucumber project. Yeah. I know that, it’s a maven project.

I guess I’ll have to experiment more to see if I can get to 100 on my own. Hey, I do have the free time, right?

Actually there are a few more courses I’d like to complete on Pluralsight since they were cool enough to give “Free April” which is tick tick ticking away.

Anyway, if you’ve got thoughts to share, feel free to drop me a line.

Command Line (CLI) Distributions Web Development

What *Nix distro now?

Hi all, long time no write.
The time has come, well, it’s always been here I suppose… that lingering feeling that the distro you’re using is in need of replacement.
I’ve been using Ubuntu Mate for years now, and it’s great. No complaints with it, the issue is one that is known to many of us trying to get as much horsepower as possible from an old laptop.
How old you ask? Well it’s from 2009, and is an HP G60 in very good shape. Over the years I have maxed out the RAM, replaced the spinning disc HD with a Solid State Drive, and have replaced the keyboard and the battery. I’m just trying to get best performance out of it while trying to solve a few other problems/challenges in the process.
So glad you’re still reading this!! OK. Recently at work they have enabled Host Checker on the company’s VPN login stage. This basically means that my previous implementation of a 64-bit OS with some additional 32-bit java libraries added in (from mad-scientist directions) is no longer working. This used to work, and now it does not. Host checker fails because it can’t find program to run java applets or find an Antivirus program.

Isn’t that a kicker? Linux, a more secure operation system (in general) than Microsoft Windows…. is not considered “secure enough”…

I’ve been trying a few things to get it working within the scope of “host checker” and found this Perl script called jvpn but it isn’t working. I’ve done all I can within my own coder skill set to try and root out code issue or lack of java library issue, but there simply are no foolproof ways to make it work, and I feel this approach is simply very very hackish.

I was considering using an older 32-bit OS as an alternative, but in this day and age, that feels like going too far backwards in time. 32 bit?
The promising concepts of 32-bit:

  • The Java libraries will be 32-bit from day 1
  • I can install Java-enabled ESR release of Firefox

I’ve also read that FreeBSD is capable of establishing this connection to Juniper VPN, but I’m not convinced. For a week I tried out installing FreeBSD, and then installing TrueOS on top of it for a graphical environment. I may have done something wrong in that the machine felt slower in performance and the desktop (Lumina environment) just seemed to lack polish and if it’s going to be slow, at least it should look better in my opinion.

Does anyone have an idea on how to properly connect a Linux/BSD computer to a Juniper VPN with host checker enabled? Feel free to leave a comment. Thanks.

Applications Mobile Web Development

Mobile Development Framework?

Hi all.  Although this post isn’t about Linux, I thought I would put a question to the group.

Can anyone recommend an easy to use and learn Mobile Framework?

I’m looking for an easy-to-use, yet flexible way to develop Web Applications for Smartphones.  So far I have been trying out Sencha Touch and it’s pretty good.  The only hiccup (which is not really a hiccup) is that the level of “paid support” is much better than the ‘unpaid’ support.  I’ve subscribed to the forum and made a few posts, but I’ve been told (on various other blogs) that you might not get a response all-that-soon since the Sencha Team is first charged with assisting the paying customers.

Again, I have no issue with this concept.  Paying customers keep your lights on.  End of story.

Other than that, I have tried jQuery Mobile, which is great, but has certain limitations on what can be scrolled and what cannot be scrolled within a given container div.

The Sencha Framework is open source, and it’s got great examples to look at and use.

If you know of another or better way to do Mobile Web sites that come close to the look and feel of a “Native” smartphone application, then please, please comment here.  Thanks all!

Web Development Your Choice

Love me some jQuery

I’ve been a Web Developer for quite some time, but within the last few months I’ve been using jQuery and it’s so cool that it will most likely find its way into any and every website I work on.

If you’ve visited a website and observed “Wow, that’s a slick-looking info window” (as opposed to those boring and obnoxious framed popup windows that we immediately dismiss coz they are product ads/spam, or other crap) –

the window was quite possibly coded using some jQuery magic.

Want cool Navigation menuing? jQuery got it.  Want to add Client-Side validation to your HTML Forms with far, far less lines of javascript code? jQuery can do it.  A Tabbed interface, transitions, fades, AJAX-Based form posts? jQuery, jQuery,jQuery, and oh… jQuery.

What is jQuery?

jQuery's website is titled "jQuery: The Write Less, Do More, JavaScript Library"

And you can believe it when they say you will be doing more with less (code).  The part about being cross-browser is true, after a fashion.  I say that because, as a Web Developer, it is still incumbent upon you to check your site/application in as many browsers as possible (just like regular javascript).  Now, since I am a recent convert (and definitely a fan of jQuery), it does take the headache out of doing client-side programming.

For close to a year now, I’ve been either modifying existing jQuery UI elements (such as accordions) or have been adding tabbed interfaces or wonderful modal dialogs to my applications.  If you’re not using jQuery (or another library) to help with your code development, I suggest you do so, it will make your life easier.

Are there tools that can help me learn jQuery?

Yes, there are quite a few, and to list all of them would be for another post (or another blog site) for another day.  For now, I’ll share with you two tools that have helped me.

One of them you probably know about, the IRC (Internet Relay Chat) you can join the jquery channel, there are lots of active users there, willing to help.  Like any IRC channel, be prepared to explain what you’re doing, how you’re trying to do it, and of course, don’t be a fool.  These people are there to help you help yourself.  They are not your personal tech/coding support, so don’t foster any expectations of the people there.  In other words, follow the usual IRC etiquette of asking your question to the entire room/channel/group, and not in I-M style to a single individual who has helped you before.  As I have experienced (yes, I’m sharing a lesson learned the “not-so-easy-way” that just because someone helps you out once or twice in the channel, that they are NOT your go-to resource when something else on a project has you stumped.

The other tool that I have found invaluable when testing out jQuery code for functionality and cross-browser support is jsfiddle.  Imagine you’re working on a Web-based project for a Client.  The Client is paying for (among other things) a level of confidentiality that you would not want to violate at any time for any reason.  When asking for help at the jQuery channel, it is highly likely that someone will ask to see your “fiddle” (sounds kinda personal and creepy LOL) and why would they want to see it??  I’ll tell you why.  It’s a way for other developers to see your code and approach, laid out in an easy-to-see (and update) format.  A few times that I’ve gotten help came from someone pointing out (either by comment or by direct edit) a mistake in either my syntax or approach.  jsfiddle also separates your code sample from the rest of your application and that usually lends itself to a faster solution than sharing an entire script file with someone you really don’t know.

Applications Command Line (CLI) Web Development

Favorite CLI Linux Apps: php5cli

php5cli runs PHP commands in a shell

PHP is a scripting language used on many websites.  It allows a page to do “dynamic” things (such as changing a page’s appearance based on user input, time or date, etc.)

One of the things I do wtih php5cli (or php in the shell) is check a PHP script for errors.  This saves you the trouble of running your PHP-based web page in a browser (which may have bad side effects).  ??Bad side effects?? Sure, what if your page is supposed to overwrite a file, and then hits an error.  It may erase a perfectly-good file.  Ok, enough gloom and doom talk.  Let’s say you wanted to check “myPHPscript.php” for errors. Run the following command in a shell to check it for errors before it runs/executes.  The option is a lowercase L (l) not a digit.

php -l myPHPscript.php

Another good use of PHP in a terminal is to generate HTML code.  There’s a certain frustration in coding up an entire web site, and then needing to go back and make a change across all your pages.  A time (and headache) saver is to let PHP do the “heavy lifting” for you.  What does this mean?

Basically, you set up a series of instructions for a script to follow.  Then, based on your needs, you make the script “write” different output based on a variable whose value may change.  Sometimes this involves changing the size of table cells, but it could apply to writing an entire series of web pages.  It comes in way handy when you’re looping over database results (and deciding to print the 2nd line of an address to the page).

In summary, when you’d have to change the same attribute in many, many places, and change them a few times, manually finding the attribute (for example a web link), you don’t have to manually (not mention “tediously”) hunt for the item(s) you want to change.  Install php5cli with Synaptic (or other) package manager. This installs any needed dependencies.

Applications Using Linux Web Development Your Choice

Favorite Linux Apps: Web Coding

Linux Gui Applications for Website Design/Development

If you’ve got a site to develop or design, it’s easy to set up a working web server based environment in Linux. As stated in another post, you will need an IDE-style text editor (or at the very least you’ll need an editor that lets you keep several files open at the same time).

Run your pages using a web server such as Apache

While there are a few ways to do this, installing XAMPP for Linux by Apache Friends is simple.  It is free, well-documented, and you can set up a website very quickly.  By default, the web server is not started at boot time, (which to me is a plus) and starting/restarting can be controlled by issuing a command at the terminal.  XAMPP comes with MySQL and PHP 5, so it gives you just about everything you need to develop/create dynamic, database-driven web pages with the ability to reuse code (via PHP “include” directives).

Check your work in a few browsers to ensure consistency

If you’re running Linux it may seem a daunting task to evaluate your site’s appearance in Mac OS-X or Microsoft Windows.  Daunting yes, but you can come close.  Safari in Mac OS-X uses the “webkit” layout engine and you can view your pages in the konqueror web browser as a poor-man’s substitute.  It’s not perfect, but it’s close.  Mozilla firefox uses the Gecko layout engine so it won’t show you know how a site looks in Internet Explorer for Windows.  Firefox has a browser plugin called “IE Tabs” but I’m not sure if this reasonably captures the look and behaviour of the native IE.  Be sure to browse the Firefox Web Development add-ons page.