Архив за 17 июля 2014 - 8

Британский фонд London Venture Partners объявил о создании нового фонда вместе с разработчиком игр Wargaming, издателем Nexon и CEO разработчика Zynga, пишет РБК. Специализироваться новый фонд Seed Fund будет на инвестициях в разработчиков компьютерных игр.

London Venture Partners (LVP) на раскрывает размер Seed Fund. Управляющий партнер LVP Пол Хейден рассказал РБК, что новый фонд собирается профинансировать 20—25 проектов на ранней стадии, размер инвестиций в каждый проект будет находиться в диапазоне 50—500 тыс. долл.

Читать полностью »

Запись данных в формате JSON

В одной из моих программ понадобилась запись данных в формате JSON. Вкратце — XML-подобный формат, вполне подходит на замену Windows INI-файлам или тому же XML. Удобен тем, что поддерживает массивы и вложенность собственных структур, но при этом не замусоривает файл данных своими тегами до полной нечитабельности человеком. Вот пример файла данных:

{
  "Comment":"My comment",
  "Count":10,
  "DiskParam":
  {
    "DB":10.000000,
    "DBAngle":1.234000
  },
  "Range":true,
  "Blades":
  [
    {
      "Caption":"A",
      "Value":65
    },
    {
      "Caption":"B",
      "Value":66
    },
    {
      "Caption":"C",
      "Value":67
    }
  ],
  "Slots":
  [
    0,1,2
  ]
}

Формат довольно простой, вполне можно работать с ним без всяких библиотек. Поэтому первоначально за запись отвечал примерно такой участок кода:

    fprintf(pOut, "{n");
      fprintf(pOut, "  "Comment":"%s"", Header->Comment);
      fprintf(pOut, ",n  "NumSt":%d", Header->NumSt);
      //Пропущено немного кода
      fprintf(pOut, ",n  "DBMax":%lf", Header->DBMax);
      fprintf(pOut, ",n  "Range":%s", Header->Range?"true":"false");
      
      fprintf(pOut, ",n  "Blades":n  [");
      for(int i=0; i<Header->Count; i++)
      {
        TElement &e=Element[i];
        fprintf(pOut, i?",n    {":"n    {");
          fprintf(pOut, ""Caption":"%s"", e.Caption);
          fprintf(pOut, ","Value":%lf", e.BaseChar);
        fprintf(pOut, "}");
      }
      fprintf(pOut, "n  ]");
      //Пропущено много кода
    fprintf(pOut, "n}");

Корявенько, хотя вполне работоспособно. Но программа активно дорабатывалась, формат данных менялся по 5 раз на дню и остро встала проблема отслеживания всех изменений. Несмотря на некоторое форматирование исходника было тяжело не забыть закрыть какой-нибудь тег или правильно напечатать нужное число пробелов для форматирования уже собственно файла данных. Даже в приведенном фрагменте перед публикацией обнаружилась ошибка, не ставилась запятая между элементами массива.

Решил я этот техпроцесс слегка механизировать и создать микробиблиотеку для работы с JSON.
Читать полностью »

12 заповедей про бэкап, за которые я чуть не заплатил пальцем

В прошлый раз я рассказал вам, не побоюсь этого слова, кровавую историю, как мы срочно спасали сначала инсталляцию, а потом уже и данные. И такие истории лишний раз дают понять важность наличия бэкапа и правильность его настройки. Сегодня я хочу суммировать свои мысли, накопленные за последние 10 лет опыта работы в системном интеграторе.

1. Бэкап должен быть всегда.
Как бы не развивались технологии, старая добрая резервная копия никогда не потеряет своей ценности, в трудную минуту сохраняя нам нервы, работу, премию, а также успокоительные средства. Она, в случае чего, позволяет нам не паниковать, действовать взвешено, допуская разумный риск.
Даже если в вашем сервере все компоненты дублированы, а данные лежат на дорогом массиве с избыточностью, отгоните от себя ложное чувство безопасности. Никто не застрахован от логических ошибок и человеческого фактора. Читать полностью »

