Как стать автором
Обновить
1
0
Александр Журавлев @avz

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

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

Двойная бюстгалтерия* глазами программиста

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


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

Статья не академическая, а отражает сугубо мой упрощенный взгляд, и для тех кто уже осилил академические статьи — будет неинтересной. Тех же кому интересно понять такой простой и мощный инструмент как «двойная запись» — прошу под кат.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии266

Ежедневная работа с Git

Время на прочтение40 мин
Количество просмотров884K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


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

Далее очень много букв случайным образом превратились в пост.
Всего голосов 200: ↑194 и ↓6+188
Комментарии44

Все, что вам нужно знать об обнаружении изменений в Angular

Время на прочтение8 мин
Количество просмотров88K
Наткнулся на хорошую статью об устройстве Angular'овского механизма обнаружения изменений (change detection). Т.к. тема достаточна важна, но при этом недостаточно глубоко раскрыта даже на англоязычных ресурсах, а найти русскоязычные материалы на эту тему, вообще, не представляется возможным, решил перевести данную статью.
Перевод под катом
Всего голосов 21: ↑20 и ↓1+19
Комментарии8

Каково оно учить JavaScript в 2016

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


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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →
Всего голосов 260: ↑238 и ↓22+216
Комментарии298

Почему я работаю только удалённо

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

Создание программного обеспечения для стартапов — серьёзная задача. Не потому, что само написание программного обеспечения является довольно трудным, а потому, что у большинства стартапов места для выполнения такой работы далеки от оптимальных. За свои более чем 10 лет опыта разработчика ПО для стартапов я научился не доверять способности работодателей обеспечить мне адекватную рабочую среду, и это мешает мне выполнять работу для них наилучшим образом. Я, по своей природе, амбициозный, энергичный, и я не хочу ничего более, чем выдать на том месте, где я работаю, лучшее из того, что я могу. Я отдаю себя на 100% компании, в которой я работаю. Но в большинстве мест, где я работал, было сделано немало, чтобы воспрепятствовать мне в этом. Вот почему в какой-то момент времени я занял чёткую позицию: отныне я буду работать только «удалённо».
Читать дальше →
Всего голосов 77: ↑65 и ↓12+53
Комментарии298

Создаем шаблонизируемые переиспользуемые компоненты в Angular 2

Время на прочтение9 мин
Количество просмотров32K
image Много раз слышал утверждение, что Angular 2 должен быть особенно хорош в корпоративных приложениях, поскольку он, мол, предлагает все нужные (и не очень) прибамбасы сразу из коробки (Dependency Injection, Routing и т. д.). Что ж, возможно это утверждение имеет под собой основу, поскольку вместо десятков разных библиотек разработчикам надо освоить один только Angular 2, но давайте посмотрим, насколько хорошо базовая (основная) функциональность этого фреймворка годится для корпоративных приложений.

По моему опыту, типовое корпоративное приложение — это сотни (иногда тысячи) практически идентичных страниц, которые лишь слегка отличаются друг от друга. Думаю, не мне одному приходила в голову мысль, что неплохо бы выделить повторяющийся функционал в отдельный компонент, а специфичное поведение определять через параметры и внедряемые шаблоны. Давайте посмотрим, что Angular 2 может нам предложить.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии27

Ищем и скачиваем непопулярные и старые файлы в интернете

Время на прочтение14 мин
Количество просмотров208K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Всего голосов 215: ↑213 и ↓2+211
Комментарии74

Android Tips and Tricks

Время на прочтение13 мин
Количество просмотров47K
В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии18

Бесплатное обновление до Windows 10 все еще возможно, ограничение по времени — рекламный ход

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


Как известно, корпорация Microsoft после выпуска своей новой операционной системы Windows 10 постоянно делала две вещи: пыталась убедить пользователей предыдущих версий своей ОС обновиться и напоминала о том, что 29 июля 2016 года бесплатно обновиться уже будет нельзя. Тогда компания утверждала, что после названного срока обновление до новой версии операционной системы станет платным для всех без исключения пользователей.

В общем-то, и это хорошо, поскольку никогда раньше корпорация не предлагала возможность бесплатного обновления операционной системы. Некоторые пользователи подозревают редмондскую компанию в том, что в будущем Windows 10 будет предоставляться в качестве платного сервиса с регулярными обновлениями, но пока этого нет. Более того, похоже на то, что ограничение по сроку относительно бесплатного обновления — просто рекламный трюк, поскольку обновиться бесплатно можно и сейчас.
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии141

