PS4 versus XBOX One – care e consola mai buna? (partea 2)

 

-Partea a 2-a (infruntarea finala)-

                Daca sunteti printre cei care acum cateva zile au citit prima parte din “PS4 versus XBOX One”, atunci e momentul sa desfaceti şamp… bine, berea… si sa va lasati scaunul pe spate, caci in fata voastra se va desfasura batalia finala. Asaaa, unde eram? Pe un varf de munte pustiu si batut de vanturi, doua console se bat pana la moarte… There can be only one! (OK, doua – castigatoarea si varul mai incet la minte de la Nintendo, dar el nu se pune).

PS4 vs XBOX One – Online Services (sau cat mai trebuie sa lasi pe langa nota)

                Desi ambele console au servicii online dedicate, Playstation Plus prezinta considerabil mai multe avantaje. Atat Playstation Plus cat si XBOX Live Gold au jocuri oferite gratuit, insa cele de pe platforma SONY se schimba lunar si sunt in general foarte bune si inca de actualitate – luna aceasta (februarie) posesorii de PS3 se bucura de Bioshock Infinite, XCOM, Borderlands 2, Metro: Last Light, Brothers si multe altele, pe cand cei de la Microsoft au pus in oferta Dead Island si… Toy Soldiers (??). De asemenea, un abonament pentru Playstation Plus nu este necesar pentru a juca online multiplayer sau pentru servicii de streaming precum Netflix, Hulu sau Skype, pe cand pe XBOX nu se poate fara sa fii client Gold. Nu e o diferenta prea mare, insa abonamentul anual pentru XBOX Live Gold e mai scump cu 10$ fata de cel pentru Playstation Plus (60$ vs 50$).

Castigatoare: PlayStation 4

PS4 vs XBOX One – Media Integration (sau cate alte prostii poate face consola si care are potentialul de a enerva prietenii de pe Facebook mai tare)

                Aici XBOX One ia Premiul I, pe cand PS4 primeste o diploma de Mentiune si e trimisa acasa cu un bilet pentru parinti. Desi PS4 permite live streaming al jocurilor pe Twitch (feature care va aparea intr-un update si pentru XBOX One), abordarea e una similara cu cea a unui smartphone – poti deschide aplicatii, le poti “minimiza”/suspenda, poti sa pui mesaje pe Facebook pe care nimeni sa nu le citeasca si cam atat. XBOX One-ul in schimb are planuri grandioase de cucerire, atacand  si amenintand cu integrarea majoritatea electronicelor din sufragerie – poti sa te uiti la cablu prin ea, poti sa accesezi Netflix, Amazon Video, in viitor va avea si un DVR integrat, e compatibila cu un server media DLNA si poti sa schimbi intre un film de pe Netflix, stirile PRO TV si un joc fara probleme. Bineinteles, Facebook si celelalte retele de socializare nu lipsesc. In final, la ambele console poti sa tipi in engleza ca un isteric (voice commands) si amandoua beneficiaza de cloud storage pentru save games. Potentialul de enervare al prietenilor si vecinilor, in final, e cam acelasi la ambele console.

                Castigatoare: XBOX One

PS4 vs XBOX One – Accesorii

                Ambele console vin cu una bucata controller si cabluri de conectare; XBOX One-ul vine impreuna cu Kinect 2, care e considerabil mai bun decat varianta precedenta si care va filmeaza cum va scarpinati in nas si cand nu va jucati (da, e in permanenta pornit, chit ca va uitati la TV, chit ca e 2 noaptea si faceti un raid in frigider imbracat doar in sosete) – pentru PS4 trebuie sa cumparati separat un PlayStation 4 “Eye”; la PS4 puteti schimba HDD-ul cu unul mai mare, pe cand la XBOX One nu; PS4 are Bluetooth, pe cand XBOX One are… infrarosu?! WTF?! In final, PS4 are power supply integrat, pe cand XBOX One are o “caramida” pe care o bagi in priza, precum CHIP-ul meu din ’88… hmm, ciudat!

                Castigatoare: niciuna/egalitate (PS4 e mai ieftina pentru ca nu baga pe gat un motion detector si nici nu are neaparata nevoie de el – pentru mine PS4 castiga in final, dar e o chestie subiectiva)

