Monday 19 November 2007

Sony Ericsson W950i

Introduction

And now it’s time for UIQ to play with the big boys. Because, while the P800 might have been their first effort, which was improved on through the rest of the P series right up to the P990, while the M600 had the slim form factor and messaging capability that would attract that certain purchaser in the IT department, the W950i is the first UIQ smartphone to be clearly and defiantly aimed at the consumer market. When the man on the street goes out to but a phone that plays music, like that iPod thing(!), they’re going to be steered to this.

Of course, that’s the Symbian fan’s view – there’s another massive collision in the W950i. Sony Ericsson have been pushing music phones (through the Walkman brand) for a number of years as well, so this is the culmination of a long product upgrade cycle. There are going to be more people looking at this and going “wow, they’ve upgraded the internal storage to 4GB and added a bundle of applications for model number six” and not give two hoots about the Operating System and politics behind it.

What they are going to see is one of the slimmest Walkman phones ever sold (a mere 15mm); it’s got more fashion seeping out of the mystic purple casing that Kate Moss; it’s featherweight light; has a flat-touch keypad, and it just reeks of style. Put simply, I have not seen a more gorgeous phone on any Symbian device in a long time. Make no mistake, this device is going to have increased sales simply because of how it looks on the store shelf.

I really like this phone, but it’s not perfect. Some of the design choices (such as the lack of camera or Wi-Fi) leave a power user such as myself a bit lost, but there are rational reasons why they have been made. On the other hand some of the choices made are just plain stupid, and detract from a very well focused smartphone, as I shall explain.

Hardware Controls

The number pad has grown on me. It’s not completely flat; there are some raised bumps (almost like Braille marks) for each key so you can locate the keys without looking (something a perfectly flat keypad could never manage). Given that this bump is in the centre of the key, while the number is on the left of the ‘strike area’ (and letters on the right) it makes more sense to type blind than watching your fingers, as you tend to focus on the numbers and miss hitting the centre. Great for a few words or phone numbers, but for any reasonable amount of input you will be using the touch screen’s Jot character recognition, or relying on your Contacts database for email addresses. It really doesn’t improve with use.

W950 Keypad

As well as the standard keys on the number pad, the front of the machine also sports a dedicated ‘Walkman’ button which will bring up the music player application no matter what application you are in, and a ‘C’ (for clear) button on the other side. When you are in the Walkman application, above the number pad lights up a triumvirate of “rewind, play/pause and fast forward” icons. This brings up the first gotcha of the W950. These aren’t dedicated keys – they are simply using the adjacent 1, 2 and 3 number keys, and only in the Walkman application.

And that means when you are not in Walkman application, the only music control open to you is the pause button on the right hand side of the W950. Compare this to the dedicated playback controls on the N91 and it feels like something was missed in the design stage (note that you do have a remote control on the headphone cord, but more on that later). Under the pause button, you have a rocker control for the volume – and this is so infuriating for two reasons. The first is that it doesn’t directly control the volume! You tap either up or down, wait half a second or so for a volume dialog to come up on screen, and then you have to press the key again to change the volume. First of all, I’ve pressed down, just turn it down – and if you are going to insist on showing me the dialog, at least have the courtesy of remembering which key I pressed and act on it, don’t make me press it twice when I’m struggling to turn down an MP3 that is unexpectedly loud.

Walman branded W950 -4

Oh and the other problem with the volume rocker? It’s directly opposite the thumb wheel. When you press the thumbwheel in to confirm a dialog, the natural hand motion is to squeeze on the opposite side of the device – which is exactly where the volume control is. Okay, after a week or so you remember not to squeeze, but it’s really annoying.

WM950Yes, we only have a scroll wheel. Where the Pxxx devices had a five way rocker (roll up, roll down, forward, backward and in), the W950 has a simple 'scroll up, scroll down and in' thumb wheel, which is actually a lot easier for a new user to understand. To aid navigation, just below the thumbwheel is a ‘back’ button (which is also duplicated on screen in pretty much every single application), which is actually a very simple device, but incredibly useful – it steps you back through an application, to the launch screen, and then back to the home/today screen through multiple presses. A long press and hold will jump you straight back to the home screen (or activate the key lock if you are on the home screen). Finally, something that’s intuitive, simple to understand, that just works! Praise be!

Once you add on the UIQ3 interface (of which I’ll dissect in part two of this review), I do wonder if anyone in Sony Ericsson actually sat down to do any real world user interface testing, or whether they simply took some elements from previous UIQ phones, some elements from previous Walkman phones, and threw them all together hoping that they would work. For all of the smooth styling and looks, it drives like a Sherman tank. Firmware updates (which can be done over the Internet by the end user) need to address the issues they can as a matter of priority. There is just too much delay, fudging and guesswork in too many controls.

