Categories

Meta

Category: programming

I made a post awhile back talking about different editors and IDEs and I talked about the merits of each. Probably pretty spasticly and semi-randomly, but that is just how I roll. Off the cuff. I don’t have a lot of time as most people with work and social life, but I wanted to bring something to everyone’s awareness.

Apparently Atom.io the GitHub editor has done something I think is definitely not in the spirit of true open source at least laid out by our predecessors. Ever since I can remember Firefox and other open projects notify you that they are collecting data on you if you would like them to. They tell you it will help them and they have a pop-up toolbar at the bottom. It will notify users of this practice and allows them to easily decide what they would like to share. Atom on the other hand has it enabled by default and the only notification is text you can barely read on a static welcome page. Now I normally check things like this out, but it never occurs to me a software developed claiming to be open would do this. Even Netbeans asks permission. All this new software coming out has no respect for privacy. Haven’t they learned anything from projects that have come before it?

I love the Atom project, but this warrants a fork if it is not fixed. This is not acceptable from any piece of software. You need to inform users with a pop-up notification at the very least and ask if it is ok to enable something like this and let the user decide if they want to participate.

If using your software is stipulated on the fact that we also need to be your BETA testers people usually respond better when this is something they do willingly.

For some reason over the years people have moved more and more to editors like Sublime Text, Atom, and even PHP Storm. One thing I think is strange is we already have great IDEs specifically made for programming and yet people want to use other editors. No doubt about it Sublime Text is light and fast, but on my system I have no issues starting up Netbeans and using it all day. It rarely crashes and has far less external dependencies that can be quite cumbersome to deal with at times. First off I am one of those ethical people that tend to lean on the open source side. I don’t mind using closed software at times, but I definitely have different drives that run my closed software and another drive that runs my open stuff. I usually use my open drive 99% of the time and then occasional use Windows when needed. So with this in mind I don’t really like to use Sublime Text for that reason. I didn’t rule it out as a possibility though. I wanted to use it so I went to the forum and asked the community/developers if a external security audit had been done and asked about their collection and privacy options. One thing that I find closed source software tends to do is collect data on the user and offer the option to turn these functionality off, but not advertise the feature. Here is a link to my question – http://www.sublimetext.com/forum/viewtopic.php?f=2&t=14927

Unfortunately they didn’t say anything I wanted to hear so I ruled it out as an option. The next thing I tried was the Atom editor. It is open source and created by the people that made Git Hub at least partially along with Chromium/Electron. It was pretty fast for being written in HTML/JS partially and has a lot of options for packages. One thing I ran into when using it was I constantly ran into issues with these packages. More often then not one would always stop me in my tracks while working. I would wake up in the morning start Atom up and bam an update would download. This was fine I always want the latest fixes and features, but this always causes problems with my packages. I either need to disable the package and fine something else that is similar and set that up. I would then go back and forth between disabling one and enabling another all while making sure configurations still worked. Eventually I just got tired of it. I posted a few times telling them some features just need to be included into the editor. They claim it is just an editor so that eliminates the requirement for them to maintain additional features, but lets be honest. It is a editor meant for programmers. So here is the crux of the issue.

PHP Storm on the other hand is reportedly great, but has a lot of quirks I find strange when comparing them to real IDEs. First why would anyone use PHPStorm over Netbeans which has had the same features as PHP Storm for at least 5 years before it was even developed. It makes me wonder are developers so accustom to fast past movement they become silly hipsters that are always looking for the next trend rather then just using what works. This can really be bad for new developers and always makes strange camps that get very religious about things. PHP Storm is a good option, but again not open and no security audit.

All these editors that market themselves as light and speedy don’t really help programmers in several ways.

When you can’t trust it. Either closed source, or no actual external security audit.

Off loads required features to third parties and scripters.

Breaks their own packages with updates.

Many packages that have little performance tuning when paired with other features.

Very little interoperability between packages.

Time wasted trying to maintain packages people maintain that are free as in beer so you have no assurance it will be maintained in the long run.

Just to bring this up in closing here. PHP Storm also has a older brother that is open and more mature. We could even throw Eclipse into the mix all of which are written for the most part in Java so it isn’t like you have speed improvements by using something else. I would love to have some better options if they exist, but in my experience Netbeans just does all the things I want and does them simply. It is integrated and is open. They support my development on the mainline so I know the features are top priority and they aren’t going to change. I can rely on the very simply functionality I require as a web and desktop developer and it is open and free enough mature and slow moving add-ons can be added without much fuss.

Just to leave a little wiggle room here I would say some instances may exist where you need to be super close to the edge and need some fast prototyping editor, but for steady stable development it is to much a hassle and a worry for me.

I personally think Atom is a great editor and could be something to use in the future, but it is going to need at least another year before it is reliable enough for me to use it on a daily basis. For now I will have to stick to Netbeans. I know how people feel about Oracle, but so far MySQL Workbench has been improving over the years and so has Netbeans. Anyway just felt like writing. Hope some one finds this useful.

A great framework I have been recently moving into has proven a great resource. If you aren’t familiar with Laravel I highly recommend it.

It focuses on developers instead of the usual CMS system which is business oriented. I have been programming in PHP for over 15 years now and sometimes you get so stuck in your ways you stop learning new systems. I don’t know if any other programmers have ran into this, but it was definitely one of my sticking points.

The web development sphere moves very quickly and by far I am always impressed at finding a newer and better way of doing something. I started out using things like PHP-Nuke, and then Joomla and even wordpress. All great systems in their own right, but they focus on plug and play modules that if you ever want to go outside of that scope it becomes a nightmare; At least to me I guess.

Laravel seems to cater only to developers rather then the novice that just wants to make a website and not customize anything. Not that this is a bad thing, but I find lots of my clients always wanting to tweak things, or even the time it takes to learn a new system is daunting when people just want to do their job and move on with their lives. Designing custom systems with a Laravel backend so far has proven very fast. I was able to produce several very high quality, clean, and secure websites in just a month or 3 depending on complexity. Often times you can even reuse parts of that code base which makes clients happy and me. I have code that is tested by multiple sites and I can tweak it myself. The packages that are included are all managed with Composer and GitHub so it makes it very easy to create your own, share, or even contact another developer and get some help with their creation.

It is a cool eco-system to jump into and I’d love to hear of others experience with Laravel. You can learn more by reading the documentation – http://laravel.com/docs/5.1 or even watching some of the videos on YouTube.

I was working on something and I noticed something really funny in the Qt documentation. Have a look…. or go to http://doc.qt.io/qt-5/qscrollarea.html If this isn’t prime material for a programmers meme I don’t know what is. I have no idea why they inserted this picture as the example other then to have a good time with the material they decided/or had to write. Very funny either way. Thanks for the unexpected laugh Qt document writers. I was reading the documentation because I needed to create my own version of a photo editing area. I even posted an adapted example on stackoverflow here : http://stackoverflow.com/a/28147336/1325621

If it is not completely obvious this little snippet helps you align your QImage inside a widget.

This isn’t the final version, but it definitely gives some one a good starting point. If anyone is interested in an updated version with more features let me know.