Как стать автором
Обновить
3
0
Олег @Invision70

Пользователь

Отправить сообщение

Проектирование программного обеспечения

Время на прочтение5 мин
Количество просмотров125K
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.



За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Читать дальше →
Всего голосов 31: ↑18 и ↓13+5
Комментарии21

PostgreSQL 9.5: что нового? Часть 2. TABLESAMPLE

Время на прочтение9 мин
Количество просмотров28K
Продолжаем обзор нововведений в PostgreSQL 9.5.
Часть 1. INSERT… ON CONFLICT DO NOTHING/UPDATE и ROW LEVEL SECURITY.
Часть 3. GROUPING SETS, CUBE, ROLLUP
От автора
Приношу свои извинения за задержку с выпуском второй части. Изначально я планировал выпустить вторую часть статьи через неделю после первой, но, в связи с большой занятостью, не смог этого сделать. Поэтому я решил, что буду публиковать не большие статьи, а небольшими порциями, но чаще.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии6

Facebook вводит шифрование для Internet.org

Время на прочтение2 мин
Количество просмотров16K


После открытия своей платформы Internet.org для разработчиков в мае, компания Facebook потребовала, чтобы любой сервис, использующий его, передавал данные без шифрования. Спустя пять месяцев ситуация изменилась — теперь шифрование можно использовать без всяких проблем, и миллионы пользователей из развивающихся стран смогут работать с сервисами наподобие Twitter, с использованием шифрования.

Часть миссии Internet.org — создание бесплатной платформы для веб-сервисов развивающихся стран. Благодаря сотрудничеству с различными операторами связи, платформа обеспечивает пользователям бесплатный доступ к некоторым сетевым сервисам. Никакой оплаты Internet.org не взимает. При этом подобное положение вещей уже критиковали некоторые поклонники концепции сетевой нейтральности, утверждая, что у подобных приложений — огромное преимущество по сравнению с обычными программами-конкурентами.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии2

Прощай, MongoDB, здравствуй, PostgreSQL

Время на прочтение8 мин
Количество просмотров76K
Наш стартап Olery был основан почти 5 лет назад. Мы начали с единственного продукта, Olery Reputation, который был создан агентством, занимавшимся разработкой на Ruby. Всё это выросло в набор различных продуктов. Сегодня у нас есть ещё Olery Feedback, API для Hotel Review Data, виджеты для вставки на сайты и многое другое.

Всего у нас работает 25 приложений (все на Ruby) – некоторые из них в вебе (Rails или Sinatra), но в основном это фоновые приложения для обработки данных.

Хотя нам есть, чем гордиться, есть у нас одна проблема, которая всё время висела где-то в фоне – база данных. Изначально мы использовали MySQL для важных данных (пользователи, контракты, и т.д.) и MongoDB для хранения обзоров и других данных, которые легко можно было бы восстановить в случае утери. Сначала всё работало неплохо, но по мере роста мы начали испытывать проблемы, в особенности с MongoDB. Некоторые из них возникали в сфере взаимодействия БД с приложениями, некоторые – непосредственно у самой БД.

К примеру, в какой-то момент нам надо было удалить миллион документов из MongoDB, а позже вставить. В результате работа базы застопорилась на несколько часов. Потом нам пришлось запускать repairDatabase. И сама починка тоже заняла несколько часов.
Читать дальше →
Всего голосов 82: ↑62 и ↓20+42
Комментарии125

10 частых ошибок начинающих веб-разработчиков

Время на прочтение7 мин
Количество просмотров56K


Перед современным веб-разработчиком стоит широчайший выбор платформ для хостинга и хранения данных, инструментов для работы с HTML, CSS и JavaScript, способов фактической реализации дизайна, а также всевозможных библиотек и фреймворков. В помощь тем, кто хочет найти свой путь в этом обилии вариантов, сеть услужливо предоставляет массу статей, обсуждений на форумах и примеров «наилучших» решений. Но вне зависимости от того, как и с помощью чего начинающие разработчики создают сайты, многие совершают одни и те же ошибки. Давайте рассмотрим некоторые из них, чтобы в будущем не наступать на эти популярные грабли.
Читать дальше →
Всего голосов 42: ↑23 и ↓19+4
Комментарии64

Security Week 39: XcodeGhost, утечка сертификата D-Link, миллион за баг в iOS9

Время на прочтение7 мин
Количество просмотров11K
Новый эпизод сериала хочется начать с новости, не относящейся в общем-то к инфобезопасности. В автомобилях Volkswagen с дизельным двигателем обнаружили разные показатели выброса вредных веществ во время движения, и при стационарном тестировании. Пока с этой историей все не станет окончательно ясно, я бы предпочел придерживаться именно такой формулировки. Эта история говорит нам о том, насколько стал важен софт: оказалось, что при помощи небольшого твика в программном коде можно изменить очень важную характеристику автомобиля, да так, что никто этого и не заметит.

