26 December 2013

3D Printing

So, if you don't know what 3D Printing is go to PART 1.

I want to start this post with a mention of Make, as their Ultimate Guide to 3D Printing was instrumental in our selection of a 3D printer. Buying and reading this 10$ guide is well worth it before you spend 1000$ for your printer, so we did. And who da man, Ultimaker da man! Not my opinion since I'm not entitled to having one, the Ultimaker Original is the only printer I have used so I can't make a comparison. But the people at Make have done the work and formed an opinion, and I feel like their opinion on the Ultimaker is fairly accurate. If you haven't given them the 10$ yet you can look at this chart.

I can't tell you to buy this printer, I can only say that we bought it. As we are peasants in the Kingdom of Europea , the delivery took only 4 days at a cost of 20 EUR. The Ultimaker original can come as a pre-assembled ready to use product or as a DIY kit. We opted for the cheaper DIY box'o-parts for two reasons. First, it is substantially cheaper. Second, by the time you get the thing working you have learned a whole lot about the device and 3D printers in general. The assembly took the better part of 2 work days (16 hrs). And we had to do some troubleshooting afterwards. But all In all we had no major issues.

Before we ordered it I called the good people at Ultimaker on the phone, like some neanderthal who doesn't understand what email is. And they had no problem consulting me in English, explaining that the package has printing filament and print bed adhesive tape. They also suggested that we buy the UltiController Kit that allows you to monitor the device, control the motors directly ( great help when troubleshooting ) and standalone printing from an SD card ( totally more awesome than printing from a computer ). They suggested that we skip on the dual extrusion pack, since it is still experimental and not really for noobs like us. In the package you will find everything needed to start printing. The assembly guide is on the wiki.

Take your time and make sure you understand the instructions before you start screwing things together and/or up! The build process is strait forward, there are some things that may or may not be easier if done in a different sequence but it's not really rocket science, so don't be deterred from going the DIY route.

So I said troubleshooting. Here is the problem we had, it is drift in the position where the printer is extruding. There are several suggestions about this problem on the wiki like loose belts and/or belt wheels. In our case the problem was with the steeper motors controllers cooling. The fan wasn't properly assembled so It didn't spin. It only needed to be pushed down in place and it started spinning properly, make sure the electronics are cooled and check the fan on the printer as you would check the fan on a CPU or GPU. Cooling is essential for the motor controllers.

Voila, successful print. We had another issue with the extrusion head leaking plastic above the aluminum melting part, but that was easy to fix by just reassembling the 3 metal parts screwing them tight top to bottom. All in all this laser cut wood box turns out to be a stable, precise, fast and reliable production platform.

We are very happy with the printer and I would suggest it to anyone looking to get in on the printing. Another awesome thing about this printer is the fact that the brain of the device is an Arduino board. The core of 3D printing is an Arduino controller board and an open sourced firmware for it called Marlin. If you are an electronics/mechanics enthusiast you can skip buying a printer and just build one of your own design. Part of the reason why we chose the DIY route was to assess if the development and fabrication of our own 3D printer brand could be a viable businesses. And it is, the RepRap project is the inspiration that gave us the Ultimaker and a whole array of cheap but awesome 3D printing devices. Pretty much anybody can get some motors together in a frame, hook them up to an arduino and start printing or selling printers. Fortunately competition guaranties decent quality devices from the "major brands".

24 November 2013

3D Printing Intro

Hi. So, how you've been? OK. Today, ultimaker! So we have been trying to buy a Ultimaker this last 2 weeks but we had constant issues with the payment system and after 7 e-mails and 4 phone calls we finally managed to acquire GOLD. Before we started the long process of buying a 3D Printer we initially started wondering, what should we buy, but before that we were wondering if we should buy or build. So there was a lot of wondering.

Buy, build? Huh?

If you have no idea what a Ultimaker is let's start from the beginning. A printer is a computer peripheral that uses ink to draw on a piece of paper. It uses the flat 2D surface of the paper, moving the paper in one axis and the print head in a second axis. The image being printed is drawn on the paper line by line, the print head moves along its axis drawing everything that should be on that line, then the paper is moved along its axis so that the print head is now aligned with the position of the new line. A line of characters is made out of multiple print lines. A 3D printer has an additional axis and uses molten plastic. There is no paper, a print bed is used for the first line. Subsequent lines are drawn on top of each-other. The 3D print head is referred to as an extruder, as it extrudes a thin string of molten plastic in lieu of ink. There are other types of 3D printers and 3D print methods, that manufacturing philosophy has been around for 2.something~3 decades.

RepRapPro Tricolour Mendel
The specific type of 3D printing we are interested in is the RepRap type 3D printing. RepRap is an open project/community trying to bring 3D printing to the desk of electronics and DIY enthusiasts. The final goal is a romantic dream of a cheap self replicating device that fits on your desk. Not gonna happen soon. Although the size of these types of 3D printers is small enough to fit on your desk, the noise and the shaking are not something you want next to you. Even if they were as noisy as their ink and paper counterparts, a 3D print job could take hours to complete, imagine your printer printing the whole day. Self replication is impossible since a plastic extruder can't stay solid at temperatures needed to melt plastic. You can't fabricate electric motors out of plastic because plastic doesn't have the needed electromagnetic properties. Some parts are going to remain mail-order for the time being. Gears, and parts of the frame can be plastic, so they can be printed. Nuts and bolts are a gray area. These are not actually problems with the technology itself since the capabilities of the device put it in a specific niche where neither noise nor self replication are factors.

Ultimaker PLA Blue-Translucent 
The material needed to produce an object is more expensive than the object bought from the store, especially if you factor in the production time and work and some trial and error. The 3D printer shines when you need something that isn't really available in stores. You can't buy a mock-up/model of your invention, you can't order a prototype of something new (actually you can, but...). You have a special problem that no current product can solve, you need something small made out of plastic that nobody has ever seen. You need a 3D printer! Sometimes this technology can even be considered as a production method, for small volumes where the cost of ordering mold injection produced parts isn't viable. Many factories want you to order something like 10 000 items minimum. You need a 100?