Введение в RxJava: Ключевые типы

Время на прочтение7 мин
Количество просмотров137K
rxjava
В вводной статье мы рассмотрели преимущества реактивного подхода в программировании на Java, а также ситуации в которых библиотека Rx бывает более или менее полезной. В этой части мы рассмотрим основные типы, на которых базируется концепция реактивного программирования и несколько дополнительных классов, которые помогут нам в понимании принципов работы библиотеки.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии0

AngularJS — разделение приложения на модули и загрузка компонентов с помощью RequireJS

Время на прочтение4 мин
Количество просмотров34K
Использование AngularJS в паре с RequireJS — достаточно популярный подход к разработке веб приложений в последнее время. И один из основных вопросов — структура приложения. Существует достаточно известный seed для такого приложения tnajdek/angular-requirejs-seed, но мне это не походит, так как при увеличении функционала приложения — данная структура просто будет засоряться кучей файлов, не будет никакого логического разделения скриптов и достаточно сложно будет их менеджить.

Целью было создать приложение с модульной и гибкой архитектурой (ну скорее просто разбиение приложение не логические части), с простым и понятным описанием зависимостей между частями приложения и уменьшить зависимость кода от структуры приложения.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии27

ANGULARJS + REQUIREJS

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

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

Итак, опишем наш взгляд на решение проблемы.

Для чего?

Работая с AngularJs вы обязательно задумаетесь о правильной организации кода. Конечно уже существуют отличные примеры решения проблемы. Например можно изучить теоретический пост Брайана Форда или практическое руководство Клиффа Мейерса. Я же поделюсь способом организации кода в приложениях AngularJs с использованием RequireJs.

Данный подход будет полезен, если вы хотите:

  • перестать беспокоиться о подключении скриптов в правильном порядке;
  • загружать javascript код асинхронно;
  • иметь возможность скомпилировать код в один минифицированный JS-файл;
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии66

Как не выбить разработчика из состояния «потока»

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


/ фото Rachel Johnson CC

Время разработчика – это бесценный ресурс, которого постоянно не хватает. Мы в компании «ИТ-ГРАД» относимся к этому вопросу очень внимательно.

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

В связи с этим мы хотели бы дать несколько советов для руководителей компаний и менеджеров проектов, которые позволят максимально эффективно работать и взаимодействовать с командой разработки.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии15

Сборник песен под гитару ко дню системного администратора (с аккордами!)

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

Доброго времени суток, товарищи!


Выкладываю сборник пародийных тематических песен на известные мотивы. Тексты переписаны лично мной. Патчи принимаются на гитхабе


Кусочек кода отправлять кому-то

Оригинал: "Философы в тринадцать с половиной"


Em                      Am
Перелистав известные тома,
       D                  G   E
Мы научились понимать английский.
         Am          H         C
Но разве это не свинцовая тюрьма -  
             Am                H
Плутать всю жизнь меж строчек манов к циске?

      E                  Am
И каждый час, и каждую минуту,
          D                 G   E
О чьём-то софте вечная забота.
          Am    H          C
Кусочек кода отправлять кому-то – 
         Am     H          Em (E) 
Такая, брат, у нас с тобой работа.

Они порою знают больше нас - 
Мэйнтэйнеры в тринадцать с половиной.
И в спорах забываются подчас,
Пуская в ход банхаммеры админа.

И каждый час, и каждую минуту,
О чьём-то софте вечная забота.
Коммиты патчем направлять кому-то -  
Слова ничто, когда они без кода.

А если не справляешься один -  
Бредёшь на форум в поисках подмоги.
Часами в ожидании сидишь,
Под спойлер заворачивая логи.

И каждый час, и каждую минуту,
О чьём-то софте вечная забота.
Скупой багрепорт отсылать кому-то -  
Такая, брат, у нас с тобой работа.

С трудом по клаве мечется рука -  
Луна на стол сквозь окна блики стелит,
Да плещется в измученных зрачках
Счастливый сон о выспавшемся теле.

И каждый час, и каждую минуту,
Об общем софте вечная забота.
Лицом на клаве засыпать под утро -  
Такая, брат, сейчас цена свободы.

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

