Browsed by
Category: Technology

Netbook to Microsoft Surface Pro?

Netbook to Microsoft Surface Pro?

I have been in the market for a tablet-like netbook replacement for about one year now. I love my netbook but it has limited memory and I want to play with developing for a multi-point touch screen. So off I go looking for a tablet or tablet-like device with a keyboard and mouse/touchpad running industry standard software (currently Linux Mint). It needs to be portable and have all the things that come with that (small, battery life, usable while on my lap, ect). So… I was just looking at the specs of the Microsoft Surface Pro again which is due out in ~two weeks.

Microsoft thinks…

  1. … I am going to give them $899 to $999? Plus tax? No.
  2. … I will pay extra for a cover/keyboard? No, that should be included. I do not care if Apple did not do it, either. If I cared what Apple did I would be an Apple user, not a PC fanboy.
  3. … four to five hours of battery life coming in at much less than my netbook at nearly a third of the price is alright? No. Battery life is something I will often sacrifice for other things but this? These are the advertised numbers, not the real-world numbers.
  4. … locked down hardware I own but can not use is appealing to me? No. Unless I get the blessing of the most out-of-touch company I know of in the entire industry do I really “own” it (yes, this is why I am not an Apple fanboy)? I know they want to support their other business– namely Windows– but they just choose to make $0 instead of more than $0 by spitting on the power users. Hell, I am not sure I even know anyone but myself who does not dual-boot if they run another OS on PC.

I was seriously considering the switch until they announced the awful, awful details. Seriously, for all my distrust and bad experiences with their products I was very, very much looking forward to (even excited over) a great-looking, Slate-like device. I thought, “this can be what the Slate never was for me.” Nope, not at that price point. Not ever for those specs.

Perhaps I will pick one up cheap on eBay when Microsoft backs out without a lot of thought like they have done so many times recent memory. I feel like I am watching Lost all over again. I feel like, at the start, I am thinking “these guys are masters of suspense” and “I can not wait to see where they take this given the little tidbits I know now.” Then I realize two or three seasons in that no one has any idea what they are doing, where they want the show to go, nor how to build something sustainable. It is all shock and awe, but the glitter washes away and all you are left with is the Surface Pro.

Are… are they… who… IS MICROSOFT FUCKING BATSHIT INSANE?!?!?!? I do not normally curse on this blog but who saw all this, said “I like it, roll it out” (or even “we spent too much money, we have to go forward, our reputation can take the hit”) and gave it the green light?!?

You want to put your boot on the back of my neck you better expect me to come out swinging. You can only mismanage so many things so many times before you have no credibility left to spend. You used to be the big dog?

Used to be.

Update 2012.02.22
Sssooo… I bought a Surface Pro 128GB. Not sure why I did but I regret every moment since and want my money and the five minutes I spent at checkout back.

Thus far I am having great difficulty getting it to boot reliably from external media (even the Microsoft support staff at the brick and mortar stores are baffled). The WiFi just drops out, even with Microsoft’s released fix. The keyboard is designed to shut itself off while folded back so you do not accidentally hit keys but some times it does not turn itself back on (even if you unplug and reattach it). The fix is to reboot… you know, like you have to do with Windows every 15 minutes. It gets very hot even if you have not logged in. The Microsoft-documented on-boot key combination to select a boot device does not work (it brings up the UEFI boot configuration settings which is useless all but once). The screen is not adjustable while the stand is out. If you want a tablet replacement, fine. If you want a netbook replacement while in front of a flat surface, fine. If you want a netbook replacement on the go (the whole point of something so small, mind you), you are screwed.

The hardware looks solid on paper. Is plenty light. The Type keyboard feels nice. It even performs well… if you are happy with Windows 8. Except when you lose WiFi. Also except when it gets too hot to hold… while it is not even doing anything.

Raspberry Pi Uses?

Raspberry Pi Uses?

When the Raspberry Pi was announced I went and bought a pile of them. Now they sit in my apartment, unused. A long while back I got the hard floats working but now you can get that standard. I got it running videos pretty good but now there is an XMBC installation.

What to do, what to do? There is a pretty decent looking 3D-printed case with “LEGO feet” I really like the look of. Plus, the latest LEGO Mindstorm bricks are mostly unlocked– with USB and Bluetooth support– so those are potential resources for a project…