Now that we have that out of the way. CONTINUED!

28 July 2013

Faster Than Light Sucks

I am always at least 2 months behind on Linux, game and geek stuff. I have a job I'm sorry. But I just got Faster Than Light and what a let down it was. Lets go step by step.

First, the game is pretty awesome. If you don't know it go buy it or find it on the Internet and watch a video of someone playing, you will get hooked. The game is a strategy that puts you in charge of a spaceship crew. The game starts with ship selection, initially there is only a human race ship that is pretty basic and has an all human crew. As you attempt @ playing you unlock different ships by different races with different race crews. The goal is to travel with your ship from one end of the universe to the other. You travel by making warp jumps from point to point in space, and most points present an event. Events can be enemy ships whom you have to fight or ally ships whom you have to help. There are stores from witch you buy fuel for the jumps and equipment and crew. You can also upgrade the systems of the ships, and crew members manning a system get experienced  with it and  you get advantages from that. Like, an experienced pilot gives you extra evasion. The battles allow you to decide what enemy ship systems you want to target, so if you can you go for the enemy weapons and disarm him. Awesome!

So why did I say it sucks.

Second. Battles are pretty random, as in you have no idea when you will need to fight and what you will be facing. That wouldn't annoy me if the game had better difficulty balance, even the easy difficulty level is hard as nails. In actuality the game isn't hard, it just lacks structure. If you could plan weapon and equipment purchases in your game strategy you could make a good ship. But you can't because you have no idea where the stores are and whats on sale in them. The game devolves from strategy into roulette.

Third. Space isn't open to exploration. You can't just fly around because of the rebel fleet on your tail. So you have a limited amount of jumps before the fleet catches you. Being clever I decided to try to level up from the fleet but you get no loot from fighting them, that's just stupid. You will be planing how to navigate space as in to cover as much points as possible but since the maps seem procedural-generated (random), you sometimes just have to give up just to avoid backtracking because the fuel for the jumps is limited.

Fourth. The unlockable ships are not as unlockable as they are presented to you. They are randomly hidden sometimes you can try to unlock them sometimes you can't. And I have given up.

It's not a bad game, it really isn't! But I just found myself giving up on the normal difficulty level and just restarting the game every time I lose a crew member or every time I pass the first section without fighting the slaver ship that you get the free crew member from. If I have to jump back to the beginning every time I don't get lucky, then the gameplay should be a bit quicker. And I have given up trying to complete the mission with any of the 3 ships I unlocked. I instead wanted to unlock something powerful but I can't find them. So I don't play anymore.

11 July 2013


So. Hi...

I have not been blogging because we were hard at work. We is game Developers, YAY. Step one was to figure out a name for the company. OMG, there are just no good free names out there, everything awesome you google is taken. So the battle we led with the internet for some namespace reached a stalemate, so there.
We is StalemateStudio, YAY. When one is developer, one needs to make games, so we were wondering what game to make, and how to make it. You maybe know about project Konflict, but that was a bit ambitious on our part so we left it and started working on another game. And the other game was supposed to be simple. At that time we were working on producing a game with the blender game engine, and it just doesn't work. It is a nice piece of tech, but I can't see producing something with it. I wasted several days trying to figure out why my characters were randomly falling through the floor. So we switched to Unity. As much as I hate Unity (NO NATIVE LINUX VERSION), It's just a better game engine and games development tool. We still use blender for the mesh modeling, UV (textures), rigging and animation. In order to evaluate Unity I decided to make a game.
A simple game. Just you and a bunch of walls. And the initial prototype was done in like 40 min. And most of that was just blender, making the level. While I was playing around testing Unity and learning the scripting, they announced free mobile deployment. So I was like "SOLD!"! This saturday, I hope I will be able to release the android version.

Lets talk about releasing. I am big on Linux so no wonder I like Desura more than I like Steam. Desura is the original indie content distribution system. So I am trying to get my desktop versions available on Desura (exclusively). They do have quality control so you can't publish just whatever crap you want. And I'm OK with that. I don't want my awesome game to be thrown in a pile of assorted garbage. They do however let you publish a profile on indieDB and slideDB (ModDB, but I didn't make a mod). To get the name around. So if you would like to support our valiant efforts, here are links.

Maze-Demo Maze-Demo Maze-Demo Maze-Demo

So, nothing else to report now.

12 June 2013

Are you gonna build that?

ASRock P55DE3
ASRock P55DE3
A picture tale by Mario Kukucov. Have you seen one of these? An ASRock P55DE3 motherboard.
Intel i3-540
Intel i3-540
It came pretty cheaply. So then a client comes and says: "I want a good computer". He says good, he doesn't say awesome. So we say OK. Do you want a cheap motherboard with no warranty? How cheap, half price. OK? Perfect! We are Wednesday June 5 2013 and this motherboard is made for the Intel socket 1156. 1156 is 2009 technology, so now that we have sold the motherboard do we have a processor made prior to 2011 when the 1155 socket was released (and yes 1155 is newer than 1156). Yes, and it is the i3-540 . And it is the one and only found in the retail chains. So there is no selecting the processor or anything. There is just this one. So now it can't be a good computer, it can be OK. Can't be good. Some of you think i3 isn't as bad. It's an 2010 old i3 this computer is already a 3 years old mid range machine. Now the prices of processors don't go down too much in time as the model gets older. So we could have bought a newer CPU for about the same amount, if the client didn't buy the half price pitch on the MB (motherboard). If the CPU is nothing to write home about, then you are really not going to play the newest games, So you don't need the VGA or RAM of a gaming rig. On this CPU, there wouldn't be a point.
hard drive, video card, momory
Sapphire HD7750, WD Green 1.0TB
and 2x8GB Kingston DDR3 mem modules 
So, we got a SAPPHIRE HD7750 which is described on the sapphire website as a budget card. All the rest is awesome. We have a Western Digital 1TB Hard Drive and two 8GB DDR3 Kingston memory modules (that I am not sure will even work on this MB). Now all we need is a case. And the case I really love. It was the only component of this rig that I actually choose and it is the Cooler Master K350. Among the cheaper solutions the cooler master is the best choice, if you look at the case you can see that it has been designed with liquid or aggressive airflow cooling that is needed for a high end gaming monster in mind, with enough space for the long VGA-s and the bottom of the case PSU placement. So this is the type of case you want. This is the only type of case I would buy or sell.