PS4 vs XBOX One – Jocuri (adica… treaba pentru care am cumparat-o)

-          Jocuri? Jocuri ati zis? Pai… ia uitati, consolele noastre se pot conecta la Facebook, pot face streaming pe Twitch, au comenzi vocale!

-          Dar ce ne putem juca pe ele, Sony/Microsoft?

-          Ah, v-am zis ca va puteti juca si cand jocurile inca sunt in download? cat timp downloadul e pe la 98% complet… si doar dupa ce ati taiat un cocoş negru la miezul noptii cand e luna plina…

-          Ah, tare! Dar ce titluri sunt disponibile?

-          aaaaa….

Cam asta e problema in acest moment… pe PS4 avem un Killzone facut la repezeala care arata bine dar e plictisitor in draci si Assassin’s Creed 4 care e pe PC de anul trecut; pe XBOX One avem RYSE (care arata bine dar e plictisitor in draci), Dead Rising 3 (ok, asta e tare!) si… TOMB RAIDER?! Ala care a iesit acum un an? Of, Microsoft… Cred ca ati observat deja trendul – atat Sony cat si Microsoft au o colectie aproape inexistenta de jocuri, si abia in 2014 ne vom putea da seama care consola are titluri mai apreciate, mai interesante si mai sclipicioase.

                Castigatoare: niciuna

Si, in final:

PS4 vs XBOX One – Pretul (cat trebuie sa induri foamea dupa ce ti-ai luat next-gen)

                Fara sa divulg preturi exacte, XBOX One e mai scumpa decat PS4 (la noi) cu vreo 50% din pretul unui PS4 nou. Nu stiu de voi, insa mie chestia asta nu prea imi pica bine! Inteleg ca are si Kinect 2.0 in cutie, insa nu imi place sa fiu obligat sa cumpar si sa folosesc niste chestii care nu sunt necesare unui joc… mai ales cand e mult mai usor sa apas un buton decat sa tip ca nebunul. Din pacate, XBONE-ul a fost conceput pentru Kinect (cu toate apucaturile lui bune si rele), astfel suntem fortati sa il avem alaturi de consola… macar la SONY putem alege sa tipam la 2 noaptea catre o bucata de plastic negru.

                Castigatoare: PS4

 

                Acum, de-a dreptul burdusiti de cunostinte despre noua generatie de console, puteti lua o decizie mai buna! Va veti cumpara/v-ati cumparat deja o consola “next gen.”? Care v-a facut cu ochiul? Comentati, va rog! :)

PS4 versus XBOX One – care e consola mai buna? (partea 1)

    Iata ca, acum cateva saptamani (29 ianuarie), meleagurile mioritice au fost binecuvantate de preamaritul Sony cu o lansare a noii sale minunatii negre – Playstation 4. Precum monolitul din Odiseea Spatiala, ne ademeneste, ne uimeste si ne indeamna sa ne dam unul altuia in cap pentru a-l avea. Ăilalţi (Microsoft) sunt deja pe piata romaneasca prin XBOX One, insa dupa o cautare destul de lunga eu nu am reusit sa gasesc data oficiala a lansarii… nu stiu, poate ca XBONE-ul a fost dintotdeauna printre noi, asteptand in umbre ca un Alien gata sa ne ucida contul bancar. Eh, cert e ca avem amandoua consolele “next gen.” si putem sa ne bucuram ca putem lua parte la “console wars” inca de la inceput… cine pomeneste Nintendo Wii U in commenturi ca o solutie pentru gaming, rog sa paraseasca incinta pe usa din spate, aia care miroase urat.

                Voi, probabil ca si mine, v-ati ignorat familia, prietena, cainele si hamsterul luand drumul lung de la munca spre casa, uitandu-va spre asfintit si gandindu-va “Ma, pe care consola sa dau vro’ 4-5 salarii minime pe economie? Care consola e mai buna? Care consola mi-o va arata pe Lara Croft cum transpira prin fiecare por tesselat, cu anti-aliasing si o basculanta de HDR?” Ei, dragii mei, hai sa vedem care detine carcasa mai tare, memoria mai mare si jocurile mai sclipicioase!