I look at the Apple announcement of the iPhone, where the interface was given priority – and using the W950 it’s not hard to see why they’ll use this as a primary marketing message.

The Walkman Player

And so onto the Walkman features. It’s hard to miss, with the name engraved on the side, three Walkman logos on the casing, and a short-cut to the application both on the casing and on the top line of the standby screen. So there’s no problem getting to it.

It’s when you get to it that it starts to be a bit confusing and a touch frustrating...

Finding the Music

WM950When you press the Walkman button on screen or on the hardware, you’re taken to a display of the current (or last played) track. There are no onscreen playback controls (remember that 1, 2, and 3 now act as the controls), but you do have a progress bar for the individual track, which you can reposition using the stylus (tucked away at the back of the machine) to drag the desired position. Album Art (if available) is on display, and playback options such as shuffle, continuous play and graphic equaliser are alongside. Apart from the progress bar, all these on-screen buttons are just too fiddly to use without the stylus – your thumb is not going to be able to manage. For a portable device, to require the stylus to be removed, delicately tapping the screen, and then replaced, seems at odds with the nature of a smartphone (for example, used when out jogging).

Flanking the bottom of the screen are two ‘ranking' systems. On the left is a ‘star’ rating from 0 to 5, and on the right is the ‘mood’ of the track, a colour coded, easy to access form of playlist. You can mark up tracks as ‘Happy,’ ‘Sad,’ ‘Energetic’ or ‘Chilled' (although you can relabel these yourself – it’s just too delightful to assign yellow as ‘Cheesey’!). Under the moods choice under “My Music” you’ll be able to select a mood of music. Both of these are great ideas, but in practice they are pretty much eye candy.

I’ve already rated most of my music in iTunes. Why can’t it read those ratings? Or the ratings in Windows Media Player? There’s no direct equivalent of ‘moods’ in any of my desktop PC applications, so isn’t adding this information a waste of time? Personally I find these ratings as a wasted effort. I’ve a playlist called favourites that I can manage on my PC that is then drag and dropped over to the phone. All I need to do is just grab the last tunes added and put them in my ‘favourites’ playlist created on the W950.

Oh, there’s no way to list the last tracks added, or sort them by date… (aaaahhrgh!!! Fx: pulls hair out). Given that this device is something where music will chop and change, this should be an automatic playlist option. The W950 already has a number of Auto Play lists, namely Top Rated (see comments on ranking tracks on the device), Most Played, Least Played, Last Played and Bookmarks. How hard would it be to add in a “Last Added” auto playlist?

WM950 WM950 WM950

Beyond this though, navigating your album list is a good one handed experience, apart from one gotcha. Remember that calling up the Walkman app takes you to the current track? Well, hitting the back key takes you to the home screen. All well and good, but to get to the playlists, album and track listings, you need to press the “My Music” on screen button. There’s no hardware button control, so time to use your thumb (yes you can get away with your thumb along the bottom icons). It would make more sense to me to have the back key jump up to the main Walkman navigation before returning to the home screen.

Once you get there though, it’s the thumbwheel‘s call to action, as you scroll through a top level of play lists, albums, tracks or artists. You then get an alphabetical list of the contents, and can drill down again (and again if needed) to return to the ‘play this song’ screen. If scrolling not your thing (and once I reached about 150 tracks over 20 albums it was no longer my thing) you’ll be relying on the search feature. Which is a bit useless.

When I have to search through these lists (for example, under the 'all tracks' option), I expect all the text to be searched. If the search string is ‘Love’ then I would hope that the search would pick up the following songs…

  • Love Me Do
  • All You Need Is Love
  • Smell the Glove

…in other words, wherever the string ‘love’ appears in a song title, it would be presented to me. The W950 unfortunately doesn’t do this. It will only search each song title starting at the first letter. So you only see “Love me Do.” Now while this makes for a much faster search, it makes it a lot harder to find tracks, especially if your MP3 file’s ID3 tags are not perfect. Again, it seems that real world testing has been skipped – at the very least this could be a preference (search optimised for either speed or accuracy) for the user to decide.

All in all, the finer details of the Walkman application leave me feeling that the code can be improved significantly in future firmware updates.

Transferring the Music

I’ve covered this in depth in one of my first W950 articles, but in brief, the bundled PC application to transfer MP3s (Disc2Phone) is one of the best transfer solutions I’ve come across in a long time. It’s simple to use, tightly focussed on what it needs to do, and a lot of thought has been put into how a new user will use it. The smartphone UI designers could learn thing or two from it.

Music Transfer

If having more control over your uploads is for you, then the W950 can switch its connection option to be a simple USB Mass Storage Device, where you can drag and drop your files into the internal 4GB flash memory (unfortunately the W950 does not come with space for an external memory card). Just like the N91, you’re asked to refresh your list of music files when you detach the USB cable. It’s just as annoying here as it was on the N91.