As for the build, once you have the parts this is how it goes in most situations. First you need to consider if the case takes the motherboard and psu in a specific order. In this case the psu is pre-packaged so we can start with the motherboard.
the little raisers
Once upon a time a boy came into the office and told us "I bought a new motherboard and a friend of mine came to install it. But the motherboard seems to be defective. Can you take a look?" and I did, and I started laughing uncontrollably in the boy's face. OMG, they had screwed the motherboard on to the back of the case directly. Everything that could short-circuit on the back of the MB's PCB was pressed on to the metal of the case and the brand new board was as dead as a door nail. So if you have never assembled a PC look at the manual, they will tell you about the little raisers used to keep the board from touching the case. Another thing I remember from the past is the assembly staging.
The motherboard can work on its box.
No case needed!
Assembling a PC is a bit more than just putting the parts in the case, there is also cable management for within the case and component placement/thermal consideration. So the assembly can take quite a bit of time. Another thing is that although the components are brand new you just don't know if they work or not. So Before the assembly itself you just layout the components and connect them and you short the front panel pins of the power button so that the machine starts, and it doesn't care that it is out of the case. Afterwards you know you have a system that can start and actually run and you can start assembling without the risk of having to disassemble it if something turns out defective. And that is what I call assembly staging. After the motherboard you should consider how you want to hide the cables as to make sure that during transport the loose cables won't go into one of the fans and cause the system to halt during post.
Thermal considerations. This picture shows my rig, there are two possible positions for the VGA. On the lower position the card has a 20C higher temperature than on the higher one. The fans on the front and on the side should suck air in to the case and the fans on the back should be like an exhaust taking the hot air out. On this type of case where the PSU is in the bottom section, it will be cooling itself by itself. But if you keep your computer on the floor make sure that it isn't on a rug or something else soft that would allow the legs to sink and lower the clearance from the floor. Because then there would be insufficient air flow to cool the power supply. This is the same as the hot tabletop laptop problem. Laptops overheat when placed on a soft fabric, they need a hard surface as not to sink and block airflow under the laptop.
After you are done with everything and you have an assembled system you should start it one time without the side panels to make sure all fans are spinning and you are ready to install.

kingston memory
other memory
And this is where the fun starts. Day one of building this rig started with a lot of writing. I wanted to slip in a quick explanation of how I install Windows 7 through a USB flash drive, but we didn't get that far now, did we? Because the motherboard freezes on POST (power on self test) when both mem modules are inserted, and both Windows and Linux installs fail and the system reboots if only one mem module is installed. In the QVL (memory qualified vendor list) for this motherboard, there are no 8GB mem modules. So they are probably incompatible. We swap them for these 4 4GB mem modules.
kingston memory
moar memory
No dice. So I finally look at the QVL and I find a  memory model that is still available in the store. So I order 4 of them but it turns out that the people in the store don't care about minor release numbers. Yeah, you order KVR13N9 and you get KVR13N9S8.

"This is just not happening!" I told the client. "We can't build this computer with this old motherboard and processor, unfortunately we are going to have to sell you a better processor and motherboard for the same money!", to which he replied "What?"! And yes, the old motherboard costs 6 pieces of silver but the i3 costs 21 pieces of silver. The other cpu and motherboard cost 29 silver dragons but the memory we are now selling him is 3 cheaper.

pick one
And here are the new parts next to the old parts. The new are not that much newer, but they are actually better, and this is a Black Edition A8 5600K Quad Core 3.9GHz CPU. I don't know what the i3 has that would justify the higher cost. And the ASUS F2A55 is a cheap motherboard but it is ASUS so it is sort of immortal. Plus, I have always used exclusively ASUS MB and VGA in my builds and I have yet to see a component not live out its warranty.
computer guts
Today is June 11 2013, so I have been building this system for about six days. And finally, we have a working system. A note about the AMD A series is that the temperature is a bit high, but keep in mind that the CPU has a graphics chip inside. The trade off is a type of Dual Graphics between the GPU and the CPU, thus the A series are called APU. I didn't have time to test the graphics performance with and without it and I don't even know if the APU and GPU are compatible for that thing, Maybe I can look it up on the Internet, but I don't care because compatible or not these are the APU and GPU the client bought. But I would definitely go AMD APU for my personal computing needs the next time I build a computer for myself.
BIOS screen
Another thing I liked was the F2A55 motherboard. It has one of the new graphical awesome BIOS interfaces. It goes through the post as if there is no post and it supports up to 64GB of ram. It has Quad-GPU CrossFireX support and is really cheap. I can't believe how cheap it is and yet you can build a total monster around it. If you have excess amounts of money you should go Intel / nvidia because they are better. But on a budget, AMD has the better price performance ratio. In closing I will only say that I will never again try to build a computer around an old cheap second hand component.

14 April 2013

openSUSE 12.3 cheap edition

Cheap Fujitsu Siemens
The brand new (actually not that new at this point), openSUSE 12.3 has just been released (maybe a bit over a month ago). And it is time we take a look at it. I'm not in a position to just re-install my computer whenever I feel like it, so I'm still using the "broken" 12.2 ! But I'm about to migrate my development efforts from a virtual machine on to some real hardware. I bought a refurbished Fujitsu Siemens desktop that has a Pentium 4 CPU @ 3.2 GHz and 1GB of DDR2 memory. It is enough for any play with PHP situation, and costs me about 50$. So, I'm awesome!

