Новости информационных технологий - 29932

Файервол представляет из себя bash-скрипт, который интегрирует с помощью соответствующих пакетов следующие функции:

  1. Файервол внешний и внутренний (пакет iptables).
  2. Учёт трафика внешнего и внутреннего (пакет iptables).
  3. Прокси-сервер для локальных сетей (пакет Squid).
  4. Контент-фильтр для локальных сетей (пакет DansGuardian).
  5. DNS-сервер для локальных сетей (пакет BIND).

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

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

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

Задача которую нужно было решать — каким образом хранить, искать, модифицировать информацию о последовательности событий при следующих условиях:

  • события могут происходить на разных серверах и в разных датацентрах (восточный и западный берег США, Европа)
  • интервал между событиями — от долей секунды до нескольких дней
  • к моменту получения завершающего события (например конверсия) информация обо всей цепочке должна быть на руках
  • время жизни информации — примерно десять дней, после чего она должна быть удалена, желательно автоматически, через TTL
  • темп чтения/записи событий — сотни или тысячи в секунду
  • Время ответа: желательное — до 10мс, допустимое — в пределах 50мс, максимальное — до 100мс
  • информация должна быть доступна «всегда» — независимо от аварий железа, сети, апгрейдов
  • система должна легко масштабироваться: добавление новых серверов, датацентров должно происходить прозрачно для остальных сервисов (допустима деградация времени ответа в заданных пределах).

Последние два пункта очень важны для бизнеса и просто жизненно важны для опс инженеров если они хотят спокойно выполнять свои обязанности днём, и спокойно спать ночью.
Читать полностью »

Да-да. Именно размышления. Я не стану перечислять по пунктам «39 вещей, которые поднимут ваши продажи на 235%». Вместо 39 и 235 можно подставить любую другую цифру. Всякий здравомыслящий человек понимает, что ограниченные в своей конечности списки «how to’s» или «хаутусов», как я их про себя называю, нисколько не помогут в конкретной ситуации. По этому поводу есть хорошее высказывание одного ученого:

«Современному человеку, соблазненному техническим прогрессом и задавленному могуществом вездесущих технологий, не так уж легко поверить в то, что практика представляет собой вовсе не набор алгоритмов, операций и действий, но необходимо включает в самое свое существо глубокое понимание сути происходящего и производимого».

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

Все просто: когда в конце 90х человек заканчивает лингвистический вуз, по специальности учитель английского и немецкого языка, то ясное дело, что учителем работать ну никак не хочется. И даже окончание магистратуры этому желанию не способствует. Можно было попробовать свалить куда-нибудь, к чему стремились многие однокурсники, и что некоторые сделали, но этот вариант оказался не для меня. To cut a long story short, деятельность моя в IT, начатая в качестве переводчика, плавно переросла в продажи и маркетинг.

Ситуация в то время была весьма благоприятной для людей, владеющих английским. Конец 90х -начало нулевых. В западном мире широко раскручена тема аутсорса. Толковые мозги девелоперов из постсоветского пространства востребованы весьма и весьма. Появилась кучка мелких и средних компаний, которые подвизались на аукционах проектов, или просто каким-то другим способом находили себе заказики. Некоторые особо разросшиеся, которым удалось подгрести под себя ресурсы (какое ужасное слово применительно к людям), предлагали (и до сих пор предлагают) не услуги по разработке софта на заказ, а просто мозги. Естественно, что этим компаниям были нужны менеджеры по продажам, которые могли урвать проектик на аукционе, или же успешно продавать эти самые людские ресурсы. Сразу оговорюсь, в те годы я вообще слабо себе представляла, что в IT можно делать не просто проекты на заказ и продавать разработчиков, но и делать свои (!) собственные продукты. Не спущенные на тебя клиентом, а захотеть, решить и сделать свой продукт. И еще при этом даже добиться успеха. Но я забегаю вперед. Это только с годами стало ясно, что продавать аутсорс или мозги, и делать маркетинг своего продукта – это две больших разницы, как говорил кто-то из классиков.

Поговорим немножко об аутсорсе. К чему сводились продажи:

1. Тусоваться на онлайн-аукционах проектов. Обещать сделать максимум всего за минимум. Эта работа очень похожа на то, что делает зазывала на восточном базаре: во все горло расхваливает товар, не стыдится приврать и пообещать больше, чем можно реально сделать. Ведь главное же урвать проект, а как там потом, и как поступать с такой страшной вещью, как «сhange requests» — это дело десятое. Как-нибудь разрулится. Иногда оно и в самом деле разруливалось, когда клиент понимал, что действительно он стал хотеть уже немножко не то, и требуется больше эфортов, а иногда нет. Опять же, в то время я никак не понимала, почему же эти клиенты с самого начала точно не знают, что им надо, и почему у них меняются требования. Звучит смешно сейчас, когда космические корабли и т.п. и когда agile стал мейнстримом.

2. Рассылки. Они же email marketing, они же direct mailing. Берутся базы каких-нибудь приблизительно подходящих prospects и оптом промыливаются. Рассылками до сих пор пользуются индусские разработческие фермы. Когда я натыкаюсь на этот спам в своем ящике, всякий раз удивляюсь: неужели же до сих пор находится кто-то, кто отзывается на такие предложения.

