Showing posts with label Windows. Show all posts
Showing posts with label Windows. Show all posts

Monday, 26 May 2025

Software Review: GitHub Desktop

Around 2020, GitHub sent me a notice that they were upping security standards for their users. I was using SourceTree at the time for Version Control, and I would have to implement a SSH key-pair in order for my existing setup to continue working. Installing and generating SSH just seemed more trouble than I was willing to go to, so I did took what I saw as the Path of Least Resistance - I uninstalled SourceTree and installed GitHub Desktop.


Years have passed, and I've never looked back.

The Premise

GitHub Desktop is exactly what it sounds like - https://github.com but in a desktop app instead of a web browser. Or, to look at it in another way, like doing version control on your machine without using the CLI (which can be problematic if you're typo-prone) or the web browser (which can be clunky).

The Aesthetics

The color scheme is mostly mauve, black and white, with shades of red and green for text highlighting. In Dark Mode, the same colors are used but in different proportions. No complaints here.


The layout is mainly column based, with very little wasted space. From afar it can look cluttered, but after some usage, I'm come to the conclusion that it is actually very optimized.


The Experience

I'm speaking as someone who knows how to push changes and the basic functions of Version Control, but doesn't key in the commands in the CLI enough to qualify as a savant. In this review, you will probably see me use the word "intuitive" a lot when describing the interface, because it is.


Using GitHub Desktop was easier than using the web interface, and definitely easier than using the CLI.

The Interface

The application is comforting in its simplicity. We have a bar at the top for branching and repository switching, and the rest of the window is dedicated to committing and pushing changes. That's for the Changes tab.


The History tab tracks commits and merges.

GitHub Desktop had enough of the common functionality in menu items and buttons, that I didn't have to search that hard for stuff I needed to do.

What I liked

Simple enough to use even for myself, and I wouldn't call myself an advanced user. Basic things like Commit, Push, Pull, Stash et al are readily available and very well-placed. I did not need to refer to any documentation to be able to find these features.

Branching is pretty intuitive as well. Functionality related to that are all here, in one place!


Needless to say, so are Merging and Pull Requests. I don't do those all that often, but on the rare occasion I did, it was carried off without a hitch.

