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

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

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

О докладе Кирилла Толкачёва и Александра Тарасова про микросервисы на jug.msk.ru

Время на прочтение3 мин
Количество просмотров13K
26 ноября 2015 года на встрече московской Java User Group, проходившей в офисе компании КРОК, Кирилл Толкачёв и Александр Тарасов выступили с докладом «микроСЕРВИСЫ: огонь, вода и медные трубы». О чём шла речь, какие впечатления от выступления, обо всём этом можно прочитать дальше.


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

Почти весь умный дом: большая подборка отдельных смарт-элементов: лампы, розетки, климат, экология и безопасность

Время на прочтение17 мин
Количество просмотров59K
Категория управляемых смарт-устройств в «рубрике» умный дом уже близка к тому, чтобы перестать поддаваться исчислению и систематизации, и отдельные прогнозы пока еще указывают на рост интереса пользователей к этой нише.



Из-за высокой конкуренции среди производителей стала заметна тенденция к созданию отдельных дешевых элементов, не входящих в какую-либо систему, а автономно работающих в паре с собственным софтом. Сегодня практически все время про них: управляемые смарт-девайсы для умного дома: свет, электричество, экология и видеонаблюдение. Выбираем среди дорогих и дешевых.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии23

Linux-контейнеры дома: зачем и как

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



Рассуждения


При упоминании словосочетания «контейнерная виртуализация», многим на ум сразу же приходят Virtuozzo и OpenVZ, а также Docker. Ассоциируется же это все, в первую очередь, с хостингом, VPS и другими подобными вещами.

Дома, на личных компьютерах многие используют виртуальные машины: в основном, пожалуй, Virtualbox. Как правило, для того, чтобы работая под Linux, иметь под рукой Windows или наоборот. Однако, при наличии множества родственных Linux-операционок, я стал замечать, что использование виртуальных машин — это, мягко говоря, нерационально.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии84

FP на Scala: Invariant Functor

Время на прочтение7 мин
Количество просмотров12K
В статье рассматривается
  • Как такая абстракция теории категорий как инвариантный функтор (Invariant Functor), который иногда называют экпоненциальным функтором (Exponential Functor), выражается на Scala.
  • Два правила (Identity Law, Composition Law), которым доложен следовать каждый инвариантный функтор.
  • Приведен пример инвариантного функтора с состоянием (Value Holder)
  • Приведен пример инвариантного функтора-отношения между элементами множества (полугруппа)

Публикация является продолжением FP на Scala: Что такое функтор? в которой были рассмотрены следующие вопросы
  • Какая имеется связь между теорией категорий, Haskell и Scala.
  • Что такое ковариантный функтор.
  • Что такое контравариантный функтор.

Содержание

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

FP на Scala: Что такое функтор?

Время на прочтение15 мин
Количество просмотров32K
Специалист, приступающий к изучению функционального программирования, сталкивается как с неоднозначностью и запутанностью терминологии, так и с постоянными ссылками на «серьезную математику».

В этой статье, не используя теорию категорий с одной стороны и эзотерические языковые механизмы Scala с другой стороны, рассмотрены два важнейших понятия
  • ко-вариантный функтор
  • контра-вариантный функтор
которые являются стартовой точкой для понимания всего множества категориальных конструкций, куда можно включить
  • Exponential (Invariant) Functor, BiFunctor, ProFunctor
  • Applicative Functor, Arrow, Monad / Co-Monad
  • Monad Transformers, Kleisli, Natural Transformations

Объяснено происхождение категориальной терминологии, указана роль языковых механизмов в реализации категориальных абстракций и рассмотрено несколько ковариантных (Option, Try, Future, List, Parser) и контравариантных (Ordering, Equiv) функторов из стандартной библиотеки Scala.

Первая статья в «категориальной серии»:
  1. FP на Scala: что такое функтор?
  2. FP на Scala: Invariant Functor

Если Вы желаете сильнее погрузиться в мир Scala, математики и функционального программирования — попробуйте онлайн-курс «Scala for Java Developers» (видео + тесты, всего за 25% цены!).


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

Подальше от обыденной реальности: фантастические романы, которые стоит прочитать

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

Фантастика как жанр заставляет читателей и писателей выйти за пределы разумного, дать волю своему воображению и отправиться в неизведанные миры. За это мы и любим этот жанр. RoboHunter этой осенью предлагает с головой погрузиться в мир научной фантастики.
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии273

Как спасти залитый ноутбук и минимизировать стоимость возможного ремонта?

