martedì 18 dicembre 2012

File di metadati non è stato trovato in un percorso di soluzione con spazi evasi


Dopo un breve scambio di amichevoli ma accusatorio cross-continentali messaggi, ho imparato qualcosa di nuovo su progetti. NET oggi. Vorrei iniziare con i sintomi come questa è la prima cosa che ho su Google e come ho il sospetto gli altri troveranno questo e salvare se stessi un po 'di dolore in futuro.
Diciamo che una soluzione come questa:
Soluzione con due progetti
Si tratta di un marchio newie a destra, fuori dalla scatola per dimostrare il problema. I riferimenti web del progetto il progetto ClassLibrary come riferimento al progetto . In altre parole, il file di progetto contiene qualcosa di simile a questo:
< ProjectReference Include = " .. \ ClassLibrary \ ClassLibrary.csproj " >
  < progetto > {705479f2-2820-44ea-A983-f03c70ae0754} </ Progetto >
  < nome > ClassLibrary </ Nome >
</ ProjectReference >
Fin qui, tutto bene. Tuttavia, quando si va a costruire diventa decisamente infelice:
Costruzione di errore: file di metadati non è stato trovato in un percorso di soluzione
Ho provato tutti i trucchi abituali; pulire la soluzione, rimuovere quindi aggiungere il riferimento, la verifica diagnostica costruire produzione e, naturalmente, esercitato il lancio obbligatorio di abuso. Niente. Non sarebbe costruire in Visual Studio né sarebbe costruire dal comando in diretta via msbuild. L'errore circa la DLL mancante dal progetto di riferimento è rimasto.
Tuttavia, sarebbe costruire sul server di build. E sarebbe costruire sul computer di un collega. E sarebbecostruire sulla mia macchina. Semplicemente non costruire sulla macchina ho voluto.
Alla fine ho controllato di nuovo fuori del controllo del codice sorgente in un altro percorso sulla macchina originale e come su questo punto - ha costruito! Questo è quando sono emersi sospetti sul nome percorso, che era sfuggito spazi.
Ora gli spazi non sono il mio solito modo di nominare percorsi di soluzione e in spazi fatto a tutti sono un po 'di un no-no nel mio libro, perché esattamente questo genere di cose. Quello che era successo era che qualcun altro (no, davvero, questo non è uno di quelli "Ho un amico con un problema" le cose, è veramente stato qualcun altro) aveva deciso di assegnare un nome al percorso di questa soluzione esiste all'interno di Subversion con una spazio. Nel tentativo di fornire una certa assistenza veloce con un problema, avevo semplicemente navigato il percorso nel browser (grazie VisualSVN Server ), e copiare l'URL. Il browser aveva giustamente sfuggito il percorso per il contesto URL in modo gli spazi sono stati convertiti in un 20%.Quando poi ho incollato il percorso su TortoiseSVN per il check-out, la convenzione di denominazione predefinita creato la directory checkout con lo stesso nome del URL del repository ed è lì che tutti i problemi sono iniziati.
È interessante notare che Visual Studio è piuttosto esplicito circa la sua antipatia per il carattere di escape (o più precisamente, il carattere%) se si tenta di creare una nuova soluzione contenente il carattere incriminato:
Caratteri non consentiti in una nuova soluzione di Visual Studio
E 'un peccato che non si può anche dire che quando si apre un esistente soluzione! Ma ciò che, inoltre, non vi dirà è che se si crea una nuova soluzione in un percorso che già contiene un carattere non valido, lo stesso errore di compilazione si verificherà. Soluzione di novità, avete appena inserito da qualche parte sotto un nome di cartella ostile. Piuttosto confuso, se mi chiedete.


mercoledì 28 novembre 2012

L'hacking è un gioco da ragazzi - SQL injection con Havij da 3 anni