Listening to the Music

Early this week I ran a blind audio test with the W950, measuring it against the aforementioned N91 and the iPod Shuffle, and the general conclusion of the editorial team at All About Symbian was that the devices are no longer the limiting factor to the listener. The noise of the environment you are in, the quality of your headphones, and the compression and artefacts in the MP3 (or AAC or WMA) files will all have a bigger effect than the audio signal the W950 produces.

WM950One of the things that upset me is the complete lack of gapless playback in the modern MP3 playback. Gapless playback means that when one music file finishes, the second plays immediately… with no gaps. While this might seem a small thing if you listen to your regular three minute slice of processed pop, if you’re listening to a live concert recording… or a suite of classical music… or even Chronicles of the Black Sword by Hawkwind [yay - Ed], these little stutters of a few seconds of silence can get annoyng very quickly.

I don’t think there is any excuse for this. The application knows what song is up next – it can look at the playlist, or the next track in the album, and get it ready. Hundreds of thousands of computer operations can happen each second, there must be a solution to this. Sony can manage it on their minidisk system, and that’s a physical spinning medium along the lines of a CD – with Flash storage there’s not even that excuse.

The W950 does not come with a standard 3.5mm headphone socket, so you must use the attached break out box. This plugs into the base of the machine, adding about half an inch to the length, and the cable itself is about three feet long. Two feet along the cable is the one piece of kit that redeems the interface of the W950 – the remote control. With a central play/pause button, and a ring control around the outside for both volume, skip forward and backwards, and scan forwards and backwards, it provides almost instantaneous control of your music, with no delays for dialogs to pop up on the screen, no need to search through dialog boxes, or hunt for the controls in your pocket (although if this controller can manage it, that means there’s no reason the rest of the device can’t react as fast).

I just wish it was further up the cable. Being only two feet away from the pocket the device is awkward. Add another foot to get to the 3.5mm port to add your own headphones (which add their own cable length to the mix) means that you’ll be wrestling a bit of a python with all the cables (see below). Luckily there is a stereo Bluetooth headset profile if you‘ve got the right equipment.

wm950

Summing Up The Walkman

What’s most annoying to me is that the W950 is so close to being a really excellent music player. It talks to a desktop computer with ease (and using USB Mass Storage means pretty much anything can talk to it in some form). The audio quality is very good, especially with the right encoding and headphones. Most importantly I can have my Atomic Rooster albums at full volume and not worry about missing a call because the W950 will break into the music and let me know.

It’s just the small things that niggle me and damage the user experience so that the application stops being something hiding in the background that just works, and becomes something that needs you to make a conscious effort to think about what you want to accomplish. Luckily most of the problems are in software, so it should be something Sony Ericsson can address.

To Be Continued…

In part two of the review, I’ll be looking at UIQ3 in general, the other built in applications including the PIM Suite, synchronisation and summing up the W950 as a whole.

Resources

Sony Ericsson W950i Review Part 1 (Music)
Sony Ericsson W950i Review Part 2 (UIQ interface)
Sony Ericsson W950i Review Part 3 (Applications)

Sony Ericsson W950i Preview

Sony Ericsson W950i Forum

Sony Ericsson W950i Software

Sunday 11 November 2007

NOKIA 8800 Gold

Friday 9 November 2007

Sony Ericsson Sales & Service Centre Resmi di seluruh Indonesia

Sony Ericsson Sales & Service Centre Resmi di seluruh Indonesia:

Thursday, 10. May 2007, 16:21:08

Sony Ericsson
Jakarta

ITC Roxy Mas
Lt. 3, No. 6 - 7
Jl. KH. Hasyim Ashari
Jakarta 10150
(021) 638 51655
Senin - Minggu: 10.30 - 19.00

ITC Roxy Mas
Lt. Dasar, No. 45 - 47
Jl. KH. Hasyim Ashari
Jakarta 10150
(021) 638 52450
Senin - Jumat: 10.00 - 18.30
Sabtu: 10.00 - 17.30
Minggu: Tutup

Pusat Niaga Roxy Mas
Blok C4 No. 6 - 7
Jl. KH. Hasyim Ashari
Jakarta 10150
(021) 633 5809
(021) 6339780
Senin - Minggu: 10.30 - 19.00

Butik Ponsel - Galeria SCBD
Blok Silver No. 6 - 8
Jl. Jend. Sudirman Kav. 52-53
Jakarta
(021) 515 0917
Senin - Sabtu: 09.00 - 19.00
Minggu: 09.30 - 15.30

Plaza Semanggi Lt. 2
Blok C No. 18
Jakarta
(021) 25539815
(021) 25539816
Senin - Sabtu: 11.00 - 20.00
Minggu: 11.00 - 18.00