Время на прочтение10 мин
Количество просмотров306K
Одна из самых распространенных проблем, с которыми обращаются в сервисные центры владельцы лэптопов – пролитая на устройство жидкость. Само по себе событие из ряда вон выходящее и крайне неприятное, но… Доходы мастеров сервиса могли бы быть несколько скромнее, а число выживших после омовения устройств значительно больше, если бы пользователи были чуточку повнимательнее и вовремя познакомились с правилами первой неотложной помощи для своих электронных друзей.

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

мануал по восстановлению залитого ноутбука
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии48

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Время на прочтение5 мин
Количество просмотров114K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Всего голосов 111: ↑96 и ↓15+81
Комментарии102

Основы и заблуждения насчет JavaScript

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

Объекты, классы, конструкторы

ECMAScript, будучи высоко-абстрактным объектно-ориентированным языком программирования, оперирует объектами. Существуют также и примитивы, но и они, когда требуется, также преобразуются в объекты. Объект — это коллекция свойств, имеющая также связанный с ней объект-прототип. Прототипом является либо также объект, или же значение null.
В JavaScript нет привычных классов, но есть функции-конструкторы, порождающие объекты по определенным алгоритмам (см. Оператор new).

Прототипное делегирующее наследование


Классическое наследование очень похоже на то, как люди наследуют гены своих предков. Есть какие-то базовые особенности: люди могут ходить, говорить… И есть характерные черты для для каждого человека. Люди не в состоянии изменить себя — свой класс (но могут поменять собственные свойства) и бабушки, дедушки, мамы и папы не могут динамически повлиять на гены детей и внуков. Все очень по земному.

Теперь представим другую планету, на которой не такое как на Земле генное наследование. Там обитают мутанты с «телепатическим наследованием», которые способны изменять гены своих потомков.
Разберем пример. Отец наследует гены от Дедушки, а Сын наследует гены от Отца, который наследует от Дедушки. Каждый мутант может свободно мутировать, и может менять гены своих потомков. Например у Дедушки был зеленый цвет кожи, Отец цвет унаследовал, Сын тоже унаследовал цвет. И вдруг Дед решил: «надоело мне ходить зеленым — хочу стать сними», смутировал (изменил прототип своего класса) и «телепатически» распространил эту мутацию Отцу и Сыну, вобщем посинели все. Тут Отец подумал: «Дед на старости лет совсем двинулся» и поменял свой цвет в генах обратно на зеленый(изменил прототип своего класса), и распространил «телепатически» свой цвет сыну. Отец и Сын зеленые, Дед синий. Теперь как бы дед ни старался Отец и сын цвет не поменяют, т.к сейчас Отец в своем прототипе прописал цвет, а Сын в первую очередь унаследует от Прототипа Отца. Теперь Сын решает: «Поменяю ка я свой цвет на черный, а моё потомство пусть наследует цвет от Отца» и прописал собственное свойство, которое не влияет на потомство. И так далее.
Читать дальше →
Всего голосов 174: ↑161 и ↓13+148
Комментарии96

Механизмы профилирования Linux

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


Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Комментарии11

52 вопроса, которые вы должны задать на собеседовании

Время на прочтение4 мин
Количество просмотров74K
Вы, наверное, уже знаете, что интервью — это не просто очередной этап при устройстве на работу, это также ваша возможность разобраться, подходит ли вам эта работа. Для этого важно задать некоторые вопросы. Что вы хотите знать об этой должности? О компании? О подразделении? О команде? О корпоративной культуре?



Задавать вопросы бывает сложно. Мы это знаем. Для того, чтобы упростить вам это задание, мы приводим список ключевых вопросов для интервью. Мы определённо не рекомендуем задавать их все. Пожалейте рекрутера!
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии13

Как поступать, если заказчик затягивает приемку работ

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

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

Хочу поделиться опытом в решении вопроса.

Типичный пример


Предпроектное исследование для внедрения 1С. Предоплата 50 процентов. Исполнитель завершил работу и скинул ее на электронную почту заказчику.

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

Неделя, вторая, месяц, два месяца. Тишина. Наконец, удается назначить встречу с руководством. В кабинете генерального директора исполнитель узнает удивительные вещи: работа не качественная, все возможные сроки прошли, интерес утрачен, оплаты второй части не будет. «Хотите судиться – давайте, мы с вас и предоплату обратно возьмем».
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Cистема образования в США: Младшая и Средняя школа — чему и как учат? Часть 1

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

Как то несколько лет назад зашел разговор с сыном шестиклассником о русских дворовых поговорках и задачках.
Для затравки я взял классическую дворовую считалку:

