Dec 06 2011

The good, the bad and the ugly: Windows Phone 7

Category: English postsRpx @ 17:44

Two weeks have passed since I received my Windows phone: The HTC Titan (a.k.a. Eternity). Now it’s time to lay down my 2 cents about it. I’ll only speak about the WP7 system, as the hardware specs aren’t really special anyway (most smartphones have dual-core CPUs and can record video in 720p nowadays anyway).

The good

The first thing that strikes you when giving it a look is its size. It is enormous, by any cellphone standards. Although some people might see this as a nuisance, I like it. In fact the size was one of the reasons I chose this one over the HTC Radar. Apart from the fact that bigger is better when browsing the net or watching movies, I also had a problem with most smartphones’ virtual keyboard; in most cases, it was impossible for me to write a SMS message without making a very large number of spelling mistakes, mainly due to pushing 2 keys at once. Due to Eternity’s big screen, typing is much easier as keys have more space in between them.

In past times, I’ve tried working with a few Android devices. I also tried one of my coworker’s iPhone 4. In both cases, I got lost after 10 seconds. With WP7, I was able to set up and get everything working without having to google anything or ask someone the infamous question “what do I do now?…” Windows Phone 7 has a very big plus for its very minimalistic and (most of the time) intuitive interface and unlike Android, for example, which has over 9000 versions out there, when you jump over on a friend’s phone, the settings, apps and everything else will be in the exact same spot as it is on yours. Setting most stuff, starting from ringtones, theme and ending up with email, facebook and even WiFi Access Point mode is just a matter of 3-4 sweeps and taps. No hidden stuff, no jailbreaking needed, no bullshit. For the more “niche” stuff (e.g. XMPP), there are a ton of apps to choose from, some free, some paid.

Speaking about the marketplace, the good things about the WP7 one is that a) every paid app can be “tried”, as in, you can download it and run it a limited number of times (~50) to evaluate it prior to buying it and b) every developer has to pay in order to become a WP7 developer and publish apps, which means that the market doesn’t get clogged with a gazzilion rubbish apps made by Garrage Joe from the Tinyville trailer park.

There’s alot of built-in functionality by default, such as facebook sharing of photos, office documents support (Word, Excel, Powerpoint), Bing voice search, automated translation of text on an image taken with the camera (this one is my favourite!). One other thing that I love about it is how it groups my contacts. It automatically matches the numbers I have in the phonebook with the respective Facebook profiles, so when someone is calling me or texting me, their facebook profile shows up on the display. Also, if a person messages me through SMS and then picks up the chat on facebook, MSN or Google Talk, the chat is threaded in the same discussion, not separated ones.

The bad

Despite its good parts, it can be clearly seen that WP7 is still young and fresh on the market. There are a lot of rough edges and tiny annoying bits that simply shouldn’t be there.

For example, you can’t access the contacts on your SIM card. You must first import them all. This can be a pain, as the operator countless and useless service numbers are imported as well. Besides, if someone else wants to use his/her SIM card to make a call, it’s next to impossible.

About calling, yeah, you will shortly notice that “calling” has just become an application on WP7. Basically, the “phone” part of this gadget is just a tiny piece of the puzzle. If 10 years ago you spoke of “a phone that can send e-mails“, now you speak of “a small laptop that can make and receive phone calls“.

Another thing that pisses me off about this phone is that all images that are uploaded are scaled down in both resolution and quality. With Facebook, that’s fine, but with SkyDrive and e-mail, I don’t really see  the point! The only way to get the pictures (which surprisingly are very good, for a cellphone!) is through Zune, which brings me to…

Zune! I don’t know what made Microsoft think that making an iTunes clone was a good idea, but they did. Granted, most people say that Zune is better than iTunes, but for me, a person who never used any of them, it’s awful! First of all, why do I need to organize my stuff into libraries? (documents, music, videos, pictures, etc). Why can’t I just take any file from the computer hard drive and just dump it on the phone? And why do I have to use just Zune or the Mac Connector? Why not make it appear as a mass-storage device? It’s retarded and only probably fully understood by retarded people…