ITC Cempaka Mas
( Service Center ) Lt.4 Blok A No. 11 - 14,
( Sales ) Lt. 4 Blok F No. 358
Jl. Letjen Suprapto
Jakarta
021) 428 83522 / (021) 428 83533
(021) 42901966 ( Sales )
Senin - Sabtu: 10.30 - 19.30
Minggu: 12.00 - 19.30

Kelapa Gading Mall III
Lt. Dasar ( Dekat ATM Center)
(021) 45853733 ( Service Center )
(021) 45853866 ( Sales )
Senin - Minggu : 10.30 - 21.30

Kelapa Gading
Jl. Boulevard Raya Blok WB 2 no 2
(021) 4530586
Senin - Minggu : 09.00 - 20.30

Mall Artha Gading
Lt. Dasar Blok B3 no.6 ( Sales )
(021) 45863847

Mega Mall Pluit
Lt. 3, No.126 Jakarta
(021) 66601659
Senin - Sabtu: 11.00 - 20.00
Minggu: 11.00 - 18.00

Mangga Dua Square
Lt. 3 no. 286 - 287 ( Sales )
(021) 62311194

ITC Permata Hijau
Lt.3 Blok C3, No. 6-7 JakSel ( Sales )
(021) 536-63891

Mall Ambasador
Lt. 3 No. 27
Jl. Prof. Dr. Satrio
Jakarta
(021) 576 2502
(021) 57931027
Senin - Minggu: 10.00 - 20.00

ITC Fatmawati
Lt. Dasar no. 99 ( Sales )
(021) 7394139

Pondok Indah Mall 2
Lt. 2 North Sky walk N206 - N207a
(021) 759 20895
(021) 759 20896
Senin - Minggu: 11.00 - 21.00

Jl. Sultan Iskandar Muda Blok UA Sektor III
Pondok Indah, Jakarta
(021) 769 2223
(021) 769 2224
(021) 769 2226
Senin - Minggu: 10.30 - 19.00

Plaza Senayan
Lt. 3 No.318B
Jakarta Selatan
(021) 5725208


Jawa Barat


Jl. Naripan No. 109
Bandung 40112
(022) 426 4455
Senin - Jumat: 09.00 - 18.00
Sabtu: 09.00 - 15.00
Minggu: Tutup

Jl. Pasir Kaliki 154
Bandung
(022) 420 3963
Senin - Jumat: 09.00 - 17.30
Sabtu: 09.00 - 14.30
Minggu: Tutup

Bandung Electronic Center
Lt. UG F15
Jl. Purnawarman No.13-15
Bandung
(022) 421 4951
Senin - Minggu: 10.00 - 20.00

Bandung Electronic Center
Lt. UG F21-22
Jl. Purnawarman No.13-14
Bandung
(022) 420 8207
Senin - Sabtu: 10.00 - 21.00
Minggu: 10.00 - 21.00

Jl. Ir. H. Juanda No. 30
Dago, Bandung
(022) 426 5185
Senin - Jumat: 09.00 - 18.00
Sabtu: 09.00 - 17.00
Minggu: 09.30 - 15.30

Super Mal Lippo Karawaci
LG 47B, Tangerang
(021) 5462431
(021) 5462432
Senin - Minggu: 10.00 - 21.00

Jl. Tuvarev Raya, No. 140
Karawang
(0267) 406 287
Senin - Minggu: 08.00 - 18.00

Mega Bekasi
Lt. 1 No. 292-293
Jl. Jend. Ahmad Yani no 1
Bekasi
(021) 88962768
(021) 88962826
Senin - Minggu: 10.30 - 19.00

Metropolitan Mall
Lt. 2 no. 224
(021) 8853958
(021) 8848573

Ruko Warung Jambu
Blok R1 no.1
(depan plaza Jambu Dua)
Bogor
(0251) 340653
(0251) 363617

Bogor Trade Mall
Lt.2 Blok A12 no 1 - 2 ( Sales )

Ruko Pesona Kahyangan No.6
Jl. Margonda Raya No.45
Depok
(021) 77211626
Senin - Sabtu 09.00 - 17.00
Minggu LIBUR


Jawa Tengah


Gedung AGUSTA
Jl. Pandanaran 62
Semarang
(024) 8453535
(024) 8415124
Senin - Minggu: 08.30 - 17.00

Jl. Sriwijaya No. 59E
(024) 8443571
Senin - Minggu: 08.00 - 20.00

Collection Point
Jl. Gajah Mada 99 Ruko C
(024) 3569107
(Fax : 024) 3515154

Jl. Fajar Indah Utama No.2
Surakarta
(0271) 7075755
(0271) 7005253
Senin - Jumat: 08.00 - 17.00

Pertokoan Green Plaza No. 8,
Jl. Godean Km. 2.8
Yogyakarta
(0274) 586 417
Senin - Minggu: 09.30 - 21.00

Jl. P. Mangkubumi No. 67
Yogyakarta
(0274) 557 206
Senin - Sabtu: 09.00 - 18.00
Minggu: 09.30 - 15.30

Ruko Shapire No. 5
Jl. Laksda Adisucipto 32-34
Yogyakarta
(0274) 541985 - 87


Jawa Timur


WTC
Lt. III / R 331
Jl.Pemuda No. 27-31
Surabaya 60276
(031) 534 3330
Senin - Jumat: 10.00 - 18.00
Sabtu: 10.00 - 16.30
Minggu: Tutup

WTC
Lt. IV/R 445 & 441
Jl. Pemuda No. 27 - 31
Surabaya 60276
(031) 5352158
(031) 5319310 ext 445
Senin - Jumat: 09.00 - 18.00
Sabtu: 09.00 - 16.00
Minggu: Tutup

Jl. Karimun Jawa Kav. 3
Surabaya 60281
(031) 5039381
(031) 5039390
Senin - Jumat: 09.00 - 18.00
Sabtu: 09.00 - 16.00
Minggu: Tutup

Parkir Utara WTC
Jl. Pemuda 27 - 31
Surabaya
(031) 5477204

Jl. Galunggung 67a
Malang
(0341) 584 351
Senin - Jumat: 09.00 - 19.00
Sabtu: 09.00 - 12.00
Minggu: Tutup

Malang Town Square
Blok GE - 2 No. 10
Jl. Veteran
(0341) 771 7979
(0341) 559 151
Senin - Minggu: 10.00 - 21.00


Bali


Pertokoan Investama
Jl.Teuku Umar 123 Blok C/8
Denpasar, Bali
(0361) 239720
(0361) 246553
Senin - Jumat: 09.00 - 18.00
Sabtu: 09.00 - 16.00
Minggu: Tutup

Jl. Teuku Umar 235A
(Depan RM. Rasa Sayang)
(0361) 7465432
(0361) 7465433
Senin - Jumat: 08.30 - 17.30
Sabtu: 08.30 - 14.00
Minggu: Tutup


Kalimantan


Gedung Citra Sasirangan, Lt. 2
Jl. Jend. A. Yani Km. 3.7 No. 266
Banjarmasin, Kalimantan 70232
(0511) 3250422
Senin - Jumat: 09.00 - 17.00
Sabtu: 09.00 - 16.00
Minggu: Tutup

Jl. Jend. A. Yani Km. 2 No. 6
Banjarmasin, Kalimantan 70232
(0511) 274459
Senin - Jumat: 09.00 - 17.00
Sabtu: 09.00 - 16.00
Minggu: Tutup

Jl. Jend. Sudirman No.31
(Komp. Cemara Rindang)
Balikpapan 76112
(0542) 7020686

Mal Lembuswana
Blok G No.2 Jl. S. Parman
Samarinda
0541-200831


Sulawesi


Mall Ratu Indah
Lt.2 No. 251A
Jl. DR Ratulangi No.35
Ujung Pandang
(0411) 834 398
Senin - Minggu: 10.30 - 21.00

Jl. Mesjid Raya No.68 o
Makasar
(0411) 420990
(0411) 420995

Mall Panakukang
Ged. C lt. Dasar Blok 1 No.2
Makasar
(0411) 4661960

MTC Karebosi
Lt.3 blok P06-07 Jl. Jend A. Yani No.49
(0411) 3652198

Mega Mal
Lt. 3 No 5 (HP Center)
Jl.Piere Tendean Boulevard
Manado
(0431) 879 512
Senin - Minggu: 10.30 - 21.30

Jl.KH Dewantoro 3C
Kendari 93127
(0401) 321 107
Senin - Sabtu: 10.00 - 17.00
Minggu: Tutup


Sumatera


Milenium Plaza
Lt. 2 No. 79 - 86
Jl. Kapten Muslim No. 111
Medan
(061) 847 6177
Senin - Minggu: 11.00 - 21.00

Jl. Asia No. 322
(Simpang Jl. Kuningan)
Medan
(061) 736 4441
Senin - Sabtu: 8.30 - 17.00
Minggu: Tutup

Jl. Prof. H. M. Yamin No. 6F
Medan
(061) 452 8081
Senin - Jumat: 09.00 - 17.00
Sabtu: 09.00 - 14.00
Minggu: Tutup

Jl. Jendral Sudirman No.121F
Pekanbaru - Riau 28141
(0761) 849797
Senin - Sabtu: 08.00 - 18.30
Minggu: 10.00 - 18.30

Jl. Veteran No. 62 F
Padang
(0751) 32400
Senin - Sabtu: 09.00 - 19.30
Minggu: 09.00 - 16.00