Wired пишет, что скрыть повышенный уровень выброса вредных веществ было просто. Как происходит лабораторное тестирование? Машину ставят на ролики, нажимают на газ, колеса крутятся, двигатель работает, выхлоп анализируется. Какое единственное отличие между таким режимом и обычной ездой по трассе? Правильно, руль не двигается. То есть достаточно ввести единственное условие: никто не крутит руль, а машина едет — значит мы на станции техосмотра. Такой «хак» можно было обнаружить только случайно — что, собственно, и произошло.

Опять же, пока историю не рассказали до конца, разницу в выхлопе можно считать как намеренным действием автоконцерна (а точнее узкой группы людей, ответственной за управляющий код), так и простой ошибкой. Может это быть ошибкой? Да вполне. В сегодняшнем дайджесте самых важных новостей с сайте Threatpost.ru за неделю — истории о том, как ошибки происходят, как ими пользуются, и как на них делают деньги. Все предыдущие выпуски тут.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Новое в Runkit 1.0.4: PHP 5.6+, closures везде и еще 12 новых фич

Время на прочтение10 мин
Количество просмотров14K

Runkit 1.0.4 для PHP выпущен!


Поздравляю всех пользователей Runkit с новым долгожданным мега-релизом! Если вы постоянно используете Runkit и хорошо знакомы с его возможностями, историей и развитием, то можете сразу переходить к описанию изменений релиза 1.0.4. В любом случае предлагаю прочесть статью целиком.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии26

Apache vs Nginx: практический взгляд

Время на прочтение12 мин
Количество просмотров361K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
Читать дальше →
Всего голосов 89: ↑69 и ↓20+49
Комментарии184

Как работают над Chromium

Время на прочтение8 мин
Количество просмотров49K
image
Предисловие от автора оригинала:
В марте 2011 я написал черновик статьи про то, как команда, отвечающая за Google Chrome, разрабатывает и выпускает свой продукт — после чего я благополучно о нем забыл. Лишь несколько дней назад я случайно наткнулся на него. Пусть местами он уже устарел (Chrome форкнул WebKit в Blink в 2013 году, да и я сам больше не работаю в Google), я склонен считать, что изложенные в нем идеи все еще в силе.
Сегодня я собираюсь рассказать вам о том, как работает Chromium. Нет, речь пойдет не совсем о браузере Chrome, а скорее о Chromium — группе людей, занимающихся созданием браузера.

Над проектом Chromium работают сотни инженеров. Вместе мы коммитим в кодовую базу примерно 800 изменений каждую неделю. Мы также зависим от многих других больших и активно развивающихся проектов вроде V8, Skia и WebKit.

Мы отправляем новый стабильный релиз сотням миллионов пользователей каждые шесть недель, четко по расписанию. И мы поддерживаем несколько других каналов раннего доступа, которые обновляются еще быстрее — самый быстрый канал, canary, «тихо» авто-обновляется почти каждый будний день.

Каким образом все это продолжает работать? Почему «колеса» у этого «автобуса» еще не «отвалились»? Почему еще не все разработчики сошли с ума?
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии51

Symantec самовольно выпустил сертификат для google.com и www.google.com

Время на прочтение2 мин
Количество просмотров47K
Незамеченным на Хабре остался инцидент с выпуском сертификата для доменов google.com и www.google.com удостоверяющим центром компании Symantec. Об этом сообщается в блоге «корпорации добра».

Сертификат был выпущен 14 сентября примерно в 19:20 (GMT) удостоверяющим центром Thawte (принадлежит компании Symantec) без разрешения или запроса со стороны Google. Причем не простой сертификат, а Extended Validation (EV). Таким образом, это первый зафиксированный случай нелегального выпуска EV сертификата.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии94

Создаём REST-сервис на PostgreSQL и Rust. Часть 1: прототип

Время на прочтение6 мин
Количество просмотров37K
Всем привет.

Какое-то время назад я видел в небезызвестном блоге пост о том, как реализовать на Go простую программу, работающую с БД, а затем сделать на её базе целый REST-сервис. Я решил проверить, насколько сложно сделать аналогичную программу на Rust и поделиться результатами.



Мы начнём с работы с БД и создадим обычное консольное приложение, а затем добавим, так сказать, REST-фронтенд.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии28

Не пора ли реляционным базам данных на свалку истории?

Время на прочтение10 мин
Количество просмотров32K
Здравствуйте, меня зовут Дмитрий Карловский и я… антиконформист, то есть человек, который не держится за свои привычки и всегда готов их поменять, если в том есть необходимость. Например, как и многие разработчики, я начинал изучение баз данных с реляционных. Хотя реляционная алгебра и довольно красива в своей простоте, я постоянно ловил себя на мысли, что пытаюсь впихнуть круглую фигуру в квадратное отверстие и получалось как-то не герметично.



Нет, я не буду рассказывать вам про MongoDB или ещё какую неполноценную «убийцу SQL». Статей на тему «SQL vs NoSQL» сравнивающих на самом деле реляционные субд с документными и так полно:


Но у большинства из них есть фатальный недостаток — авторы просто не в курсе, что моделей данных в СУБД есть куда больше, чем два упомянутых: от узкоспециализированных «словарей», то универсальных «графов». А популярные «реляционные» и «документные» находятся лишь где-то по середине между универсальностью и специализированностью.