A while back I did make an automated paintball turret. It used a pretty dinky netbook as its brain so I am not too worried about the Raspberry Pi and its 700MHz ARM CPU. I am more familiar with the x86 mobobs so optimization may be a (fun) hassle. Also, since it generates so little heat, it will be a lot easier to build a case to protect it from enemy fire. Hell, if raw processing power does become an issue I can always throw in a tiny network switch and combine a few of the little guys (I was thinking USB-to-USB but, after thinking about it, USB 2.0 only does client/server so efficient polling may be an issue… I do not know).

Well, I have to decide. Perhaps it would be a good project to do with The Womantm

LEGO feet!

Update 2012.09.12
A team of people (including a 6-year-old) have clustered 64 of these bad boys. They were cool enough to include a really nice how-to so maybe I will take a crack at it over a weekend.

Update 2012.09.25
The Pi can now be clocked up to 1GHz plus it is officially supported. You can go higher but, according to the organization, you risk your hardware.

Update 2012.11.12
Been playing with some robotic and media center software a lot as of late which gave me a few ideas:

  1. The Raspbery Pi as a robotics platform/controller. Nothing new there but if I combine it with motion/depth detection (see OpenCV with stereo web cams) I could make an automated paintball sentry… or worse!
  2. A portable media center powered by the ‘Pi. With a decent battery (say, this happy ‘lil fellow), USB-powered HDMI projector, and some cheap speakers (if the projector does not provide them) I think you could have a decent setup. Well, decent enough for what it is to make me happy, any way.
  3. Control the LEGO Mindstorm from the thing. All the Mindstorms come with excellent hardware for their intended audiences/purposes. With that said, CPU and memory are limited. There are many ways to control your Mindstorm Brick via Bluetooth and/or USB. Since the ‘Pi is so light I see no issue with just sticking it on top of the whole assembly, with a battery, and using that to control the Brick, which controls everything else. Blam-O, instant my-first-programming and robotics project!
  4. Minority Report-style interface. Holographic technology– and price– are not there just yet but with a different display (say, projector with a large screen) this is very doable. There are even a lot of tutorial for similar projects out there already using OpenCV or the Microsoft Kinect.
Technology Is As Technology Is

Technology Is As Technology Is

I have been in the job market for a few months now looking for work as a web developer. A certain percentage of companies have decided not to work with me but I have decided not to work with a larger percentage of them. Why turn down a job in this market? To put it bluntly, because most of you people are showing up for a pay check and that is the only reason you show up. If that statement shocks you then perhaps I am directing this post at you. Yes, you.

Take a seat, you need to see a guy about a thing.

Pop quiz: How do you kill a man?
The obvious aside, one sure fire way is to stick him in a situation, virtually every day, virtually all day, where he is unhappy. Some place that creeps into his head and, after waking up one day, he decides he hates. It will probably sneak up on him. Not long after this realize will feed into itself and turn into less and less productivity for your company. This is the state of the “code factories” in most IT departments. All the benefits and job stability in the world is not worth it one byte. I, personally, will take a job way below my previous pay grade at an unstable start up in order to care for my family before I come home and take all that out on them. Although I have nothing against working for larger companies I do not favor them because they tend to be less interested in the people and making good product.

