Pull to refresh
17
0.1

User

Send message

Приверженцы статической и динамической типизаций никогда не поймут друг друга. И TypeScript им не поможет

Reading time6 min
Reach and readers59K


Когда мы с другом учились в школе и только мечтали стать разрабами, мы думали как сделаем вместе какую-нибудь штуковину — игру или супер-полезную программу.

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

Собравшись уже матерыми разрабами, мы решили, наконец, сделать свой проект — двумерную видеоигру. Так как друг был чистый фронт, а я фулстек, очевидной платформой для нас стал браузер. Раньше я разрабатывал фронт только на TypeScript, и мы подумали, никаких проблем, TS — всего-лишь надмножество JavaScript. Возьмем его и все пройдет гладко. Как бы не так. Когда мы начали обсуждать работу, столкнулись с невероятной бездной непонимания друг друга.
Читать дальше →

Где Agile ужасен, особенно Scrum

Reading time15 min
Reach and readers97K
Гибкость — без сомнения хорошая вещь, и в манифесте Agile есть смысл. По сравнению с хрупкой практикой под названием «водопад», Agile заметно лучше. Тем не менее, на практике гибкие подходы часто наносят глубокий вред, и в действительности вряд ли здесь уместна дихотомия Agile/Waterfall.

Я видел, как множество вариантов Agile, называемых Scrum, реально убивают компанию. Под «убивают» я имею в виду не «ухудшение культуры», а скорее когда акции компании падают почти на 90% за два года.

Что такое Agile?


Agile вырос из среды веб-консалтинга, где он приносил определённую пользу: при работе с привередливыми клиентами, которые не знают, чего они хотят, обычно приходится выбирать из двух вариантов. Или одолеть клиента: установить ожидания, соответствующую оплату за переделки и поддерживать отношения равенства, а не подчинения. Или принять некорректное поведение клиента (как, скажем, приходится многим дизайнерам) и ориентировать рабочий поток вокруг клиентской дисфункции.
Читать дальше →

Ребенок, интернет и родители. Как избежать ловушек, получить пользу и остаться друзьями?

Reading time18 min
Reach and readers58K

Screenagers — так с недавних пор в Америке называют подростков. Это слово образовано из двух английских слов: screen (экран) и teenager (тинейджер). Ведь нынешние подростки уже выросли с телефоном в руках.

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

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

«Скорее всего, будет расти как снежный ком» — Андрей Бреслав и Антон Кекс о Kotlin

Reading time25 min
Reach and readers25K


За год, прошедший с релиза Kotlin 1.0, у языка произошли прорывы по многим фронтам: от поддержки в Gradle и Spring до выхода книги «Kotlin in Action». Число Kotlin-строк на GitHub возросло более чем вчетверо, превысив 10 миллионов. А теперь вышла версия 1.1, добавляющая компиляцию в JavaScript, и это выглядит громкой заявкой на новую долю рынка. Означает ли это всё, что вот теперь время Kotlin по-настоящему пришло, и нам всем пора активно использовать язык в продакшене?

Андрей Бреслав (JetBrains) и Антон Кекс (Codeborne) многое знают о Kotlin (и оба скоро выступят на JPoint с докладами о нём), но при этом смотрят на него с разных сторон: пока Антон разрабатывает на этом языке, Андрей работает над самим языком. Мы решили, что о настоящем и будущем Kotlin интересно поговорить с ними обоими сразу, получив полную картину. Начав с вопросов о бурном росте, затем успели обсудить ещё многое:

  • Взаимодействие с разработчиками и процесс эволюции языка
  • Компиляцию в JS, проект Kotlin Native и мультиплатформенность в общем
  • Несовершенства
  • Kotlin-паззлеры
  • Ожидания и амбиции
Читать дальше →

Обработка ошибок в Go 2

Reading time10 min
Reach and readers51K

title


Буквально пару дней назад в Денвере закончилась очередная, уже 5-я по счёту, крупнейшая конференция по Go – GopherCon. На ней команда Go сделала важное заявление – черновики предварительного дизайна новой обработки ошибок и дженериков в Go 2 опубликованы, и все приглашаются к обсуждению.


Я постараюсь подробно пересказать суть этих черновиков в трёх статьях.


Как многим, наверняка, известно, в прошлом году (также на GopherCon) команда Go объявила, что собирает отчёты (experience reports) и предложения для решения главных проблем Go – тех моментов, которые по опросам собирали больше всего критики. В течении года все предложения и репорты изучались и рассматривались, и помогли в создании черновиков дизайна, о которых и будет идти речь.


Итак, начнём с черновиков нового механизма обработки ошибок.

Читать дальше →

Проблема с доступом и интересный ключ реестра Windows

Reading time3 min
Reach and readers37K
Цель данной статьи — рассказать об интересном ключе реестра Windows:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\CrashOnAuditFail

Пару лет назад он подарил мне несколько часов напряженного траблшутинга проблем доступа к общим папкам и, так как ни тогда, ни сейчас я не вижу объяснения этой проблемы в поиске, я решил его описать. Если вам интересно, как может получиться, что права доступа у вас и вашего коллеги есть, но получить доступ к общей папке может только один из вас, то добро пожаловать под кат.
Читать дальше →

Другая реализация метафункции is_function<T> для C++98/03

Reading time13 min
Reach and readers11K
    Это небольшой отчет о том, как я решил написать метафункцию is_function для С++98/03, таким образом, чтобы не нужно было создавать множество специализаций для разного количества аргументов.
    Зачем, спросите вы, в 2016 году вообще подобным заниматься? Я отвечу. Это challenge. Кроме всего прочего, эта, сперва чисто теоретическая работа из разряда «возможно или нет», вскрыла некоторые проблемы в современных компиляторах. Всех, кому не чуждо подобное настроение, приглашаю взглянуть.
Читать дальше →

Kotlin 1.0. Задай вопрос команде

Reading time2 min
Reach and readers26K
На этой неделе случилось важное для нас событие — вышла первая версия языка программирования Kotlin! Так как почти вся разработка Kotlin велась в Питерском офисе компании JetBrains, многие хабровчане уже знают, что такое Kotlin и пробовали его на практике, поэтому этот пост больше для комментариев: задавайте любые вопросы и команда Kotlin ответит. Мы онлайн!

image

Читать дальше →

Сравниваем Swift и Rust

Reading time18 min
Reach and readers32K

Поводом для написания статьи стала публикация исходного кода языка Swift — мне стало интересно поближе познакомиться с ним. В глаза сразу же бросилась схожесть синтаксиса с другим молодым языком программирования под названием Rust, к тому же за схожими синтаксическими конструкциями просматривалась и схожая область применения этих языков. Оба языка имеют сильную статическую типизацию с локальным выводом типов, оба компилируются напрямую в машинный код. И тот и другой языки впитали в себя многие приемы из мира функционального программирования. И Swift и Rust имеют средства для запуска кода, написанного на C, что позволяет без труда писать обертки над огромным количеством библиотек. Оба языка рассматриваются как замена существующим системным языкам типа C, C++, ObjectiveC. Так что же в них общего, а что различается?
Читать дальше →

Знакомьтесь: Хеш-стеганография. Очень медленная, но совершенно секретная

Reading time5 min
Reach and readers34K
Да, уважаемый читатель, вы правильно прочитали: совершенно секретная. Причем, прошу заметить, совершенно секретная в самом строгом математическом смысле: совершенно секретная по Кашену, ибо расстояние Кульбака — Лейблера в моей математической конструкции будет равно нулю; причем не «почти нулю», а всамделишному нулю, без всяких «бесконечно малых» и иных вульгарных приближений!

Каким образом? А очень просто — я вообще не буду ничего вкраплять в стегоконтейнер. Действительно, если мы ничего не вкрапляем, то пустой контейнер неотличим от стегоконтейнера, верно?

«Подождите, но ведь если мы совсем ничего не вкрапляем, то мы совсем ничего не передаем!!!» — разумно поспорит со мной читатель.

Абсолютно верно! Вкраплять мы и не будем! Есть способ, не искажая контейнер, тем не менее передать информацию. Как?

Cхематично Хеш-стеганографию ɔ⃝
можно представить так:


Текстовое пояснение к картинке под катом.

Поехали

NemerleWeb — Уникальный веб-фреймворк

Reading time6 min
Reach and readers20K
NemerleWeb NemerleWeb — это фреймворк для создания одностраничных веб приложений (Single Page Application — SPA), который транслирует код написанный на Nemerle в смесь JavaScript и HTML, а также обеспечивает двустороннюю привязку данных, прозрачное дуплексное общение с сервером, статическую типизацию с настоящими подсказками и ещё много чего другого.

Как это работает?


Разработчик описывает логику моделей на компилируемом языке Nemerle.
Благодаря макросам, код на этом языке получается очень лаконичным, фактически мы только описываем логику приложения. Это выгодно отличает наше решение от библиотек на чистом JavaScript.
Читать дальше →
12 ...
11

Information

Rating
3,661-st
Registered
Activity