Happens to the best of us!
Unfortunately it will be a headless box in the corner so no gnome 3 rant this time. Although I have already seen gnome 3 in 12.3 and it looked good in a VirtualBox. The install process is sort of the same as the previous version. But my install DVD failed to burn properly, so I get a repo error. To avoid throwing disks away just copy the install image on a thumb drive. For more info on that go buy a thumb drive and look at the instructions at http://en.opensuse.org/Live_USB_stick#Download_DVD_ISO ! Or you can be lazy and just use the Disk Utility to restore the iso file on to a USB drive as if it was a recovery image or something, although this seems not to be too good for the thumb drive itself. But. They are also cheap so...

Since this is a server install there isn't much to comment on. As you have read in my other posts(if you have read my other posts), Linux isn't a server OS it is THE server OS. But there are two things that get me excited, OpenStack and MariaDB.

OpenStack is a cloud thing and there isn't much of a cloud to be had in a P4 $50 system. But a review of this release would be incomplete without mentioning it so lets at least cover the basics. If you know what hosting is than you can easily understand how the cloud concept has revolutionized it. Say you sell hosting. Your first client want's to host a WordPress blog with you. You take a Windows Server Machine and you setup IIS with PHP. Then you install filezilla server and give him access to the document root folder. Then the client calls you and says: "Are you retarded?"! Then you hire a 17 year old high school drop out (always the best) to install generic whichever Linux on the server and the next morning the blog is live. Then you get client number two who wants to host an opencart e-store.  Systemiche administratormaister 1996, configures Apache to work with two virtual hosts. Now the blog and the store are sharing resources on the same system. Say the blog has just published a review of the new (not so new) openSUSE and people are just flooding to read it expecting the author to call it "a bag mixed with dead rats and a pedophile". So the high work load causes both the blog and the store to become unavailable. Causing your clients to lose a bunch of money and to sue you and now you are in jail and your family is living on the streets. Good job. A better idea would be if you had 3 systems running your cloud infrastructure so that you could have the two clients in separate virtual machines that can dynamical have resources reallocated to them when needed so that none of the running services become under-resourced. And even if one of the systems dies you can have the other two pickup the workload so that you don't have to go to court. Cloud is the only way to have 99% availability. Plus if your website explodes and becomes very popular it can just have resources from a pool of resources available in the cloud infrastructure. Now that you know what a cloud is (moar or less). OpenStack is a collection of software systems that can turn a room of computers into a hive-mind that will destroy humanity or serve web pages in an efficient and scalable way. Some of the components were available in the previous release but with 12.3 opensuse now has the complete stack ready to use, straight from the repo thus making it a ready to go data-center solution.

Once upon a time there was an office suite that was free and open. But then some people who history will remember as "The Assholes", decided that they will re-license the free and open office suite into a commercial product. And then the fork came as if out of nowhere and now there is a free and open office suite that has replaced the old free and open office suite that now nobody wants to use although it is still free and open. And now history has repeated itself (more or less) and we are replacing MySQL community database server with MariaDB. As you have probably heard before MariaDB is a drop in replacement to MySQL. And it really is so much so that if they didn't tell us they have changed it many of us would have never noticed. I have been playing around with it and besides the prompt "MariaDB [mysql]>", there is nothing that different. If you look at this MariaDB primer (primer???) you will notice that you are using the mysql tools with the new database daemon. wordpress didn't realize that it is working with MariaDB, and I don't think any other CMS would.

mysql  Ver 15.1 Distrib 5.5.29-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 10
Current database: mysql
Current user: root@localhost
SSL: Not in use
Current pager: less
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 5.5.29-MariaDB-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db     characterset: utf8
Client characterset: utf8
Conn.  characterset: utf8
UNIX socket: /var/run/mysql/mysql.sock
Uptime: 12 min 11 sec
Threads: 1  Questions: 31  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 26  Queries per second avg: 0.042
So... Yeah! Although I hope somebody makes a new MySQL Workbench program that doesn't deny remote management if root ssh login is disabled.

So actually nothing to report about the new openSUSE. This is the fourth version since I started using it and it is nothing if not consistent, as in getting consistently better and better. There is E17 to talk about on the desktop side but it is early days so I will probably come back to it when we look at 13.1 In order to avoid over criticizing it.

03 March 2013

State Of The Linux

I think it's time to stop hating on the Windows and the OSX! I think it's time to look at ourselves! And by ourselves I mean Linux. I feel like we are all too comfortable with the state of open source, and I'm not sure we should be. There are several factors that play into this post and the need to write it. Windows 8, Ubuntu focusing on mobile, ORACLE told to go to hell and steam for Linux.

In order for a system to take market share it needs to be useful, known and available. Some people would ask about available. Usually in the technology industry there are two factors. Technology and marketing. Technology is the usefulness of the system. Marketing is the promotion and sale of the system, advertisement to make sure that the system is well known and then the distribution of the product on the market. In the computer industry there are three separate markets. Server, desktop and mobile.