Давайте сравним типичных представителей упомянутых типов СУБД (от большего к меньшему).

  • Популярность: Oracle, MongoDB, Redis, HBase, OrientDB.
  • Функциональность: OrientDB, Oracle, MongoDB, HBase, Redis.
  • Скорость: очень сильно зависит от задачи, данных и реализации приложения. Я пересмотрел кучу бенчмарков, везде всё по разному.
Читать дальше →
Всего голосов 53: ↑23 и ↓30-7
Комментарии339

Как я стал программистом. Путь от питерского бездомного до Senior Developer-а за 6 лет

Время на прочтение6 мин
Количество просмотров229K
Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

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



Сегодня я хочу рассказать свою историю.

Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».
Читать дальше →
Всего голосов 168: ↑152 и ↓16+136
Комментарии87

Skype обвалился и не работает по всему миру

Время на прочтение1 мин
Количество просмотров33K


Ничто не предвещало беды, как оборвалось подключение к Skype. С подобной проблемой столкнулась и другие пользователи, многочисленные жалобы посыпались в Twitter.

По данным сервиса DownDetector, проблема возникла в 11:23 по Москве. Неполадки затронули пользователей не только из России, но и США, Великобритании, Канады, Индонезии, Румынии и другие страны.

UPD:
Некоторые пользователи десктопных и мобильных приложений могут получать сообщения, но не могут отправлять их.

UPD2:
Техподдержка Skype написала в своем Twitter-аккаунте:
«Мы работаем над решением этой проблемы и надеемся, что обновления будут доступны для вас в ближайшее время», – говорится в сообщении разработчиков.



UPD3:
При этом веб-версия Skype работает: https://web.skype.com/en/
Читать дальше →
Всего голосов 41: ↑22 и ↓19+3
Комментарии19

RailsClub 2015: Интервью c Александром Кирилловым

Время на прочтение3 мин
Количество просмотров3.2K
Привет!

Осталась неделя до конференции RailsClub. Мы уже планируем, как будем встречать и развлекать приглашенных спикеров, печатаем для всех участников классные наклейки, вместе с докладчиками репетируем их выступления. Самое время зарегистрироваться, если вы вдруг еще не успели. Сделать это можно тут.
Сегодня новое интервью, на вопросы ответил наш коллега Александр Кириллов, Ruby-разработчик из Evrone, со-организатор конференции Юкон в Саратове.

image
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии1

Старый код: почему он такой

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

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

Сразу скажу, что проблема старого кода не может уместиться в одну статью, поэтому я разбил наболевшее на несколько частей. Сегодня мы поговорим о том, что отличает «старый код». В следующей статье я, исходя из опыта написания кода, управления проектами и общения с бизнесом, напишу несколько мыслей, как с ним бороться.
Читать про старый код
Всего голосов 25: ↑20 и ↓5+15
Комментарии17

Сборник практических задач PHP для подготовки к собеседованию

Время на прочтение4 мин
Количество просмотров42K
Привет, Хабр!

Хотел бы поделиться небольшим сборником практических задач, которые могут встречаться на собеседовании.

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

Для старта достаточно клонировать сборник себе и начать описывать реализацию, все оставльное уже есть. Есть готовые входящие данные для задач, есть FB класс, который позволяет уйти от var_dump() или print_r(). Все есть, поставил и сразу можно выполнять задачи — без лишней суеты. Надеюсь, кому-нибудь это окажется нужным.
Читать дальше →
Всего голосов 27: ↑6 и ↓21-15
Комментарии31

Оттачиваем мастерство работы в консоли

Время на прочтение3 мин
Количество просмотров64K
После того, как у меня появился новый монитор на рабочем месте, я начал новую итерацию улучшения своего «безмышечного» (mouse-less, прим. пер.) опыта. Вы же знаете, что это значит, не так ли? Это значит, что каждый раз, когда вы беретесь за мышку, убирая руку с клавиатуры, вы тратите немного времени и энергии. Если вам нужно набирать много текста (а я много пишу кода), это становится существенным.

Так же существует следующий уровень «безмышечного» опыта, когда вы стараетесь избежать труднодоступных клавиш, например Delete, Backspace, Escape или даже Enter.

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

image
Читать дальше →
Всего голосов 68: ↑65 и ↓3+62
Комментарии116

Как работает реляционная БД

Время на прочтение51 мин
Количество просмотров535K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Всего голосов 232: ↑229 и ↓3+226
Комментарии134

Небольшой путеводитель по ZPL

Время на прочтение5 мин
Количество просмотров75K

Добрый день, Хабрахабр.


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

Зебры они такие
Механизм формирования этикеток выглядит следующим образом: сначала с машины пользователя (компьютер, терминал сбора данных) на принтер отправляется специальным образом оформленная строка, затем внутренний процессор принтера обрабатывает эту строку, и выводит ее на печать.Но язык, на котором формируется строка для принтера (называется ZPL) на первый взгляд вызывает у непосвящённых нервную икоту и мандраж.
Прошу под кат, всех кто хочет разобраться в данном вопросе.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Богатое, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность