Archive for category Reviews
If you spend any amount of time working on code, you probably have a favorite text editor or IDE. Everyone has their own opinions. Everyone has applications with which they are more familiar. I've went through a few different choices over the last few years, but the one I've stayed with 95% of the time during the last two is PHPStorm from JetBrains, which is uncharacteristic of me, because if there's a free version of some category of application, I'll usually make that free version work, rather than pay for commercial software. There's a ton of free IDEs and text editors. Why would I spend money on PHPStorm? Over the next few paragraphs, I'll go into detail as to why I can no longer function at 100% efficiency in any other editor. I'll also mention some things that I wish were better in PHPStorm. When I discuss the good things about PHPStorm, remember that no single thing is the reason I use and pay for the IDE. It's the overall combination of all the features that I like. Most of these individual features are available in other editors. Where PHPStorm shines is it's ability to deliver all the features I want and need in a single application.
An IDE Needs to be Organized!
There's a lot to be said about the readability and organization of an IDE. A modern text editor needs tabs. It also needs the ability to split the active editor window to see code side-by-side. PHPStorm has both of these features. It also has project and structure views which are collapsible. It has an amazing find feature that can be used to search the entire project or within a specific directory. It can search for files or text within those files, and this search is fast. It has a built-in terminal which is also collapsible. It has complete support for working with various SQL databases directly from within the IDE. There's no need to open up a command line database interface or another app like MySQL Workbench. All of that is built into the IDE.
The IDE stays out of your way while you work.
I typically have my editor window taking up most of the screen with all the different panels collapsed. When I need those various features, they are there, but they aren't getting in my way all the time. The version control integration is nice as well, though I usually do all of that from the command line. It shows you the current branch that you have checked out in the lower right of the window, which has come in very handy at times. You can also enable an option which shows the memory usage of the IDE and allows you to click to force a garbage collection or lower this memory usage. All menus are effective and all panels stay out of your way when you don't need them.
I mentioned that I keep most of my panels collapsed in PHPStorm. This is possible because I rarely need them. You may be used to navigating through a project and opening files by finding them in their directory structure within the project, using a project directory tree panel of some sort. PHPStorm has this view, but I rarely need it. I usually know the name of the file I'm wanting to open. The only time I need the project view is when I can't remember the name of the file I need to edit. For all other times I use one of three different shortcuts.
Ctrl + Shift + N
This shortcut searches for file names specifically within the project. The search is very smart as well. If you have a file named user-login-modal.html for instance, and you just remember that it's named something like 'loginmodal', the search is smart enough to know you want user-login-modal.html. I use this shortcut more than any other, because I'm always jumping between different files and this is the simplest/fastest way to find them. Usually I can type about three or four characters and have the correct files as my first choose in its list.
Ctrl + Shift + F
This is a super find utility. It's fast, because PHPStorm indexes your project. It allows you to find any text within all the text of your project. This is especially useful if you have some method name that you want to refactor across your entire code base and you can't remember every specific place that it's used. I use this shortcut all the time.
This quick shortcut is the "ultimate super search everything" feature. You just double tap the shift key. It's like a combination of the previous two shortcuts I've mentioned. So why not just use this one all the time? I honestly can't give you a good reason that I don't use this feature more often, other than to say that before I used PHPStorm I used Netbeans predominantly, and if I remember correctly, it had the same ctrl + shift + n shortcut to open files. So, I was used to using that already. I haven't switched to double shift completely because I forget it's there most of the time. I may have to focus on using it more often now that I've brought it up.
There are other shortcuts that I use but haven't mentioned, and there are probably many that I don't use but could really benefit from utilizing. Everyone should dig through their IDE to get to know all of its features.
PHPStorm makes it very simple to refactor code. You can refactor anything throughout your code base with just a few keystrokes. If you highlight some text within your editor and hit Shift + F6, you will see a "Rename" dialog which allows you to change the text throughout the project. You can preview the changes before you implement them. If you rename a file, the IDE will search for it's usage throughout the project and give you a preview of refactoring that it can automatically do for you as well. You can also disable these auto-refactoring if you need to. It's just great that it's there.
This is my favorite new-ish text editor feature that has become popular on many editors. It has become essential for me. I first started using multi-cursors in SublimeText. Soon all new text editors had the feature. SublimeText may not have been the first to have this feature, but it was definitely one of the first to do it well. PHPStorm's implementation is very close to the SublimeText implementation and very usable. However, it can get a little slow if you are trying to use more than 20 or so cursors. SublimeText doesn't get slow for me until I'm using about 1500 cursors. However, I rarely need more than ten. So PHPStorm's implementation works well for most things. If I can't do it in PHPStorm, I'll open up Sublime and take it from there. This is rare.
All Other Modern IDE/text Editor Features
All of the features I've mentioned so far are important for me. There are other features that are a must for me as well, that I should also mention.
- An IDE should have code completion. PHPStorm is the best I've seen in this regard. There's no SublimeText plugin that can even get close to the intelligent code completion that PHPStorm has, or at least I've not found one.
- Syntax highlighting and good color schemes is a must. I tend to like the default PHPStorm color scheme. I spend a lot more time trying out new color schemes in all text editors than I like to admit. I prefer light color schemes in PHPStorm for some reason. Most of the time I prefer dark. The main point here is to be able to differentiate between the various different "parts of speech" in the programming language, and this works very well in PHPStorm.
- PHPStorm also has great source code auto-formatting options and makes it simple to reformat code to your preferred code style.
So, you've heard many things that I like about PHPStorm. As I said earlier, no single feature that I've listed is the reason I pay for PHPStorm. It's a huge combination of these features that makes it worth it to me. Netbeans has great code-completion, but doesn't have multi-cursor (or at least didn' the last I checked), and its white space display characters are ugly, if you are showing them. SublimeText has great multi-cursor and the text in the editor itself looks better to me, but it also doesn't have the database integration that PHPStorm has or code-completion that I consider usable. There may be plugins or packages that facilitate both of these, but I need to spend my time coding as much as possible, not digging for plugins that actually work well. PHPStorm has plugins as well, but it comes with everything you really need without adding any plugins, typically. SublimeText is a text editor first and the plugins are used to make it more like an IDE. I'd use SublimeText if I could find good plugins that facilitate most of the features that I've mentioned in this post. You'll find out more about that in a bit. Because even though I predominantly use PHPStorm, there are still times when I open SublimeText.
Why haven't I mentioned any other editors or IDEs besides Netbeans and SublimeText?
Well give me a chance and I will. Quite simply, I've tried just about every editor there is out there. I've tried most of the IDEs. I've given them all the opportunity to convince me. However, today I only use three editors/IDEs regularly. Surprisingly enough, Netbeans isn't one of them. Netbeans was my main IDE for a year or two. I still like it, but I haven't had it installed in a long time. After I switched to PHPStorm, I've not needed it. I also switched to IntelliJ for my Java dev work that I was doing on Netbeans before. Today I mainly use PHPStorm, SublimeText, and Vim.
Ah Vim! I hear some of you getting ready for an editor flame war. I love Vim. I like to use it for simple editing tasks on the command line where I don't have another editor available. You can make Vim do just about anything you want. However, I still prefer using a ready-to-go IDE like PHPStorm for every-day coding.
If PHPStorm is so great, why do I still use SublimeText Occasionally?
Here is where I give you the bad things I've found about PHPStorm and why I still use a simple text editor like SublimeText at times. It won't take long. There isn't a lot, but it would be GREAT if these were addressed by JetBrains.
Large Text Files
PHPStorm can't open up unusually large text files. It will flat out tell you that the file is too large for it to open. This occurs for me when I try to edit a 3.5GB MySQL dump file. Sublime has trouble loading it as well. Vim, however, will take it's time and chew it right up. Bravo for Vim! There is probably an option in PHPStorm to allow it to open large files, but I've not found it, and this is such an infrequent necessity for me that I haven't bothered to dig for it.
Large amount of Cursors
You can add a few hundred cursors on PHPStorm very easily, but good luck typing more than a single character ever 20 seconds or so if you do. It gets noticeable slow at multi-cursor as you add more. It takes a lot to slow down SublimeText in this regard.
I Honestly Hate Most Java Apps
I use SublimeText when I can, because I REALLY REALLY hate most Java-based applications, and I would much rather use SublimeText for this reason. PHPStorm is written in Java which brings with it some good things (like portability), but also some bad things. With enough hardware, you can overlook most of the bad, but I would much rather use a native application over one that runs on the JVM. I'm not a big fan of the look and feel of Java apps. The font rendering in Linux can be terrible, especially if you are using OpenJDK. Switching to Oracle's official JDK seems to fix most of these font-rendering issues. Java apps tend to be bloated and sluggish. There are a few things to consider about this. Java apps require little to no porting to run on different architectures. Java is a very easy language, and the easier a language is, typically, the easier it is for a bad programmer to code something in it (trust me, I know PHP has this same problem). Which leads to a higher population of un-optimized software. However, this really isn't the case with most good Java applications. They are just slower than native apps. It's nearly impossible for them not to be slower. The JVM adds a thick layer of overhead.
Finally the Main Reason I Pay for PHPStorm
Also one last note... The new JetBrains subscription model isn't just available in yearly terms. There's also monthly. For a single user PHPStorm license, it's only $8.90/month for new users. You can get all of JetBrains products for $24.90/month. This is a great deal. I like to support great products, especially when they make my life easier. JetBrains lured me in two years ago with their special "half-off" offer. Now I'm hooked and gladly pay their low subscription price.
If you aren't convinced to give them a shot, know that this entire post sounds like one huge commercial for their product, and they aren't paying me or coercing me into writing it one bit. I really feel this strongly about their IDE. It makes my coding more enjoyable and more efficient. If I find something better, I'll use it. Until then, take my money JetBrains! I love your products.
We bought an Emerson Ice maker about two years ago because the built-in ice maker in our freezer stopped working, and I'm a huge consumer of ice. So, I wanted a dedicated ice maker. It worked well for a few months. Then it decided that it didn't want to make ice. I should have sent it back but I decided to tear it apart and try to fix it. I wasn't able to really get anywhere with it. So, I put it back together and plugged it back up and miraculously enough it started working again.
Since then, I discovered why it was failing to make ice. I post this because there may be someone else out there with the same problem from their Emerson Ice Maker.
The problem I have stems from the 120mm exhaust fan used in this device. I'm no expert on refrigeration, but I think this fan has to be running in order for the thing to make ice correct. It puts out a lot of heat. With my very basic knowledge of thermal dynamics, I'm assuming that this is how the ice is made. It removes the heat, thus reducing temperature and creating ice.
This fan is the exact fan used in a lot of computers. So if it isn't running, you may need to replace it. However, I took a shortcut that seems to have worked, a little trick I've learned from working on computers. You can give it a try if you want. It's pretty simple.
The fan has a sticker in the center. This should have some sort of logo on it, but it also has a second purpose. It holds a little rubber cap in place. Under that cap are the bearings for the fan. If you oil the bearings and replace this sticker, the fan may start to work again. You can get to the fan by removing the cover. I won't go into details here how to do that, because I don't have enough time to write the detailed instructions. It's pretty easy to do. In my case the fan grill was almost broken completely out. So, I just finished it off for easy access to the fan.
"What can you use to oil the bearings", you may ask. I used baby oil, because it's basically mineral oil with a little fragrance. You can use mineral oil and there are some actual products that are made for greasing fan bearings. There are a ton of videos on Youtube on how to do this to a regular computer fan.
I hope this helps. If it does, leave a comment! I like to hear when I help.
I randomly happened upon a site called Penzu.com (you have to love the obscure names that come about from lack of domain availability). It is a personal journal site that basically gives you an encrypted online diary. It also has ssl security on the connection. So you can write your daily journal online, and you won't have to worry about anyone else reading it.
Wait, let me repeat that. You can write in your journal online daily and never have to worry about anyone else reading it. First of all, letting other people ready something you've written is one of the major benefits of the web. Why would you want to post anything online and then keep everyone else from reading it? I mean I can see maybe a few people using this who don't know any better, but Penzu actually offers a "Pro" version that's $19.00 per year. So you have a personal blog that no one will be able to read and you have to pay 19 bucks a year for the upgrade version which includes themes and other unnecessary things. Good luck to Penzu and all, but I just don't see that business model as being sustainable. Let me take a moment to explain why.
First of all, private journals are possible in many different forms that don't require an internet connection. There's physical diaries. There's notebooks. There's personal computers. All three of these do not require an SSL connection to keep your information safe. If you are saving your journal on your personal computer, you may want to utilize encryption, however. A good free program for that is TrueCrypt. Though it isn't the only one. There are many. All three of these methods for keeping a diary are much safer than posting anything online, they don't require an internet connection, and they don't cost a dime. So why would anyone want to post their journal this way?
I think what led to this idea is the notion that blogs are too public. People may not feel like they can speak their mind on a blog because anyone and everyone will read it. This has the potential of keeping someone from getting a job or getting fired from their current job. So maybe someone looked at this problem and thought, "What we need is a site that lets people make private journal posts", which honestly would have been a good idea before the invention of books, pencils/pens, or personal computers. Unfortunately, today it's just not a great idea, certainly not one worth $19 a year.
Everyone is in a race for the next big internet idea. Penzu.com is an example of a well implemented bad idea. The site is beautiful. It has wonderful design and coding. Unfortunately, the idea behind this wonderful site is terrible. If I had to guess, a rich "idea person" decided to put a lot of money into one of his brilliant ideas and out popped penzu.com. I don't fault the developers who made the site. They were doing work to pay their bills, and they actually did an awesome job.
I do have some thoughts on how to make this idea a little better, however.
First ditch the "pro" version idea completely. Meaning get rid of a payment of any kind. The service needs to be completely free for the user. Make your money through advertisements within the interface.
Secondly, make this site more social. Think about copying Google+ circles. Allow users to make a post public, private, or restricted to certain friends or friend groups.
Penzu has to realize that their idea goes against what makes Web 2.0 great, and they aren't doing anything groundbreaking with this idea. But enough of my ranting...
The other day I wrote an alcohol-influenced post about music in video games and movies. I have another observation about music in regard to television shows. Today I started watching Star Trek: Enterprise on Netflix. This series was canceled after four seasons. After only a few episodes, I can say that I really like the show, and I wonder why it failed as a series.
Of course, you can probably guess where I'm going with this if you've ever seen the show. The opening title music is terrible. It's terrible enough to kill the show. The song isn't so bad on it's own merit, but it's awful for a Star Trek series. The theme music for the original Star Trek and the Next Generation was great. Why didn't they work on a form of that same theme. A variant which sounded either older, clumsier, or simpler, perhaps a single instrument rendition of the theme, would have been better. I feel, it would have made a difference in the overall show performance.
Well, as promised, I will be reviewing the Rosewill RK-9000 mechanical keyboard. However, I will be doing the review in multiple parts. This is the initial review of the keyboard.
I just received it via UPS and I was too excited to video the unboxing. So, I'll not be doing that. Let's start with the pros of this keyboard.
This is perhaps the best keyboard I've ever typed on. If not the best, then it's right up there with my Unicomp Endurapro and my friend Lynn's WASD keyboard. The Cherry MX blue switches are very nice. This is the first keyboard I've owned with blue switches. They are responsive and loud. I wanted a quieter keyboard, but much of the loudness of this keyboard comes from bottoming out. It's actually relatively quiet if you learn to not bottom out. I find that the hardest key for me to not bottom out is the space bar, and it's very loud when bottoming out.
The keyboard is slightly smaller than my Unicomp, which places the keys closer together. This will be listed as a con as well, but I should point out that it will probably make the keyboard a bit faster to type on. It actually has a real good action for my hands. I find that I don't have to stretch my fingers nearly as far to type on it. So this is both a pro and a con. The con being that I have to get used to it.
The overall action of the keys is very pleasing. They are light compared to my Unicomp, and they require less of a keypress distance. I'm going to spend a lot of time practicing to not bottom out the keys. There's a very noticeable difference in the sound, when they aren't bottoming out. I'm usually a very powerful typer. My uncle commented that I sounded like I was going to push the keys through the bottom of his laptop, when I was working on it. If you are forceful with your typing, the blue switches will be a good switch on which to practice lighter typing.
The LED lock indicators on this keyboard are a nice blue color and are easy to see. The keyboard is 100% mechanical, unlike the Corsair Vengeance K90 which uses rubber dome keys for the F keys, the macro G keys, and the group of keys right above the arrow keys (insert, home, page up, etc).
The font used for the lettering on this keyboard is very pleasant. The letters are largish. The bracket keys are very distinct. For a programmer this is actually important. The square braces have a wider look than most keyboards. This makes it easy to distinguish them from the normal parenthesis keys. However, most programmers know where these keys are located, so it's not really a big deal. I just thought it was nice that you could tell what the keys are better.
The red metal base plate is a nice touch. It adds contrast to the keyboard and makes a rather dull keyboard actually look unique. The detachable mini USB cord is a nice touch as well. As an aside, I think that it would be awesome if this keyboard could function as a wireless bluetooth device and charge through the detachable USB cable, similar to a PS3 controller. I would love to see this as an option for a keyboard, but I've not seen one yet. The USB cable is very sturdy. Rosewill ships these keyboards with both a USB and a PS2 cable, both connect to the same mini USB port on the keyboard. I connected mine via PS2 because I wanted to try out the full NKRO (n-key rollover) of the keyboard. This means that every key on the keyboard can be pressed at once, and it will send to the OS. This keyboard does, in fact, have NKRO, and it works very well.
The normal keyboard height adjustment feet (or legs, can't remember the term) on the bottom are perfect. Some people have suggested that these are too short, but I find their height to be perfect for my typing. In fact, I've often found that most keyboards are too low when the feet are collapsed and too high when they are extended. This keyboard seems to have been built with the sweet spot in mind. I love it.
Typing on this keyboard is a dream. I've been coming up with new things to say in this post just so I can type on it more. It's giving me a nice chance to check it out. It's not all good though, as I'm about to point out.
There are at least two things about this keyboard that I didn't care for right away, but both of these issues may go away with time.
First of all, the keys are closer together than I'm used to, as I describe earlier. The ctrl, win, and alt keys are smaller than usual, especially the ctrl key. This places these keys in an abnormal position for me. I'm sure I'll soon get used to them, but this has presented a problem with alt + tab. I have a problem getting my left thumb over to the alt key without looking. Like I said, this keyboard is a little bit smaller than your normal keyboard.
Lastly, I've had a couple of incidents with stuck keys. The "A" key and the "T" both have stuck, once each. I was unable to replicate the issue, and I think that it's just a case of the switches getting broke in. I'll report more about this issue in a later review, but I don't think this is going to be an ongoing thing. I've been using the keyboard for about two hours now and that's only happened those two times. Plus, that only happened within the first 10 minutes of typing on it.
This is by far a better keyboard than many higher priced keyboards. I returned a Corsair Vengeance K90 to get this keyboard, and I'm glad I did. The K90 had a nice back light on the keys and some very well designed media keys, but the macro software was lacking which made the macro keys a terrible "feature", and there were other issues that I wrote about in my review of that keyboard. This keyboard is more like what I was looking for. It's a joy to type on and it just works. It doesn't have extras like a back light or media keys, but it makes up for that in build quality and performance. Since I'm going to be using this keyboard in Linux primarily later on anyway, I can say that the media keys aren't that big of a deal. I usually set up keyboard shortcuts in Linux that perform the volume, play, and pause functions. The main thing I wanted was a good quality keyboard, and this is definitely it. If you are coming from a rubber dome keyboard, this will feel completely different. It will take a day or two to get fully used to it, but after that, you won't turn back. These things are a dream to type on.