In the server realm, UNIX-like is king. Linux is a UNIX like OS and it pretty much is dominant in that realm. The consumers in this realm are the IT people, technically literate system and network administrators make a case for the purchase of hardware and software products on the basis of an objective evaluation of the technology. There is of course a cost benefit analysis and a consideration of the skills of the staff. If you have a team of Microsoft certified professionals you probably won't buy enterprise Linux. On the other hand there is no way and or reason to buy enterprise Linux, instead you buy support and you invest in Linux specific training for the staff. Probably the main reason for the domination of Linux in the server space is exactly the expertise. The Internet grew because of small companies. And if you have ever tried to start a busyness, then you know how much better it is if you don't have-to buy operating systems and specialized hardware. So Linux fits the bill, a free OS that you can install on any hardware you have. Not only would Linux not be what it is without the Internet but the Internet wouldn't be what it is without Linux. This has been true for as long as Linux and the Internet have been around. So it grew on Linux and the know how and expertise for the .com was developed on Linux. I have a few old DELL server systems that have Windows Server 2003 stickers and win server 2003 support. I tried to install Windows Server 2008, and it didn't work. It turned out that the new 2008 version does not support the RAID controllers. I did get it working without them but I didn't want to throw the old disks and controllers away. Fortunately openSUSE didn't have a problem with the old RAID controllers. There is no reason for concern on the server side. There are some changes coming but nothing scary. First it's the cloud, ooh cloud. Well the cloud works on top of Linux and you can run anything on it so the skill set is the same. It really doesn't make a difference to an administrator logged into a system through ssh or some web tool. The known and loved LAMP(Linux Apache MySQL PHP) model is about to change into LAMP(Linux Apache MariaDB PHP), so even the abbreviation won't change. MariaDB is presented as a drop in replacement for MySQL. Nobody is going to jump ship to MSSQL because of that. Now when we talk about the server we are also talking about the enterprise. And when we talk about the enterprise we are talking about RHEL and SLES. And MariaDB is going to be the default database for the next openSUSE and Fedora. And that means that most likely the next RHEL, CentOS, SLES and the hippies are going to switch too on the next version. So ORACLE is about to experience the same thing they experienced when OpenOffice was kicked out and replaced by LibreOffice. I still haven't tried MariaDB, I will look at it when I try openSUSE 12.3 in two weeks. But as long as it is usable it is proof that the server ecosystem build around Linux is resilient and will persevere regardless of ORACLE, Canonical, Red Hat or NOVELL. So on the server Linux is the most useful(in most cases), it is the best known, and as it is available as a free download...

In the desktop realm we have an entirely different market. Here the consumers have mostly no idea of the technology. And on top of that the marketing is much more direct. The war for the desktop is fought on two fronts, productivity and entertainment. Productivity is systems sold for the purpose of work. In the productivity spectrum Windows and OSX share the graphics design market. But that isn't because the operating systems are in some way suited for that work, it's because Adobe decided that Linux's market share is too small and the investment to make versions of it's products for it wouldn't be justified. We have the same with Autodesk, so there are no versions for Linux of 3ds Max, Maya and AutoCAD. So Linux isn't useful for that work since most professionals have a skill set build on top of those products. We have inkscape and gimp and blender, but they recently reached a level at witch they are to be considered competitive with the proprietary offerings so it will take time for them to be adopted by the industry. In Bulgaria (where I am from) we have several software companies that sell retail and invoicing software that is inline with local laws and regulations. One of them when asked about Linux said that "They don't need clients who can't afford to buy an operating system!". And this is weird in an environment where nobody buys an OS, everything is pirated. The last production use I can talk about is programming, and here Linux is on par with the others but there is a small problem with that since apart from the web and android you should use the platform you are developing for. And for iOS you use OSX since you don't have much choice. We have lost the war for production, since Linux isn't actually useful there. We have some positive movement in entertainment. We have steam now. Or at least I though we did. Windows has a huge install base because it was the first that was available world wide and it was initially based on DOS so it inherited a ton of software. Somehow the games industry decided that the fragmentation caused by DirectX isn't a bad thing and windows is getting all games. That fed the install base. Now we have steam but no tittles. But we actually don't have steam on Linux. I have a 64 bit openSUSE 12.2 and a 32bit Ubuntu. On openSUSE I got it from an unstable package and it seams like it works but the only free games I found (I will not give a cent to test this stuff) were some Dwarfs stuff and it doesn't work and Team Fortres 2 has no audio(WTF). On Ubuntu I got the .deb from steampowered and when it starts it cries about the old version of my drivers. It asks me to install a not recommended version of the graphics driver. Yeah, go to hell. Alternatively we have desura but the goal is to get the tittles, and neither desura nor steam have solved this problem(yet). We have Urban Terror as our only tactical shooter, and it sucks. I installed steam on windows and got Blacklight retribution which is a great free to play pay to win tactical shooter. We have nothing like that on Linux. And this is the tragedy, the technology is there but the usefulness isn't because we have neither the production tools nor the game tittles. The Unity game engine and the unreal engine are coming to Linux but this will not translate into game titles soon enough to leverage the failure of Windows 8. Some idiots claim that thanks to android Linux has become known, no. It is like saying that GNU has become known thanks to Linux. The Linux community knows that android runs on Linux, the rest just know their phone runs android. Android isn't Linux, android is shit on top of Linux. So as much as you can hear about Linux in our circles, the average consumer doesn't know about it. Many people don't know about Windows XP or 7 or 8, they maybe know that it's windows(maybe they don't). As far as available is concerned, a free download that just needs to be burned on a disk and installed. And the task of downloading an ISO and reinstalling the system is a gap that the majority of users can't cross. So Linux is entirely unavailable for most people.

Mobile. We know what is going on with mobile. Android is king. As I said before, android is not Linux. Canonical is about to shoot themselves in the face with a push for ubuntu on mobile. First, why? Second, good luck. When I say Linux on mobile I mean maemo meego and tizen. Have you heard of those? As far as useful, I have no idea. As far as available, it is free. But you can use it with two smart phones. What if I don't have an N900? And tizen was supposed to breathe new life into these mobile platforms and it ended up being a development framework something.

I read some positive articles about Linux and I think, we are the same place we were 5 years ago. So don't feel to comfortable, stick to your guns. The developers can do what they have been doing. The consumers can keep voting with their wallet by supporting paid Linux products and making donations and now that steam and desura are selling games for Linux. Go have a look there before buying for a different platform(as long as it works, don't give a dime for broken stuff).

19 February 2013

openSUSE 12.2 redemption