Современные судебные процессы, затрагивающие интересы крупных компаний, могут тянуться годами. Собственно, зачастую так и бывает. Так, в 2012 году США подали в суд на компанию Apple, обвиняя ее в участии в ценовом сговоре с компаниями Hachette, HarperCollins, Macmillan, Penguin и Simon & Schuster.

Читать полностью »

Выбор между дыбой и колесованием — HTML5 и нативной средой программирования — рано или поздно встает перед любым мобильным разработчиком, которому важно присутствовать на разных платформах. Нас в UBANK он тоже не обошел стороной.

В 2011 году мы начинали именно с html-версии, которая работала на Android. Готовились портировать ее на другие платформы, несмотря на трудности, с которыми пришлось столкнуться. Но в итоге через два года свернули этот проект и заменили проект на нативные приложения.

Кому нужен этот HTML: «Как я за 2 месяца запилил платежный сервис — и отправил на свалку»

В этой заметке ведущий разработчик UBANK Александр Путилин постарается рассказать о нашем опыте создания кросс-платформенного приложения, а также поделится кое-какими идеями о том, зачем все же нужен HTML5 и как его можно победить. Заинтересованные в практических вопросах приглашаются в комментарии.Читать полностью »

Open Interconnect Consortium — новая движущая сила «Интернета вещей»
Три ведущих игрока в области технологий для «Интернета вещей», Samsung, Intel и Dell объединяют свои усилия для проектирования общих open source подходов, способных упростить разработку протоколов, программного обеспечения и устройств — будущих кирпичиков «цифрового мира» в рамках сообщества Open Interconnect Consortium. В консорциум также вошли компании Atmel, Broadcom и Wind River.
Читать полностью »

Как нам известно, смартфон Xiaomi Mi4 будет представлен 22 июля. А пока этого не случилось, один из интернет-магазинов опубликовал и спецификации аппарата, и его стоимость.

Согласно предоставленным данным, новый флагман Xiaomi получит дисплей диагональю 5,5 дюйма разрешением 2560 х 1440 точек. В качестве платформы выступит Snapdragon 805. Объём оперативной и флэш-памяти составит 3 и 32 ГБ соответственно. О поддержке карт памяти источник не говорит.

Безопасность данных на Android, глубокие ссылки от Facebook и новая MOBA на мобилки – главные мобильные новости за неделю

Телефоны на Android хранят персональные данные даже после тотального reset

Ваши данные в опасности! Пользователям Android стоит серьёзней относиться к безопасности своих данных, так как специалисты Avast с помощью своей утилиты смогли заполучить персональные данные с 20 б/у телефонов, купленных на eBay. Чтобы достучаться до нашего благоразумия, Avast опубликовала информацию в виде инфографики.

Более 40000 фотографий и других не менее важных данных заполучили специалисты с этих телефонов. И тут, наверно, нельзя винить самих пользователей, они, следуя инструкциям, удаляли эту информацию с телефонов. Проблема в том, что из-за программных особенностей устройств эти данные на самом деле не стирались. Кроме того, Avast предупреждает, что в некоторых случаях не спасает и factory reset. Решить проблему “удалённых” файлов можно с помощью бесплатного приложения от Avast (пост не рекламный).
Читать полностью »

Компания Palit Microsystems представила серию 3D-карт KalmX, в которую вошли модели GeForсe GTX 750 Ti и GTX 750. Их общей особенностью является наличие пассивного охлаждения.

Базовая частота GPU GeForсe GTX 750 Ti KalmX и GTX 750 KalmX равна 1020 МГц, повышенная — 1185 МГц

По данным производителя, Palit GeForce GTX 750Ti KalmX и GTX 750 KalmX — первые 3D-карты GeForce GTX 750 Ti и GTX 750 KalmX с пассивным охлаждением, представленные на рынке.

Компания MSI готовит новый планшетный ПК. На данный момент он проходит сертификацию FCC, что зачастую свидетельствует о скором появлении в продаже.

Новинка основана на четырёхъядерной платформе Intel Atom и работает под управлением Windows 8.1. Объём оперативной памяти составляет 2 ГБ, тогда как накопитель имеет ёмкость 64 ГБ. Дисплей IPS диагональю 10,1 дюйма имеет разрешение 1280 х 800 точек, что характеризует аппарат, как устройство среднего ценового сегмента.

MSI S100

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js