Sai cosa mi colpisce circa un sacco di hack che abbiamo visto ultimamente? Sembra semplicemente troppo facile . Voglio dire che stiamo vedendo un gran numero di attacchi (un numero senza precedenti, da alcune figure) e troppo spesso l'autore del reato è un bambino.Non voglio dire che, in un senso relativo a me stesso man mano che invecchio, voglio dire,letteralmente un bambino .
Il problema, naturalmente, è che molti di questi "hack" sono diventate semplice punto e affari scattare utilizzando strumenti liberamente disponibili. Nel caso di SQL injection, strumenti come Havij significa che, anche se non si conoscono gli indici ai tuoi regole di confronto o le UDF dai tuoi DMV, fintanto che è possibile copiare e incollare un URL che può essere un istante "hacker" .
In realtà mi sa che è così facile che anche il mio 3 anni può essere un hacker di successo. E 'venuto fuori che non è troppo lontano dalla verità:
Vedi come è facile? Andiamo avanti e lascia che ti dia un po 'di contesto in giro per la facilità e la prevalenza di questi attacchi. In primo luogo, ricordare che l'iniezione rimane nella posizione numero uno nella OWASP Top 10 . Ciò che rende particolarmente pericoloso SQLI è che è classificato come sia "facile" da sfruttare (e credo che ora possiamo tutti d'accordo) e con un impatto di "gravi".
Quanto è grave? Come nell'esempio precedente, SQLI può essere facilmente utilizzato per accedere alle credenziali archiviate in un sito vulnerabile e anche se queste sono state salate e hash, faranno facilmente cadere vittima di un attacco di forza bruta . L'anno scorsoè stato SQLI che ha portato verso il basso Sony Pictures ed è stato anche presumibilmente SQLI che era dietro violazione LinkedIn quest'anno . E 'molto, molto diffusa.
Un rapido sguardo attraverso YouTube e vedrete tutorial come SQL iniettando Havij che si distingue non per il suo contenuto , ma piuttosto per il suo presentatore . Così come il ragazzo che suona come se fosse di circa 15 anni, è anche chiaro che ha un'idea molto poco di quello che è un database SQL o anche come Havij funziona realmente. Questa non è una critica del ragazzo di per sé, è semplicemente un'osservazione su come gli strumenti accessibili come Havij sono. YouTube è piena di esempi simili.
Ora tenere a mente che Havij è uno strumento che "aiuta penetration tester" e in effetti ITSecTeam chi rende il prodotto è una società di sicurezza legittimo. Ma - e questo è un grande "ma" - fare una rapida ricerca su YouTube e non troverete troppi video di test di penetrazione e non troverete molti commenti da parte di persone con una più ampia vocab di Ari. No, questi sono i ragazzi solo in cerca di distruggere e prendere tutto il possibile da siti web vulnerabili.
Naturalmente Havij non è l'unico strumento di questo tipo, prodotti come sqlMap sono estremamente popolari e in questo caso, anche open source. A differenza Havij è puramente riga di comando basata (probabilmente un po 'più complicato per un anno 3 anni che non è in grado di leggere ancora), e anche a differenza Havij il pubblico commentando il via YouTube e altri forum è un po' più, beh, maturo.
E 'interessante osservare il modus operandi di come questi strumenti vengono utilizzati. In questo video su Come utilizzare Havij stiamo prima volta mostrato come sbloccare la versione Pro con una chiave di cracking poi come l'autore ha una lista di "Dorks" - chiaramente Dorks Google - con modelli di URL potenzialmente vulnerabili. Ciò equivale a niente di più che gli URL con una stringa di query chiamato "ID". Questi ragazzi sono semplicemente pesca a strascico Internet, che punta a Havij URL potenzialmente vulnerabili e dando un colpo. Quando non funziona faranno solo passare a quella successiva.
E questo è l'ultimo bit di comprensione vi lascio con, essendo un obiettivo non significa essere una grande multinazionale o di sostenere una causa che non si concilia con hacktivisti Né significa che presenta una sorta di rialzo finanziaria a coloro che può rompere la vostra sicurezza. No, essendo un obiettivo significa essere su Internet. Fine della storia.

martedì 6 novembre 2012

Come il tuo sito web è in fase di pwned mentre non siete in cerca


Chi ci hacking? Come siamo (come sviluppatori) rendendo possibile tutto questo? Quali sono alcuni dei difetti più comuni che stiamo costruendo nel software? E che cosa è "pwned" comunque?!
Tutte queste domande e molto di più venire e ottenere risposta nella presentazione che ho fatto per Sviluppatori Developers Developers! a Sydney qualche mese fa. Fortunatamente la brava gente SSW stato abbastanza gentile da registrare e molto professionalmente producono un certo numero di sessioni poi renderli disponibili attraverso il loro canale TV SSW.
Nonostante i responsabili della struttura per conferenze facendo del loro meglio per emulare una sauna svedese per l'avviamento del calore fino a 11, sono stato molto contento del modo in cui la presentazione è andata. Per coloro che intorno a Sydney, sarò tenere una conferenza in uno stile simile al Web Conference Sud la prossima settimana con gran parte del nuovo materiale.
Un'ultima cosa - ho bisogno di dare un po 'di credito a Mikko Hypponen per il materiale relativo alle tre fonti di hacker (criminali, hacktivisti e governi). Sono stato ispirato dal suo discorso TED dal titolo Combattere virus, Difendere la rete dove si fa riferimento a queste minacce tra molti altri osservazioni perspicaci circa il panorama della sicurezza on-line. In realtà mi sono ispirato per la maggior parte delle cose Mikko dice e il modo in cui pronuncia il suo messaggio in modo fatevi un favore e controllare il suo materiale.


lunedì 5 novembre 2012

5 modi per fare controllo del codice sorgente molto, molto male


La settimana scorsa, con l'aiuto dei bravi ragazzi di Red Gate, ho creato una piccola competizione per dare via 5 licenze del loro molto eccellente controllo del codice sorgente SQL prodotto. I criteri di ingresso era semplice - condividi la tua esperienza più dolorosa che avrebbe potuto essere evitato utilizzando controllo del codice sorgente.
Molte storie dolorose emerse ma ho pensato che vale la pena condividere e commentare i 5 vincitori, come ho sentito questa volta il dolore e più volte negli anni passati. Così, godetevi queste storie e, auspicabilmente, portare via un po 'di pepite di conoscenza che potrebbe aiutare a evitare le trappole stesse in futuro.
Per i vincitori: si spera tali licenze saranno contribuire ad alleviare i dolorosi ricordi di errori passati! Sarò in contatto con i premi a breve.

1. Controllo del codice sorgente tramite CTRL-Z

La prima storia arriva per gentile concessione di MyChickenNinja e fa male letteralmente la testa per leggere! In questo caso particolare, le applicazioni sono stati sabotati da un ex-dipendente, che sta andando sempre essere doloroso, ma almeno ci sono di solito più mezzi di ristabilire il codice, se non i dati.
Il primo problema era backup che erano 3 settimane che in sé è una lezione - sono i vostri ambienti effettivamente eseguito il backup? Torneremo a quello di altre storie poco, la Pearler reale era il quasi-source controllo via via di CTRL-Z:
Corsero il loro codice, che hanno aggiornato costantemente, come il loro ambiente di produzione e usate Ctrl-Z per annullare le modifiche cattivi.
Ora, questo è seriamente mindboggling - cosa succede se l'applicazione che ha fatto la modifica è chiusa? O anche a PC spento? E appendere -? Ti ha appena detto hanno usato l'ambiente in cui si cura il codice come il loro ambiente di produzione UNDO NON CONTROLLO FONTE!