I have discovered a few warning signs that a place is too far gone to be worth any amount of compensation:

  • They have a sprawling HR department. Your interview goes well. Everyone loves you and wants you on their team. Now they need to go through HR. All of a sudden the best person for the job is reduced to numbers. “Sorry but we have decided to move in another direction.” What is a programmer with storage experience worth? What is the minimum a second person is willing to accept just to manage the storage when there is not enough storage-related work to go around? I honestly have little idea but I can not imagine penny wise, pound foolish is the way to go with your critical infrastructure.
  • They think they just need a “frontend” or “backend” person. Maybe you learn about a subject, not because you love it, but because that knowledge will improve the thing you do love. Maybe it is a necessary evil and you can not do without the related technology. No matter the reason you do not write “real” web-based applications in a vacuum; There are other parts you need to consider for a solid product. Sure, you are no DBA but I think you may agree that knowing that MySQL almost never runs your query as you entered it has a big impact on your final decision of how to do something. Did you know that PHP arrays (pretty much the only data type they give you) are not arrays? They are hash tables with syntaxical sugar. That tight loop you are porting from your legacy CGI C executables are going to need to be rewritten from scratch if you are going to reasonably support the same user base you did before the port.
  • Company is hopping on the latest thing for no good reason. I love new technology and techniques. I love to play with them. I love to build real-world products with them that you can put your hands on and get that “wow” response. One problem with the web, however: Anything new is useless for years until it is further adopted. Either that or it is not new at all and you have been taken in by clever salesmen. Obviously if you need to wait there is nothing you can do until most of your audience abandons Windows XP and Internet Explorer 6 (come on, Mom, give it up already). But what about the “new” things? Take MVC, for example. I am a massive fan of MVC, even back when it was called OOP. There is nothing new there. Although I am all for OOP– and thus MVC– having a non-technical manager making a decision based on something they do not understand as well as they think they do is a problem. You hired a programmers to program, let them write the code.
  • Culture can only be forced so far. When I talk about “culture” I am really referring to people getting along with each other, complementing each others skill sets, being willing to admit there are things they do not know, and working towards an end goal as a unified front. People who want to be there are there because… well, because they want to be there. People who joined the company softball team because they are afraid it will reflect badly on them were already unhappy. Happy people work harder. Money is one of those things that is very important when you do not have any of it. We all need to eat, stay out of the cold, and not have our hair turn white when we think of the basic things we can not do for our children. Getting a nice salary bump is a fantastic pick-me-up but it is no long-term solution to your employees ability to be more productive for you. I have no links to back me up on this but, in my experience, the turn around time for companies that think money is the answer to everything is much higher than people who truly enjoy their jobs. Hell, people– such as myself– will accept less money for other perks that cost a company virtually nothing in comparison. I have my own personal preferences but compensation time or surprise days off for a job well done can go a really long way for some ones mental state.

I realize some of (all of?) this comes off as a war cry against The Man™ and makes me sound like a rebel. I suppose in some respects I even am. I am not anti-big company nor am I trying to convince anyone to change anything they are already doing that works; A company is there the make a profit and my job, as a programmer, is to do with what I have and churn out code as fast as I reasonably can for said company. There is a balance there that, in a perfect world I would rally against, but in reality I see it as a necessary evil. These are just my thoughts on the subject as I have seen them over and over recently. Most of the old ways of doing things have lasted this long for good reasons, but so has evolution. Keep in touch with your people, communicate often, and remember the long-term far out weights the short-term nine times out of ten.

Some Tools Remain Unmodified for a Reason

Some Tools Remain Unmodified for a Reason

I was out with friends last night and one of them brought his Kindle with him. He showed it to an inquisitive second friend. This second friend expressed an interest in owning one of his own. I, of course, had to step in.

Some animals have remained virtually unmodified for a long, long time. Why? Because there was no reason to change. They were already doing something that worked and, evidenced by the fact they are still here, had no immediate need for something new. This approach tends to give us everything we need in the long run without over complicating things. For example, paper-based books work great. They are light, easy to use, universally understood without any learning curve, and have remained virtually unchanged in most of human memory.

So why do I fear books moving into the future? Take Amazon for example. They have removed books from users Kindles without notice before. Unless someone enters my apartment or steals from me on the subway once I have the information it is mine; I own it and no one can take it away from me. This Big Brother thing Amazon has going on is not only wrong but only gives the illusion of control. Also while on the topic, what happens in a few years when Amazon has moved on and they no longer support their 10+-year-old tablet? If the service is gone so are "my" books.

The new e-ink displays are very neat. They only require power to display an image, which they only need to do once, and that power usage is impressively low. Still, though, why did I need to stick a battery in my perfectly functioning book in the first place? Sure, an electronic device may be able to stay in stand by for a month or more but my paper-based books can sit on a shelf forever and still work as intended.

Kindle-Man also felt it very important to tell me that he can carry some insane amount of e-books at once. The obvious response to this is that I am only in the habit of reading one book at a time. Perhaps if I am planning a long plane flight I may pack two books. Is this really so much of a benefit that I would drop so much money and risk the above “features?”