PS4 vs XBOX One – Exterior (sau cat de bine arata pe dormeza)

                Amandoua-s niste cutii negre, lucioase si amenintatoare, dar Sony PS4 poate fi pusa si la verticala (cu un adaptor – bucata de plastic – cumparat separat, bineinteles), pe cand XBOX One-ul interzice aceasta pozitionare. Deci, XBOX One poate sta numai intinsa pe spate, cu butoanele in vant… hmm… PS4, de asemenea, e si nitel mai subtire, dar XBOX One are putin din sarmul unui player video din ’95… nu stiu, poate va atrage chestia asta.

Castigatoare: Sony Playstation 4

PS4 vs XBOX One – Interior (sau care are graficele mai sculate in teste)

                Ambele console au procesoare cu 8 core-uri (acelasi procesor chiar, pe XBOX One fiind “overclockuit” de la 1,6 GHz la 1,75 GHz… mare branza!), 8 giga de RAM (DDR5 pe PS4 – DDR3 pe XBOX) si procesoare grafice (GPU) bune. Trebuie totusi mentionat faptul ca PS4 are un GPU considerabil mai puternic – atat in teste cat si in jocuri, consola se va comporta mult mai bine. Peste asta, la XBOX One 10% din GPU va fi dedicat exclusiv pentru Kinect, deci nici macar nu va puteti bucura de el in totalitate.

Cand vine vorba de teste de hardware, tineti minte ca platformele foarte diferite si optimizarile fiecarui producator joaca un rol extrem de important si face ca testele sa nu fie atat de concludente precum par la prima vedere. Precum un Ferrari versus o Skoda pe un drum de tara, nu putem decat sa vorbim despre potentialul fiecareia si sa comparam cifre si prescurtari “la rece” (DDR3 vs. 5, TeraFLOPS/s, cate shadere are GPU-ul).

Castigatoare: Sony Playstation 4 (dupa specificatiile “la rece”)

PS4 vs XBOX One – Controllere (sau care consola permite un drum mai usor catre artrita si RSI)

                Poate pentru ca nu am fost crescut pe planeta X’orgg de catre extraterestri, mie controller-ul Sony mi s-a parut dintotdeauna cam ingramadit… dupa cateva ore am mainile blocate de zici ca sunt cangur. Ergonomic vorbind, controller-ul vechi de la XBOX 360 e cel mai bun, asta nou avand stick-urile mai ridicate si trigger-ele mult mai “soft”. De asemenea, cel nou foloseste 2 baterii AA (nu battery pack-uri precum cel vechi)… hmm, incep sa observ o tendinta retro la Microsoft. Controller-ul de PS4 are in schimb six-axis, un speaker, touchpad, baterie integrata si o luminita faina in varf care permite consolei sa stie intotdeauna unde este. Ultima chestie e foarte importanta pentru ca… pentru ca… aaa… oricum, dupa cateva zile putem sa ne obisnuim cu ambele configuratii, deci nu e atat de important. Din pacate, daca doriti sa va folositi controllerul pe PC cel de la XBOX va merge perfect, pe cand pentru cel de PS4 va trebui sa instalati niste programe in plus si sa stati sa il configurati – nu e prea dificil, dar merita mentionat.

                Castigatoare: niciuna/medicii ortopezi din 2040

                Pana acum, se pare ca PS4 iese putin in fata si ca ar fi o investitie mai buna. Dar stati! Tineti cardul in portofel pentru partea a 2-a a meciului, in care vom incerca sa intelegem si sa comparam alte prescurtari cu scopul de a confuza si mai tare consumatorul roman! Intre timp, imi puteti spune cum am interpretat gresit specificatiile consolelor si cum XBOX sau Playstation “RULZ 4EVA” in sectiunea de comentarii

Android – show login dialog