2. Basi di dati multiple e dolori di integrazione

La seconda storia è tramite Brandon Thompson dove ha avuto il dispiacere estremo di lavorare in un ambiente con molte fonti della banca di dati in fase di sviluppo attivo e nessun processo di integrazione reale al di là Yakka duro . Questo significava che fare con i backup del database multipli tra cui un gruppo si trova in mare aperto:
Il nostro team di sviluppo è stato in mare aperto, in modo che anche avuto una propria serie di banche dati che non ho mai visto, ma che avrebbero mandato su file con le modifiche da applicare ai nostri ambienti di sviluppo.
Quello che trovo più doloroso di questo è il lavoro manuale coinvolta semplicemente per chiunque voglia giocare bene insieme. Questo è lo sforzo che non va in innovazione o qualsiasi tipo di attività a valore aggiunto come la costruzione di nuove caratteristiche, è lo sforzo che si traduce in nulla da mostrare per esso al di là di codice che è stato già scritto in realtà di lavoro!
Controllo del codice sorgente è uno di quei grassi che si limita a tenere tutto funziona senza problemi insieme. E 'la stessa cosa con un ambiente di integrazione continua e la possibilità di distribuire automaticamente. Si tratta di "pane e burro" di sviluppo del software e devonoessere il fondamento su cui ogni squadra di successo scrive il codice.

3. A seconda del backup non testate

Il prossimo è Barry Anderson che ha realizzato un dolore che molti di noi hanno sperimentato prima, non essere in grado di ripristinare dal backup. Infatti in caso di Barry, i backup non era ancora accaduto per i mesi scorsi che di per sé, era male, ma è chiaro che coloro che dipendevano i backup, inoltre, non erano a conoscenza di un tale controllo critico.
Sicuramente c'è una buona ragione per tale controllo? Barry spiega:
Il nostro manager (non la squadra di archiviazione (!)) Poi ci ha detto che non c'era né il tempo né lo spazio per ripristini di prova!
Backup è una cosa, ma non meno importante, essere in grado di ripristinare da tali copie di backup è altrettanto importante. Recentemente ho avuto una esperienza nella configurazione di un certo numero di nuovi ambienti in cui sono stati i backup dovrebberoaccadere, ma semplicemente non lo erano. Solo insistendo su un funzionamento a secco di ripristino è stato il problema emerso. Per molte altre persone, il problema è emerso quando sono in realtà cercando di recuperare da un grave problema di perdita di dati. Verifica il tuo backup e ripristino gente e nessuno fiducia!

4. Lo strumento di unione umana

Da Graham Sutherland arriva una storia di uomo che fa lavoro di macchina:
Abbiamo avuto solo un paio di sviluppatori, e ognuno aveva una copia di tutto il progetto sul proprio disco. Ogni volta che un cambiamento è stato quello di essere spinto, abbiamo scaricato una copia del codice sorgente del dev lead (il suo codice di sviluppo in tempo reale) e utilizzato diff per identificare le modifiche, quindi aggiornato manualmente. Riga per riga. Tutto a mano.
Per quanto strano possa sembrare, in realtà ho visto fare prima, quando il controllo di origineha esiste! Perplesso sul motivo per cui un solo membro del team in mare aperto sembrava commettere, una discussione inglese maccheronico seguì nel corso della quale la logica è stato spiegato: lo sviluppatore principale necessario per verificare il lavoro degli sviluppatori di altri prima di essere commesso. Di sola andata "discussione" in chiaro, diretto inglese australiano seguito rapidamente.
Questo è davvero analoga a quella precedente punto di avere più database da integrare, abbiamo la tecnologia per risolvere questi problemi! Ogni volta che un essere umano si impegna in qualsiasi intensità di lavoro, durante il processo per fasi successive di sviluppo del software, è davvero di fermarsi e chiedere "C'è un modo migliore"? Di solito c'è.

5. Tagliare e incollare versioni

Storia di Robin Vessey è in risonanza con me perché è la forma più comune di quasi-VCS in corso, di taglio (o la copia) e incolla in nuove posizioni. Spesso il modello comporta effettivamente duplicare la directory che contiene il codice di denominazione poi la copia con una data o qualche altra forma di identificatore per indicare un periodo di tempo.
Nel caso di Robin, che stava cercando di spostare una struttura di directory in una rete:
È semplice ma efficace. Ho fatto un copia e incolla di un albero di directory, tutto ciò che, attraverso la rete ... i file lasciato il mio fianco, non sono mai arrivati ​​dall'altra parte, ancora non so perché.
Devo ammettere, mi avvicino ogni taglia e incolla file dell'azione estrema cautela, perché ho ​​visto accadere tante volte anche su un file system locale e tanto meno attraverso le idiosincrasie di una rete.
Il pungiglione nella coda della storia di Robin era che non c'erano backup stanno prendendo per il ripristino da perché avevano "fermato il backup di qualche tempo fa, perché non abbiamo avuto più spazio". Chiunque vedere un modello emergente qui?!

Riassunto

Se si lavora senza tutto sia sotto controllo del codice sorgente non è allo stesso tempo un pensiero spaventoso e un ricordo lontano - E smetti di giocare! Scherzi a parte gente, siamo veramente bene e al di là di questo come una professione e ora ci sono prodotti così tanti grandi VCS, servizi ospitati e strumenti di integrazione a disposizione non c'è davvero nessuna scusa per non avere tutto il codice - compreso il vostro database - sotto controllo del codice sorgente.
La maggior parte di questi sono gratuiti, alcuni sono dotati di uscite finanziarie e fatica molto minimale. Se ti è stato detto che non c'è le risorse per farlo (o testare i backup, in questo caso), poi qualcuno proprio non lo capisco. Onestamente, questi strumenti non sono più negoziabili che dare agli sviluppatori una sedia per sedersi e le cinque storie di cui sopra (più quelli formare i secondi classificati), dovrebbe servire come prova di questo.