I feel like I have done something wrong. I feel like a bad boy. This will be a clarification post about an old post I wrote about openSUSE 12.2 back in September last year. In the time the post has been up it has been my most popular post thus far. Unfortunately, it wasn't seen as a positive post. To this point the post has been viewed 489 times of which 45 views came from a link in forosuse , a Spanish Speaking users forum. That is dangerously close to 10 percent of the views coming from a forum post that describes my openSUSE review as a negative one. Unfortunately it wasn't my intent to make it a hit peace against my favorite distro.

So what is really going on with 12.2? Nothing, it just works. I have been using openSUSE 12.2 on my home rig and on the office workstation. I also have a development server running it at work and a virtual development server at home. I am surrounded by lizards. And I wouldn't say that it has no issues, it has. But choosing a distro isn't as simple as finding one that doesn't have problems, they all have problems. And that isn't to say that all Linux distros are broken or problematic, if it were so we would all be using windows. We are not using windows. Linux is an OS that can do everything, windows can't do everything. And the few hiccups that you need to go through, to get an all powerful desktop or server or cluster is well worth it. So if we compare Linux to windows it is a question of technology. But if we compare one flavor of Linux to another it is a question of expertise and taste.

What is openSUSE? It is one of the easy distros, easy to setup and easy to use. It is not a new user distro and it's not a windows replacement. If you need a windows desktop replacement you use Ubuntu. openSUSE is a Linux for Linux users or a windows server replacement. When learning Linux administration you need to learn some simple principles. Install, enable and allow. Whatever the distro you use you do these steps for every service. A new web server needs Apache to be installed, then enabled as a service and the allowed through the firewall. This is traditionally done with the various config files, although most of the time there are tools to automate this. More often than not when you install something like samba or apache it sets itself up. The case with openSUSE is that it has YaST to help you with that stuff and it works with the .conf files and you can look at them and learn. But this is on the server side. On the desktop, openSUSE is not ideal for a new user. Linux is for everybody. Your grandmother can use Linux. For many years the push has been towards the desktop, and not all distros are there. But when we go for that evaluation we are making a grave error. When Linux comes into the house it comes as a downloaded ISO file. When Windows or OSX come into the house they are already installed. In order to gain equal footing Linux needs to be easier to install and to configure. And this is why I always hate heavily on little issues that prevent your grandmother from setting up the system. Thus the heavy review.

18 February 2013

Finally Fedora 18

Oh, my heart is so broken. Fedora broke my heart. Before I jumped into the Linux world I was only exposed to it because it was chosen by the network administrators to serve as everything needed for Internet service providing. We were an Internet service provider, and we had a Linux based boarder gateway and network routers and a billing system. And everything was Fedora. Then I decided that I wanted to learn PHP. And I tried XAMPP on windows, but it somehow didn't fit. I tried XAMPP on Fedora in VirtualBox on WindowsXP. It was then that I got hooked on Linux.

Soon after I was running Fedora 13 at work and 14 at home. It was the first Linux distro I ever used so naturally there is a special spot in my heart reserved for it.

Unfortunately it sort of lost it's appeal when Gnome 3 arrived. Or at least that's what people said, I wasn't there because I had already switched to Linux Mint. Today I had a run in with Fedora 18. The task was simple. An under-powered netbook running Windows7 was too under-powered for Windows7. The netbook manufacturers don't believe in choice so they don't supply WindowsXP drivers. And just out of curiosity, how exactly am I supposed to install a legit WindowsXP on a system if they don't sell the bloody thing. So after some brainstorming I decide that this system would be best suited for Fedora, and I was wrong. Or maybe I was just wrong when I decided to install the standard gnome-shell-fedora, but more on that later. Fedora has changed a lot since the last time I was here, but the retarded stuff is still the same. Fedora is sort of a technology proving ground for RHEL, if you are a red hat guy then you are going to keep an eye on it. And a red-hat guy would be comfortable with SELinux, but our netbook doesn't need SELinux. I would guess that nobody believes that it is an enterprise OS, otherwise there wouldn't be a need for CentOS, and even if you are taking workstations into consideration their install base is much smaller that the desktop so leaving SELinux off by default would give you at least better press(if nothing else). A non-pro user's interaction with SELinux is mainly through the troubleshooter, and this illustrates my point perfectly. Your computer is just notifying you that SELinux is at it again. The troubleshooter comes up informing you that this thing is making trouble again, we have a new feature that breaks all other features and then it just sneers at you pointing a finger and sticking its tongue out. Everybody turns it off as soon as the system loads for the first time. The netbook worked with windows until we decided to install counterpath's x-lite softphone software. So when we switched to Linux we installed Linphone, and all was good. But man can't live on softphone alone. Firefox doesn't like flash, but when it tries to automatically get the plugin it always fails. And it has been this way forever. I tried the yum package from the adobe website and it doesn't work. I don't care why and it can go to hell, I installed chrome. And why isn't chromium in the default repo. VLC comes from fusion rpm. Oh, and by the way. The default video player has also never worked, it says you need gstreamer and then tells you you can't have it. I'm using opensuse 12.2 with the gnome 3 desktop, and it is awesome. Gnome 3 on Fedora sucks, the are trying to make it more android like than it needs to be. If the desktop locks up you usually move or press something and then enter your password. But now you have to click with the mouse and drag. How does that work with a touch pad? Very badly. Then again it isn't as bad as the windows not having the X in the corner. One last question. How is it that Linux doesn't run faster than windows??? How is Linux not faster than windows???

17 February 2013

MOAR Movies

