Как стать автором
Обновить
9
0

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

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

Регулярные выражения для валидации распространенных видов данных

Время на прочтение2 мин
Количество просмотров489K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →
Всего голосов 133: ↑97 и ↓36+61
Комментарии66

Взгляды на Zend PHP Certification

Время на прочтение2 мин
Количество просмотров19K
О том, что такое Zend Certified PHP Engineer (ZCE) и как к нему готовиться было достаточно статей. Я опишу свое мнение о ZCE (PHP 5.5) и свой процесс подготовки за неделю (с учетом моего пятилетнего опыта практической разработки).

Взгляды на ZCE


Сама по себе сертификация, в общем и целом (за исключением нескольких вопросов), проверяет, насколько усвоенной оказалась официальная документация PHP. Может попасться пару практических вопросов, а также вопросы на знание паттернов (мне попался про Registry и его применимость), что немного радует.
Читать дальше →
Всего голосов 23: ↑16 и ↓7+9
Комментарии22

15 советов и хитростей инструментов разработчика Chrome, которые вы обязаны знать

Время на прочтение5 мин
Количество просмотров205K
Сегодня Google Chrome является самым популярным браузером среди веб разработчиков. С быстрым, шести недельным, циклом релизов и мощным набором постоянно расширяющихся инструментов разработчика, превратившим браузер в инструмент, который вы обязаны иметь. Большинство из вас, вероятно, знакомы со многими его функциями, такими как «живое» редактирование CSS, используя консоль и отладчик. В этой статье мы с вами рассмотрим 15 захватывающих советов и хитростей, которые позволят улучшить вашу производительность еще больше.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии23

Простой разбор URL с помощью изоморфного Javascript

Время на прочтение4 мин
Количество просмотров66K
Во многих веб-приложениях требуется разбор URL, такой как извлечение доменного имени, имплиментация REST API или поиск пути к файлам изображений. Типичная структура URL показана на рисунке ниже:


Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии30

Настраиваем Amazon Elastic Load Balancing: с email forwarding-ом и редиректами

Время на прочтение4 мин
Количество просмотров8.7K
image

Время релиза моего проекта выходного дня приближалось. Мобильные приложения были загружены в магазины приложений и мы ждали ответа от Apple, поскольку проверка в Google Play проходит довольно быстро и безболезненно. Весь код серверного приложения был уже написан, делать было нечего, а свободного времени было около недели. Я подумал, что неплохо было бы заранее обзавестись load balancer-ом, чтобы в будущем не тратить много времени на его настройку, да и к тому же настройка после релиза наверняка привела бы к тому, что сервер какое-то время перестал бы обслуживать пользователей. Для хостинга серверов мы использовали Amazon EC2, поэтому и load balancer выбрали амазоновский — Amazon Elastic Load Balancer (ELB).
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

О некоторых аспектах ремонта платы электроники жесткого диска

Время на прочтение4 мин
Количество просмотров173K
Здравствуйте, уважаемые хабравчане! Это первая публикация в недавно открытом корпоративном блоге компании “Хардмастер”, специализирующейся на профессиональном восстановлении данных с накопителей. И с вами я, ведущий инженер Артем Макаров aka Robin. В этом блоге я и мои коллеги в меру сил будем стараться выкладывать материалы, которые смогут реально помочь всем желающим самостоятельно справляться с задачами по ремонту вышедших из строя девайсов и восстановлению информации с них.

Одной из распространенных причин выхода из строя жестких дисков являются проблемы с платой электроники.

image
(в простонародье это называют контроллером HDD, что конечно же некорректно)

И мы начинаем цикл публикаций по обзору поломок плат HDD и методов их устранения. Подписывайтесь и следите за обновлениями!
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии30

Архитектурный дизайн мобильных приложений: часть 2

Время на прочтение7 мин
Количество просмотров48K
Чтобы направить всю энергию системы в необходимом направлении, нужно эту систему ограничить правилами.


Привет, Хабр! Продолжаем серию статей об архитектурном дизайне мобильных приложений. Под катом поговорим о проектировании слоёв UI. Добро пожаловать!
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии20

Письмо Дейкстры: почему обучение программированию нужно начинать с функционального языка

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


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

Мы в Хекслете недавно запустили новую версию, ключевой особенностью которой стали практические упражнения по программированию в браузере. В связи с этим мы стали получать еще больше писем от начинающих программистов с вопросами вроде «с чего начать». С одной стороны, они хотят выложить бета-версию приложения в app store через неделю. С другой стороны, мы понимаем, что за такой короткий срок, наверное, можно научиться кодить приложения, но нельзя научиться программировать. И сложно решить, что лучше: как можно быстрее научить созданию простых приложений без реального понимания программирования, алгоритмов и их вычислительной сложности, а потом начать знакомство с этими важными темами, или начать «с начала», и органично придти к созданию приложений и продуктов после освоения фундамента.

В 2001 году, Эдсгер Дейкстра написал письмо экономическому совету университета Техаса. В нем знаменитый ученый призывает членов совета задуматься о смене языка программирования для вводного курса. К сожалению, язык был заменен на Java. Примерно в то же время MIT сменили язык курса «Структура и интерпретация компьютерных программ» с функционального Scheme (диалекта LISP) на Python.