mercoledì 10 ottobre 2012

La vita senza controllo del codice sorgente - condividere i tuoi momenti più dolorosi e vinci!


Torna verso la fine del millennio e durante le altezze finali del boom delle dot com, mi sono trovato a Londra, la costruzione del UX per il nuovo marchio esclusivamente online banca Cahoot . (Ho poi realizzato il brutto tempo sono stato duraturo è stato, infatti, in estate e in fretta tornò a un inverno mite australiano. Ma sto divagando.) Come molte altre cose Dot Com, i giorni regolarmente allungato in notti e spesso consisteva in abbondanti quantità di entrambi caffeina e birra. Gli errori sono stati fatti.
La squadra che stava lavorando in consisteva di sviluppatori (chiaramente quelli intelligenti), designer (quelli che hanno reso la vita difficile per gli sviluppatori) e copywriter (meno si parla questi, il migliore). In una occasione, quest'ultima ha deciso che, in tutta la loro saggezza, che non ha letto bene che tutti i riferimenti che abbiamo avuto al numero 10 detto, bene, "10". Al contrario, un termine più grammaticalmente (letterario?) Corretta era "dieci". Il mio compito era quello di "fissare" questo in un sito molto grande.
Come tutti gli sviluppatori sanno bene, ci sono alcuni problemi che non possono essere risolti con una ricerca e sostituzione in modo così chiaro la cosa giusta da fare era questa:
10 -> ten
Una testa più chiara (probabilmente uno meno inebriati dalla caffeina e birra), avrebbe previsto la carneficina. Ogni numero sul sito che conteneva un 1 seguito da uno 0 è diventato un po 'dislessico - 110 divenne 1ten, 5.10 divenne 5.ten e 101010 si, beh, si ottiene l'idea. Una delle cose che ho imparato quel giorno è che i siti web bancari hanno un sacco di numeri!
Ma, naturalmente, un fallito di ricerca e sostituzione possono essere facilmente corretti da una ricerca e sostituzione nella direzione opposta:
dieci -> 10
Questo è stato chiaramente il genio puro subito risolto tutto quello che avevo appena rotto.E 'anche portato un altro problema alla mia at10tion. Questo era un problema che può essere risolto solo uno per uno e volete sapere qualcosa su siti di banche? Sono grande. Molto, molto grande.
Picard facepalm
Ma il vero problema - e io sono finalmente venendo intorno al tema qui - è che non abbiamo avuto controllo del codice sorgente, che tutti noi appena finito di lavorare sullo stesso set di file in una cartella condivisa. Sì, controllo del codice sorgente esisteva allora e che avrebbe potuto essere in esecuzione su CVS o Visual Source Safe (non ridete - era buono una volta), ma non siamo stati. Beh, abbiamo tipo di stati, ma era che il controllo fonte più infame di tutti - si potrebbe sapere come CTRL-C seguito da CTRL-V. Copiare la cartella del progetto e dare un nuovo nome. Alla fine della giornata. Se vi ricordate. Il che non lo fai perché hai avuto troppa caffeina e birra.
Oggi abbiamo un fantastico set di strumenti di controllo del codice sorgente a disposizione - molti dei quali totalmente gratuito - e l'idea di costruire il codice senza controllo del codice sorgente è, beh, quasi inconcepibile. Infatti nonostante le mie indiscrezioni precedenti (o forse a causa di essi), sono diventato vicino evangelica sulla necessità di controllo del codice sorgente in tutto ciò che facciamo, anche, che stabilisce il 10 (non "dieci"!) comandamenti della buona gestione controllo del codice sorgente .
Ma per quanto riguarda il database? Tabelle, viste, le autorizzazioni, e dati anche sprocs statici - quante persone pensano di essere "utilizzando controllo del codice sorgente", mentre in realtà si tratta di "controllo del codice sorgente, ma"? Si può davvero soffiare viatutti i vostri ambienti di sviluppo e recuperare tutto ciò che è necessario ricrearlo? Voglio direcompletamente ricreare in modo che l'applicazione in realtà, si sa, funziona! Si può distruggere completamente il database di sviluppo con una singola istruzione mistimed DROP o UPDATE poi subito tornare a una copia sicuramente funzionante?
Ho scritto di controllo del codice sorgente di SQL Red Gate un paio di volte ora di andare indietro di un paio di anni e continua ad essere una componente assolutamente inestimabile di arsenale sviluppatore miei strumenti. Ho scritto sullo strumento di mia spontanea volontà libera, semplicemente perché mi è piaciuto sia l'efficacia e la semplicità - una combinazione rara ma preziosa.
SQL controllo del codice sorgente
Ma ora Red Gate si sono offerti di darmi qualcosa di bello. A dire il vero, hanno offerto di darmi qualcosa di bello per dare a voi - 5 licenze di controllo del codice sorgente SQL che vendono normalmente per circa US $ 400 al pop. Ma non sono del tutto libero, ho bisogno di qualcosa da te in cambio ...
Utilizzando la sezione commenti qui sotto, mi racconti la tua esperienza più dolorosa che avrebbe potuto essere facilmente evitato utilizzando controllo del codice sorgente.
Non deve essere una mancanza di controllo database di origine, che deve solo essere una storia in cui, come me, hai fatto un mondo di dolore per voi stessi, semplicemente perché non hai avuto il giusto strumenti di controllo del codice sorgente.
In una settimana da oggi, scelgo i 5 migliori storie e ogni autore riceverà una versione completa di Source Red Gate SQL controllo.
Venite a 05:00 ora di Sydney il Lunedi della prossima settimana (1 ° ottobre), scelgo i vincitori quindi aggiornare questo post con i nomi. Non dimenticate di commentare con un account che posso usare per entrare in contatto con te se si fanno i primi 5. Particolarmente storie dolorose sarà guadagnare punti extra come storie di volontà in cui il dolore è stato generosamente condiviso con una squadra più grande! Creativamente storie scritte sono un bonus, la decisione del giudice è definitiva e così via e così via.