Jl. Veteran No.156
Palembang
(0711) 314101
Senin - Minggu: 09.00 - 17.30

Jl. Letkol. Iskandar No.1402
Palembang
(0711) 314873
Senin - Sabtu: 09.00 - 18.00
Minggu: 09.30 - 15.30

Palembang Square
Blok R no 103 - 105 ( Sales )
(0711) 380099

PDU Encoder, PDU To TEXT

PDU Encoder

Thursday, 10. May 2007, 16:02:57

PDU To TEXT, SMS, Converter, PDU ...
Akhirnya ketemu juga. Coding buat converter PDU ke ASCII dan sebaliknya. Setelah muter-muter di google, sampe nge-trace coding pascal, pokoknya seru dech. Walaupun masih kacau codingnya, solanya baru aja selesai, belum sempat di-tuning. ni juga mempoles dari coding di internet. heheh

Public Class PDU

Implements IDisposable

Private Const iLenAwal As Integer = 4
Private Const iLenTengah As Integer = 4

Private Function GetLenSMSC(ByVal aMsg As String) As Integer
Return GetDecimal(Left(aMsg.Trim, 1)) + GetDecimal(Mid(aMsg.Trim, 2, 1))
End Function

Private Function GetLenSender(ByVal aMsg As String) As Integer

Dim iLenSMSC As Integer = GetLenSMSC(aMsg) * 2
Dim i As Integer = GetDecimal(Mid(aMsg.Trim, iLenAwal + iLenSMSC + 1, 1)) + GetDecimal(Mid(aMsg.Trim, iLenAwal + iLenSMSC + 2, 1))

Return IIf(i Mod 2 = 0, i, i + 1)

End Function

Public Function GetServiceNumber(ByVal aMsg As String) As String

Dim iLenSMSC As Integer = GetLenSMSC(aMsg) * 2
Dim SMSC As String = Mid(aMsg.Trim, iLenAwal + 1, iLenSMSC - 2)

Dim iLoop As Integer = 0
Dim sPreReturn As String = ""

For iLoop = 1 To iLenSMSC Step 2
sPreReturn &= StrReverse(Mid(SMSC, iLoop, 2))
Next

Return "+" & Replace(sPreReturn, "F", "")

End Function

Public Function GetSenderNumber(ByVal MSG As String) As String

Dim iLenSMSC As Integer = GetLenSMSC(MSG) * 2
Dim iLenSender As Integer = GetLenSender(MSG)
Dim SENDER As String = Mid(MSG.Trim, iLenSMSC + iLenAwal + 5, iLenSender)

Dim iLoop As Integer = 0
Dim sPreReturn As String = ""

For iLoop = 1 To iLenSender Step 2
sPreReturn &= StrReverse(Mid(SENDER, iLoop, 2))
Next

Return "+" & Replace(sPreReturn, "F", "")

End Function

Public Function GetSendDate(ByVal aMSG As String) As String

Dim iLenSMSC As Integer = GetLenSMSC(aMSG) * 2
Dim iLenSender As Integer = GetLenSender(aMSG)
Dim iLenX As Integer = iLenAwal + iLenSMSC + iLenSender + iLenTengah
Dim sHex As String = Mid(aMSG.Trim, iLenX + 5, 6)
Dim iLoop As Integer = 0
Dim sPreReturn As String = ""

For iLoop = 1 To 6 Step 2
sPreReturn &= StrReverse(Mid(sHex, iLoop, 2))
Next

Return Format(DateSerial(Val(Left(sPreReturn, 2)), Val(Mid(sPreReturn, 3, 2)), Val(Right(sPreReturn, 2))), "dd/MM/yyyy")

End Function

Public Function GetSendTime(ByVal aMSG As String) As String

Dim iLenSMSC As Integer = GetLenSMSC(aMSG) * 2
Dim iLenSender As Integer = GetLenSender(aMSG)
Dim iLenX As Integer = iLenAwal + iLenSMSC + iLenSender + iLenTengah
Dim sHex As String = Mid(aMSG.Trim, iLenX + 11, 6)
Dim iLoop As Integer = 0
Dim sPreReturn As String = ""

For iLoop = 1 To 6 Step 2
sPreReturn &= IIf(iLoop <> 1, ":", "") & StrReverse(Mid(sHex, iLoop, 2))
Next

Return sPreReturn

End Function

Public Function GetMessage(ByVal MSG As String) As String

Dim iLenSMSC As Integer = GetLenSMSC(MSG) * 2
Dim iLenSender As Integer = GetLenSender(MSG)
Dim iLenX As Integer = iLenAwal + iLenSMSC + iLenSender + iLenTengah + 21

Return PDU_To_Text(Mid(MSG.Trim, iLenX, Len(MSG)).Trim)

End Function