И каждый час, и каждую минуту,
Об общем софте вечная забота.
Держать для сна одну шестую суток -  
Такая, брат, сейчас цена свободы.
Читать дальше →
Всего голосов 45: ↑29 и ↓16+13
Комментарии24

Настраиваем URL Overrides в Keepass2

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

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


По специфике моей работы мне часто приходится записывать и хранить большое количество паролей и другой конфиденциальной информации, поэтому я пользуюсь Keepass2 — менеджером паролей со свободной лицензией. Я не стану рассказывать о его возможностях и преимуществах перед другими, все это и так уже обсуждалось не раз. Если кто хочет познакомиться подробнее, вот несколько ссылок: wiki, обзорная статья, сравнения с другими: 1 2.
Вместо этого я хотел бы рассказать об одной его интересной функции:


Функция называется "URL Overrides", и представляет ссобой возможность запускать ассоциированные с записями программы и передавать им данные для аутентификации прямо из Keepass'а.


Например, вы можете хранить в keepass'е список учеток для подключения к удаленному серверу, а в определенный момент выбрать нужную и простым нажатием Ctrl+U, запустить клиент удаленного подключения, и моментально получить доступ к вашему серверу.
Это очень удобно, так как все логины и пароли не хранятся абы где, а надежно зашифрованны в вашей базе keepass и передаются программе-клиенту только в момент подключения.


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

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии45

Angular 2 и внедрение зависимостей

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

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


Одна из тем, вызывающая много вопросов — внедрение зависимостей. Некоторые люди не сталкивались с подобной технологией. Другие не до конца понимают, как она работает в рамках Angular 2, так как привыкли к другим реализациям, которые бывают в других фреймворках.


А разгадка кроется в том, что DI во втором ангуляре действительно несколько отличается от других, и связано это в первую очередь с общим подходом и философией 2-й версии. Заключается она в том, что сущностями из которых строится всё приложение, являются компоненты. Сервисный слой, роутер, система внедрения зависимостей — вторичны и они имеют смысл только в рамках компонента. Это очень важный момент, который лежит в основе понимания архитектуры нового фреймворка.

Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии53

Angular 2 Beta, обучающий курс «Тур героев» часть 1

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

Часть 1 Часть 2 Часть 3 Часть 4


Вступление


Эта статья основана на документации Angular 2 и представляет собой перевод двух статей — Вступление и Редактор героя.


Используется Angular 2 release is beta.12.


Тур героев: обзор


Наш великий план — построить приложение для кадрового агентства героев. Даже героям нужна работа!


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

Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии11

.Net Client для облака mail.ru

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

По заголовку статьи я думаю уже все догадались о чем будет идти речь. Как известно официального API для облака mail.ru пока не существует, поэтому попробуем написать его сами. Речь конечно же будет идти о клиентской части, а не о серверной.

Что было использовано и что необходимо знать для его написания:

— Язык программирования C#
— Среда разработки Visual Studio
— Базовые знания POST и GET запросов
— Браузер
Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии31

Асинхронные операции и пересоздание Activity в Android

Время на прочтение11 мин
Количество просмотров16K
В одной статье на хабре (274635) было продемонстрировано любопытное решение для передачи объекта из onSaveInstanceState в onRestoreInstanceState без сериализации. Там используется метод writeStrongBinder(IBInder) класса android.os.Parcel.

Такое решение корректно функционирует до тех пор, пока Android не выгрузит ваше приложение. А он вправе это сделать.
…system may safely kill its process to reclaim memory for other foreground or visible processes…
(http://developer.android.com/intl/ru/reference/android/app/Activity.html)

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

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

Время на прочтение3 мин
Количество просмотров126K
"The joy of coding Python should be in seeing short, concise, readable classes that express a lot of action in a small amount of clear code — not in reams of trivial code that bores the reader to death."
Guido van Rossum

Python — язык программирования, на котором приятно писать и который приятно читать. Мы предлагаем тринадцать лекций осеннего курса CS центра, чтобы посмотреть вглубь языка и попробовать понять, как пользоваться всеми его возможностями. Лекции читает Сергей Лебедев, разработчик в компании JetBrains и преподаватель в Computer Science Center.

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

Фотография сделана осенью 2014 года в Страсбурге, за две недели до начала первого прочтения этого курса.
Открыть лекции курса
Всего голосов 45: ↑42 и ↓3+39
Комментарии32

Информация

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