А И Б сидели на трубе
А упала, Б пропала
Кто остался на трубе?


Сын задумался и потом довольно быстро разгадал. Я уязвленный в лучших чувствах российского дворового сленга решил усложнить и попросил перевести на английский. Савва (так зовут сына) не задумываясь выдал следующее:

A N' B were on a tree.
A fell down, so did B.
Who is left on the tree?


Результат несколько меня ошеломил после чего я решил делать эти записки о системе общеобразовательной (очень хорошей школы) в США.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии55

Несколько интересностей и полезностей для веб-разработчика #44

Время на прочтение6 мин
Количество просмотров40K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

ExpandJS



Огромный проект, где спецификация веб-компонентов используется на полную катушку. ExpandJS это набор из более чем 80 компонентов и более 350 различных функций для работы с ними. И все это доступно как каркас, но так же и в трендовом Material Design стиле.

<!-- Import elements -->
<link rel="import" href="../mat-content.html">
<link rel="import" href="../mat-drawer.html">
<link rel="import" href="../mat-header-panel.html">
<link rel="import" href="../mat-shell.html">

<!-- Application scaffold -->
<mat-shell theme="...">

    <mat-drawer>...</mat-drawer>

    <mat-header-panel>
        <mat-header>...</mat-header>
        <mat-content>...</mat-content>
    </mat-header-panel>

    <mat-drawer right>...</mat-drawer>

</mat-shell>

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

Как защитить интересы сторон в договоре на создание ПО

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

До начала обсуждения условий договора на разработку ПО необходимо определиться с его формой. В этом вам поможет предыдущий пост: «Как выбрать договор на разработку ПО». С формами договоров и пояснениями к ним можно ознакомиться здесь.

После определения формы договора на разработку ПО стороны, как правило, волнуют три вопроса:
1) Как оформить заказ на разработку ПО в упрощенном порядке?
2) Какие права на ПО переходят заказчику и сохраняются у разработчика?
3) Как документально оформить передачу заказчику прав на ПО?

Ниже мы рассмотрим данные вопросы подробнее.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии6

Что такого особенного в Nim?

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


Язык программирования Nim (ранее именовался Nimrod) — захватывающий! В то время как официальная документация с примерами плавно знакомит с языком, я хочу быстро показать вам что можно сделать с Nim, что было бы труднее или невозможно сделать на других языках.

Я открыл для себя Nim, когда искал правильный инструмент для написания игры, HoorRace, преемник моей текущей DDNet игры/мода Teeworlds.

(прим. пер. На синтаксис Nim имели влияние Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.)

Запускаем!


Да, эта часть всё ещё не захватывает, но просто следите за продолжением поста:

for i in 0..10:
  echo "Hello World"[0..i]

Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии93

Спор по договору на продвижение сайта

Время на прочтение3 мин
Количество просмотров13K
Данной публикацией мы хотели открыть серию материалов о судебной практике разрешения споров в ИТ-сфере.
Начнем с проблем работы с заказчиками SEO. Для иллюстрации выбран один из арбитражных споров, на примере которого можно увидеть отношение суда к данным услугам и предложить некоторые практические рекомендации по снижению финансовых рисков.

Суть спора по договору на продвижение сайта


Заказчик (Истец) обратился в суд с требованием о расторжении договора на оказание рекламных услуг с исполнителем (Ответчик), взыскании оплаты по договору и процентов за пользование чужими денежными средствами.

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

Суды вышестоящих инстанций отменили решение и в удовлетворении иска отказали.

Причины и выводы спрятаны под катом.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии6

«Умный Дом» и система MySensors: Часть 0

Время на прочтение4 мин
Количество просмотров56K
В первой части я немного рассказал о моем опыте создания устройств на основе системы MySensors. Должен признать, описание получилось не полным — без начала и без конца.

В этот раз займемся «началом», значит это будет Часть 0.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии9

Как выбрать договор на разработку ПО

Время на прочтение3 мин
Количество просмотров21K
На практике нам часто приходится сталкиваться с различными договорами на создание программного обеспечения. Обычно для оформления заказа на разработку программных продуктов используются договор возмездного оказания услуг, договор подряда либо договор авторского заказа (авторский договор).

Какой из них верный и чем грозит ошибка при выборе договора?
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Читаем электронные книги на английском без словарей и переводчиков

Время на прочтение3 мин
Количество просмотров98K
1. Интро. Личное



Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Далее
Всего голосов 90: ↑88 и ↓2+86
Комментарии109
1
23 ...

Информация

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