Public Function PDU_To_Text(ByVal MSG As String) As String

Dim xStr As String = MSG
Dim xStr1 As String = MSG
Dim Length As Integer = Len(MSG)
Dim Length1 As Integer = Len(MSG) \ 2
Dim StrArr(160) As String
Dim j As Integer = 1
Dim c As Integer = 0
Dim StrNum As Integer
Dim Alpha As String = ""
Dim StrHexBin As String = ""
Dim StrHexToBin As String = ""
Dim StrLast As String = ""
Dim i As Integer = 0

For i = 0 To Length1
StrArr(i) = Mid(xStr, j, 2)
j += 2
Next i

For i = 0 To Length1 - 1
xStr = StrArr(i)
StrNum = 0
For j = 1 To 2
Alpha = Mid(xStr, j, 1)
c = GetDecimal(Alpha)
If j = 1 Then
c *= 16
Else
c *= 1
End If
StrNum += c
Next j
StrHexToBin = HexToBin(StrNum)
StrHexBin += StrHexToBin
Next i

If Length Mod 2 <> 0 Then
StrLast = Mid(xStr1, Length, 1)
StrLast = HexToBin(CInt(StrLast))
StrHexBin += StrLast
End If

Return BinToDec(StrHexBin)

End Function

Private Function GetDecimal(ByVal Alpha As String) As Integer

Select Case UCase(Alpha)
Case "A"
Alpha = 10
Case "B"
Alpha = 11
Case "C"
Alpha = 12
Case "D"
Alpha = 13
Case "E"
Alpha = 14
Case "F"
Alpha = 15
Case Else
Alpha = Alpha
End Select

Try
Return Alpha
Catch ex As Exception
Return 0
End Try

End Function

Private Function HexToBin(ByVal strnum As Integer) As String

Dim number As String = ""
Dim strnumber As String = ""
Dim k As Integer = 0
Dim j As Integer = 0

Do Until strnum = 0 Or strnum = 1
number = CStr(strnum Mod 2)
strnumber += number
strnum \= 2
Loop
strnumber &= CStr(strnum)
If Len(strnumber) < 8 Then
k = 8 - Len(strnumber)
For j = 1 To k
strnumber &= "0"
Next j
End If
HexToBin = strnumber

End Function

Private Function BinToDec(ByVal StrHexBin As String) As String

Dim lnt As Integer = Len(StrHexBin)
Dim strd As String = ""
Dim strsum As String = ""
Dim i As Integer = 0
Dim istr As String = ""

For i = 1 To lnt - (lnt Mod 7)
strd = Mid(StrHexBin, i, 7)
istr = AscStr(StrReverse(strd))
i += 6
strsum &= CStr(Chr(istr))
Next i

Return strsum

End Function

Private Function AscStr(ByVal StrD As String) As Integer

Dim iDec As Integer = 0
Dim iSpl As Integer = 0
Dim StrSum As Integer = 0
Dim i As Integer = 7
Dim j As Integer = 0

Do Until i < 1
iSpl = CInt(Mid(StrD, i, 1))
StrSum += iSpl * (2 ^ j)
i -= 1
j += 1
Loop

Return StrSum

End Function

Public Function Text_To_PDU(ByVal MSG As String) As String

Dim Bin_Msg_Chars(160) As String
Dim Return_String As String = ""
Dim Borrow_Value As Byte = 0
Dim i As Byte
Dim n As Byte = 0
Dim iLenMsg As Integer = Len(MSG.Trim)

If Len(MSG.Trim) = 0 Then
Return ""
End If

For i = 1 To iLenMsg
Bin_Msg_Chars(i) = Dec_To_Bin(Asc(Mid(MSG.Trim, i, 1)))
Next i

For i = 1 To iLenMsg

If i <> iLenMsg Then

If Bin_Msg_Chars(i) <> "!" Then

Borrow_Value += 1

If Borrow_Value = 8 Then
Borrow_Value = 1
End If

n += 1

Return_String &= Right$("0" & CStr(Hex(Bin_To_Dec(Right$(Bin_Msg_Chars(i + 1), Borrow_Value) & Bin_Msg_Chars(i)))), 2)

If Borrow_Value = 7 Then
Bin_Msg_Chars(i + 1) = "!"
Else
Bin_Msg_Chars(i + 1) = Mid$(Bin_Msg_Chars(i + 1), 1, Len(Bin_Msg_Chars(i + 1)) - Borrow_Value)
End If

End If

Else

n = n + 1
Return_String &= Right$("0" & CStr(Hex(Bin_To_Dec(Bin_Msg_Chars(i)))), 2)

End If

Next i

Return Return_String

End Function

Private Function Dec_To_Bin(ByVal Dec_Val As Integer) As String