mercoledì 3 ottobre 2012

10 lezioni per gli sviluppatori web incolte


A chi piace essere trattati come se fossero in un gruppo di minoranza? A meno che non significa che sei in quel gruppo esclusivo di playboy (o ragazza) miliardari, "gruppo di minoranza" spesso finisce con voi di essere ingiustamente discriminati perché non rappresentano la maggioranza percepito. Come nel caso di discriminazione sociale, la discriminazione della tecnologia è spesso il frutto di ignoranza, la gente spesso non comprendere l'impatto delle loro scelte.
Che un sacco di questo si riduce a è la cultura, o più specificamente, la mancanza di consapevolezza culturale. Sto parlando di fare ipotesi sulla base di ciò che uno sviluppatore può detenere personalmente per essere vero, ma nel più ampio contesto globale non è corretto e spesso emargina il loro pubblico.
Nella ricerca di un'esperienza più globale armoniosa on-line, diamo un'occhiata a 10 lezioni relative ad aspetti di sviluppo web con un'inclinazione culturale. Alcune di queste non può essere una novità per voi, ma tutto questo è utile quando si desidera di bel gioco con persone di ogni ceto culturali della vita.

1. Firefox e Chrome il comando il 91% del mercato

No, davvero, lo fanno:
Firefox e Chrome che possiede il 91% del mercato indonesiano
Se sei indonesiana, si utilizza Firefox o Chrome. Queste statistiche provengono direttamente da StatCounter e mentre diversi siti di statistiche vi darà diverse cifre precise, la tendenza è sempre la stessa: Internet Explorer è morto in Indonesia. Questo è in un paese dove il 93% delle persone sono in esecuzione Windows 7 o XP, quindi non è come se fossero tutti su Mac o * nix, semplicemente non utilizzare il browser predefinito del sistema operativo.
Questo è un perfetto esempio di dove conoscere il vostro pubblico è dichiarazioni chiave e coperta realizzati su scala globale sono spesso irrilevanti. Caso in questione: Chrome ora i punti di distacco in IE quota di mercato globale del browser . Solo più punti?! In tutto il mondo, questo è accurato ma è chiaro che se siete interesse è puramente il pubblico indonesiano, le informazioni qui è irrilevante. Il contesto è tutto.

2. Quasi sempre, 8/7 esce prima del 7/8

So che tutti sono a conoscenza di questo già, è solo che spesso lo ignorano, c'è un pezzo davvero importante del mondo che esprime date come gg / mm piuttosto che mm / gg. In realtà se si sta utilizzando gg / mm, sei in una minoranza molto piccola e si è molto probabile sia americano o del Belize, nessun altro paese segue esclusivamente questo modello (anche se un altalena alcuni in entrambe le direzioni):
Formato data per paese
Abbr.B / L / MYMD / DMY / MDYPrincipali regioni e paesi
Appx. pop in milioni
 Ciano
LDMYIndia  (1190),  America Latina  (370), Asia (Centrale, SE, Ovest), la maggior parte di  Europa  (ca. 800), Nord Africa, Australia (20)3200
 Giallo
BYMDCina  (1340), Corea, Iran (80), Giappone (130), Ungheria, Lituania. A causa di ISO 8601  questo è noto anche in altri Paesi.1500
 Magenta
MMDYStati Uniti  (310), Belize310
 Rosso
L, MDMY, MDYFilippine (90), Arabia Saudita (30)120
 Verde
B, LYMD, DMYNepal, Sud Africa, Austria, Portogallo, Svezia, Norvegia, Danimarca110
 Grigio
B, L, MYMD, DMY, MDYCanada (30)30
  Blu
B, MYMD, MDY-0
Il problema non è quale modo per aggirare i giorni e mesi sono rappresentati, la sua ambiguità. Quando si vede nulla al di là "7/8" che potrebbe benissimo essere il 7 agosto che poteva l'8 luglio. Anche se si tratta di un (o Belize) US sito, come faccio a sapere se si tratta di applicare la cultura locale o ha intelligente (in modo esplicito tramite il mio profilo o implicitamente tramite il mio di indirizzo IP) rettificato per le mie impostazioni di localizzazione?
Un sito come 6speedonline.com ottiene questo torto:
6Speed ​​in linea con le date ambigue
Era post di luglio o indietro in febbraio? Senza un giorno superiore a 12 o vederlo rappresentato in una qualche forma di cronologia con gli altri posti, si può solo immaginare.
Un sito come Stack Overflow ottiene questo diritto:
Stack Overflow con le date esplicite
Mesi sono sempre rappresentati con le lettere. Periodo. Si può mettere prima del giorno dopo o il giorno, ma un mese non dovrebbe mai essere rappresentata in modo ambiguo e questo è esattamente ciò che le cifre sono.

3. Il tuo cognome è 40 volte più probabilità di essere 王 di Jones