I love technology. I make my living on technology and do it in my free time as well. I, however, see the need to keep technology out of certain areas for at least these reasons. Also let us not forget the Battlestar Galactica, people!

The Social Web

The Social Web

In the past I have mentioned Facebook and related sites. Whenever I have talked about them, however, it has been in a technical capacity. I never really gave much thought to the why.

Very quickly, what could we say about Facebook on a technical note? Well, the site is– or, at the very least, appears– dead simple. Some user sticks some data in a web-based form. It is then stuck into a database for long-term storage. Later, another user wants said data so it is retrieved and displayed. Simple. There is not only nothing wrong with this but I always prefer that everything should be made as simple as possible, but no simpler. So why is Facebook so damn popular if it does not give us anything we did not already have?

The answer is that it does. It gives us something that is harder to measure: easy communication for everyone. Not just for the protocol engineers so speak Nerd, not just for the computer programmers (those handsome devils) who make software, but for everyone. Before the rise of Facebook long-distance communication was more geared towards one-on-one interaction. The telephone (later the cellular phone), e-mail, ect. These were all giant steps forwards but did not easily address “the crowd.” If you wanted to talk to several people on the phone you could need to make several phone calls. There is also a second issue with most communication methods: they happen in real-time. If I want to talk to someone on the phone they need to stop what they are doing to talk back. Real-time is a great goal for most projects but not always the best solution for all. I do not know you about you but my friends get grumpy when they need to, say, stop sleeping because I called them.

So here comes Facebook: A graffiti-tagged wall of whatever. Not only can you communicate with others but you can do it outside of normal business hours and not have the pesky are-they-available dilemmas. It is a mix between instant messaging, Internet forums, and three-way calling all in one. There are no new concepts here but great application of old ones. The why is the community. The why is the emotion.

OK, so I am late in getting my brain wrapped around this. Perhaps it is a serious short-coming of mine but now that someone got me started I am very interested.

New Uses for Old Laptops

New Uses for Old Laptops

I recently came across an old, forgotten pile of discarded laptops. Over the years, as I have replaced slower models, I never sold off or gave away my old stuff. I was wondering what I could do with such old hardware (some of which sported as low as 256MB RAM) and it hit me: servers.

Think about it. All the required hardware is built in. It has a sort of UPS already integrated (the battery), takes little power, outputs little heat, and takes up nearly no space. Plus it already has a keyboard, mouse, and display with it at all times which can neatly fold away when not needed. Stick Linux and a low-impact service– like a web server on there– and you have yourself the best paper weight ever.

I want to take this idea farther. What if I were to deploy a small farm of low-end netbooks? What if I were to have one or two load balancers? All of a sudden my low-end hardware functions as if it has a pair.

Just food for thought…

Hiding JavaScript? Maybe….

Hiding JavaScript? Maybe….

As anyone around me knows (because I will not shut up about it) I have been working on a new project. Said project relies very heavily on JavaScript and revolves around an unusual use for a web browser that I do not want to advertise just yet. Because of this I have been looking for ways to hide my HTML, CSS, and JavaScript from the client. The short answer I discovered? You can not.

Or can you? Of course if any software is going to run code it will have to have a copy in one form or another. With a scripting language the code is presumably viewable to anyone, right? With JavaScript it is viewable in the View Source option of the users browser which makes everyone from a curious hacker to your grandmother your worse enemy (I love grandma unless she steals my stuff). You can perform obfuscation on your code but that really does not fix the problem; Anyone with half a brain could decode anything the browser can decode because all the tools they would need are already in front of them. What to do, what to do?

Although it does not solve the problem completely I am considering a new project. A project that might hide virtually everything but still allow the browser to render properly. What if this method was inherently cross-platform and completely transparent to the client? What if this method not only offered a developer a lot more security but also provided an API that made web applications stateful with any unmodified, off-the-shelf web server and a lot more efficient on bandwidth?

I may soon start running experiments to test feasibility but I do not foresee any reason my idea would not work. Perhaps this could even be a marketable product…

Running OpenVPN on your Motorola Droid 2.2

Running OpenVPN on your Motorola Droid 2.2