Dim leading_zero_flag As Boolean = True
Dim i As Byte
Dim place_val As Byte
Dim pad_zeroes As String = ""
Dim StrTemp As String = ""

For i = 1 To 8
If i = 1 Then place_val = 128 Else place_val = place_val / 2
If Dec_Val / place_val >= 1 Then
StrTemp = StrTemp & "1"
Dec_Val -= Dec_Val
leading_zero_flag = False
Else
If leading_zero_flag = False Then
StrTemp &= "0"
End If
End If
Next i

For i = 1 To 7 - Len(StrTemp)
pad_zeroes &= "0"
Next i

Return pad_zeroes & StrTemp

End Function

Private Function Bin_To_Dec(ByVal bin_val As String) As Integer

Dim i As Integer
Dim place_val As Byte
Dim IntTemp As Integer = 0

bin_val = Right$("00000000" & bin_val, 8)

For i = 8 To 1 Step -1
If i = 8 Then place_val = 1 Else place_val = place_val * 2
If Mid$(bin_val, i, 1) = "1" Then
IntTemp += place_val
End If
Next i

Return IntTemp

End Function

Private disposedValue As Boolean = False ' To detect redundant calls

' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
' TODO: free unmanaged resources when explicitly called
End If

' TODO: free shared unmanaged resources
End If
Me.disposedValue = True
End Sub

#Region " IDisposable Support "
' This code added by Visual Basic to correctly implement the disposable pattern.
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above.
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
#End Region

End Class

Tuesday 6 November 2007

SIM Card Data Recovery Software v3.0.1.5

Sim Card Data Recovery Software recovers your mobile phone sim card accidentally deleted text SMS messages. Data Doctor Sim Card Recovery Software is read only and non-destructive utility restore all lost message. Utility retrieve all deleted contact numbers (phone numbers), unreadable messages, corrupt phone book directory.

It provides full backup of your cell phone’s erased sim memory. For recovery, you need a phoenix type USB sim card reader or PC/SC Standards based sim card Reader and a PC having Microsoft windows operating system. Sim card reader scans simcard deeply and detects all the recoverable information. Print option provides the facility to print report of all recovered data like your text message and contact numbers. This software provides full details about sim card like its provider and ICC –ID (identification number).
It provides restoration of lost or corrupted text files due to virus infection in your mobile phone. Recovery is not possible if sim card is locked (due to unauthorized PIN code). Software ensures recovery even if your inbox, outbox, draft and sent items messages and phone numbers are invisible or unreadable. It fetches recently erased call list.

Features:

- Tool Support recovery on windows XP, 2003, XP Media Center2005, Longhorn, Vista, 2000, NT, ME and 98.
- It is Read only and Non- Destructive sim card data recovery utility.
- Print option provides recovered data on paper in text format.
- Software also shows the provider name and ICC identification number of sim card.
- Utility provides full backup of corrupt or damaged sim card memory.

Important!!!
Please remember that you need USB SIM Card reader (any PC/SC Standards or Phoenix Standards based Reader) to use our software to recover data from sim card. If you are not able to find any compatible SIM card reader, Please feel free to contact us to get the information of manufacturers, who can make it available to you in very short time.
Download
http://rapidshare.com/files/61605247/SIM.Card.Data.Recovery.Software.v3.0.1.5.rar

Firefox Add-ons, Media Pirate - The video downloader 2.3

More and more websites publish their videos in those neat flash players. But if you want to download a video there is no download link. This doesn't mean that you can't download it. Media Pirate creates a download link for you! Media Pirate hel...

More and more websites publish their videos in those neat flash players. But if you want to download a video there is no download link. This doesn't mean that you can't download it. Media Pirate creates a download link for you!

Media Pirate helps you to download videos from the following websites:

blip.tv break.com dailymotion.com ifilm.com media.putfile.com metacafe.com myvideo.de video.google.com vids.myspace.com vidilife.com youtube.com zippyvideos.com

To see in a live demo how the extension works, visit my website:
http://www.mediapirate.org/livedemo.php

Or to get an application that works with all websites in the internet visit:
http://www.mediapirate.org/s=s

To convert the video files to other formats go to:
Media Converter - http://www.mediaconverter.org
This is very useful if you don't have a FLV player.

Media Pirate - The video downloader is the service that 100% works!!

Hint: It opens a new tab with the mediapirate.org website where you can find the download link.

Works with:
  • Firefox Firefox: 1.0 – 2.0.0.*

Install Now

Firefox Add-ons, GetVideo 0.1

Download videos from YouTube and Google directly...

Download videos from YouTube and Google directly.
Unlike VideoDownloader it does not use a proxy page, and unoike unplug it does not create a layer over the current page.
It simply try to get the absolute video path and prompt for download it.

Works with:
  • Firefox Firefox: 1.5 – 2.0.0.*

Install Now