Ci sono 2.380.000 Jones negli Stati Uniti , ma un enorme 92.880.000王s in Cina (che è "Wang" in caratteri latini). Poi, naturalmente, ci sono molti altri eventi di ogni in altri paesi, ma il punto è che ci sono un grande numero di persone là fuori con nomi contenenti caratteri non romani.
Per noi sviluppatori, riconoscere e accogliere questo è assolutamente fondamentale.Immaginate di andare a un sito web e di essere detto che non è possibile registrare perché il nome non è permesso? Discendenti irlandesi in tutto il mondo sono annuisce dolorosa con questo (O'Sullivan, O'Brien, O'Connor). Il mio governo australiano ha dimostrato questo perfettamente proprio di recente con il nome di alcun problema tecnico apostrofo nel suo portale di e-health.
Ci sono due fronti principali che dobbiamo considerare come gli sviluppatori:
  1. C'è qualche whitelist o blacklist che vieta questi nomi? I nomi irlandesi sono spesso presi a causa di un (non corretta) affermazione è che un nome non può contenere una virgoletta singola (spesso un approccio molto rudimentale a mitigare il rischio di SQL injection).
  2. Può il supporto strato di dati caratteri multi-byte? Se disposizione il database con, ad esempio SQL Server i tipi varchar, probabilmente hai un problema. Buona lettura delle risposte su Stack Overflow in materia quando è necessario utilizzare nvarchar o nchar .
Ma non è solo la Cina si sta per ristorazione con il supporto dei caratteri multibyte, per esempio c'è Д, Ҫ e Ң, che sono tutti cirillico e nessuno dei quali davvero bello giocare in un campo varchar. Naturalmente c'è un aspetto negativo di questa performance saggio , ma ci sono anche un sacco di Wangs là fuori.

4. Windows XP domina ancora il 68% del mercato OS

E 'vero, si è in due volte e mezzo più probabilità di utilizzare l'invecchiamento, decrepito, OS adolescente che è Windows XP rispetto al rivale più vicino. Oh - ma solo se siete nel paese più popoloso del mondo:
Windows XP comandante il 68% del mercato cinese
Ho ipotizzato in passato, motivo per cui la Cina è appesa a XP, ma a prescindere dalla causa, resta il fatto che questo sistema operativo undici anni regna sovrana. Naturalmente, ciò che questo significa anche che si può garantire che il 68% della popolazione cinese non ha IE9 che non bel gioco di XP. No IE9 significa allora non HTML 5, a meno che hanno allontanato dal browser predefinito. Più su quello a breve.
La cosa importante da notare con la tendenza sopra che XP è su una molto graduale declino, stiamo parlando del 10% e un po 'di euro all'anno in più è in realtà aumentato in luglio e agosto. A questo ritmo, XP continuerà ad essere dominante fino intorno al 2015 dove sarà già entrati adolescenza.

5. Dollari non è dollari

Mai pagato $ 30 per un caffè? Può sembrare eccessivo, ma migliaia di persone pagano tutti i giorni a Hong Kong perché $ 1 non vi è solo un valore di circa un ottavo di quello che è in Australia o negli Stati Uniti. Testa a Singapore e $ 1 si arriva a circa tre quarti di quello che sarà "down under", ma poi in base alla quale si è giù sotto - Australia o in Nuova Zelanda - si otterrà un po 'più o un po' meno per $ 1.
Ci sono 35 paesi o territori usando i dollari e il suo valore è sostanzialmente diversa a seconda del contesto. Ogni volta che si rappresentano $ senza contesto non vi è un certo livello di ambiguità su ciò che il dollaro vale la pena e quando si tratta di soldi, l'ambiguità non è mai buona.
Per esempio, ciò che è Ghost in the Wires mi costerà su Amazon?
Amazon mostrando valuta ambiguo
So che Amazon è sede negli Stati Uniti è così dollari americani? Ma so anche che supportano la conversione automatica di valuta , ho fatto girare su e che sto vedendo le cose in dollari australiani? Chi lo sa.
Valute sono dotati di un codice ISO 4217 che rappresenta tale contesto, AUD, HKD, NZD, USD, SGD, ecc non sto dicendo che ogni simbolo $ dovrebbe essere preceduta da tre lettere, ma sicuramente da qualche parte nel contesto di tali costi di cui ha bisogno da apportare cristallo chiaro quale sia il dollaro vale la pena.
Ora diamo un'occhiata a eBay, vedere se si riesce a capire quello che ho pagato per questo articolo:
Ebay thowing esplicito formato valuta
Crystal clear. Nessuna ambiguità, non indovinare. Questo è il modo dovrebbe essere sempre quando il denaro è coinvolto.

6. Paese domini di primo livello fornire contesto

Quando sei in Australia, siti locali utilizzare il. Au TLD.
Nel Regno Unito, è tutta una questione. Uk.
Se sei olandese allora troveremmo di fronte a. Nl.
L'intera idea di codice di paese di domini di primo livello è che danno contesto, quando si vede che il suffisso del dominio è immediatamente chiaro che cosa l'ambito di applicazione previsto del sito è. Il problema è che non tutti sembra voler giocare da tali norme.
Questa pratica sembra essere particolarmente diffusa negli Stati Uniti, che ha un codice di paese perfettamente adatto TLD -. Noi. A titolo di esempi:
usoutdoor.com utilizzando un nome di dominio internazionalizzato
Il nome dell'organizzazione rende il campo di applicazione abbastanza chiaro, peccato per la scelta del TLD. Forse il loro campo di applicazione è veramente internazionale come il TLD implica? Nope:
US all'aperto è stato soddisfare le esigenze degli appassionati di sport sulla neve, acqua e terra del nord-ovest del Pacifico Stati Uniti da oltre 50 anni.
Che ne dici di una catena di ristoranti con sedi nazionali:
Ristorante Mastro utilizzando un nome di dominio internazionale
Ok, forse sono solo proteggere l'internazionalizzazione TLD modo che nessun altro lo afferra e hanno genuina. Noi le versioni che sono stati effettivamente progettati per il loro campo di applicazione. Solo che non fare - non c'è mastrosrestaurants.us e per quanto riguardausoutdoor.us , bene:
usoutdoor.us parcheggiata in GoDaddy
L'. Com TLD è teoricamente internazionalizzata così si può prendere a prescindere dal campo di applicazione di destinazione d'uso, come strano come potrebbe essere per i locali-solo le imprese. Ma poi ci sono esempi come edu, gov e mil... :
NomeEntitàNote
. EdueducativoL'. Edu TLD è limitato a specifiche istituzioni educative, quali, ma non limitatamente a, scuole elementari, scuole medie, scuole secondarie, scuole e università. Negli Stati Uniti, la sua facilità d'uso è stato limitato nel 2001 a istituzioni post-secondarie accreditati da un organismo nell'elenco delle agenzie di accreditamento riconosciuti a livello nazionale  mantenute dagli Stati Uniti Dipartimento della Pubblica Istruzione . Questo dominio è quindi quasi esclusivamente utilizzato da college e università americani. Alcune istituzioni che non soddisfano i criteri di registrazione correnti sono  precorse i nomi di dominio.
. GovgovernoL'. Gov TLD è limitato a enti governativi e le agenzie negli Stati Uniti.
. MilMilitare degli Stati UnitiL'. Mil TLD è limitato all'uso da parte dell'esercito degli Stati Uniti.
Perché sono questi solo negli Stati Uniti? E 'un enigma che probabilmente non regolarmente bisogno di preoccuparsi, ma è insolito lo stesso (mi piacerebbe sentire comprensione sul perché non c'è. Noi su questi).