Have you seen Sucker Punch. No, what planet are you from. Go watch it, NOW! If you have watched it I have a question, did you love it? Because I loved it! Sucker Punch is an inspirational movie. It is a bit confusing, but not because of the story or the transitions between the real and the fantasy world, no. It is confusing because I don't catch the transition between being aroused and/or violent. I like the feeling I get when an action sequence is well thought out and the characters are operating the way I would. Just watching makes me want to play some high on violence first person shooter game, just to get the murder out of my system. On the other hand the movie isn't just a slaughter-fest, because it's five hot, gorgeous, sexy, pretty, barely dressed and hot again action packed girls are hot. This is the point where those who haven't seen the movie think that it is one of the easy to make pointless sex and murder BS Hollywood crap movies. No. The movie is structured in layers that separate its qualities in a unique way. You have a base set in the real world that is the lowest layer telling a heart breaking tragic story about a girl who sort of goes mad. On top of that you have a fantasy brothel alias for the mental institution. The two parts fit with an interesting dynamic where the abuse in the mental health clinic is translated into a sexual exploitation gangster story about sex slaves trying to regain their freedom. And the top layer is a dancing sequence action sequence showing the girls fighting. So the structure is Tragedy => SEX => Violence. But as the movie progresses the three distinct worlds get intertwined into one whole that has a solid story well told with a spectacular visual presentation and engaging action sequences.

Sometimes we watch a movie for the story, sometimes we watch it for the action. But there aren't many movies you watch for both.

Just to make sure that I piss off some self made know-it-all movie critic, let's compare Sucker Punch and Kill Bill. As good as Sucker Punch is, it still doesn't have the defining strong scenes. Kill Bill tells a story entirely in an underlined bold font. If you watch Kill Bill vol.1 and vol.2 back to back several times you become insensitive to the blood an the pain and the killing and you realize that it isn't a movie about revenge. Kill Bill is a tragic love story about a man(Bill) and a woman(Beatrix Kiddo), torn apart by their nature. Both merciless murderers, they end up murdering their love. And as Kill Bill tells the story of love patiently, Sucker Punch quickly goes through the tragic story and fills the gaps with action sequences that although tightly connected to the plot are mostly superfluous to character development. Another parallel between the two is the sexy factor. The protagonist/s in both movies are attractive, but Uma Thurman's character has a realistic feel to her that is easier to identify when compared to the idealized look of the Sucker Punch heroines.

Enough about those two. There is a genre of movies that is dead to me. And you guessed it, comedy. There is no point in the existence of comedy movies. If you want to laugh, watch a stand-up comedy show. Bye.

16 February 2013

Wait and Think and IPMI

Hi, me again. About a month without a post... Let's jump straight in.

I did a stupid thing at Job yesterday.  We have a client and he has a system in the data-center. And the system is a CentOS that has nothing on it. So far so good. Then, he decides that he wants to put something on it. And the reason he wants to put something on it is because one of his production systems has just died. And now this system will take over the work. And still, so far so good. Now for some back story. I made the CentOS system, and I deployed it. And he gave me the network settings for the system, but we are a bunch of retards so we don't have access to the backbone layer 2 switch in the data-center. So we put the system in a different network and later when the administrator of the network was available we moved it in the right network. But the client seems to have missed that so he was trying to access the wrong system. So he calls me asking for the password, and we both don't know that he actually needs the IP. So I tell him the password and no dice. So I open the system he is trying to access and find that the password really doesn't work. And it takes some time to realize that this is the wrong system. So I finally open the docs and see that the system has been moved to the network where it should be. I also notice that this system has an IPMI IP. Bravo. So we are in the system, and as the champagne is poured into glasses and cigars are passed around the client calls again. His sysadmin has changed the SSH port remotely and they have lost connection to the machine. "Did you set the new port in the firewall?" I asked. To which he replied that they don't put firewalls on their systems. If you remember earlier I mentioned that I installed the system, and I do put firewalls on systems. Every system I make gets a unique SSH port, just to keep the scripted attacks guessing. They decided that a port that is unofficially associated with SSH would be better for SSH (tell me in the comments what port I am talking about). On top of that the office is 20 min away from the data-center. And the client asked if I could go to the center and fix the issue, like an idiot I said yes. I was half way there when I remembered, IPMI. I called (while driving) and the moment I entered the data-center he called back to say everything is OK.

So what was the stupid thing. When a client calls don't panic. Tell him to wait, check for yourself what exactly is going on. You are not helping by wasting time on the phone with him, your kind words are not as valuable as a quick solution. I didn't have to do anything except to send him the docs on the system. Wasting 30 min. for something that should have taken the client 5 min. to resolve on his own.

Do you know what IPMI is? You can read the wikipedia article or you can hear it from me. Imagine a network adapter that allows you to remotely open a system, reboot it and change BIOS settings. Then you can mount an ISO image and install CentOS or whatever you want over the network. And imagine if you are dumb enough to change the SSH port on a system and not to open that port in the firewall. You can use IPMI to open the system and as if you are standing in front of it, you can recover from the mess you have made. IPMI is awesome.

02 January 2013

PHP Crawler Programming 4 the WIN

So I just wrote about 2012 and I mentioned a thing about programming. I have a programming task that  I find interesting and would like to share it. But I have to take a shower and go to bed so I will be quick. I have been tasked to make an e-store. I am going to go opencart. The challenge here is that the supplier up the chain doesn't really know what he is doing. He has ordered his store from a contractor and now he has to pay an arm and a leg for the extension needed to export what I need. So I'm not going to get what I need. What I need is an XML or CSV or access to an SQL, something that has the product's name, description, picture and price. Everything you need to sell something. Then I need a way to automatically import the data into the store.

I am writing everything in PHP this year so I went PHP with this too. But I sold PHP and myself short and made the worst procedural script mess possible. Enter crawler. Many websites still use GET variables to keep persistent data from page to page. This means that in most cases you can just copy the URL from the address bar and use it to go through all the items on the site by just incrementing the id. In my case the product_id. Then for each URL you just use curl to download the pages and write them to your database. Once you have the data you need to interpret it. I did that with the help of DOM. The document object model is usually more interesting to javascript than to PHP, but the build in DOMDocument class can load the downloaded pages into an easy to read and manipulate indexed object from which you can read the information you want. The data I got I wrote to the same table where I saved the pages. A nice trick to use when you are not sure what you want to send to an SQL is to serialize and encode the information you want. The script that goes through the downloaded pages and reads them via DOM takes the data and makes it into an Array that has the name, price, description and the URL of the images and then it serializes it and encodes it into a cryptic string that can be written into a simple text field in the database table. Once you have these arrays you go to step 3, injecting the data into the opencart database. If you look at the structure of the database you can quickly figure out what to inject where. And you use curl again to download the images and place them in the image folder, make sure you add the names of the images to the array that holds the product information so that you can set them later. Now, categories in opencart sort of suck. You need to search in the database for the description and from there you get the category_id and then you check the rest of the stuff. Categories are layered, there is a parent_id that shows what's at top. This took me a lot of time to code and this is why.