Speaking of retarded, another “feature” that falls in this category is running applications management. Again, for some reason, they ditched the plain old “close application” behavior for the iPhone retarded “background app” behavior. This would be pretty ok, if task switching would work well, but using that damned “Back” button sometimes just has a totally unexpected and inconsistent behavior when switching between apps.

The ugly

The ugly thing about this thing is… well… it’s not a phone anymore. Considering this a phone is just like going to do your groceries in a helicopter. First of all, there’s the issue of battery life. By cellphone standards, it’s dreadful. If you have 3G and WiFi active, facebook connected and 3 email accounts, the battery won’t last more than 30 hours. And don’t think you can play too much with it, because if you’re used to checking facebook once every half hour and speaking with your friends whenever you stop at a red light, the life of the battery goes down to 14-16 hours easily. Yes, you can deactivate all those battery-eating things to get half a dozen extra days, but then you’ll just end up with an oversized and overpriced cellphone… pointless!

But this is not a WP7-specific problem. This is a smartphone-specific problem. This is not a phone. This is a very slick and simplified laptop. If this had a physical keyboard, it wouldn’t even be called a smartphone… it would be a netbook. Thus, one has to treat it as such. I still use my 9 years old Siemens S55 for phone calls. I use the Eternity as a laptop with a 3G data plan. When I get to work, I plug it in. When I get home, I plug it in. That way, I never have to worry that I’ll run out of battery and for those times when I need to go somewhere with no possibility to get a socket for more than a day, I have a 6600mAh external battery pack.


I’ve only scratched the surface here. There are a lot more things that are good, bad or ugly about this system, but the bottom line is this: It’s simple to use, it “just works”, and it’s not full of hidden switches which require you to get under the hood. Yes, it is annoying at times and most of the time you will be laughed at by others for using a Microsoft product, but the truth of the matter is, it’s perfect for someone who doesn’t want to complicate their life and also doesn’t want to get the “Oh, an update! Just $49.99!” feeling.

But most of all, if you’re interested in a phone, just get a phone. WP7 was never intended and will never, ever be a phone OS.

Tags: , ,

Aug 29 2011

Assigning more than 4 VCPUs to a Hyper-V virtual machine

Category: TechnicalRpx @ 18:26

Users of Microsoft’s Hyper-V virtualization system have been forever plagued by one tiny yet incredibly annoying issue. You cannot assign more than 4 logical processors to a single virtual machine. This is supposed to go away with the next version of Hyper-V which will be available with the server version of Windows 8, but what to do until then?

Well, the obvious thing to do is try to hack that value somehow and guess what… you can actually do it.

Hyper-V keeps the virtual machine settings in XML files and those files can be manually modified to change that value. However, there’s a catch or two…

  • The virtual machine for which you want to change the CPU allocation must be stopped when modifying this value;
  • The Hyper-V Virtual Machine Management Service (vmms) must be stopped when modifying this value;

For convenience, here’s a PowerShell script I’ve written to do this. Note that if the virtual machine is running when executing it, the change will obviously be effective only after the machine has been restarted.

In order to change the allocation for a certain VM, let’s say “foo” to 8 logical processors, follow these steps:

  • Open the script with a text editor;
  • Change the $VMname variable to “foo”  and $VCPUs to 8;
  • Start a PowerShell console as the Administrator (running it as a normal user will not work);
  • Execute the script.

It should give this kind of output:

PS C:\Windows\system32> S:\Scripts\Hyper-V-change-vcpus-2.ps1
Current CPU Count:  4
New CPU Count:  8
Please wait… Do not stop execution and ignore possible warnings about VMMS stopping; they are intended.
WARNING: Waiting for service ‘Hyper-V Virtual Machine Management (vmms)’ to finish stopping…
WARNING: Waiting for service ‘Hyper-V Virtual Machine Management (vmms)’ to finish stopping…
WARNING: Waiting for service ‘Hyper-V Virtual Machine Management (vmms)’ to finish stopping…

NB: Stopping the VMMS service will not disrupt the virtual machines (suspend or stop them). It will only temporarily stop the management service which is used to access the GUI of Hyper-V.

Tags: , ,

Aug 19 2010