7. iPhone ha un enorme vantaggio sul mercato degli smartphone

C'è l'iPhone - poi c'è luce del giorno - poi c'è tutto il resto:
iPhone comandare la maggior parte del mercato in Australia
Giù qui in Australia che facciamo attenzione a non molto per tutto il resto . Ok, facciamo solo un pochino con i dispositivi Android guadagnando un po 'più di un punto d'appoggio quest'anno, ma non siamo in sostanza che interessa.
Ora in Cina, è una situazione completamente diversa del tutto . Laggiù l'iPhone langue a solo il 15% del mercato, ma che è in qualche modo comprensibile in quanto tardi dovevano commercializzarlo. L'iPhone ha solo "ufficialmente" è commercializzato in Cina dalla fine del 2009 e anche allora non ha ottenuto wifi. Poi di nuovo, hanno avuto HiPhones per un bel po 'di tempo e no, non ho errato che.
Andate in Brasile e improvvisamente è Nokia e Samsung comandanti due terzi del mercato. Al ritorno verso l'Asia e in India è più come 83% con iPhone che rappresentano solo, beh, in realtà è un po 'difficile da dire, perché è bloccato fino a l'asse x con la Sony, Motorola e Huawei, si sa, i ragazzi che non vogliamo far costruire la nostra rete nazionale a banda larga.
Il punto è che i paesaggi mobili sono estremamente diverse. Telefoni fisici lanciare in diversi paesi su orari diversi e in alcuni casi, non si avvia affatto. Poi ci sono le dipendenze più il vettore prosperità generale della popolazione che tutti portare a tendenze molto diverse in luoghi diversi.
Oh - circa i dati StatCounter - Non ho un grado enorme di fede nella precisione del paesaggio fornitore mobile per una serie di motivi, ma di certo le tendenze sono coerenti con le mie osservazioni personali.

8. Ora zone materia (e non sono universalmente comprensibile)

Il tempo non è il tempo, il mio 4:30 è probabilmente diversa al 04:30, che è ancora una volta diversa da quella della persona accanto. Naturalmente la maggior parte delle persone si rendono conto il mondo è suddiviso in qualche parte circa 40 fusi orari a seconda di quale punto del tempo a cui ti riferisci (ricordate, non sono statiche ). Alla fine, il mondo viene tagliato in segmenti molto irregolari come questo:
Fusi orari nel mondo
Ogni singolo punto nel tempo ha un pezzo nascosto di informazioni che è il fuso orario si riferisce. Senza conoscere queste informazioni nascoste il tempo potrebbe essere male interpretato da ovunque fino ad una giornata intera.
A che ora è che cosa? Voglio dire prendere il seguente esempio :
Forum Android non specificare il fuso orario
È stato questo postato nel bel mezzo della mia giornata? O è americano e che il tempo è in realtà molto presto la mattina per me? Oppure britannica ed è la mia serata? E 'un forum sullo sviluppo Android attraente per un pubblico globale quindi non c'è alcun chiaro presupposto che si può fare sul fuso orario, è del tutto ambiguo.
Torna a Stack Overflow e ancora una volta, lo fanno bene:
Stack Overflow specificando il fuso orario
Ok, si richiede che l'utente attivamente posizionare il cursore sul tempo ma almeno il fuso orario è facilmente rilevabile. Punti extra anche per questo sito veramente globale scegliendoil tempo coordinato universale (che probabilmente sapete come UTC), piuttosto che favorire una sola cultura specifico fuso orario.
Altre volte ha senso rappresentare volte in un modo che è sensibile al contesto per l'utente.In ASafaWeb , mi permettono alle persone di pianificare scansioni a una determinata ora del giorno e in un caso come questo, fa un sacco di senso per consentire loro di specificare il tempo del giorno - non di qualcun altro. Ecco cosa accade nel profilo utente:
ASafaWeb consentendo un fuso orario a scelta
Tutti questi fusi orari uscire dalla classe TimeZoneInfo in. NET che significa che è morto facile da convertire gli orari locali di UTC e viceversa mentre ancora ottenere l'ora legale a destra ( con poche eccezioni dispari ). Questo ultimo punto è importante e ci sono un sacco di idiosincrasie e le instabilità intorno a come i fusi orari sono strutturati in modo che davvero non si vuole essere manualmente costruzione di questi da soli.
A proposito, non farlo:
Mailgun mostrando fusi orari dispari
Questo è Mailgun di implementazione ed è, uh, strano. Sì, sì, lo so che è l'elenco dal database di tz , ma non ha alcun senso per la maggior parte gli esseri umani. Non c'è fuso orario in Australia per "Sud" o "Ovest" o un qualsiasi numero di centri regionali che lista. Le sette fusi orari per l'Antartide più in alto nella lista sono anche un po 'strano! Non è solo l'Australia, ci sono fusi orari per le decine e decine di "America": informazioni e altri nomi strani. In breve, mantenere questi pertinenti!