Сегодня мы публикуем перевод этого письма.

Членам Экономического Совета


Я пишу вам по поводу слуха о замене языка во вводном курсе по программированию с функционального языка Haskell на императивный язык Java. Я считаю, что Совет должен взять на себя ответственность, чтобы решение не было принято на неправильном уровне.
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии309

15 лучших JavaScript-библиотек для построения диаграмм и сводных таблиц

Время на прочтение6 мин
Количество просмотров308K
Практически невозможно представить себе информационную панель без диаграмм и графиков. Они быстро и эффективно отображают сложные статистические данные. Более того, хорошая диаграмма также улучшает общий дизайн вашего сайта.

В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.

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

Читать дальше →
Всего голосов 71: ↑65 и ↓6+59
Комментарии17

Обработка и оформление отчетов в Excel на PHP

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

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.


PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии28

Краткое введение в терминалы и консоль

Время на прочтение3 мин
Количество просмотров73K
Тут живут драконы и нет ментейнеров (вместо эпиграфа)

Очень сжатое боевое описание «что есть псевдо-терминал» и «консоль».

Итак, во-первых, определимся с тем, что такое консоль: консоль это программа, которая принимает от пользователя кнопки, а от соединения с компьютером — буквы на экран и спец. команды по рисованию картинки на экране.

Терминал — обобщённое название как программы, так и специальной железки (таких больше нет в природе). Особое исключение — когда вы запускаете путти или ещё кого-то для подключения к последовательному порту коммутатора/рутера/модема (или даже сервера), то вы выступаете (точнее компьютер с путти выступает) в роли терминала (название «терминал» — потому что терминирует кабель (то есть висит на самом конце) ).

Как легко понять по кабелю, есть два конца: терминал и то, что ему посылает байтики в кабель.

Когда запускается шелл, то он получает в своё распоряжение виртуальное устройство /dev/tty, которое у каждого процесса своё — это «обратная» часть терминала. Передняя часть в случае кабеля реализуется путти+компьютер, в случае консоли компьютера, специализированным ядерным драйвером (виртуальными консолями). Важно: драйвер эмулирует наличие терминала.
Читать дальше →
Всего голосов 106: ↑64 и ↓42+22
Комментарии101

Как стать системным администратором — пособие для начинающих (часть 2)

Время на прочтение11 мин
Количество просмотров537K
Предыдущая часть: habrahabr.ru/post/118475

В этой части: подробнее о жизни эникейщика: как устроиться, чем заниматься, чего избегать, к чему стремиться.

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

Вступление


Примерно до середины 2000ых было два пути стать системным администратором: через путь эникейщика и через профильное высшее образование (обычно, в всякого рода институтах связи). Первое давало много опыта, второе — довольно много знаний (из которых большая часть не нужна). Сейчас появился третий — всякого рода «курсы системного администрирования», которые, реально, тлен и прах (если судить по тому, что знают и умеют те, кто их закончил).
Читать дальше →
Всего голосов 159: ↑149 и ↓10+139
Комментарии96

Обходим защиту iOS клиента Dropbox

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


Что в первую очередь сделает iOS разработчик, если перед ним встанет задача спрятать пользовательские данные от любопытных глаз? Конечно же, встроит экран парольной защиты. Особо хитрый разработчик даже не будет хранить установленный пользователем пароль в NSUserDefaults, а аккуратно спрячет его в связку ключей — в этом случае приложение в глазах как его, так и заказчика, сразу же перемещается в разряд «сверхзащищенных».
Мы не будем углубляться в описание опасностей хранения ключа в открытом доступе — ведь есть гораздо более интересный способ обхода такой защиты.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии21

Как сделать прибыльной разработку дизайна сайтов (часть 4)

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

Сегодня обратимся к теме прототипов. Сразу хочу попросить 32% читателей, которые уже в курсе этой темы, не мешать остальным 49%, которые не пробовали работать с сервисами по созданию прототипов, разбираться в этом вопросе (по данным опроса «Знаете ли вы о существовании сервисов для создания прототипов» часть 2).

image

Тема «прототипирование»


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

Как-то одним прекрасным солнечным утром, придя на работу и сделав кружку крепкого кофе, я решил открыть почту от клиента — и мне захотелось облить его этим горящим кофе, запустить в него кружку, порвать договор и заставить съесть подписанные им макеты (в письме клиент написал, на половине готовых работ: давайте переделаем верх, низ и две страницы — главную и список услуг).
Читать дальше →
Всего голосов 37: ↑29 и ↓8+21
Комментарии4

Выбор поставщика решения двухфакторной аутентификации. Часть 1 из 2

Время на прочтение7 мин
Количество просмотров23K
Итак, уже для многих не секрет, что простая парольная аутентификация не защитит ваши данные от рук злоумышленника. Дело тут не в длине пароля и не в том, как часто вы его меняете. Простой фишинг или вирус на вашем компьютере передаст ваш сложный двадцати-символьный пароль тому, кто его ждет. О сколько вы мучились, вводя его каждый раз в окно логина, потому что хранить его в файле или кеше браузера небезопасно.