Spark of hope

Category: TechnicalRpx @ 1:54

Tot mă plângeam în ultima vreme ca o muiere de faptul că industria jocurilor nu mă ajută cu nimic la moral…

Însă printre norii grei și cenușii ce începuseră să se așeze peste cerul meu, o rază de soare a pătruns puternic și mi-a luminat ziua. O urmă de speranță venită din partea… Microsoft?!.

Continue reading “Spark of hope”

Tags: , ,

May 17 2010

Xen vs KVM… Welcome to the real world!

Category: English posts,TechnicalRpx @ 15:52

Xen vs KVM is a debate almost as flamable as Mac vs PC or Linux vs Windows. Alot of people (including Yours Truly) had to make this decision: What to use for virtualization with Linux?

When I bought the new server, I tried Microsoft Windows Server 2008 R2. The 2 main reasons for this were NTFS with Shadow Copies and Hyper-V. Admittedly, Hyper-V must be the best piece of software that MS could come up with in the last 10 years. You’ll find the reason below.

Alas, I was forced to abandon the Windows way, so now I’m stuck with two options: Xen and KVM. Both are free and open-source, both are supported by most linux distros, and both support VT-X technology. But which one is better?

Some might argue that Xen has been around longer than KVM, therefore it’s more stable and mature. I call that bullshit. KVM has been in the linux kernel for 3 years now, so this argument is moot. What is interesting to study though, is how these 2 technologies work.

Virtualization works using a hypervisor. Xen, KVM, Hyper-V, VMware are such examples. Hypervisors come in two flavors:

  1. Type 1 Hypervisor, also called a bare-metal Hypervisor. Examples: Xen, Hyper-V
  2. Type 2 Hypervisor, also called a hosted Hypervisor. Examples: qemu, KVM, VMware, VirtualBox, VirtualPC

The difference between these 2 kinds of hypervisors is ground-breaking. The first type runs directly on hardware, while the latter works within the operating system. This gives ups and downs to each side of the parties.

Type 1 HVs run on top of the operating systems, meaning that their operation does not depend on the underlying OS and its kernel. This is why with Xen for example, you see the Xen messages first at boot time, then the actual linux kernel messages. Also, in MS Windows, the Hyper-V drivers are the first to be loaded in the OS. Basically, even the host operating system (dom0 in Xen) is a “virtualized” operating system on top of the Hypervisor. This gives the advantage of performance, since the “guest” virtual machines don’t have to pass through the “host”; instead, they communicate directly with the hardware through the Hypervisor. The disadvantage to this is that both the “host” OS and the “guest” OS need to be aware of the Hypervisor. This is why Linux cannot see the “synthetic devices” of Hyper-V (like virtual network cards) and why it needs a specially patched kernel to boot under Xen. This can be bypassed by using Full virtualization (as opposed to the native paravirtualization) on machines with CPUs which support VT-X technology, at the expense of performance. Paravirtualization (the default and recommended way to use a Type 1 HV) does not need VT-X technology and the performance boost is barely noticeable.

Type 2 HVs on the other hand are located below the OS and rely on the OS kernel to process calls. This means that an extra layer of communication and processing exists, which obviously adds overhead (more or less). The main advantage though is that both the host and the guest machines need not be aware of the hypervisor, because the hypervisor integrates itself into the operating system kernel and takes care of “translating” the calls from the guest virtual machines to the host’s kernel. This is why it’s called a “Hosted Hypervisor”. You can see now why the extra layers could impact performance, but the upside to the story is that the modifications to the operating systems is minimal. Using a processor with VT-X makes a huge difference in guest VM performance, and for some solutions (such as KVM) it is mandatory.

The conclusion

The Linux Foundation (and many linux distributions) are switching to KVM as a virtualization solution, but the problem with the Linux Foundation and linux developers in general is that they don’t realise that Linux has become a swiss army knife.

I, for one, have a different view on the matter, and so are enterprises who rely on virtualization: When the problem I have is a nail, I choose a hammer as a solution… not a swiss army knife. Someone should send them the memo too… it seems they didn’t receive it. Although installing and configuring Xen and a Xen-aware kernel by hand is a bitch, I’ll still stick with this one for “production” use.