9. Non deprioritise tuoi pubblico internazionale

A volte, i servizi online sono progettati per colpire un pubblico molto specifico geografica. Ad esempio, un negozio di alimentari può assumere un pubblico nelle immediate vicinanze - in realtà è probabilmente preferibile - di prendere alcune scorciatoie e assumere un pubblico locale, in contesti come la pagina di contatto:
Woolworths che mostrano informazioni mirate a livello locale
Supponendo che si sta chiamando da dentro i confini nazionali, questo è bene, e gli orari di apertura implicano chiaramente l'ora locale e quindi non abbiamo avuto problemi.
Ma prendere un servizio come il molto eccellente IFTTT (Se questo poi che), che permette di orchestrare l'interazione tra un sacco di diversi servizi autonomi on-line. Chiunque può iscriversi per IFTTT, è gratuito, e 'in alcun modo destinati a un Singolo Audience geografica e in effetti è progettato in modo tale che chiunque ovunque può iniziare a lavorare molto rapidamente. Ma c'è un problema quando si crea un canale di Data e ora:
IFTTT ordine di priorità degli Stati Uniti fusi orari
Perché, quando si torna con la mente a quei 40 fusi orari, sono in otto aggregata insieme all'inizio del tutto fuori del loro sequenza cronologica naturale? Perché sono americano. Ora che sarebbe del tutto ok se IFTTT era un sito americano - ma non lo è. Sfortunatamente, ciò significa che questo (non) servizio molto eccellente polarizza il pubblico, o sei americano o sei un secondo cittadino usabilità classe.
Naturalmente il contro-argomento sarà "Oh, siamo prevalentemente utilizzato da persone negli Stati Uniti ". Gli americani sono molto probabilmente la più grande audience unico basato puramente sulla popolazione e la diffusione di Internet dei suoi cittadini combinato con il fatto che i cinesi pubblico (che altrimenti prevalere quello americano su entrambi i fronti un paio di volte) tendono ad attaccarsi al locale siti web. Ma che cosa significa questo vantaggio realisticamente fornire al pubblico degli Stati Uniti? Meno di scorrimento su un menu per una sola volta? E 'un po' di un argomento inutile, perché se si applica l'ordinamento stesso l'elenco a discesa in Chrome, ma inserire i fusi orari degli Stati Uniti nella loro posizione naturale, che appare così:
Fusi orari correttamente ordinati su IFTTT
Ognuno di le voci degli Stati Uniti appare "above the fold" della lista e tutti i fusi orari vivono armoniosamente nel loro ordine naturale. Questo è sempre preferibile indicando chiaramente che il pubblico all'interno del vostro target demografico, ma fuori del paese di scelta dovrebbe ricevere una esperienza declassato UX.

10. Il meraviglioso mondo di 360 Browser sicuro di Qihoo

Io lo prendo da ora che si sta abbandonando le Chromes e le vostre Firefoxes e l'aggiornamento al browser 360 sicuro , giusto? Voglio dire, questo è il browser che è passata da meno del 3% del mercato in maggio al 26% solo due mesi più tardi :
Il Browser 360 provvisoria con penetrazione enorme in Cina
Questa è gente di destra, il suo tempo di nuovo la Cina e nel caso in cui questa è una novità per voi, questo piccolo uomo sta prendendo l'estremo oriente dalla tempesta:
Il logo 360 Browser Sicuro (pressoché identica a Internet Explorer)
Questo è probabilmente un po 'il logo familiare a voi nello stesso modo in cui quando si acquista un'auto a Pechino, una, BYD Riich, ARASH Haima o potrebbe essere un logo familiare. Ma la questione di familiarità a parte, resta il fatto che 360 ha raggiunto un enormepopolarità con alcune fonti citando fino al 57% della quota di mercato già . Ricordate anche che questo è in un paese con gli utenti internet 512M come di oggi, che è più di Stati Uniti, India e Giappone messi insieme (i tre paesi più popolosi di utenti di Internet).
Mentre il pubblico di internet cinese tende ad essere piuttosto indipendente all'interno delle frontiere nazionali (in parte grazie al firewall grande), come sviluppatore probabilmente dovreste porvi la domanda: "Il mio sito bello giocare dal browser attualmente utilizzato da un quarto di un miliardo di utenti di Internet? "

Alcuni consigli pragmatici

Gran parte di questo di questo si riduce a comprendere il target demografico, se si sta costruendo siti web per gli indonesiani si dovrebbe probabilmente essere un approccio diverso da quello che li stanno costruendo per i cinesi. Ma anche se non si è esplicitamente di mira una sola cultura, la consapevolezza della diversità che esiste nel panorama internet è ancora importante per non isolare il pubblico.
Molte volte, giocando piacevole su scala globale toglie nulla dal pubblico primario e ha il vantaggio di non emarginare il resto del mondo. Sarebbe utilizzando un carattere in più le date in modo che non erano ambigue davvero male alla usabilità? Oppure presentare fusi orari nel loro ordine logico davvero rovinare il vostro pubblico degli Stati Uniti? Certo che no, così bello giocare con i vostri clienti, ovunque si trovino - in particolare se sono in Cina!