I have finally gotten OpenVPN working on my Motorola Droid. Here are a few short notes for anyone who is on a similar mission.

  • This method requires root access for which I used CyanogenMod 6.0. If your phone is not already rooted you will need to do this first (CyanogenMod or another ROM).
  • Since the TUN module was removed I had to switch to a different kernel. I choose the P3Droid 1250 2.2 low voltage (125Mhz) kernel using setCPU to manage my clock speeds. This kernel is important because it adds TUN support. I had no end of trouble trying to load the module myself with tun.ko and insmod which never ended up working any way.
  • Create some directories and symbolic links. To do this I ran adb remount; adb shell mkdir /system/xbin/bb; adb shell ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig; adb shell ln -s /system/xbin/route /system/xbin/bb/route from my host PC with the USB cable plugged into my Droid using the Android SDK. Note that I run Linux but if you are running Windows just run each command in between the semi-colons, one by one.
  • I ran OpenVPN Installer available in the Android Market. When asked make sure you answer /system/bin/, /system/xbin/bb.
  • Now you are ready to load up your OpenVPN-related stuff. Write a new configuration (named whatever.conf) and generate some new certificates for your new client. Stick them on your SD card in the openvpn directory.
  • Install OpenVPN Settings from the Android Market. Once opened it should now show the configuration file you stuck on your SD card. Just tap it and watch it connect.

You may want to tweak your configuration a bit to ping more often or the like to deal with the fact this is a cellular connection and it will be going up and down on a regular basis. Both TAP and TUN adapters worked great in my tests.

If any of this seems confusing or you do not understand what a line does you should not be doing any of this. A lot of these commands– if done in the wrong context, at the wrong time, in the wrong order, or if your chi is off– will brick your phone and your warranty will be voided. Hell, your warranty will be voided if everything goes right. Beware!

SmoothWall Express

SmoothWall Express

I have recently stumbled upon SmoothWall Express 3.0 SP1. I am getting down-right giddy thinking about all the neat things I can do at home with this thing.

SmoothWall Express is a stand-alone, open-source firewall project. It has a large, active community full of helpful people. Some of these helpful people create mods to extend the functionality such as the ultra useful Full Firewall Control mod.

In my experiments I was able to create a very tiny box with two NICs, little RAM (256MB), a spare Pentium 4 I had laying around, and a 2GB Compact Flash card as the local storage. This poor excuse for a machine was able to stand up to some pretty heavy traffic– without ever passing .25 load, mind you– including a few test torrents totaling over 1,000 connected peers.

My ultimate goal is the separation of all traffic according to use. I might have one public, outward-facing interface for the Internet connection and three inward-facing interfaces for the local traffic (private wired, private wireless, and an internal DMZ). I also plan to build a beefy VMware ESXi box so I can sandbox each of my services (vpn, web, SQL, e-mail, ect) and do nearly all of the networking within virtual hardware.

Apple iPad vs MSI Tablet

Apple iPad vs MSI Tablet

Although I have never been a fan of The Apple Way tm I was super unimpressed by their new iPad showing. After all, these are the guys who really did a lot to bring the mobile data device away from BlackBerry and business users into the main stream so much more so than it already was. For Apple to create an iPod Touch that does not fit in your pocket seems like an idea that skipped the blind taste test of consumer electronics.

Enter semi-speculation: The MSI tablet. Details are still emerging and polishing still needs some doing but what I have seen so far has me optimistic. Due out in ~five months and running Android this could be my new netbook replacement. It has inherent multi-tasking (a feature the iPad does not) and runs on similar hardware. It supports 1080p, HDMI out, and a screen that reportedly works very well in direct sunlight. It also sports WiFi and 3G connectivity. Bluetooth would be a nice touch (unless that was already announced and I missed that part). The price point is looking to be the same as Apples cheapest iPad.

MSI Android Table at CES 2010

Perhaps the HP Slate might be worth a look?

Update 2010.02.04
Lenovo has unveiled a tablet with a nifty feature I have never seen before; You can rip its frak’n head off! The screen detaches from the rest of the device and can be used independently. My guess is the keyboard and company are akin to a USB device. My only question is can you charge just the screen component since that is obviously where the battery is? Between the price tag on this thing and the fact that I have fallen in love with the Android OS I am not sure this peeks my interest beyond the “wow” factor.