Tags: , , , , ,

May 12 2010

“Manage Send As Permissions” issue in Exchange 2010

Category: English posts,TechnicalRpx @ 12:33

For the past 2 days I’ve been bashing my head against the desk because of an issue with granting “Send as” permissions to mailboxes in MS Exchange 2010.

Continue reading ““Manage Send As Permissions” issue in Exchange 2010”

Tags: ,

May 06 2010

Forefront Threat Management Gateway… a threat to your well-being

Category: TechnicalRpx @ 14:34

Continuând seria experimentelor marca Microsoft, am ajuns la MS Forefront Threat Management Gateway (TMG). Veteranii îl vor recunoaște probabil după numele vechi, Microsoft Internet Security and Acceleration (ISA) Server.

Procedeul de instalare este de nota 10. Dar cam aici se termină laudele. După instalare, primul lucru evident este faptul că deși în timpul instalării se alege ca rețea internă subclasa respectivă, el configurează niște bazaconii pe acolo, dar asta se rectifică modificând manual setarea.

Al doilea lucru cu care m-am chinuit a fost să dau acces spre internet serviciilor. Primul afectat de această “problemă” a fost Windows Update, care deși vroia să facă update la semnăturile malware, nu putea. Folosindu-mă de KB-urile sugerate de Microsoft, am adăugat o regulă în care să permit accesul spre domeniile “Microsoft Update”, după care am reîncercat să fac update și… tot nu a mers. Oare de ce n-am fost surprins?…

Într-un final, am reușit să mă prind cum merge treaba cu firewall-ul (de fapt l-am configurat să permită absolut orice trafic). Problema ulterioară a fost că am vrut setări diferite pentru Web Proxy. Tot cu vrutu’ am rămas pentru că setările din firewall sunt în legătură directă cu cele de la Web Proxy, așa că nu aveam cum să fac reguli exclusive pentru cel din urmă. Am decis să nu-l folosesc, așa că am dezactivat Web Proxy. Bineînțeles că n-am fost avertizat că TMG a configurat în mod automat redirecționarea traficului Web prin proxy, așa că următoarele 2 ore au fost pierdute diagnosticând și încercând să găsesc bifa pentru a dezactiva acest feature.

Un alt lucru ce nu mi-a plăcut a fost faptul că nu mi s-a cerut părerea în privința alegerii modalității de stocare a logurilor, acesta instalând și configurând de la sine-putere un MS SQL Server 2008 Express pe mașina respectivă. Din fericire, există o modalitate de a-l face să utilizeze un server SQL existent. Problema e că deși când dau click pe “Test settings”, mi se spune că totul e în regulă, acesta nu creează tabelele în baza de date ci preferă să se plângă că nu are unde stoca logurile. Un motiv sau un mesaj de eroare exceptând un mic semn cu ! într-un triunghi galben nu am reușit să scot de la el nici bătut, iar în logurile lui MSSQL nu scrie nimic de rău. Probabil e un feature care e acolo doar cu numele, ca să dea bine la prezentarea produsului.

Ceea ce m-a făcut să aleg TMG ca utilitar pentru gateway au fost “The easy configuration process and intuitive interface” (ca să citez din Release Notes) și faptul că poate acționa ca forward proxy pentru web applications.  Având în vedere că primul motiv s-a dovedit a fi doar bullshit pentru marketoizi, am rămas la al doilea motiv. Cu toate astea, mi-a fost dat să aflu că TMG este un produs “All or nothing”. Adică nu-i pasă că din 8 module pe mine mă interesează doar unul… eu trebuie să le am pe toate și să le permit să-mi sugă memoria și resursele. Mulțumesc!

Later edit: Aparent, nici măcar regulile de la Microsoft nu sunt compatibile cu produsul…

Tags: ,

May 04 2010

Quality Assurance

Category: TechnicalRpx @ 14:24

