Newest blog entries
There are many programming and scripting languages out there. As time goes on, new ones get created and take flight. Right now, some of the popular newcomers include Node.js, Go and Swift. I've said before that I don't consider myself a programmer, but I still write quite a bit of code as part of my work and also for fun. I like to try out new languages, and in the past year I probably wrote projects in half a dozen different languages. It allows me to do cool stuff like the Rosetta Stone of Coding, for example.
But between all of these different languages, I still come back to Perl as my main choice, for two main reasons. First, the giant catalog of modules available out there. One issue with new languages is that while they have the advantage of starting fresh and reinventing concepts in a new, imaginative way, they also don't have the array of functions that older languages have. Perl is said to have a module for everything you could possibly want, and if you check on CPAN, you will see what that means. Whether you want to access the Windows Registry, do low level network coding, authenticate against Twitter or do complex math functions, there's a module for that.
The other reason is its portability. A lot of new projects have their installation instructions say something like Use bower to install. This certainly makes things fast and easy if you already have a development platform installed, but if you don't, you still need to go through the non-intuitive steps needed to get the multiple layers of dependencies. A lot of projects, especially in the open source world, also assume you're on Linux. Things start to break pretty quickly on Windows, OS X or other platforms. Perl is not only native to pretty much every platform out there, it comes pre-installed on most of them. Plus, there are neat utilities like Perl Dev Kit, what I use to create cross-platform binaries, allowing me to release a single executable with no dependencies. Sure it's not the most efficient way to do things, but sometimes it's the most convenient, when you want to use a script on a system with no development library installed, or share it with someone who wouldn't know what a command line looks like.
This isn't to say that I don't enjoy writing in other languages. Lately I've been playing with Node.js and for certain things, it's very neat. But even though Perl doesn't seem to have that cool factor anymore, and isn't discussed as much on Internet forums, I haven't found a language that can replace it yet. Oh, and as an aside, my least favorite language of all: PowerShell. A thing of nightmares...
Virtual Machines have become the norm in the IT industry. Most servers out there have been virtualized in one way or another, whether it's in the public cloud on Microsoft Azure or AWS, or even on-premise, where a single server will often run a dozen VMs for various purposes. But VMs have one inherent flaw: Overhead. Each VM is actually a full operating system running in its own container along with whatever required processes. In many cases this is fine, but as VMs have become more and more ubiquitous, this is sometimes pushed to the extreme. It's not rare to see VMs running a single app. Worse, if the app needs things like SQL Server, IIS, or other common roles, each VM will actually be configured with those things turned on. You end up with many VMs replicating the same roles, when it's not always necessary, and can make things like management and backup quite complex.
There's been a lot of development done to try and minimize this overhead, like hypervizors managing memory in a way that allows a single page in RAM to be replicated for many VMs when they all need the exact same data, but there are limits to this type of mitigation. That's where Docker comes in. Docker, and other similar systems, takes the concept of a VM and scales it down to the process level. Instead of spinning up a whole operating system, with all of its overhead, in order to run an application, we now have applications that live in their own containers. RightScale has a good article describing the differences between VMs and Docker. In a nutshell, you take an application, its libraries, files and other dependencies, and put them all inside of a container. The result is something that takes less time to start up, and less resources, because all of your contained apps can share a single OS, yet they can still be distributed easily.
Last week Microsoft announced that Docker support was coming to Windows Server. I think this will help propel the technology, and while the past 10 years have been the years of VMs, I think in a few years we will see that start to shift. VMs are certainly not going away, but instead of having the impulse to start a new VM for every project, I suspect a lot of people will keep a single powerful system running, and spin up containers instead.
This week I was doing some work on my web site and I decided to take a look at the database holding my gallery images, get some statistics from all of those renders I've done over the years. In total, this site holds 776 images, which isn't all of the renders I've done, but most of them. The ones I deemed good enough to be shown. The first image was in April 2008, or over 6 years ago.
The distribution of those images is as follows:
Another interesting data point is that even though many of my images contain nudity, it is not by far the majority, only 256 images, or 32%. Finally, the time spread was an interesting revelation as well:
My golden years of rendering are behind me? I think it's likely. The main reason is probably inspiration. After so many images, I've rendered the scenes I wanted to, and now too often it feels like making another one would be simply a variation on something I've done in the past. Also, I now have far more hobbies than before, including coding, writing, and so on.
If you'd like to know more about how I actually create these renders I invite you to check out some of the tutorials I've made, including 3D Concepts Tutorial, The Making of Agony and Vue Lighting Tutorial.
Even though I've been writing code for over 15 years, I've never considered myself a developer. I'm a hobbyist who write things because I need them, to learn, or just for fun. As such, and because I've never worked on large enough projects, I haven't used SVN or other source management systems. Lately however, it seems like I've been writing more and more actual apps, albeit small, and decided it was time to publish source code at a central location.
I selected GitHub because it's pretty much the central location for the majority of online developers. I also like the way their interface works, including the Windows client which is pretty nice to clone and push changes. You can access my GitHub page where I'm going to put most of the code I write as a hobby, usually under the MIT license. It's nothing ground breaking, but if anyone wants to build upon it, feel free to.
Microsoft announced their upcoming version of Windows, which they (for some reason) decided to call Windows 10. Right off the bat, I think that's a bad name, especially if the rumors that this is the last major revision of Windows are true, and after that they intend to deliver smaller incremental updates. Windows One would have made far more sense for something like that. But anyways..
I've never made it a secret that I dislike Windows 8. I still use Windows 7 on my main desktop, and have no plan to update. After looking through the announced features of Windows 10, it does seem like Microsoft is taking a step in the right direction. First, they are bringing back the Start menu, but with tile-based customizations. I think that's a good idea, sorta like widgets that can do more than just act as a shortcut, but also show you the weather, recent messages, etc.
The integration of universal apps into the desktop is another big one. Even on Windows 8 systems, I never go in the 'metro' mode, and thus never use universal apps. Having them work windowed on the desktop is a no-brainer. The task management is also more visual, which makes it look prettier on the desktop and work better with touch, which is fine.
A lot of other small changes were announced, like snap enhancements, a task view button, etc. Things I don't have a big opinion on. One feature that surprised me was improvements to the command line. Microsoft has been strongly pushing PowerShell on IT pros for a long time now, so it's surprising to see them touch the command line. I for one am pleased, as I use the command line daily, and have no interest in moving to PS.
Will I use Windows 10 as my main desktop someday? Perhaps. It's far too early to say, with a release date of mid-late 2015. But they certainly seem to be working on a far better designed product than Windows 8 ever was.
As the lines grew at the Apple Store this past Friday, I debated joining the crowd for a chance at the new iPhone. Fortunately, I noticed that my provider's store, Rogers, was actually opening at the same time, but had only 10 people waiting, compared with 400+ for the Montreal Apple Store. So after a measly 10mins wait, I emerged with my new phone. I debated between the iPhone 6 and iPhone Plus, but after using a very useful PDF to compare screen sizes, I decided the Plus would not be comfortably usable with one hand, which is a requirement for me.
So what do I think of the new iPhone? I think this year's model can easily be summarized with one word: Better. Hence the picture above, which may be recognized by Stargate SG1 fans. So what does better mean? Basically, it's very much an iPhone, very similar to the older models, but with all sorts of nice little improvements:
- The main improvement is obviously the screen, and also the main reason I wanted to upgrade. The 4.7'' screen compared with 4'' on the previous model makes a very noticeable difference. The screen is also very sharp and bright. There's no question that this was a long overdue improvement. Apps that were upgraded for iOS 8 also take advantage of the new screen, however apps that haven't been changed yet get zoomed in, and they look blurry. This is a negative of having an increase in pixel count, which will hopefully not be an issue once all the developers upgrade their apps.
- Another improvement, at least for me, is the fingerprint scanner. I came from an iPhone 5 so it's a new feature for me. I wasn't actually sure whether I would find it useful, but unlocking the phone by just pressing one button is far more convenient than entering a pin every time. Even for iPhone 5S users, you get some improvements like the ability to use the fingerprint scanner in apps. I hope many apps take advantage of that feature.
- A small change, but one I feel is very nice, is the fact that the power button now resides on the side of the phone instead of the top. That makes it far easier to press when using the phone in one hand.
- The addition of both NFC for Apple Pay and HealthKit are things that may prove to be useful in the future, unfortunately for now both are disabled, so there's no way to tell just yet. HealthKit was supposed to be available on launch but for some reason it's been delayed, while Apple Pay will be enabled in October in the US, who knows when we may see a use for it in Canada.
- Finally, the form factor is better than the previous models, by being thinner and with rounded sides. I actually found a really nice case made by Incipio which is both thin and heavy duty.
Of course, iOS 8 also comes with plenty of other small improvements, some of which I find useful, like the ability to press a button in Safari and request the desktop version of a site, something I've wanted to do several times before, and the ability for apps to be added to the default sharing list. I use Pinterest, and now I can pin sites directly from Safari, instead of having to save an image and then re-upload it using the Pinterest app. I'm very satisfied with the upgrade so far, and while it's not any kind of groundbreaking change, that's also not what people should be expecting. This is very much an iPhone, only.... better.
Let's face it, we're way past the days when swapping discs was the norm. Digitizing DVDs and Blu-Rays for home streaming is nothing new, but when I went to do it, I had to browse through a lot of different methods online and try a lot of ways. So I thought I would document what I found to work best for me.
The first software you're going to need is Handbrake. This is an encoding app that will convert the large optical files into smaller MPEG4s able to be played locally. By default, Handbrake can't decode DVDs, so if you live in a country where it isn't illegal to make personal backups of your media (ie. not the US) then you can download this file (or this file if you installed the 64bits version) and save it in the Handbrake folder (usually C:\Program Files (x86)\Handbrake) as libdvdcss.dll.
Once that's done, you can start the app, insert your DVD, then select the disk from the Source button. You'll see all the tracks appear in the drop down menu just below that. Now you have to select the longest track, which will be the movie. The others are menus, ads and special features. If the disc contains shows, then you will see several tracks with similar lengths, and you can do them all one by one. Enter a destination file in the Destination box, and click Start.
For those, you will need AnyDVD. This is a paid program, but they offer a 21 day trial. If you're simply digitizing your collection, then that will be more than enough time to do it. Simply start the app, insert your Blu-Ray disc, and right click on the app's icon in your system tray. Select Rip DVD Video and select the destination you want. This will make copies of the Blu-Ray files, which can be up to 50GBs. Then, start Handbrake and this time around instead of selecting the disc in Source, go to the files you just produced, and inside of the STREAM folder, again select the biggest file.
Now there are some Blu-Rays that are multi-track discs. This means you won't find a single big file containing the movie, but instead a bunch of smaller files. For that you can use MakeMKV to select the index file in the folders you produced from AnyDVD, and it will show you which files are part of the main title. Just select those, then it will create a single MKV from it. Again, that file will be as big as the original, so you'll want to use Handbrake on this MKV to convert it to MPEG4. One thing of note, there is an option called Large file in Handbrake which I found I needed to check in order for my Blu-Ray files to be playable. I personally used the Apple TV 2 preset which produced a good result with a small enough file.
After I digitized my collection, I'm now streaming it through my media server (I'm using a router with DLNA capabilities, but you can also use Windows Media Player, or an HTPC) to my Apple TV, controlling it with my iPad via AirPlay. I've tried a dozen DLNA apps to do this, and I ended up using Infuse 2 which is years ahead of the others. Every app I tried wouldn't support some format, or it would support it but not AirPlay it. Infuse supported everything. Also, every other app would only show file names. Infuse gathers the title, a description and thumbnail for every file and saves it as metadata, giving you a much better experience while browsing your media. Happy ripping!
Have Apple events become routine? That's a bit how I feel after listening to the stream and seeing all the shiny new products that the company wanted to announce. Once again, there were few surprises. The iPhone 6 was pretty much as we expected, even the names iPhone and iPhone Plus had been leaked. They are certainly very pretty, albeit expensive, with a very nice battery life increase, a payment system and a thinner profile. But if anything it seems like Apple glossed over its brand new phone quite quickly.
Most of the event was dedicated to the Apple Watch. Again, most people knew they would be announcing a watch, although we didn't know the name for this one. They demonstrated the product, and I have to say it's probably the most advanced wearable out there. The screen is superb, something Apple is renowned for, and the interface is sure to be innovative. Still, I have no interest in it. I haven't worn a watch in decades, and won't start again. I suppose watch wearers may be interested, although just like the Android watches, this one seems so bulky it's unlikely to be all that comfortable.
Finally, Apple also spent some time on their health and fitness offerings, again things I only have a mild interest in. For me, and I suspect for many people, it's a really simple equation. I'm in the iOS ecosystem, and I've been wanting a larger screen, so the iPhone 6 is a sure thing. Will the iPhone 6 be a blockbuster? Of course it will. Will the Apple Watch be a good sell, with people pointing out shortcomings, which will then be fixed in further yearly updates, the same way the iPhone and iPad have evolved? Definitively. It seems like Apple has set a good routine for itself, from product release to yearly improvements, and this event was par for the course.
I watched the recent Samsung event where they announced the Galaxy Note 4, and was amused to notice that Rachel Riley, their celebrity on stage, was actually an iPhone user. It's not like she made a secret of it, so clearly Samsung had to know of it. Why choose her for their phone event, then? The fact is that you would be hard pressed to find a celebrity using Android. It's still a common thought, valid or not, that those with money to spend use iOS, while the majority of others use Android because it's cheaper.
I won't debate this highly controversial fact, or whether or not Apple products are worth their sometimes considerable price hike, but I think this thought goes to the heart of why each Apple event is so hyped. If this was the product of a few hardcore fans, we wouldn't have anywhere near the media coverage that we see right now for this week's event. There are many hardcore Android fans, yet few would argue that the coming Apple event is going to be seen and reported by far more people than what Samsung or other Android device makers do. Simply put, the reporters writing the news use an iPhone.
Also, many pundits believe that this particular event is even more important than usual. After keeping the same screen size for years, now all rumors point to Apple bringing us bigger screens, which is one of the main reasons, in my opinion, to go for an Android device. Also, many believe we'll finally see an iWatch, although I'm not convinced. If we do see one, I don't think it will be sold this month. So it's a simple fact of life that Apple devices are overly hyped and covered, simply because news reporters, celebrities, anyone with clout in the media industry, overwhelmingly go for iOS. Whether it's for the ease of use, esthetics, or blind fanboyism, it's a fact of life. And this time around, we all expect big things from Cupertino.
As for me, I have no interest in wearable, but that rumored iPhone 6 looks mighty appetizing...
View full archive
Hi, my name is Patrick Lambert and I'm a freelance content creator living in Montreal, Canada. I have over 15 years of experience in technology and am A+, i-Net+, MCSA, MCTS and Linux certified.
I've written for...
...and many more!
Movies: Star Wars, Planet of the Apes
TV shows: The Walking Dead, Breaking Bad, Game of Thrones
Devices: PC, iPhone, iPad
Games: Half Life 2, KOTOR, Fallout 3
MMOs: World of Warcraft, SWTOR
- Steam - My Steam profile
- GitHub - My GitHub code
- IMDb - My movie ratings
- Android Apps - The Android Apps I've created.
- Commissions - Information if you want to commission art from me.
- Aurebesh - Learn the language of Star Wars.
- Crypt - Free online encryption and hashing service.
- 3D Models - The 3D models I've done and released for free on ShareCG.
(C) 2014 Patrick Lambert