О решении проблемы уже все наслышаны. Конечно, речь идет о применении мультифакторной аутентификации (MFA). Факторами могут выступать знания, предметы или биометрические данные (недостаткам биометрии я планирую посвятить отдельную статью). Чаще всего применяется двухфакторная аутентификация, которая использует привычный пароль, а также еще один одноразовый (OTP). Он может быть доставлен пользователю различными способами и действует только для одного сеанса аутентификации. Также, в современных алгоритмах генерации паролей TOTP (по времени) и OCRA (по запросу) время действия одноразового пароля ограничено 30 или 60 секундами, что значительно усложняет задачу злоумышленнику. Способы доставки или автономной генерации существуют различные: от распечатанных списков паролей на карточках или чеках из банкоматов, SMS-сообщений до использования специальных устройств генерации OTP — токенов.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии18

Использование Accept Header для версионирования API

Время на прочтение4 мин
Количество просмотров17K
Я исследовал различные варианты дя версионирования REST API. Большинство источников, которые я нашел, говорят практически одно и тоже. Для версионирования любого ресурса в интернете вы не должны изменять URL-адрес. Веб не версионный, и изменение URLа говорит клиенту, что есть больше чем 1 ресурс. Но на самом-то деле не существует нескольких ресурсов, это просто разные представления одного и того же. Конечно, бывают случаи, когда необходимо изменить URL, например, когда измененяется функциональность. В данном конкретном случае причиной изменения служит тот факт, что это больше не один и тот же ресурс.

Но с другой стороны, и, возможно, даже более важной, вы всегда должны стараться убедиться, что изменения будут обратно совместимы. Нужно очень хорошо проектировать архитектуру, чтобы использующие ваше API клиенты не меняли свой код. Хорошо продуманное API может спасти вас от большой, очень большой головной боли.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии20

FAQ по программированию под Android от новичка, и для новичков

Время на прочтение16 мин
Количество просмотров158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Всего голосов 114: ↑98 и ↓16+82
Комментарии23

LiveDC — Быстрый доступ к p2p файлам

Время на прочтение2 мин
Количество просмотров15K
Сегодня существует большое количество DC-клиентов на самый разный вкус. Однако все они наделены существенным недостатком: нужно ждать, пока скачиваемый файл полностью загрузится. А если вы желаете посмотреть фильм или новый эпизод любимого сериала в высоком качестве, то даже при скорости интернета 100 Мбит/с ждать придется довольно долго. Но ведь хочется-то сейчас!


Разве это возможно?
Всего голосов 32: ↑30 и ↓2+28
Комментарии56

Назад в прошлое: Печать фотографий на фотоувеличителе

Время на прочтение10 мин
Количество просмотров121K
imageНедавно мне захотелось обновить воспоминания далёкого детства, когда напечатанные фотографии рождались не в фотолабораториях, а каким-то магическим образом из света и тени возникали в чуланах и ваннах обычных советских граждан. Несмотря на те смутные воспоминания, опыта печати фотографий на у меня никогда не было, так что это будет статья абсолютного нуба, попробовавшего разобраться в том, как работают технологии двадцатилетней давности и как запустить всю эту кухню в современных реалиях.
Вероятно, у старшего поколения всё это вызовет лишь улыбку, но ведь из тех, кому нет 30 лет лишь единицы имеют опыт печати фотографий. И сейчас даже отдалённое понимание того, какими способами такие люди как Энсель Адамс или Майкл Кенна достигали или достигают шедевральности своих фотографий уходит потихоньку в историю.
Читать дальше →
Всего голосов 64: ↑60 и ↓4+56
Комментарии69

Как сохранить и как задействовать деньги?

Время на прочтение9 мин
Количество просмотров43K
Рано или поздно к каждому из нас приходит понимание необходимости в денежном «буфере» про запас. На чёрный день, так сказать. Кто-то может насобирать скромную сумму, ежемесячно откладывая по чуть-чуть с зарплаты, кому-то достался приличный «буфер» от дядюшки… Как бы то ни было, встаёт вопрос хранения имеющихся средств, а ещё лучше — их задействования! Совсем не хочется, чтобы имеющиеся деньги просто таяли вместе с инфляцией.
Не так давно я проводил опрос, с надеждой открыть что-то новое для себя и с целью узнать где хранят деньги уважаемые хабражители, пускают ли их «в дело». И, из результатов опроса и комментариев к нему, понял, что мне есть что рассказать по этому поводу.
Под катом небольшой обзор самых популярных инструментов для самых начинающих от инвестора-любителя :) Я вкратце расскажу о банковских вкладах, индексируемых депозитах, ПИФах, ПАММ и ТМА-счетах.
Вопросы мотивации на накопление средств и вопросы выбора валюты в данном посте не рассматриваются.
Читать дальше →
Всего голосов 66: ↑57 и ↓9+48
Комментарии79

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность