Pull to refresh
40
0

User

Send message

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

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


Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments2

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

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



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

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

Reading time8 min
Views120K



Рассуждения


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

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

FP на Scala: Invariant Functor

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

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

Содержание

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments0

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

Reading time15 min
Views32K
Специалист, приступающий к изучению функционального программирования, сталкивается как с неоднозначностью и запутанностью терминологии, так и с постоянными ссылками на «серьезную математику».

В этой статье, не используя теорию категорий с одной стороны и эзотерические языковые механизмы 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% цены!).


Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments7

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

Reading time4 min
Views141K
image

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

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

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

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

мануал по восстановлению залитого ноутбука
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments48

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

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

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

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

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

Reading time9 min
Views55K

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

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

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


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

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

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

Reading time9 min
Views38K


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

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

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



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

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

Reading time4 min
Views27K
Всем привет!

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

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

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


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

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

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

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

Reading time4 min
Views37K
image

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

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


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

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


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

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

Reading time6 min
Views40K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

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>

Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments6

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

Reading time3 min
Views4.7K
Сегодня мы рассмотрим основные вопросы, которые возникают на практике при согласовании условий договора на создание ПО. Понятно, что в целях защиты интересов заказчика или разработчика в договор могут вноситься различные положения, от которых зависит его фактическое исполнение и достигаемый результат.

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

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

Ниже мы рассмотрим данные вопросы подробнее.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments6

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

Reading time7 min
Views80K


Язык программирования 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]

Читать дальше →
Total votes 63: ↑57 and ↓6+51
Comments93

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

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

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


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

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

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

Причины и выводы спрятаны под катом.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments6

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

Reading time4 min
Views56K
В первой части я немного рассказал о моем опыте создания устройств на основе системы MySensors. Должен признать, описание получилось не полным — без начала и без конца.

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

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

Reading time3 min
Views21K
На практике нам часто приходится сталкиваться с различными договорами на создание программного обеспечения. Обычно для оформления заказа на разработку программных продуктов используются договор возмездного оказания услуг, договор подряда либо договор авторского заказа (авторский договор).

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

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

Reading time3 min
Views98K
1. Интро. Личное



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

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

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

Information

Rating
Does not participate
Location
Тверь, Тверская обл., Россия
Date of birth
Registered
Activity