Here is how you can add a simple login dialog to your Android app in two simple steps.
1. The “Show login dialog” function that creates and displays the actual login with AlertDialog (called on button/menu select?):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
private void showLoginDialog()
    {
        LayoutInflater li = LayoutInflater.from(this);
        View prompt = li.inflate(R.layout.login_dialog, null);
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setView(prompt);
        final EditText user = (EditText) prompt.findViewById(R.id.login_name);
        final EditText pass = (EditText) prompt.findViewById(R.id.login_password);
            //user.setText(Login_USER); //login_USER and PASS are loaded from previous session (optional)
            //pass.setText(Login_PASS);        
        alertDialogBuilder.setTitle("My Site LOGIN");
        alertDialogBuilder.setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id)
                {  
                     if (!Utils.hasConnectivity(MainActivity.this,false)) //check for internet connectivity
                        {
                         Toast.makeText(MainActivity.this,"No internet access... please connect.", Toast.LENGTH_LONG).show();                            
                         showLoginDialog();
                         return;
                        }
                     
                    String password = pass.getText().toString();
                    String username = user.getText().toString();
                    try
                    {
                        if ( username.length()<2 || password.length()<2)
                            {
                                  Toast.makeText(MainActivity.this,"Invalid username or password", Toast.LENGTH_LONG).show();
                          showLoginDialog();
                            }
                        else
                        {
                           password=MCrypt3DES.computeSHA1Hash(password); //password is hashed SHA1                                  
                                   //TODO here any local checks if password or user is valid

                                   //this will do the actual check with my back-end server for valid user/pass and callback with the response
                       //new CheckLoginAsync(MainActivity.this,username,password).execute("","");
                        }
                    }catch(Exception e)
                    {
                        Toast.makeText(MainActivity.this,e.getMessage(), Toast.LENGTH_LONG).show();
                    }
                }
                });

                    alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id)
                        {                      
                            dialog.cancel();
                           
                        }
                    });
                   
                    alertDialogBuilder.show();  
                    if (Login_USER.length()>1) //if we have the username saved then focus on password field, be user friendly :-)
                     pass.requestFocus();                                          
    }

2. Add the login dialog layout xml that looks like this (login_dialog.xml file in res->Layout):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version='1.0' encoding='utf-8'?>
<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android'
   android:layout_width='fill_parent'
   android:layout_height='fill_parent'
   android:orientation='vertical'
   android:padding='10sp' >

    <EditText
       android:id='@+id/login_name'
       android:layout_width='fill_parent'
       android:layout_height='wrap_content'
       android:hint='Username'
       android:singleLine='true' >

        <requestFocus />
    </EditText>

    <EditText
       android:id='@+id/login_password'
       android:layout_width='match_parent'
       android:layout_height='wrap_content'
       android:hint='Password'
       android:ems='10'
       android:inputType='textPassword' >
    </EditText>

</LinearLayout>

Here is the internet connection check and the SHA1 digest (just in case you need them):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* needs     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
             <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
             <uses-permission android:name="android.permission.INTERNET"></uses-permission>
*/


    public static boolean hasConnectivity(Context context,boolean wifiOnly)
    {
        try
        {
            boolean haveConnectedWifi = false;
            boolean haveConnectedMobile = false;
   
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo[] netInfo = cm.getAllNetworkInfo();
            for (NetworkInfo ni : netInfo)
            {
                if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                    if (ni.isConnected())
                        haveConnectedWifi = true;
                if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                    if (ni.isConnected())
                        haveConnectedMobile = true;
            }
             
               if (wifiOnly)
                   return haveConnectedWifi;
               else
                   return haveConnectedWifi || haveConnectedMobile;
       
        }
        catch(Exception e)
        {
            return true; //just in case it fails move on, say yeah! we have Internet connection (hopefully)
        }
       
    }

        /**
         * SHA1 digest
         * @param stringToDigest
         * @return 40 len string
         */

        public static String computeSHA1Hash(String stringToDigest)
        {
            MessageDigest mdSha1 = null;
            String SHAHash;
              try
              {
                mdSha1 = MessageDigest.getInstance("SHA-1");
              } catch (NoSuchAlgorithmException e1) {
                  return stringToDigest;
              }
              try {
                  mdSha1.update(stringToDigest.getBytes("ASCII"));
              } catch (UnsupportedEncodingException e) {
                  return stringToDigest;
              }
              byte[] data = mdSha1.digest();
              SHAHash=bytesToHex(data);              
              return SHAHash;
          }

That’s all, give it a try!

It should look like this:

PHP email subject encoding