Adding a new repository is intuitive (there's that word again) and just about idiot-proof. I also love that this application doesn't simply assume that I know shit just because I'm using it, and bothers to give me explanatory notes in the interface.


Installation is uncomplicated. I installed this for both Mac and Windows systems, and each time GitHub Desktop ran smooth as silk. It seems ridiculous to name this as a perk, but not when you have multiple laptops using multiple platforms.

Generally, GitHub Desktop doesn't try to be everything. It limits functionality to what's absolutely necessary for operations and nothing more.

What I didn't

Logging in and out wasn't as simple as I thought it should be. The functionality is right here, when you select Settings from the main menu, but I feel like something as fundamental as logging in and out should be right there on every screen instead of being hidden.


You won't see certain dashboards as you would in the web version, but perhaps that's for the best. Still, it would have been nice to have those views available if we really wanted them.

Conclusion

GitHub Desktop is one terrific piece of software if using the CLI is intimidating (or just depressing) to you. You don't even need to master every aspect of it to be able to start using it somewhat effectively. It's a neat little tool, available on multiple platforms and safe to use.

My Rating

9 / 10

Let's Pull for GitHub Desktop!
T___T

Thursday, 8 August 2024

Software Review: XAMPP

My first experience in 2010 configuring PHP on a Windows laptop was a bit of a nightmare. I not only had to run the executable file, I had to grapple with every line from php.ini. And that's not to mention running code and then testing database connections.

So image my relief years later when I discovered XAMPP, a package that would set up an Apache server, just like that.



After all the steps I'd taken to install PHP on that first laptop, not having to do it all over again, over and over, on the subsequent machines that I owned, was palpable. I soon became a big fan.

And today, I'm going to show my appreciation through this software review.

The Premise

XAMPP is basically a package comprising of an Apache server, and optionally, MySQL (recent versions use MariaDB instead). Thus if you need to run PHP or Perl quickly, this is a great solution. In fact, "XAMPP" is an acronym that stands for "Cross-platform Apache MySQL PHP Perl".

You double-click to run the installer. Subsequently, whenever you want to run PHP or Perl code, you start up the server.

The Aesthetics

Meh, it's orange and grey. The whole thing looks basic. Nothing to shout about from an artistic viewpoint, really. But at the same time, there's something about the simplicity of it all that's really attractive.

The Experience

Overall, using XAMPP was a pleasure. Compare this to the hassle of setting up and maintaining your own Apache server? Not even close. Come on.

The Interface

Starting this thing up is easy. Configuring it, also easy.





Gone are the days of hunting for the exact file. XAMPP opens that file up for you and gently warms you to be careful when changing it.

What I liked

XAMPP condenses the horribly complicated process of setting up an Apache server with a database, regardless of whether it's on a Windows or Mac platform, into a few simple steps. What's not to love? It's almost a bit too simple, if I'm being honest. But too simple is usually better than not simple enough.

Sensible conventions. Things like the default deployment path, port number, and such, aren't outlandish. I can get behind "htdocs" as a root path, even if I've been trained to recognize other conventions such as ASP.NET's "wwwroot".

Looks charmingly retro. Now, this could be seen as a negative, but this section is titled "what I liked", so here it is.

What I didn't

It would've been nice if some configurables were changeable through either a desktop or web interface rather than having to open up the config text file. On the other hand, the need to change these things doesn't come up all that often, so...

In the MacOS version, the executable is manager-osx which isn't really intuitive. 



Conclusion

If you need a quick-and-dirty Apache setup tool, who you gonna call? That's right - XAMPP! This tool has been around for the last  couple decades, and hasn't ever really gone out of fashion. That's because XAMPP doesn't pretend to be anything more than just an Apache server setup tool, and in that it's a godsend for PHP and Perl devs.

My Rating

8 / 10

An XAMPP-lary piece of work!
T___T

Monday, 29 April 2024

What's the best programming language for beginners?

What should be a programmer's first language?

Often, this is not a deliberate choice, more a matter of circumstance. Perhaps a programmer started on QBasic as a kid. Perhaps, like me, the programmer picked it up in school and was made to learn C++ or Java. I would even venture to say very few programmers start out saying I'm going to begin my programming journey with the best, most modern language out there! To begin with, how would they know what constitutes the "best" programming language, or what even is a good programming language? You don't know what you don't know, after all.

Let's learn!

Also, how suitable a programming language is for your purposes also really depends on what your purpose is. Do you want to crunch data? Write games? Build web portals?

So, obviously, before we can sort out what the "best" programming language is, perhaps it is more useful to figure out what a programmer's first programming language should be. After all, this choice opens different doors.

For that, we should probably look at a few factors. I can only draw upon languages I've coded in before. as examples, obviously.

Syntax

For this, we look at simplicity of writing code in that language. How intuitive the syntax is, and how few extra keystrokes needed to get something done.

For this, my obvious picks would be Python or Ruby. Less of the semi-colons and curly brackets. Anyone picking either Python or Ruby as a first language, I suspect, would be less likely to give up out of frustration.

Code syntax.

C# and Java is probably among the worst for this. Too many namespaces. Overly verbose syntax. I haven't had many projects that needed to be done in either of these languages, and for that I'm truly grateful.

But the one that takes the proverbial cake, in terms of being cumbersome, would be PHP. The function calls structures are wildly inconsistent, and in addition to semi-colons and curly brackets, it also requires a dollar sign preceding every variable name.

As far as syntax goes, the group of programming languages with visually similar styles - PHP, Java, JavaScript, C and its variants - is such that if you pick one up, the learning curve for the others, at least for the simple stuff, isn't so great. Thus, even if PHP is hideously cumbersome in parts, it benefits from being visually similar to other languages mentioned.

Transferable skills

This measures underlying principles or skills that one will pick up while programming in a certain language, that will be useful when transitioning to another stack. It could be something as simple as similar syntax (as mentioned earlier) or strong data typing.

Or it could be something so ubiquitous that no matter what stack you're in, you're almost certainly going to encounter it. A great example of this would be SQL. No matter what kind of programming you go into, the chances of you needing to access a database at some point, are pretty good. I wouldn't go so far as to say that this makes SQL the number one choice for a programmer's first language, but it makes a great case for being a programmer's second, at least.

Data processing.

For a similar reason, if one wanted to go into web development, it's almost impossible not to have to deal with HTML, CSS and JavaScript, but learning JavaScript as a first language just for that, is questionable. As a second language, definitely.

Strongly-typed, class-based languages such as Java and C# would be good choices as a first programming language for learning concepts such as Object-Oriented Programming. (PHP and JavaScript kind of implement OOP as well, but in a way that's a little odd). Python would be the choice if one wanted to have a strong foundation in data structures. However, Python's lack of strong typing might work against it as a first language.

Ease of setup

One of the most daunting tasks of learning a language is setting up the environment for it. Java requires the JRE (Java Runtime Environment). PHP requires an Apache server. Python and Ruby, well, you get the idea.

For this, the most fuss-free option has to be JavaScript, hands down.

All major browsers
run JavaScript.

JavaScript runs on all major browsers. You don't need to install anything you probably don't already have. If you're reading this, unless you're reading it on your phone, you have a desktop browser which you can run JavaScript in. It's almost zero setup. Just write your code, and run it in the browser.

For a Windows environment, VBScript is also almost zero effort. All you need to do is write your script, save it with extension "*.vbs" and you can run it by double-clicking it! Unfortunately, I'm not sure how useful knowing VBScript is.

In essence, in the cases of both JavaScript and VBScript, the environment has already been set up for the programmer.

Popular support

No developer plies their trade without consulting a reference of some sort. Textbooks are a valid source, but for the most updated material, we turn to the internet. Portals and forums provide most of these, with each language having large communities of programmers ready to provide support.

Learn by reading, or
by community.

Which programming language has the largest, or best, communities?

That's hard to say. All communities have their fair share of toxic losers who waste little time being condescending and acting like gatekeepers. At the same time, each community also boasts genuine people. I'm not going to waste time detailing how large each programming language's community is relative to others. Suffice to say, they're all (OK, mostly) large enough to be useful.

Generally, the longer they have been around, the larger they tend to be.

Conclusion

Whatever the choice turns out to be, ultimately, there will be benefits to that choice. That is because no matter what language someone chooses for their first programming experience, the fact remains is that they are still engaging in the activity of programming. It's a start. Some starts are better than others, sure, but it's a step. And hopefully the first of many.

Mind your (first) language!
T___T

Friday, 6 October 2023

TeochewThunder: Year Nine (Part 1/2)

Here it is - the big Nine!

Yes, it has been nine years since I embarked on the improbable journey that was this tech blog. At times, it has felt less like a tech blog and more like a philosophy or even political blog. But I suppose multiple things can be true at the same time. As long as this blog stays true to its mission of documenting my own little tech journey, I think all is well.

Happy ninth birthday!

That aside, the fact that this blog has gone on for nine years, staying on course with the same format as all the preceding years since 2014, is a testament to my consistency. Hey, it's one hell of a moment; I think I'm allowed a little self-congratulations. Still, change is inevitable, and in some cases, I think change can be beneficial. For example, I've been attempting to not swear so fucking much express my views in a less inflammatory and moderate manner, and since less posts now carry the Profanity Alert tag, I seem to have largely succeeded. Room for improvement, though!

AI Image Generation

2023 is probably the year that AI became mainstream, with text and image generators making their runds on the market. I've actually used both. Text generators such as ChatGPT to generate filler text for code, and image generators (sch as Imagine) to produce nice pictures for the blog.

Imagine

In recent years, I've been mostly using stock photos, but sometimes the search is long and the results are underwhelming. Being able to generate pretty much what I need with a reasonable degree of accuracy has proven to be an attraction too great to ignore. The problem with such images, however, it that people often look unrealistic and deformed. Thus, I've tried to limit such image generation to animals, plants and inanimate objects. Anything that absolutely requires human parts in the image, I continue relying on stock photos. I think it's an acceptable compromise.

Tech Content

As is par for the course with other years, much of my repertoire has revolved around HTML, CSS and JavaScript, and occasionally PHP. But true to form, I have been experimenting with other technologies. Not new programming languages, but new software.

Oracle APEX

Low-Code solutions was something I embarked upon after attending Oracle's CloudWorld Tour back in April. Oracle APEX sounded promising at the time, and after some tinkering, I have not found myself overly impressed. However, I have not been thoroughly underwhelmed either. And thus I have actually, as is my wont, used a technology I am learning, to create something I want. The result is last month's web tutorial.

This year, QBasic made the rare appearance in one of my web tutorials. There's quite the story behind that one, but go read the web tutorial if you want to know.

Other Content

There's been a fair bit brewing around the world. The rise of AI, global unrest, and much moving and shaking in big tech. Stuff has happened in Singapore as well, but unless I can somehow tie it to a tech angle, I tend not to feature it on the blog.

Gobal news!

One point of evolution of this blog is that gradually, I have been screening out things that are big enough for me to talk about. If it's about tech, that's an obvious inclusion. If it's not so much about tech but more about Singapore or workplace issues, then it's still relevant as long as I can make it relevant. The rule is that I should not have to try too hard to make it relevant.

I've also gone into the process of tag removal. Over the years, the number of tags that simply were not important enough to warrant being repeated, has grown. In my defense, they seemed important at the time, and it's only with the benefit of hindsight that I realized a substantial amount of cleanup was needed. This is an ongoing process though, so bear with me!

My Equipment

As I write this passage, I am doing it on a creaky and flickering laptop that is undoubtedly on its last legs. This machine has served me since 2015, a few months after I embarked on TeochewThunder. It has been 8 years. Ah, the memories. The support on the Windows version has run out, and I'm dragging my feet on moving on to a new machine.

Thankfully, in 2020, I bought a MacBook Air and the little beauty's got some life in her yet. I expect that soon I will be moving on from presenting screenshots from my Windows machine, to taking screenshots from my MacBook Air.

Failing equipment.

My mobile phone is not what one would call state of the art and is in dire need of an upgrade. Still, thankfully, it seems to have weathered much abuse and should hold out for a while yet. Hopefully, the upcoming blogging break will give me ample time to transition to machines that aren't decrepit to the point of embarrassment.

Next

We examine the highs and lows of the blog.

Tuesday, 19 September 2023

Web Tutorial: Oracle APEX Mailing Registration Form (Part 1/4)

Normally, when I begin a web tutorial, I say something like "let's write some code!". Well, today, let's not write some code.

Oracle APEX is a low-code app development platform. My aim today is to create a basic Registration app for a mailing list using this platform. Why? For shits and giggles, I guess. I have no really good reason. In fact, why do I need any reason at all?

With that in mind, you will need to register for an Oracle APEX workspace and log in. Please note that while all these screenshots were taken on Chrome, it was done on my Macbook. It shouldn't make a difference if you use Windows.

Well then, let's jump right in! The features we will use today are mostly found in the first two menu items at the top - App Builder and SQL Workshop.


Click on App Builder. It will bring you to this window where you will click on Create An Application. Pretty intuitive so far, yeah? Don't worry about the rest. We won't be needing it.

Here, enter a name for your application. Ignore everything else and just click on Create Application.

And here, you just created your first app! Click on it...

...and it'll take you to a place where all these pages have been pregenerated for you. Delete as many of them as you can. The only one you might not be able to delete is Page 9999, which is User Login. Oracle APEX is dead set on you having that page whether you use it or not, for reasons I won't go into.

Let's make some pages! Hit the Create Page button and this window will pop-up. There are tons of interesting options, but we are going to go with the basic one, which is the very first one.

Toggle Use Navigation and Use Breadcrumb to Off. We won't be needing those. We'll make our own Login page, which is page id 1. Click on Create Page.

Repeat the process until you have all these pages. Here's a list of pages I created, which we will be working on.
Login (id 1) - A login page for users to enter the app.
Registration (id 2) - A form for users to add themselves to your database.
Update (id 3) - A form for users to update their particulars.
Interests (id 4) - For users to view their Interests and delete them.
Descriptions (id 5) - For users to view their Descriptions and delete them.
Interest (id 6) - For users to add a new Interest.
Description (id 7) - For users to add a new Description.
Update Password  (id 8) - A form for users to update their password.
Logout (id 9) - A page that logs the users out.
Registration Thank You (id 10) - A page that shows a thank you message after registration.


It's time to work on the database. Oracle APEX comes with this nice database management feature. Click on SQL Workshop, the second item in the top menu. You will see these two tables, MAILING_LIST and MAILING_LIST_TERMS, after the next few steps.

From the previous screen, click on Object Browser. This will lead you to this page where the amount of functionality in the left menu is staggering. We will only use the Table function, which is the default page and first option.

On the right panel, click on Table. this will bring up a dialogue where you enter the name of your table. Set Semantics as "Default", and enter whatever you like for Comments.

Here, you can start creating columns for your table. There's a whole bunch of options here, and if you're not new to databases, this should be fairly intuitive.

Now you can go through this process, or you can try another route. Click Cancel, and go back to the main screen. Here, select SQL Commands.

In this screen, you can simply enter in a command to create your tables, and click Run Command. At the end of it, you should have the tables MAILING_LIST and MAILING_LIST_TERMS.

Here's the command for creating MAILING_LIST. The fields are as follows:
EMAIL - This is a string which is the Primary Key for the table. It is used to contact the user.
FIRST_NAME - This string is descriptive, used to address the user.
LAST_NAME - This string is descriptive and optional,
DOB - This is a date field, used to determine the user's age and other information such as Zodiac sign.
GENDER - This is a single character, either "M" or "F".
DAYS - An integer which specifies the number of days between emails.
LAST_SENT - This is a date field whose value tracks when the user was last contacted. Default value is "01-01-1970".
CREATE TABLE "MAILING_LIST" ( "EMAIL" VARCHAR2(100) NOT NULL ENABLE, "FIRST_NAME" VARCHAR2(50) NOT NULL ENABLE, "LAST_NAME" VARCHAR2(50), "DOB" DATE, "GENDER" CHAR(1) NOT NULL ENABLE, "DAYS" NUMBER NOT NULL ENABLE, "PASSWORD" VARCHAR2(100) NOT NULL ENABLE, "LAST_SENT" DATE DEFAULT '01-01-1970' NOT NULL ENABLE, CONSTRAINT "MAILING_LIST_PK" PRIMARY KEY ("EMAIL") USING INDEX ENABLE ) ;


Here's the command for creating MAILING_LIST_TERMS. The fields are as follows:
EMAIL - This string is a Foreign Key to the MAILING_LIST table.
TYPE - This is a string with two possible values - "INTERESTS" or "DESCRIPTIONS".
TERM - This is a non-empty string.
The combination of EMAIL, TYPE and TERM must be unique.

CREATE TABLE "MAILING_LIST_TERMS" ( "EMAIL" VARCHAR2(100 CHAR) NOT NULL ENABLE, "TYPE" VARCHAR2(100 CHAR) NOT NULL ENABLE, "TERM" VARCHAR2(100 CHAR) NOT NULL ENABLE, CONSTRAINT "MAILING_LIST_INTERESTS_PK" PRIMARY KEY ("EMAIL", "TYPE", "TERM") USING INDEX ENABLE ) ;

ALTER TABLE "MAILING_LIST_TERMS" ADD FOREIGN KEY ("EMAIL") REFERENCES "MAILING_LIST" ("EMAIL") ENABLE;



This is just setup so far. We've not done anything terribly exciting yet, but never fear, we're getting to it!

Next

The Registration Process

Thursday, 16 March 2023

Film Review: Missing

A spiritual sequel to 2018's Searching is here. I actually wrote a review on it back then, as I'm going to do now!


The movie is titled Missing, and in terms of format and plot, it's almost identical. There are a few tweaks here and there that break away from it being solely in found footage format, and now the process of finding clues is a lot faster because the protagonist is a tech-savvy teenager rather than a bumbling Boomer. Other than that, it feels pretty much the same. It doesn't count as a direct sequel because the plot has almost nothing to do with Searching, other than a reenacted sequence at the start (which serves to confirm it as having happened in the same universe, if nothing else).

Warning - spoilers, spoilers and more spoilers

There are big twists in this movie, and I'm not skilled enough as a reviewer to avoid spoilers. Also, I'm of the opinion that people shouldn't read movie reviews before watching them, so I don't actually care enough to avoid spoilers. Proceed at your own risk!

The Premise

While on vacation with her beau, Grace Allen goes missing. It's up to her rebellious Gen Z teen daughter to piece the clues together and locate her parent. This eventually leads to a whole series of twists as assumptions are challenged and theories disproven, until the climatic end where a rather predictable twist occurs.

This is an inversion on the plot of its predecessor Searching, which told a story of a parent trawling the internet for clues to the whereabouts of his missing child.

The Characters

Storm Reid as June Allen. She was OK in the role. I didn't hate her. She's no John Cho, but to be fair, no one is.

Nia Long as Grace Allen. She did the whole loving-Mom-trying-to-move-on bit with ease. It's only towards the end when the question pops up... moving on from what exactly?

Ken Leung as Kevin Lin. Last saw him in Old. He was awkward or earnest when he needed to be, and has this look of a really crafty, weaselly SOB. In other words, he was perfect.

Tim Griffin is superb as James, June's long-missing father, presumed dead. He switched from sweet dad to abusive husband with terrifying ease, though there were times he kind of went over-the-top.

Amy Landecker is Heather Damore, Grace's heroic lawyer who dies trying to protect the Allens. It strikes me as sad that she died alone and in the most horrific manner.

An uncannily gorgeous Daniel Henney plays FBI Agent Elijah Park, June's ally in the FBI. Other than bits of exposition here and there, he didn't have all that much to do. Honestly, his good looks were a distraction, and I'm saying that as a straight guy!

Megan Suri as Veena, the annoyingly perky BFF of June. She does a good male impersonation and has a good vibe with Javier. Other than that, pretty much peripheral to the plot.

Joaquim de Almeida
as Javier Ramos. A kindly elderly man who's a TaskRabbit gig worker. He turns out to be incredibly helpful, becoming June's eyes, ears (and hands and legs) in Colombia. He also gives June a bit of perspective from the viewpoint of a parent, being estranged from his own son.

Lauren B Mosley as Rachel, an aspiring actress who's hired as Grace's body double. Bewildered and clueless. The character, I mean. Actress did just fine.

Tracy Vilar has a couple scenes as Detective Gomez. Overacted a whole lot in the brief scenes she was in. Did not enjoy watching her.

The Mood

It was pedestrian for the first hour, but the tension really kicked up several notches from the time Grace went missing. I was kept on my toes around the last half hour expecting a jump scare every other minute.

What I liked

The updated tech used. Back in Searching, it was mostly Facebook and YouTube. Now, five years later, the internet has exploded with all manner of apps. June is seen using things like Instagram, TikTok, Google Translate and tourist destination live cams... even the fictional dating app Luvly!

It's really difficult to tell the entire story in second-hand footage format. They managed to pull it off, though there were times it felt like people were trying just a bit too hard. Credit where it's due!

Towards the end, the survival of the characters was never assured. I did not know for sure that either June or Grace weren't going to be killed off.

I liked that little plot point about June reacting to Grace's "I love you" message with a thumbs up (and Grace trolling her with it at the end) because that is absolutely a relatively recent feature of chat apps.

June's desktop screen is so messy. This is so relatable it almost feels like a personal attack.

What I didn't

The part where June goes through the Instagram messages to actually play the clips, and finds out that the woman in the clip is not her mother. OK, that was kind of awesome, until you remember that this thread was meant to act as a false trail for June. Why would Kevin include a clip that wasn't of June's mom?

At times, especially towards the end, the plot just got a little too much. The charm of Searching was that most of the plot's premise was easily believable. Missing required a hell of a lot more effort.

June uses a colorful MacBook but her mother Grace uses Windows?! Wow, way to age-stereotype!

Conclusion

I had a good time. This was a decent follow-up. Things threatened to get a little stale, but the movie navigated that well enough, keeping things relatively fresh with a few new visual effects. I retain a certain fondness to its predecessor, but this new offering wasn't as bad as it could have been.

Still, there's this feeling that this particular format of movie-making has just about run its course. I was OK with this movie, but there better not be another sequel! Quit while you're ahead, yo.

My Rating

7 / 10

I love you, guys! 👍
T___T

Wednesday, 8 December 2021

Software Review: Tibco Spotfire

Data visualization seems to be getting some traction in the tech industry, or it could just seem that way due to my sudden exposure. Data visualization software takes care of some of the tedious data wrangling tasks that come with the job of analysis, without the user having to write swathes of code for the visualization itself.



Enter Spotfire by Tibco. It is a data visualization tool that connects to the cloud for user authentication and provides a suite of features for the arrangement and cleanup of data before generating charts and analysis.

The Premise

Spotfire takes care of your data the moment it is imported - from diverse sources such as CSV files, databases and spreadsheets. From there, you can slice or join different tables to form a coherent dataset, perhaps creating new columns from existing data.


Once done, the data may be used in several different visualization types.

The Aesthetics

Basic color scheme is white, with various shades of blue. The round corners and abundance of white space can make this software seem overly simplistic.

The Experience

Using Spotfire was a bit of a pain in the beginning. Some of the icons were a complete mystery as to their usage and it took a fair bit of clicking around and seeing what worked (or didn't work). Sometimes controls were a bit slow to respond, but this could depend on your internet connection.

The Interface

The interface feels clean and simple for the most part. The visualization flow can be as basic as - select a data field, bring up recommended visualizations, and adjust. It can be very straightforward.










The number of different visualizations available is adequate. There does not appear to be much that is super-advanced.


There are more analytics tools available if required. I did not explore that portion of the software.

What I liked

For visualization, controls are relatively straightforward. If nothing else is needed, it can be a very simple process.



The color scheme grew on me the longer I used it. It's not at all pretty, but at the same time, it's not jarring and that earns huge points from me.

What I didn't

No support for MacOS. All these features only apply if you're using a Windows machine. You could use the cloud version, but that seems to be a watered-down version of Spotfire.




Spotfire is kind of slow. There is a certain amount of lag that occurs when working with data outside of visualization, and sometimes even with visualization. This could be a result of my beat-up Windows machine, however.

Sometimes, the interface is not very intuitive and feels a bit clumsy for working with data.

Conclusion

Spotfire isn't unique in its abilities. There are other software packages that do the job just as well as Spotfire, if not better. If all you want is a fuss-free visualization tool, Spotfire is more than adequate. Anything more is perhaps pushing your luck.

My Rating

6 / 10

Try it if you like the (g)raph stuff!
T___T