When I started learning PHP there wasn't much of object oriented programming philosophy in it. And there is a simple qbasic feeling to a project that has 4 files that go 1 2 3 4. I really though that this task is small enough for simple linear procedural programming. There was an argument about simple programs not needing objects, and not using objects being for lesser programmers. I decided I would be a great programmer and have been making objects left and right. For some reason not this time. So I hit the wall when I needed a procedure to turn on into itself and call itself from itself. You may think why object why not function. But there is a scope and loop issue here. And then when you resolve it you have a simple aesthetics issue here. Modular programming allows you to make self contained logic blocks that have a few simple lines of code packaged and put away. This allows you to hide things you don't need, makes the code easier to work with and manageable. I now have 4 files, two of them are about a hundred lines long each, and when the script hits an error I wish I would just die. This has made me realize that no task is small enough for you to simplify it. Take all the tricks from the book and just throw them at the task. Instead of assuming that it will be simple you should just diligently build your script from the ground up by the best practices you know. Maybe you will waste some time on some small things but when you get surprised by a task you will be ready for it. A class I always use is my sql class, it extends the PDO build in class and has the routines for writing and reading. I wrote a class that makes curl into a browser for use in a different script. I could have used it for this task since it has methods to get pages and to download files. Instead I made this blob monster of code that can only step through pages, and another one for the images. In retrospect it turns out that I rewrote code I had and it was not as good as the first time I wrote it. I hope my suffering the past 3 weeks is helpful to somebody. You know how to code, don't skip corners.

01 January 2013

2012 Personal review

Hi. It's me again. Blogging once every 2 months is the type of schedule I can keep, but today is January 1-st 2013 and I have some free time to share some personal stuff with the cosmos. So...

2012 was both hard and exciting for me, although it hasn't been a successful year at least it was interesting. The company I have been working for the past 7-ish years changed management at the end of 2011, but I remained with my old employer as I thought at the time that it would be a type of career advancement for me. It turned out to be a huge step back. As my main interests are in the IT field and his are in the goods and services. So I have been re-purposed from technical consultant into a do whatever is needed type of manager guy. And manager doesn't quite fit the bill since my employer likes to have a hands on approach to everything, but he isn't any good at anything except trade. So my job has been a solid year of time wasting.

On the other hand at the end of 2011, I co-founded a company with an old colleague. And it has grown under his management. Currently it is still a small operation, and the profits are not enough to give a viable income for two people, which is why I am still at my day job while he has taken a full time single man IT department and is serving several clients that have been acquired this year. He also managed to start an online PC store, and as the workload rises so do the profits, and so does the moment I can join him draw nearer.

Although it is still a one man operation, some fun stuff has spilled out. As IT is mostly a locationless and borderless activity. I have been dragged into some fun administration and development tasks.
My last adventure are bitcoin miners, who would have thought that this could be a service. The thing is that some of our client have had the need for some graphics cards recently, but that need has went away. So they where left with some interesting hardware, and somebody came up with the idea to mine bitcoins instead of trying to sell them off. So we put together 3 bitcoin mining systems and we are currently producing somewhere around 2900 Mhash a second. I really don't know if this is a lot or a little, but we are producing just a bit over the expected amount for each of the 3 systems, so...

I mentioned the web store earlier. So that was also fun. The store that the company I co-founded made is hosted on a shared hosting system at my current employer's data center. And I made the shared hosting system, which was fun. If you are the one regular reader on this blog (I'm sure there is one, and whoever you are thanks for the support) , you will know that I'm an opensuse guy. But I decided to use Cent OS for this particular task. I like Cent OS, and I found that it can get the job done. For shared hosting you would want to be able to give every hosted website its own work space. And there are many ways to do so. But the method I fell in love with was the Webmin/Virtualmin method. Webmin is a AIO Linux Management Web Interface that allows you to use a user friendly web GUI to configure your system. Virtualmin allows you to create separate isolated Webmin accounts for the different hosted web services and clients. I don't know if this is the best way to do this, but the Cent OS install and the Webmin and Virtualmin installs and configuration took me one day(5 hrs), so totally win.

The other interesting thing is the web stores themselves. And I am saying stores because after the PC web store made by my company started, my day job employer decided he wants to do the same thing, e-cigarettes are currently big in Bulgaria, and although I don't care about them and I don't see them as a viable busyness, I still like the challenge of bringing up an e-commerce site. So I decided to use opencart. Initially I was told that we are going to have about 4000 items in the store. So I decided that manual input of that amount of different types of goods is just not viable. So I contacted our supplier and asked for some type of database access or something like that in order to automate the entire process. Unfortunately the company doesn't know what IT is. The have a web store that was made by some company, but that company was also non responsive to the demands of e-commerce. They offered an SQL dump. Which would have been a one time thing and would have left us with a manual data refreshing process. I have one thing to say to you if you are a supplier of goods or other stuff, make sure that your products database is in some way accessible to the distributors you are working with. Make sure you can supply an up to date XML or CSV or even read only access to a database with the products and their characteristics. Otherwise you are retarded. So since they were unresponsive to my needs I decided to backdoor them, but more on that in my next post.

So what else? Ah, game development. Right. Project Konflikt still has no artwork and the engine is still pending a total rewrite. We started another project that will be full on 3D and we are making a mock-up in the blender game engine. More on that another time. Write me a comment, tell me what 2012 has been for you.