3. Пресловутый cold calling. Столь много воспетый в разнообразных книжуськах по продажам. Насколько я знаю, cold calling еще сколько-нибудь нормально мог работать в Европе. В USA люди настолько уже запуганы втюхиванием всего чего угодно, что до живого человека дозвониться очень сложно. Я ни разу не видела, чтобы из cold calling'а получилось что-то путное, хотя существуют мифы, что кто-то где-то якобы кого-то таким образом подцепил.

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

Преамбула

В настоящее время очень популярно заниматься визуализацией каких-либо данных на картах. Да прочем и не только визуализацией, применений множество: игры, гео-сервисы, визуализация, статистика и многое-многое другое. С одной стороны, применение canvas это хорошо и современно, с другой же — количество объектов может превышать все мыслимые и немыслимые пределы, что ведет к уменьшению скорости работы пользователя с такими сервисами, тысячи полигонов на canvas «тормозят клиента», браузеры «жрут» память в огромных количествах и т.п. Это не говоря уже о том, что хоть и редко, но необходима поддержка «старых» браузеров, не поддерживающих canvas/html5.

Простой пример

Рисуем тайлы с данными для GoogleMap на PHP
Представьте что-то подобное этой картинке, уменьшите масштаб и увеличьте тем самым количество полигонов в «кадре» до 5 000. Офисный компьютер двух- или трех-летней давности может и умереть на отрисовке такой карты. Бороться с этим можно просто добавив оверлей слой на карту со своими тайлами.

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

imageКак известно интересующимся, больше месяца назад прошёл ABBYY Cup, студенческая online-олимпиада по спортивному программированию. Тем, кто не слышал о ней совсем ничего, рекомендую сначала прочитать этот топик.

В каждом туре мы предложили участникам по 6 задач, за каждую можно было получить по 100 баллов, но для легкого дивизиона Codeforces сочинил сделать дополнительную седьмую, чтобы развлечь тех участников, которым легкий дивизион начинает казаться очень легким.

Как и в прошлом году, решения оценивались с помощью автоматических тестов разного уровня сложности. На ABBYY Cup было несколько групп тестов, в легком дивизионе – две, в сложном – три. Разные тесты нужны, чтобы отличать тех, кто сделал задачу хорошо от тех, кто сделал очень хорошо. Отработал код в заданных рамках при 20 входных значениях? Получите-ка на вход 50, посмотрим :)

Помимо этого была дополнительная система оценки. Если человек пытался решить задачи много раз и отправлял, скажем, 10 раз неправильное решение и на 11-й отправил правильное, он будет ниже в рейтинге, чем человек, который решал дольше, но отправил решение, которое сразу прошло все тесты.

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

Компания Microsoft решила переименовать свой сенсорный стол Surface после презентации новых 10-дюймовых планшетов Surface. Сенсорный стол Surface был впервые представлен в 2007 году. Стол имел 40 дюймовый дисплей и был скорее предназначен для торговых точек, отелей, музеев и других областей применения. Новое название стола Surface — PixelSense.
Сенсорный стол Surface не был рассчитан на потребительский сегмент рынка, так как его стоимость находилась в районе 12 тысяч долларов.
Вторая версия Surface была представлена на выставке потребительской электроники CES в прошлом году. Новая версия на порядок тоньше предыдущей. Сенсорный стол производиться Читать полностью »

За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

Я постоянно удивлялся, как много ошибок в коде и тестов, и приложений происходят от неверного понимания и заблуждений насчёт времени. Под этим я имею в виду и компьютерный способ обработки времени, и фундаментальные ошибки, происходящие от несовершенной структуры календаря — зимнее время тут лишь вершина айсберга.

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать полностью »

Microsoft представила планшеты Surface
Компания Microsoft официально представила собственные планшеты нового семейства Surface.
Разработчики анонсировали две модели, одна из которые была на процессоре Nvidia Tegra 3 и работала на операционной системе Windows 8 RT, а другая была на процессоре Intel Core i5 поколения Ivy Bridge и работала на полноценной операционной системе Windows 8 Pro.
Модель работающая на ARM процессоре вести 670 граммов. Корпус модели состоит из магниевого сплава, толщина корпуса составляет 9,3 мм. Планшет обладает 10,6-дюймовым сенсорным HD-экраном ClearType, защищённым стеклом Gorilla Glass 2. Также в планшете есть флеш память на 32 или 64 гигабайта, две камеры, модуль Wi-Fi, HDMI, USB 2.0, а также слот Читать полностью »

dotCover
Новая версия инструмента для анализа покрытия кода юнит-тестами в .NET-приложениях dotCover официально вышла и доступна для скачивания.

dotCover анализирует покрытие кода юнит-тестами, определяет, какие именно тесты покрывают то или иное место в коде, а также подсвечивает покрытый и непокрытый код непосредственно в редакторе Visual Studio. Кроме того, dotCover позволяет агрегировать данные из нескольких сессий анализа покрытия, создавать отчеты в форматах XML, HTML или JSON.
Читать полностью »

Codecademy запустил русскую версию

Нью-йоркский стартап Codecademy, желающий научить мир программировать, решил начать международную экспансию и запустил пять локальных версий, в том числе русскую.

Это стало возможным благодаря получению 10 млн долларов венчурного финансирования от Kleiner Perkins, Index Ventures, Union Square Ventures, Юрия Мильнера и Ричарда Брэнсона, сообщает TechCrunch.

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


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