Skip to main content

Espere as expectativas com o complemento objetivo


Arquivo para julho de 2014 O vídeo embutido aqui, produzido pelo nosso corajoso co-fundador Dave Teare, fala por si. Graças aos incríveis recursos de desenvolvedor do Applersquos no iOS 8, aplicativos de terceiros podem permitir que 1Password preencha logins sem que o usuário deixe o aplicativo. Sim, completo com Touch ID para desbloquear o cofre. Com apenas algumas linhas de código, seu aplicativo pode adicionar suporte a 1Password, permitindo que seus usuários: acessem seus logins 1Password para preencher automaticamente sua página de login. Use o Gerador de Senhas Forte para criar senhas exclusivas durante o registro e salve o novo Login dentro da 1Password. Preencha rapidamente Logins 1Password diretamente em visualizações da Web. Este é provavelmente o que a Irsquom espera mais na iOS 8. Como esta inundação de jogos é tão incontrolável, a Steam tem feito tudo o que pode para abrir os portões e sair do negócio confuso e estressante da curadoria. Isso é absolutamente inevitável. Itrsquos também vai winnow um monte de pequenos desenvolvedores, que donrsquot ter o suco PR para obter notado na multidão. (Pense iTunes app store.) Com tanto produto, oferta e demanda chutes in Indies agora fazer um pedaço enorme (se não a maioria) de seus negócios através de vendas e pacotes, cotovelada uns aos outros fora do caminho para a chance de vender seus Jogo por um dólar ou menos. Ganhando dinheiro rápido por strip-mining seus produtos, glutting coleções de jogos e tornando mais difícil para os desenvolvedores que vêm depois de fazer uma venda. (Eu não estou fazendo um julgamento moral aqui. Ele é a simples conseqüência de uma longa série de calma, decisões de negócios racionais.) Suponha que você é um super micro-desenvolvedor de baixo orçamento como eu. Itrsquos não super-difícil de sobreviver, porque eu posso conseguir vendas suficientes para obter com um marketing pouco barata e publicidade boca a boca. Irsquoll está bem. Suponha que, alternativamente, você é um desenvolvedor AAA enorme com orçamentos maciços. Você pode pagar o marketing maciço necessário para gerar as grandes vendas que você precisa para pagar por seus jogos caros. Vocês vão ficar bem, até que vocês não. Mas suponhamos que você tenha um desenvolvedor de nível intermediário (às vezes chamado de AAA Indie), com 500K-2 milhões de orçamentos. Você tem um problema. Você precisa de publicidade para obter vendas, como palavra-de-boca wonrsquot cobri-lo. Mas você não pode pagar uma grande campanha. A única maneira que você vai transformar um lucro é se você começar o marketing livre enorme de Steam / iTunes colocação e imprensa artigos. O Twitter alega que as chaves do consumidor são necessárias para matar aplicativos usados ​​por spammers, mas o OAuth simplesmente não foi projetado para ser usado para esse fim. Além disso, pode não ser eficiente em tudo, desde spammers usará tokens consumidor de clientes oficiais, e bloqueio de clientes oficiais não é uma opção. Encerrar contas individuais de spammer faz muito mais sentido. Os tokens de consumidor são fundamentalmente inseguros quando usados ​​em um aplicativo cliente. Além disso, solicitar que as chaves do consumidor sejam mantidas em segredo efetivamente mata aplicativos de código aberto. Twitter pede aos desenvolvedores para proteger suas chaves em um ambiente onde os usuários têm controle total sobre o fluxo de execução e acesso ao espaço de endereço completo, por isso itrsquos impossível de impedir a extração de chaves. Este problema é de alguma forma semelhante à decodificação de DVD / HDMI / HDCP. Em algum ponto, o usuário tem que usar uma máquina que irá carregar em chaves de criptografia de memória que será usado para descriptografar o conteúdo protegido. Itrsquos apenas uma questão de tempo e motivação até hackers motivados extrair as chaves e pode replicar o processo de descriptografia. Twitterrsquos usa OAuth para algo que não é feito para. Parece do nosso trabalho que a principal razão para mudar de autenticação básica para OAuth não é a segurança do usuário ou a luta contra spam, mas simplesmente o controle de aplicativos de terceiros. Este post é de 2012, mas os detalhes ainda são interessantes. Então, como você faz isso Três maneiras: Carregá-los por algo que os ajuda a ganhar dinheiro. Carregá-los para uma experiência emocional. Donrsquot cobrá-los, cobrar alguém por ajudar alguém que ganhar dinheiro. Então, o que fazer se yoursecore um desenvolvedor indie Escolha uma estratégia. A maioria parece estar indo com 2, e thatrsquos multa. Mas eu recomendo que você cobra 0 up-front e construir uma conexão emocional forte o suficiente para cobrar mais tarde. Em 1990, Sid Meier tinha lançado jogos de simulador de vôo desde que soubesse como, a pedido de seu chefe e parceiro. Mas a vida de Meierrsquos e o mundo dos jogos de computador ao seu redor haviam mudado tanto desde que os dois homens entraram no mercado em 1982. Meier sentiu o desejo inegável de ampliar seus horizontes como designer, era hora de passar para coisas maiores. Apesar da oposição considerável dentro da própria empresa que ele co-fundou, Meier quebrou o status quo e mudou o curso de jogos de estratégia de computador para sempre. Como os naysayers afundou em seu rastro, ele engenharia sucesso duradouro e conseguiu imortalidade design com um jogo épico baseado em nada menos do que a história da humanidade. Eu nunca entrei em civilização, mas itrsquos fascinante como duradouro tem sido. Personal Audio LLC é uma empresa de escândalo do leste do Texas que recolheu a atenção nacional quando afirmou que tinha o direito de exigir dinheiro de cada podcaster. A empresa estava empunhando uma patente sobre o conteúdo ldquoepisodic, rdquo que disse incluído alguém fazendo um podcast, bem como muitos tipos de vídeo online. Agora, a empresa está tentando se afastar de seu processo de maior perfil contra o comediante Adam Carolla, sem ser pago por um pennymdash mas Carolla wonrsquot deixar o caso cair. Carolla enviou à Ars uma declaração dizendo que a hersquoll continua a buscar contratações contra o Personal Audio, buscando invalidar a patente de que o Personal Audio não pode processar outros podcasters por infração da patente dos EUA 8.112.504. A Lotzi (empresa de Carollarsquos) já cindiu centenas de milhares de dólares em Taxas e despesas para defender-se contra as patentes Personal Audio. Então, se eu entender isso corretamente, Carolla solicitou doações para combater este caso. Personal Audio LLC quer largar o caso agora que theyrsquore contra alguém que arenrsquot assustado. Do jeito que eu vejo, Carolla tem três opções. Um concorda em abandonar o caso, e pagar de volta seus doadores (impraticável). Dois concordam em abandonar o caso, e manter o dinheiro (antiético). Três se recusam a abandonar o caso e gastam o dinheiro da forma que os doadores pretendiam. Adam Carolla se estabeleceu com o podcasting patente troll Personal Audio. Embora o acordo seja confidencial, podemos adivinhar os termos. Isso ocorre porque a Personal Audio enviou um comunicado de imprensa no mês passado dizendo que estava disposto a se afastar de seu terno com Carolla. Portanto, podemos assumir que Carolla não pagou Audio Pessoal um centavo. Podemos também assumir que, em troca, Carolla desistiu da oportunidade de desafiar a patente ea chance de obter seus honorários advogado. O aspecto mais decepcionante do assentamento todayrsquos é como não é surpreendente. Quase todos os réus, não importa quão forte o seu caso, acaba se estabelecendo com o troll patente. Litigar casos de patentes é extraordinariamente caro. Carolla levantou quase meio milhão de dólares e que ainda não teria sido suficiente para financiar uma defesa através de julgamento. No seu podcast ele disse que gastou tudo e mais de 100k em cima dele nas taxas legais e de peritos antes do julgamento. Há uma tonelada de desenvolvedores Mac e iOS na área de Seattle mdash e quase todos os desenvolvedores iOS estão fazendo dinheiro quer através de um salário (eles têm um emprego) ou através de contratação. O único desenvolvedor indie local iOS-só eu poderia pensar era me mdash e mesmo que wonrsquot ser verdadeiro por muito mais tempo, como wersquore trabalhando em Vesper para Mac. 8230 indie desenvolvedores mdash pessoas que fazem todos ou a maioria de seu dinheiro através de produtos que criam e vendem mdash são bastante raros estes dias. A maioria dos desenvolvedores locais eu sei que trabalham em Omni, Black Pixel, ou Apple ou fazer contratação. Mas com como os preços caíram como as pessoas estão agora acostumados a não pagar nada até theyrsquore desesperadamente viciado e precisa do pacote 4.99 de coisas imaginárias que irão levá-los para o próximo nível mdash eu canrsquot recomendar a qualquer pessoa que eles saia do seu trabalho para apenas escrever Seus próprios aplicativos iOS. O mercado de aplicativos está se tornando uma indústria madura, desenvolvida, com uma maior comoditização em relação aos seus primeiros dias. A competição é onipresente, implacável e, muitas vezes, sem vergonha, mesmo em categorias que antes eram nichos sub-radar. Destacar-se exige mais esforço do que nunca, mas os lucros são mais difíceis de obter do que nunca. Os desenvolvedores independentes de iOS indie de tempo integral que fazem a maioria de sua renda das vendas de seus apps, ao invés de consultoria ou outro trabalho relacionado mdash são cada vez mais raros. Pensei que Brent Simmons seria inundado com contra-exemplos quando ele propôs que há muito poucos. Mas ele didnrsquot. Eu também desisti de perseguir a vida indie porque eu queria fazer a mudança para o desenvolvimento móvel, e eu didnrsquot ver muito futuro para desenvolvedores móveis indie. A economia de várias lojas de aplicativos, juntamente com a grande quantidade de software livre, não representam uma imagem ótima para empresas de uma só pessoa construindo aplicativos para consumidores. As vendas ainda não são 0. Na taxa atual, poderia ter apoiado apenas me um pouco mais (em uma renda muito baixa, uma fração do que estou fazendo em um trabalho regular como um programador iOS), mas a escrita está na parede. Eu encontrei algo novo em vez de esperar 6 meses ou um ano quando as coisas poderiam ser muito mais desesperadas. Sua loucura que mesmo trabalhando em outro lugar a tempo inteiro, e fazendo trabalho de farol nas minhas horas sobressalentes, ainda é provável um dos maiores desenvolvedores Indie - que é um sinal triste para todos os desenvolvedores de aplicativos. Um dos principais problemas sistêmicos com a AppStore é que ele cresceu fora de uma loja de música. A música funciona muito diferente do software. À medida que a música envelhece, ela pode se tornar menos popular, mas nunca se torna obsoleta. Há pessoas no mundo que estão ouvindo Mozart, ou Sgt. Peppers, ou London Calling, ou OK Computer (ou inferno, por que não: New Kids on the Block) pela primeira vez hoje e desfrutando dessa música tanto quanto as pessoas que ouviram essas músicas quando eram novas. Mas ninguém está carregando asteróides, ou VisiCalc, ou Doom, ou Word 2.0 e sentindo a mesma maneira que as pessoas fizeram quando esses pedaços de software eram novos. Software doesnt trabalho dessa forma. Você pode sentir a nostalgia, mas você não sentirá a mente-melting awe. A palavra lsquoIndiersquo assumiu uma conotação um tanto mítica dentro da nossa comunidade (consciente ou inconscientemente). Pode assumir a personalidade desse genial engenheiro, trabalhando incansavelmente em seu trabalho, suando os detalhes, tomando as decisões difíceis e depois (depois de muito sangue nobre, suor e lágrimas) emergindo com um produto reluzente. Eles então levar este produto para o mundo e ele começa a gerar ldquopassive incomerdquo suficiente para que eles possam continuar a sua artesanato artesanal. Devo dizer que adoro esta história. Com certeza parece bom. Ele nos permite elevar e aspirar a um ideal bastante delicioso. No entanto, como alguém para quem este título é freqüentemente atribuído posso dizer que a realidade é quase nada assim. Na verdade, não só ninguém está ganhando a vida com a construção de softwares móveis: quase ninguém está até mesmo raspando. Isso é profundamente perturbador. Existem milhões de dispositivos lá fora. Eles fazem coisas incríveis. Aplicativos móveis fazem coisas incríveis, coisas que ninguém esperava. E estes são alguns apps terrific. Se você acha que todas as falhas no software móvel surgem das deficiências dos produtos e / ou seus criadores, então você acha que você pode olhar para as sementes do tempo e dizer que grão vai crescer e que não vai. Mas, falando das sementes do tempo, soa cada vez mais como nenhuma das sementes está crescendo. Uma vantagem de olhar para produtos indie é que itrsquos difícil de fudge: uma grande empresa pode explicar as vendas fracas afastado no produto A porque A ajuda a vender o produto B e B é o que realmente importa. São páginas e números rentáveis ​​Quem sabe Meu palpite é que a Apple não tem idéia, e nós realmente não tenho idéia. Mas se poucos ou nenhum aplicativos de software móvel isolado estão prosperando, wersquove tem um problema real. Foi uma bolha agradável. Ele durou quase quatro anos e alguns de nós fez algum dinheiro decente. Em 2012 eu ganhei mais dinheiro do que ganhei os outros oito anos antes disso combinado. Em 2013 eu lsquoonlyrsquo fez metade dele e eu melhor não falar sobre o ano atual, será metade da metade. As App Stores estão inoperantes. Pelo menos contanto que você donrsquot escrever jogos ou ripp fora de seus clientes. A verdadeira razão pela qual itrsquos tão difícil de vender aplicativos iOS é que os aplicativos iOS são realmente apenas sites. Detalhes de implementação de lado, 95 por cento das pessoas pensam de aplicativos iOS da mesma forma que eles pensam sobre sites. Websites que a maioria das pessoas estão expostas são principalmente promocionais, ad-laden e mais importante, livre. A maioria das pessoas não paga por sites. Um site é apenas algo que você visita e usa, mas não é um pedaço de software, e esta é exatamente a mesma maneira que eles pensam e tratam os aplicativos iOS. Thatrsquos por que os desenvolvedores indie estão tendo um tempo difícil ganhar dinheiro. De uma perspectiva financeira, nas palavras do sábio, itrsquos sido um ensopado tóxico do inferno. Muito irônico para um aplicativo destinado a ajudar as pessoas com despesas. Colocá-lo lá fora e admitir o app tem sido um fracasso isnrsquot fácil, mas é a verdade. A receita do aplicativo mal conseguiu cobrir o custo que paguei por anúncios. Sobre a única coisa boa que você pode ser capaz de dizer é que a magnitude do fracasso financeiro isnrsquot bastante deprimente como alguns outros aplicativos que às vezes não fazem nada, embora eles merecem muito melhor. Irsquoll perca a barra lateral, e eu me pergunto por que a Apple está removendo. Para aqueles que o usam, itrsquos uma maneira conveniente de acessar muito de sua biblioteca de iTunes. De acordo com screenshots publicados em uma variedade de sites, não há nem mesmo um menu drop-down no canto superior esquerdo da janela do iTunes quando a barra lateral está oculto você acessar as várias bibliotecas e dispositivos clicando em ícones na barra de navegação. Itrsquos claro que a Apple está tentando orientar os usuários longe da barra lateral, ea visão companyrsquos álbum padrão é visualmente impressionante. Mas usuários de longa data do iTunes que preferem o layout ldquotraditionalrdquo iTunes podem estar lutando uma batalha perdida com a Apple. Itrsquos grande que a empresa preserva algumas formas de barra lateral e lista de visualizações no iTunes 12, mesmo se theyrsquore mais difícil de encontrar e falta alguma funcionalidade, mas quanto mais a Apple continuará tranquilamente relegando esses layouts antes theyrsquore ido completamente O sidebarrsquos ido, mas o modal Janela de preferências permanece. Irsquom não muito ligado à barra lateral antiga, mas eu achei essencial para ativá-lo novamente no iTunes 11, eo novo design não parece ser uma melhoria clara. Parece ainda menos amigável para aqueles de nós que gostam de navegar por menus ou atalhos de teclado, ao invés de clicar em botões minúsculos, sem rótulo. Translucency em 10,10 é bruta com fullscreen apps (que eu cavar). O que faz essa mancha, blurry sidebar ldquoshowrdquo me Isto parece um ciclo interminável com a Apple. Introduzir uma nova aparência que os valores formam sobre a função, que em muitos casos não parece mesmo bom, não convincentemente tentar justificá-la como útil, gradualmente tom-lo para baixo sobre os lançamentos e, eventualmente, adicionar um novo horror. Wersquove viu este filme antes. Canrsquot apenas ignorar os primeiros passos FLEX (Flipboard Explorer) é um conjunto de in-app de depuração e ferramentas de exploração para o desenvolvimento do iOS. Quando apresentado, FLEX mostra uma barra de ferramentas que vive em uma janela acima da sua aplicação. A partir desta barra de ferramentas, você pode ver e modificar quase todos os pedaços de estado em seu aplicativo em execução. Ceacutedric Luthi escreveu um script útil que usa nm para inspecionar quadros compilados. Minha solução é ter o scroll de inclinação sempre padrão para off, fazer o usuário alternar ele em cada vez que eles querem, e usar a orientação atual phonersquos como o ponto zero quando eles tocam no botão. Criticamente, isso significa que eles podem alternar o botão desligado e ligado novamente para redefinir o ponto zero sempre que quiserem, como se eles mudam de posição enquanto sentado ou na cama. Aparentemente, a Amazon escolheu em vez disso definir isso quando o artigo é carregado pela primeira vez, mas isso nunca funcionará bem o suficiente na prática. Assumi que meu método era de bom senso, mas aparentemente não. A segunda coisa realmente interessante para sair desta entrevista é que, de acordo com Watson, a Apple também está cansado da corrida para a mentalidade inferior e rampancy de livre para jogar. LdquoApple está frustrado, junto com todos os outros, sobre a mentalidade thatrsquos ido rampant em mercados de aplicativos móveis, onde as pessoas donrsquot querem pagar nada, rdquo diz Watson. Eles acham que quatro dólares é uma quantia exorbitante para pagar por um jogo, o que é muito ilógico considerando a maioria dos estilos de vida dos peoplersquos. Theyrsquoll gasta 600 em um iPad, e 4 em um café, gota 20 no almoço, mas quando se trata de gastar quatro ou cinco dólares em um jogo, itrsquos esta decisão alterando a vida. Irsquom frustrado com isso too. rdquo eu donrsquot ver qualquer evidência no artigo que a Apple está frustrado. A Apple literalmente encorajou a corrida para o fundo com a orientação inicial de preços da App Store (99 centavos de dólar ou gratuita). E continua a incentivá-lo através da falta de testes, os tipos de compras no aplicativo que permite e os tipos de aplicativos que ele apresenta. Mas eu acho que existem outros aspectos a este: Apple intencionalmente commoditized apps, e ainda incentiva insustentável aplicação de preços, apesar de publicamente alegando o oposto. Como visto no último exemplo acima, eu criei uma função de operador personalizada, apelidada de operador nil-coalescente. Essa função de operador avalia um valor optionalrsquos a menos que seja nil, caso em que ele é avaliado como um valor de fallback / default. Isso é baseado no operador de coalescência nula em C, que é formado por dois pontos de interrogação adjacentes (). Como o Swift não permite que as funções de operador personalizadas incluam um ponto de interrogação, optei por dois pontos de exclamação adjacentes (). Eu penso nisso como ldquoIf o opcional não pode ser desempacotado (porque itrsquos nil), em seguida, use este valor instead. rdquo O operador coalescing nil (a. b) desempenha um opcional a se ele contém um valor, ou retorna um valor padrão b if A é nulo. A expressão a é sempre de um tipo opcional. A expressão b deve corresponder ao tipo que está armazenado dentro de um. É este comportamento de. Um bug eu não sei, provavelmente não. Você poderia preferir que ele se comportasse como o operador ternário bruto, ou não compilar de alguma forma exigindo o tipo de mão direita realmente ser whatrsquos contidas na mão esquerda opcional. Mas você também poderia dizer itrsquos se comportando corretamente, com base em como funciona a linguagem, e você pode até precisar que ele se comporte dessa maneira em alguns cenários. De qualquer maneira, itrsquos um estudo de caso útil se você planeja implementar uma função genérica que leva opcionais você mesmo. Em suma, o problema com as pessoas perguntando o que eles precisam, é que eles usaram apenas o seu cérebro para descobrir o que eles precisam. É muito mais poderoso usar também o cérebro da pessoa do outro lado da mesa. Então, da próxima vez que você estiver em uma negociação, em vez de indicar o que você (acho que você) precisa, ou mesmo perguntando a outra parte o que eles (acho que eles) precisam, em vez disso perguntar: ldquoWhat problema você está tentando solverdquo Observe que, O software de pré-lançamento ou o software beta ainda não foi comercializado pela Apple, ele pode conter erros ou imprecisões e pode não funcionar tão bem quanto o software comercialmente lançado. Certifique-se de fazer backup do computador usando o Time Machine antes de instalar este software de pré-lançamento e instalá-lo somente em máquinas que não sejam de produção ou em máquinas que não sejam críticas para o negócio. Sim, o software de pré-lançamento é informação confidencial da Apple. Por exemplo, não instale o software Apple de pré-lançamento em qualquer sistema que você não controle diretamente ou que você compartilhe com outras pessoas, não publique blog, não publique tiros de tela, nem publique publicamente informações sobre o software Apple de pré-lançamento. - release Apple software com ou demonstrar a outros que não estão no OS X Beta Program. Para maior clareza, se a Apple divulgou publicamente informações técnicas sobre o software de pré-lançamento, então ele não é mais considerado confidencial. A primeira compilação pública de Yosemite é a mesma recebida por desenvolvedores Mac registrados no início desta semana. Os desenvolvedores que estão testando o Yosemite estão em uma trilha diferente do que os usuários regulares, no entanto, e ambos os grupos podem receber atualizações diferentes em momentos diferentes, enquanto os testes continuam. Os desenvolvedores da Apple sabem usar o rastreador de bugs do radar de companyrsquos para arquivar bugs, mas usuários normais não precisam. Em vez disso, a Apple solicitará aos usuários que enviem feedback e comuniquem bugs por meio do aplicativo Feedback Assistant, que será instalado juntamente com o Yosemite em todos os sistemas de teste beta. Tal como acontece com versões anteriores do OS X, itrsquos não é difícil criar uma unidade de instalação inicializável a partir do instalador beta Yosemite, embora os processos tenham mudado ligeiramente desde Mavericks. Eu mostro-lhe como, abaixo. Itrsquos limpo para obter um primeiro vislumbre de um novo sistema operacional. Mas a maioria dos usuários donrsquot realmente precisa disto, então pense com cuidado se você faz. Se você decidir instalá-lo, certifique-se de fazê-lo com segurança. Desculpe, seu mal está errado. Seu aplicativo pode ser compatível com a versão beta mais recente do Yosemite, mas alegando que itrsquos compatível com Yosemite é enganosa. Até o GM 8211 o mestre de ouro, a versão final do lançamento 8211 é lançado, ninguém pode ter certeza de que seus aplicativos são compatíveis com um sistema operacional. Em geral, a grande segurança do iOS foi comprometida pelo design Apple8230by. Eu não tenho acusado a Apple de trabalhar com a NSA, no entanto, eu suspeito (com base em documentos liberados) que alguns desses serviços podem ter sido utilizados pela NSA para coletar dados sobre potenciais alvos. Eu não estou sugerindo alguma conspiração grande há, no entanto, alguns serviços em execução no iOS que shouldnrsquot estar lá, que foram intencionalmente adicionado pela Apple como parte do firmware, e que bypass backup criptografia ao copiar mais de seus dados pessoais do que nunca deve vir Fora do telefone para o consumidor médio. Acho que no mínimo, isso justifica uma explicação e divulgação para os cerca de 600 milhões de clientes que estão executando dispositivos iOS. Ao mesmo tempo, este não é um dia zero e não alguma emergência de segurança generalizada. Meu nível de paranóia é tweaked, mas não enlouquecendo. Minha esperança é que a Apple irá corrigir o problema. Nada menos, nada mais. Eu quero esses serviços fora do meu telefone. Eles não pertencem lá. Zdziarski disse que o serviço que mais preocupa é conhecido como com. apple. mobile. filerelay. Ele exibe uma quantia impressionante de datamdashincluding dados de conta para e-mail, Twitter, iCloud e outros serviços, uma cópia completa do livro de endereços incluindo entradas excluídas, a pasta de cache de usuário, logs de posições geográficas e um despejo completo do User photo albummdashall sem exigir que uma senha de backup seja inserida. Ele disse que outros dois serviços chamados de com. apple. pcapd e com. apple. mobile. housearrest podem ter usos legítimos para desenvolvedores de aplicativos ou pessoas de suporte, mas também podem ser usados ​​para espionar usuários por agências governamentais ou até mesmo exilados jilted. O serviço Pcapd, por exemplo, permite que as pessoas monitorem sem fio todo o tráfego da rede que entra e sai do dispositivo, mesmo quando ele não está funcionando em um desenvolvedor especial ou modo de suporte. Housearrest, entretanto, permite a cópia de arquivos e documentos sensíveis do Twitter, Facebook e muitas outras aplicações. Zdziarski disse que os serviços não são fáceis para qualquer um abusar, tornando improvável que hackers possam explorá-los em larga escala. Ainda assim, ele disse que as funções estão ao alcance de pessoas tecnicamente conhecedoras que têm acesso a um computador, carregador elétrico ou outro dispositivo que já tenha sido modificado para emparelhar digitalmente com um iPhone ou iPad direcionado. Durante o processo de emparelhamento, o iDevices cria um arquivo contendo um conjunto de chaves digitais. Qualquer pessoa com acesso a esses arquivos pode fazer quase livre uso dos serviços, muitas vezes sem fio, até que o iPhone ou iPad sofre uma reinicialização de fábrica. A empresa também reiterou sua posição de que não compromete seus sistemas com a finalidade de fornecer esses pontos de acesso às autoridades: ldquo Como dissemos antes, a Apple nunca trabalhou com qualquer agência governamental de qualquer país para criar um backdoor em qualquer um de nossos produtos Ou serviços. Embora essas declarações possam ser destinadas a amenizar os receios sobre as implicações de privacidade desses sistemas, elas são mais difíceis de classificar como negativas categóricas neste caso. Por um lado, a Apple ainda não explicou por que alguém precisa da amplitude de informações que essas ferramentas parecem fornecer acesso, nem por que esses serviços, se de fato para uso diagnóstico, não são apresentados para os usuários optarem. No caso de ambientes empresariais em que dispositivos são fornecidos por uma empresa, os usuários geralmente são informados sobre o acesso que os departamentos de TI têm a seus dispositivos. Mas, quando falamos sobre o público em geral, tal advertência não é dada ou deve ser necessária. A Apple tomou uma postura firme sobre a privacidade, e itrsquos decepcionante para ver a empresa não totalmente e de forma transparente explicando por que esses sistemas têm a gama de acesso que eles fazem, por que eles contornar os processos de segurança da própria empresa colocada no lugar e por therersquos nenhuma maneira Para um usuário facilmente desativá-los. Isso é o tipo de atitude que os jovens esperavam da empresa, e que gostariam de vê-los a par. Em uma resposta da Apple PR aos jornalistas sobre a minha conversa HOPE / X, parece que a Apple poderia inadvertidamente ter admitido que, no sentido clássico da palavra, eles realmente têm portas traseiras em iOS, no entanto afirmam que o objetivo é para ldquodiagnosticsrdquo E ldquoenterpriserdquo. O problema com isso é que esses serviços fornecem dados (e ignoram a criptografia de backup), independentemente de o LdquoSend Diagnostic Data to Applerdquo estar ou não ativado e se o dispositivo é ou não gerenciado por uma política empresarial de qualquer tipo. Portanto, se esses serviços foram destinados a esses fins, o seu acho que eles só funcionam se o dispositivo foi gerenciado / supervisionado ou se o usuário tinha habilitado o modo de diagnóstico. Infelizmente, este não é o caso e não há nenhuma maneira de desativar esses mecanismos. Como resultado, cada dispositivo tem esses recursos habilitados e therersquos nenhuma maneira de desligá-los, nem os usuários solicitados para o consentimento para enviar este tipo de dados pessoais fora do dispositivo. Obviamente, a Apple percebeu que o emparelhamento por si só ofereceu pouca segurança, pois adicionou criptografia de backup a todos os backups como um recurso que também requer o emparelhamento para executar. Portanto, a Apple não deve confiar em emparelhamento como uma solução ldquosecurityrdquo. E por uma boa razão: ele wasnrsquot projetado para ser seguro. Não é dois fatores que não é criptografado com uma paráfrase de usuário é simplesmente ldquosomething você haverdquo que lhe dá completo acesso irrestrito ao telefone. E pode ser tido tão facilmente como copiar um arquivo, ou criado na mosca via USB. Ele pode ser usado se a aplicação da lei apreende o seu computador que pode ser roubado por alguém hacking em que é por todos os meios inseguros. Mas mesmo com o registro de emparelhamento, eu teria esperado que os dados que sai do meu dispositivo para ser criptografados com a senha de backup, à direita Estes serviços ignorar completamente isso. Apple responde em seu site, mas doesnrsquot realmente endereço que as pessoas estão preocupadas (via Cabel Sasser). O episódio é um bom exemplo da forma como o sigilo da marca Applersquos pode voltar a morder a empresa. A Apple pode ter razões legítimas para dobrar esses serviços no iOS, mesmo quando ele não está funcionando em modos especiais de diagnóstico ou suporte. Mas a empresa nunca tomou o tempo para divulgar esses serviços ou para responder a Zdziarskirsquos privadas súplicas para os executivos até que as funções sem documentos se tornou uma notícia internacional. Zdziarskirsquos ponto maior parece ser que os serviços que ele trouxe à luz representam vetores que ex-amantes, housemates, colegas de trabalho e, sim, agências de espionagem pode explorar para ignorar proteções criptográficas destinadas a impedir que dados sensíveis de ser acessado por partes não autorizadas. Até o último fim de semana, esse ponto era apenas implícito. Foi agora explicitado. Exemplo: Yoursquore namoro alguém que usa seu laptop quando ela visita. Sem o conhecimento de você, ela e-mails as chaves do seu laptop. Você quebra. Ela visita o mesmo Starbucks como você. Enquanto yoursquore ler e-mails, o que ela usa o wifi para ativar o File relay e copia tudo fora de seu telefone. Therersquos nenhum alerta, therersquos nenhuma caixa de diálogo. Seu telefone apenas começa a despejar informações. Tudo o que um adversário precisa é de acesso temporário a um único dispositivo confiável uma vez e eles têm as chaves do reino para sempre. Whatrsquos realmente decepcionante é que parece haver um modelo de segurança all-or-nothing aqui. Se eu emparelhar o meu telefone com um computador, então de repente ele tem acesso completo para espionar em mim, instalar ferramentas de monitoramento que pode continuar a ser executado, etc Por que não pode haver uma maneira onde eu posso transferir música / fotos para o meu telefone sem Fornecendo este acesso completo ao dispositivo Yoursquod ser bastante irritado se a porta da frente para sua casa, quando você abriu, também abriu o seu documento seguro, esvaziou a sua carteira no chão e convidou os visitantes a deixar bugging dispositivos para espionar você mais tarde. Além disso, a defesa de ldquojust donrsquot concordar em par seu telefone com um desconhecido USB devicerdquo pode realmente ser complicado. Em um vôo, eu liguei meu telefone na porta USB no encosto do banco para carregá-lo. O telefone repetidamente mantidos perguntando se eu queria emparelhar com algo (que sabe o que era o sistema de entretenimento, talvez). Se eu tivesse batido acidentalmente o botão errado apenas uma vez (em um prompt que apareceu aleatoriamente), meu telefone poderia ter sido de propriedade, e therersquos nenhuma maneira fácil de un-pair. No iOS, pcapd está disponível em todos os dispositivos iOS lá fora, e pode ser ativado em qualquer dispositivo sem o conhecimento userrsquos. Você também não precisa se inscrever em uma política corporativa, e você não precisa estar no modo de desenvolvedor. O que torna este serviço perigoso é que ele pode ser ativado sem fio e não pede ao usuário permissão para ativá-lo para que ele possa ser empregado para bisbilhotar por terceiros em uma posição privilegiada. A Apple está a ser completamente enganosa ao afirmar que o reencaminhamento de ficheiros é apenas para copiar dados de diagnóstico. Se, por dados de diagnóstico, você quer dizer o userrsquos álbum de fotos completo, seus SMS, Notas, Address Book, GeoLocation dados, screenshots da última coisa que eles estavam olhando, e uma tonelada de outros dados pessoais 8211 then sure8230 mas estes dados é longe Natureza muito pessoal para sempre ser necessária para o diagnóstico. Além disso, essa afirmação de que seus dados são respeitados com criptografia de proteção de dados. The pairing record that is used to access all of this data is sent an escrow bag, which contains a backup copy of your key bag keys for unlocking data protection encryption . So again, wersquore back to the fact that with any valid pairing, you have access to all of this personal data 8211 whether it was Applersquos intention or not. Now I hear the argument pop up from a few people who donrsquot understand how all of this works that, ldquoof course you can dump personal info after yoursquove paired, itrsquos supposed to sync your datardquo. Well, no. The trust dialog (the only pairing security there is) was only an afterthought that got added last year after another researcher showed how easily you could hijack iOS 6 by simply plugging it into a malicious charger. In fact, Apple added backup encryption to iOS specifically because they realized peoplersquos devices were pairing with a bunch of hardware that the user didnrsquot trust. If pairing were meant to be a means to security, there would be no need for backup encryption at all. In addition to downplaying the services themselves, Apple has stated that the user must ldquoexplicitly grant consentrdquo for these services to be used. Este não é o caso. The user has had no idea these services even exist at all on the device until recently. There is no dialog asking the user to allow the packet sniffer to run, or to access your photos/contacts/sms/etc to provide to AppleCare (the dialogs yoursquore used to seeing third party apps present are not presented when these services are accessed). This consent simply doesnrsquot exist. The only consent is pushing that ldquotrustrdquo button, which (unbeknownst to the user) gives complete carte blanche access to the mobile device, wirelessly, indefinitely, and bypassing the backup encryption that the user believes is protecting their data from unwanted eyes. In spite of my warnings to the media (via email and telephone inquiries) not to pitch this as a conspiracy theory, they have still managed to completely derail the original intention of this research, and so I think a quick proof-of-concept video will help to clear up any misunderstandings about what this technique can and canrsquot do. Irsquove also outlined the threat models that will and wonrsquot work for this attack. We describe an alternative syntactic binding for C. This new binding includes a completely redesigned declaration/definition syntax for types, functions and objects, a simplified template syntax, and changes to several problematic operators and control structures. The resulting syntax is LALR(1) parsable and provides better consistency in the specification of similar constructs, better syntactic differentiation of dissimilar constructs, and greater overall readability of code. I donrsquot point this out to mock or criticize the authorrsquos errors or misconceptions about what goes into designing typefaces, but rather in fact to marvel at how well Google is selling the story of its design efforts. Therersquos essentially no news in this article other than, ldquoGoogle has revised Roboto using some recent best practices of type design. rdquo And yet the Mountain View company has been able to spin that non-story into a story that claims that the company is fundamentally reinventing typography. When designing Swift we made a key decision to do away with the C preprocessor, eliminating bugs and making code much easier to understand. This is a big win for developers, but it also means Swift needs to implement some old features in new ways. Most of these features are obvious (importing modules, conditional compilation), but perhaps the most interesting one is how Swift supports macros like assert() . autoclosure is great, but I still wish for the power of actual macros. Update (2015-02-11): Part 2 introduces FILE and LINE. Swift does not have a way of capturing the expression as a string, among other limitations from not having macros. It looks similar to an Objective-C object, but theres 16 bytes of metadata instead of just 8 as is the case for Objective-C. It turns out that it is an Objective-C object that can be inspected using the APIs in objc/runtime. h . The other 32-bit value in the reference count is the unowned reference count, which is incremented by unowned references. The object is destroyed when its strong reference count hits zero (which also decrements the unowned reference count), and deallocated when its unowned reference count hits zero. This allows the runtime to verify that unowned references dont dangle, while avoiding the full cost of a nil-ing weak reference. Still, it seems like lot of memory used in each instance for reference counting, when most objects wonrsquot have very high reference counts. Swift memory layout for generics is completely straightforward. The values are laid out just as they are with non-generic types, even if it means that class instances change size. Optionals of reference types represent nil as all zeroes, just like were used to in Objective-C. Optionals of value types append a byte to the end of the value to indicate whether or not a value is present. Protocol types take up 40 bytes of storage, with the last two pointers containing references to type metadata tables, and the rest available for storying the underlying value. If more than 24 bytes of storage is needed, the value is automatically placed on the heap, and a pointer to the allocation is stored instead. A few weeks ago I asked people to predict. without trying it first, what this would print: (If you havenrsquot seen this yet, I recommend that you guess, and then test your guess, before reading the rest of this article.) People familiar with Perl guess that it will print true that is what I guessed. The reasoning is as follows: Perl is willing to treat the unquoted strings two and five as strings, as if they had been quoted, and is also happy to use the and operators on them, converting the strings to numbers in its usual way. If the strings had looked like 2 and 5 Perl would have treated them as 2 and 5, but as they donrsquot look like decimal numerals, Perl interprets them as zeroes. (Perl wants to issue a warning about this, but the warning is not enabled by default. Since the two and five are treated as zeroes, the result of the comparison are true, and the string true should be selected and printed. Of course, thatrsquos not what it does. jazzy is a command-line utility that generates documentation for your Swift or Objective-C projects. Instead of parsing your source files, jazzy hooks into clang and uses the AST representation of your code and its comments for more accurate results. jazzyrsquos output matches the look amp feel of Applersquos official reference documentation, post WWDC 2014. Fortunately, this is where Xcode 68242s asynchronous testing comes in. It allows us to create XCTestExpectation objects, which are not tests but timers. We create expectations with XCTestCase rsquos expectationWithDescription(). which just takes a string to describe what wersquore waiting for. Then, prior to the end of the test8230 method, we call waitForExpectationsWithTimeout(). passing in a timeout period and a completion handler closure. This prevents the test method from exiting until either the timeout expires, or some asynchronous test code calls fulfill() on the expectation object, which unblocks it. Perhaps the most exciting feature added in Xcode 6 is built-in support for asynchronous testing, with the XCTestExpectation class. Now, tests can wait for a specified length of time for certain conditions to be satisfied, without resorting to complicated GCD incantations. The man who spoke to Block is a ldquoretention specialist, rdquo a position Comcast describes as ldquoequal parts detective, ally, troubleshooter, and negotiatorrdquo in job listings. Comcastrsquos retention reps are paid a low hourly wage supplemented by a monthly commission that depends on how many customers they are able to drag back into the fold. In other words, the incentive structure is really about punishment. Reps start out the month with a full commission, but every canceled product deducts from that amount. Once reps fall below a certain threshold, they get no commission at all. That means a rep could get all the way to the second-to-last day of the pay period only to have a customer cancel four products. Suddenly the rep is below her goal, losing 800 to 1,000 off her paycheck. This reminded me of Joel Spolskyrsquos Measurement article from 2002. (Spolsky cites a book about Amazon customer service by Mike Daiseymdashyes, that one mdashand parts of the book have since been shown to be exaggerated .) A week after the posting of the neediest customer-retention call in Comcast history. the fallout continues, with the companyrsquos Chief Operating Officer telling Comcast employees in a memo leaked to Consumerist that the incident was ldquopainful to listen to, rdquo but that the rep ldquodid a lot of what we trained him8230to do. rdquo Dozens of current and former Comcast employees told The Verge they had to constantly push products, even if they worked in tech support, billing, and general customer service. I use VMware Fusion to test my products on different versions of Mac OS X. This has worked very well over the years. Every time I installed a new version of the OS, I would make a snapshot, and I ended up with a tree of them. At first, snapshots were relatively space-efficient. If space got tight, I would delete all but the leaf snapshots, i. e. Mac OS X 10.7.5, 10.8.5, and the current stable and pre-release versions of 10.9 and 10.10. I thought this was the smart way of doing things, using snapshots to let VMware efficiently manage the storage and share the bits that hadnrsquot changed among multiple OS versions. Unfortunately, I got to the point where VMware was using 108 GB of disk space to store only 27 GB of data. My MacBook Prorsquos SSD was almost full. I thought it would be a simple matter to compact the virtual disk and reclaim the unused space. However, after some research, it looks to me like there is no good way to do this. The General tab in the VMware settings showed that none of the disk space in my virtual machine was reclaimable. I found a post in the VMware forums that describes how to compact a virtual machine, but the first step is to delete all of your snapshots. If I were going to do that, I might as well start a new virtual machine Surprisingly, there does not seem to be any way to export a snapshot as a new virtual machine. I think the best I could do is to boot from each snapshot and clone the disk to a drive or disk image outside of VMware. Unfortunately, there also does not seem to be a way to create a new virtual machine from an existing drive (except that of a Windows PC). There are some command-line tools for creating a new virtual disk from a mounted volume, but I kept getting errors like ldquoFailed to convert disk: You do not have access rights to this file (0xd).rdquo Since the virtual machines are just clean OS installations, I decided it would be easier to just built new virtual machines by reinstalling each OS version. Because snapshots donrsquot work with compaction, I decided to create wholly separate virtual machines for each major OS version. If necessary, I can copy the. vmwarevm packages in the Finder to manage my own heavyweight snapshots. It is then possible to compact the virtual disks: From the Virtual Machine menu, choose Install VMware Tools . A disk will mount in the virtual machine. Run the installer thatrsquos on it. In Terminal (in the virtual machine) enter the command: This will take a while, and the OS will complain about running out of disk space, but eventually it will finish and reboot. After installing Mac OS X 10.7 and using the Mac App Store to update to 10.7.5, my virtual machine was using 18.2 GB. After the above procedure, it shrunk to 9.8 GB. For another virtual machine, I installed Mac OS X 10.8 and updated to 10.8.5 with the combo updater. This brought it to 15.4 GB, which shrunk to 7.1 GB. I have not yet built my 10.9 and 10.10 virtual machines, but it seems clear that the total of four independent ones will not be much more than the 27 GB with snapshots for each major version. Duplicating a virtual machine package in the Finder is actually not much slower than saving a snapshot. And I should no longer have problems with virtual machine bloat, since virtual machines without snapshots can be compacted. So I now believe that there is no compelling reason to use snapshots the way I had been using them. Using separate virtual machines also means that I can run multiple instances simultaneously. Update (2014-08-18): For reasons I donrsquot understand, VMware started reporting the error ldquoThe parent virtual disk has been modified since the child was created, rdquo even though I thought I had made fully independent copies of my virtual machines via the Finder. I am now using the Create Full Clone command, which hopefully will work better. A top Pixar producer reveals in her email that Catmull had in fact flown down to Sony Animation and met with the two co-heads, Penney Finkelman Cox and Sandy Rabins, to rope Sony into the non-recruitment cartel. That meeting presumably took place in 2004, when Catmull emailed Steve Jobs his intention to meet Sony about poaching employees. Catmull admits to what appears to be further criminal behavior, in violation of the Sherman Antitrust Act: An attempt by a top executive to get other executives to agree to secretly fix their employeesrsquo wages and career opportunities. Sources with knowledge of the discussion told Pando that Sony Animationrsquos understanding of the Catmull meeting was very different, and that Catmull had only asked Sony, informally, to let him know in future if they were hiring any Pixar employees. Their different interpretations were born out in their actions: Catmull was still angry at Sony in 2013 and Sony did not join the Pixar-Lucasfilm non-solicitation agreement. Just a few months ago I was thinking to myself that the lead inventor of the Catmull-Rom spline could qualify as a career role model for me in many ways. Not anymore. Now he is a cautionary tale, but in my disappointment I must take caution not to discard everything I learned from him. Creativity, Inc. is still a great book, and I will finish reading it and look to apply lessons from it to my work. The journey of Pixar is still impressive and inspiring to me, and I will allow elements from it to influence how I approach some day (soon) building my own company. The community is creating some incredible analyses and writing about Swift. What I keep asking myself whenever learning and reading about Swift is: how likely is this to change soon This document is an attempt to gather the Swift features that are still in flux and likely to change. In this article, I want to take a closer look at how strings are handled in Swift. I see this as a follow-up to a piece titled NSString and Unicode that I wrote for objc. io a while ago. Please refer to that article for a more thorough explanation of the Unicode features I mention below. I also assume that you have read the chapter on Strings and Characters in Apple700s Swift book. Swift strings do not have a length property. You can use the global countElements() function (which works on any Sequence. including strings) to count the number of Character s in a string. In the following example, countElements() counts the number of characters correctly whereas NSString does not. Because of the differences in what constitutes a character between String and NSString. NSString 700s length property has been renamed utf16count when you access it on a Swift string. Because of the way Swift strings are stored, the String type does not support random access to its Character s via an integer index mdash there is no direct equivalent to NSString 700s characterAtIndex: method. Conceptually, a String can be seen as a doubly linked list of characters rather than an array. Character and range indices are based on the opaque String. Index type, which implements the BidirectionalIndex protocol (an extension of the ForwardIndex protocol). To construct an index for a specific position, you have to first ask the string for its startIndex and then use the global advance() function to iterate over all characters between the beginning of the string and the target position (again, an O(N) operation advance() will simply call succ() several times): Another implication of this design is that String. Index values are not freely interchangeable between strings. I have completely rewritten my article on Strings in Swift from earlier this month. Xcode 6 beta 4 fundamentally changed how the String and Character type handle Unicode characters that are composed of multiple code points.

Comments