Am mai bine de 2 ani de când lucrez în acest domeniu și am cam început să mă prind cum stau treburile într-o companie cât de cât măricică. Îmi place sistemul… developeru’ e developer, testeru’ e tester. Datoria testerului este să fie sigur că produsul (sau modulul pe care este atribuit) funcționează fără probleme. Totuși, uneori mă gândesc că la alții (read: Microsoft) nu e la fel; altfel nu-mi explic cum de am putut găsi atâtea probleme într-un singur produs de-al lor. Probabil departamentul lor de QA e subfinanțat, sau folosesc aceeași grup de testeri ca și McAfee.

Printre cele mai evidente probleme ale lui Windows Server 2008 R2 pe care le-am găsit (și “soluțiile” pe care le-am descoperit), se numără:

  • După instalarea rolului DHCP Server, serviciul pentru Shadow Copies (Volume Shadow Service) aruncă o eroare la pornire pentru că dintr-un motiv inexplicabil, installerul modifică permisiunile pe cheia HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VSS\Diag. Ce treabă au una cu alta, probabil doar Vlad Moraru știe. Soluția evidentă este notarea permisiunilor pre-instalare, si modificarea lor post-instalare.
  • După instalarea rolului DNS Server, acesta scuipă warning-uri în log-uri despre faptul că nu poate să se atașeze și să asculte pe interfețele dezactivate, deși nu ar trebui să asculte pe ele (doar de aia le-am dezactivat!).
  • La dezinstalarea unui anumit rol, configurația acestuia nu este ștearsă, astfel încât la reinstalarea respectivului rol, să se poată folosi configurația veche. Problema apare la rolul "Network Policy and Access Services”, unde după reinstalare serviciul de Routing and Remote Access refuză să mai funcționeze decât dacă este reconfigurat complet.
  • Tot la categoria Routing and Remote Access, acest serviciu se plânge de faptul că nu poate adăuga în tabela internă de rutare interfețele IPv6 sau IPv4 fără IP (de exemplu bridge-ul Hyper-V, sau adaptoarele ISATAP), deși serviciul este configurat doar pentru Remote Access, nu și pentru routing. De asemenea, la o instalare fresh, chiar dacă opțiunea de Routing este debifată, acesta configurează serviciul pentru routing oricum.
  • Funcționalitatea snapshot-urilor în Hyper-V Manager nu funcționează. Încercarea de a face snapshot-uri oricărei mașini virtuale eșuează cu “General access denied error”. Soluția? Trebuie dat acces de scriere peste directoarele Hyper-V contului Network Service. Din nou, ce treabă are una cu alta, probabil doar Vlad Moraru știe.
  • Atributul “Prevent from accidental deletion” pentru obiectele din Active Directory nu e persistent. Îl bifez, iar după un reboot, pot șterge obiectele cum îmi place mie.
  • IIS asociază în Group Policy politici cu Application Pools, fără să ia în considerare că acele entități nu sunt useri propriu-ziși, astfel încât la fiecare 15 minute, WinLogon se plânge de faptul că nu găsește respectivii useri. Uite de-aia găsești 839351 erori în Event Viewer după o lună de la instalare.
  • Setarea unui server de imprimare via Print and Document Services este incompletă. Deși se oferă opțiunea de a instala drivere pentru platforme multiple (de exemplu, drivere pentru Windows pe 32bit) astfel încât clienții ce vor să imprimeze să-și poată obține driverele de pe server în mod automat, acestea nu pot fi instalate pe server pentru că nu sunt suportate de către sistemul de operare, care se plânge că driverele nu sunt destinate acestui sistem de operare. Epic fail…

Astea ar fi cele de care mi-am amintit în timp ce scriam acest articol. În mod cert sunt mai multe, de care încă nu m-am lovit, iar acestea sunt doar pentru Windows Server 2008 R2 instalat fresh… Nu mai pun la calcul bug-urile (stupide!) din alte produse (vezi problema lui Exchange fără IPv6, sau Forefront Threat Management Gateway, de care n-am scris încă).

E trist când vezi probleme într-o instalare banală. E de înțeles să existe probleme în scenarii mai complexe, exotice, unde departamentul QA nu ajunge, însă unele dintre aceste bug-uri mă face să mă întreb dacă Microsoft are un astfel de departament.

Tags: ,