If you thought that setting “Content-Type” will suffice to make your email just send away without problems, think again. The specified character encoding in “Content-Type” will only describe the character encoding of the body, not the subject itself. If the subject contains UTF-8 chars your email subject will not look as expected on the recipient. To fix this issue you will need to use the encoded-word syntax (RFC2047#section-2) with either the quoted-printable encoding or the Base64 encoding.
Here is a quick snippet on how I did it:

1
2
3
4
if (strlen($subject) != strlen(utf8_decode($subject))) //check if subject is utf-8
       fwrite($socket, 'Subject: =?UTF-8?B?'.base64_encode(html_entity_decode(utf8_encode($subject), ENT_COMPAT, "UTF-8"))."?="."\r\n".'To: <'.implode('>, <', $recipients).'>'."\r\n".$headers."\r\n\r\n".$message."\r\n");
 else
       fwrite($socket, 'Subject: '.$subject."\r\n".'To: <'.implode('>, <', $recipients).'>'."\r\n".$headers."\r\n\r\n".$message."\r\n");

This syntax uses a string of ASCII characters indicating both the original char encoding and the content-transfer-encoding used to map the bytes of the charset into ASCII characters.
The syntax is: “=?charset?encoding?encoded text?=”.

As you can see above I’m trying to see if the “subject” string contains any UTF-8, so it will encode only when necessary. The encoding check I’m doing is fairly simple, and you can also use mb_check_encoding function to do the same thing. I didn’t use it because it requires php_mbstring extension loaded, which is a non-default extension (it is not enabled by default, you must explicitly enable the module in your php.ini).

I’m using fwrite because I’m actually writing/reading directly to sockets (working on a simple SMTP client in PHP). The same rule applies for the standard email php function: the encoded-word syntax is expected for the subject or other header field values if they contain UTF-8 chars (but not for the body).
If you are not happy with the base64 encoding you can use imap_8bit function for the quoted-printable encoding, like this:

1
$subject="=?UTF-8?Q?".imap_8bit($subject)."?=";

Hope this helps. Good luck!

țepe de black friday?

Atentie la ce cumperi azi (23 noiembrie, black-friday) din Romania, “graba strica treaba”. read more

Televizoare destepte – clatite nu fac, in rest cam tot ce vrei…

Ma uitam de curiozitate dupa un televizor cat de cat ok la pret, ma gandeam la un LCD sau poate chiar LED. Si cum mai uitam eu asa alene, ba in stanga, ba in dreapta, gasesc minunatia asta. read more

Procesor Intel i3, i5, i7: placa video? cine mai are nevoie…

Cu cateva luni in urma am reusit sa-mi schimb systemul complet trecand pe un procesor i5-2500K SandyBridge si, desi tinta mea nu a fost de a avea un system de gaming, am putut rula orice joc din 2008-2011 fara a avea nevoie de o placa video, totul la o calitate impresionanta, fara dead-lockuri si timp prea mult stat in loading screen-uri. Chiar nu ma asteptam sa pot juca Rage pe full graphics quality doar cu procesorul. read more

Unlocking Windows Phone 7 and updating to mango (beta2)

THE GOOD NEWS

The first Windows Phone 7 jailbreak has been released along time ago and its called ChevronWP7, it has been developed by well known and respected Microsoft community enthusiasts Rafael Rivera, Long Zheng and Chris Walsh. ChevronWP7 will allow anyone to unlock a WP7 device for developing purpose, giving you the possibility to install and run your won software without a developer account. read more

Google+ Invites For Free: Get’em Quick!

The new Google’s social networking site is up and running in beta stage for some time now, as you expected is invitation based. Scams are all over the net trying to make a buck out of this. Try searching amazon for example, $100 for a Google+ invitation, wtf? Are you for real? read more

Ia-ti un SSD, chiar merita!

Ziceam mai demult ca prefer 1TB spatiu ieftin decat un SSD, ziceam asta fara a avea experienta unui SSD. Dar acum, dupa ce am reusit sa pun mana pe un SSD si sa-l testez mai bine, imi schimb parerea total: SSD-ul isi merita investitia pe deplin! Nu am crezut ca diferenta o sa fie chiar asa de vizibila. read more