Pull to refresh
19
Karma
0
Rating
Юрий Сыровецкий @cblp

говорящий с машинами

Эксперименты с тиграми и другие способы преподавать программирование студентам, которым скучно

КРОК corporate blog Studying in IT IT career Lifehacks for geeks
Tutorial
🔥 Technotext 2020
image

Привет, Хабр! Я Маша, старший инженер-разработчик iOS в КРОК и аспирант на кафедре Прикладной математики и Искусственного интеллекта в московском вузе. А еще я уже четыре года преподаю. Два года назад мы с коллегами с кафедры, преимущественно аспирантами, основали кружок спортивного программирования, который вырос в большое IT-коммьюнити в стенах универа, где мы делимся разного рода знаниями со студентами.

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

Первый ужас я испытала на первом же занятии со студентами. Одна группа не могла привести ДНФ в КНФ, другая — не смогла даже общим усилием воли вспомнить таблицу истинности для конъюнкции и дизъюнкции. Третья — не понимала как программно устроены списки (это у нас проходят годом ранее). А потом я вспомнила себя — про мой курс преподы говорили то же самое. И про курсы до нас, и про курсы после меня. И школьную учительницу Ольгу Николаевну вспомнила: «В этом году класс еще слабее, чем в прошлом — если так пойдет и дальше, вернемся к жизни на деревьях!». В школе мне казалось, что это такой изощренный педагогический прием, который должен подхлестнуть нас учиться усерднее чтобы «доказать, что мы лучше чем кажется». Ошибалась.

Решили мы с коллегами порефлексировать — а почему так происходит? Результаты, наши грабли и опасные эксперименты с тигром под катом!
Читать дальше →
Total votes 77: ↑71 and ↓6 +65
Views 13K
Comments 126

Чем плох GNU make?

Website development *
GNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.

Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
Читать дальше →
Total votes 120: ↑104 and ↓16 +88
Views 24K
Comments 84

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Network technologies *Wireless technologies *
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →
Total votes 234: ↑231 and ↓3 +228
Views 1.4M
Comments 138

Перевод: Один год с Go

Website development *Programming *Go *
Translation
Под катом — перевод статьи опытного разработчика о его опыте практического применения Go. Важно — мнение переводчика может не совпадать с мнением автора статьи.



почитать что он там пишет
Total votes 110: ↑100 and ↓10 +90
Views 51K
Comments 304

Опыт переезда в Германию системным администратором

IT career
Sandbox
В интернете можно найти множество статей касающихся преимущественно программистов и их опыта переезда в Германию, но практически нет таковых про системных администраторов. При этом работа системного администратора (и поиск её) обладают своей спецификой, к тому же я за последние полгода смог наступить на целый ряд граблей, о которых тоже полезно было бы знать заранее. Собственно, об этом я и хотел бы рассказать в данной статье.

Прошу прощения, что публикую в не совсем профильный «Государство и IT», потому что более подходящего хаба на данный момент нет, а при попытке опубликовать в песочницу на GeekTimes, попросили опубликовать здесь.
Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Views 35K
Comments 18

λ-исчисление. Часть первая: история и теория

Programming *
Tutorial
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

UPD: в текст внесены некоторые изменения с целью сделать его более понятным. Смысловая составляющая осталась прежней.

Вступление


Возможно, у этой системы найдутся приложения не только
в роли логического исчисления. (Алонзо Чёрч, 1932)


Вообще говоря, лямбда-исчисление не относится к предметам, которые «должен знать каждый уважающий себя программист». Это такая теоретическая штука, изучение которой необходимо, когда вы собираетесь заняться исследованием систем типов или хотите создать свой функциональный язык программирования. Тем не менее, если у вас есть желание разобраться в том, что лежит в основе Haskell, ML и им подобных, «сдвинуть точку сборки» на написание кода или просто расширить свой кругозор, то прошу под кат.
Читать дальше →
Total votes 64: ↑54 and ↓10 +44
Views 143K
Comments 33

Функциональное программирование для всех

Programming *
Translation

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Total votes 188: ↑181 and ↓7 +174
Views 344K
Comments 151

Эволюция веб-приложений

Website development *Development of mobile applications *
Всем прикольно пообсуждать «всё новое хреновое», и последние пару лет мы увлечённо обсуждали и пробовали NoSQL/NewSQL на сервере и Angular/Knockout/Ember на клиенте. Но эти тренды, похоже, уже на излёте. Отличный момент, чтобы присесть и поразмыслить, что же дальше. Как сказал M. Andreessen, «software is eating the world». В то же время, mobile/web apps едят обычные приложения. Поэтому особенно интересно прикинуть, а куда же всё катится в мире мобильных и веб-приложений? Ведь они, получается, едят вообще всех. Я считаю, что следующей Большой Темой будет синхронизация данных, и вот почему.
синхронистки
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Views 25K
Comments 8

Полнометражный документальный фильм о демосцене: The Art Of The Algorithms

Demoscene
Не так давно увидел свет еще один документальный фильм о демосцене под названием «The Art Of The Algorithms».



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

Главная страница фильма: Moleman 2. На ней можно скачать фильм в различных форматах с помощью торрента/HTTP/FTP.
Total votes 52: ↑50 and ↓2 +48
Views 3.5K
Comments 11

Бюджетный неттоп в качестве HTPC

Computer hardware
У каждого любителя посмотреть хорошее и качественное кино несомненно встает вопрос: как и чем это кино воспроизводить. Сейчас на рынке присутствует огромное количество мультимедийных плееров разной ценовой категории, с разным дизайном, количеством поддерживаемых форматов и других “плюшек” в виде встроенного торрент-клиента и т.д. Но, как правило, достойные плееры выходят за рамки бюджетных устройств и при этом всем они все же не отличаются гибкостью в настройке системы. Но как же тогда поступить? Мы плавно подошли к разговору о HTPC.


Читать дальше →
Total votes 49: ↑44 and ↓5 +39
Views 57K
Comments 98

Что стоит за номером «кредитки»

Infographics
Прежде всего о терминологии. То, что в России часто называют кредиткой — является банковской (чаще всего) платёжной картой. Карты выпускать может не только банк. Карты могут быть не только кредитные. Вобщем, теорию вы и сами сможете найти.

А теперь, собственно, инфографика о том, как устроены номера банковски карт (600*1800px 280KB):

Читать дальше →
Total votes 147: ↑135 and ↓12 +123
Views 4.7K
Comments 84

Пишем техническую книгу

Professional literature *Technical Writing *
Так получилось, что за последние пять лет я в разной степени по доброй и не всегда доброй воле участвовал в создании почти десятка технических книг. В свете выхода последней книги в соавторстве с XaocCPS, посвященной ASP.NET MVC Framework, меня попросили описать опыт создания книг от начала и до конца. Я описал процесс в этом посте.
Читать дальше →
Total votes 128: ↑120 and ↓8 +112
Views 2.5K
Comments 69

История Linux. Вкратце о главном

History of IT
Корни Linux прослеживаются ещё с 70-х годов 20-го века. Точкой отсчёта можно считать появление операционной системы Unix в 1969-м году в США в фирме Bell Laboratories, дочернем подразделении компании AT&T. Unix стала основной для большого количества операционных систем промышленного класса. Самые основные из них отображены на этой временной шкале:


Читать дальше →
Total votes 355: ↑327 and ↓28 +299
Views 53K
Comments 202

NAS i-Stor iS607. Доработать напильником

Computer hardware
Купившись на краткий обзор i-Stor iS607 и его миленькую мордочку, на прошлой неделе я его приобрел. Чувства двоякие. С одной стороны оно работает, но какой ценой, господа. Кажется, я теперь могу идти админить Linux сервера.

* NAS, или Network Attached Storage, — это такая коробочка с винтом, которая подключается к сети и тихо выполняет функции файлсервера и торенткачалки стоя в углу. Лучше специальных серверов по следующим параметрам: конечно же цена, размер, энергопотребление.

Коротко.


Стоит ли покупать?
Нет, если вы не гуру линуксоид и/или не любите стучать головой об стену.

Минусы.
  • Стандартная прошивка iS607 умеет только… да ничего не умеет
  • Нестандартную прошивку надо еще найти и умудриться поставить правильную
  • Техподдержки для iS607 нет как класса, 95% информации в интернете устарело и тупо не работает
  • Нужно знать Linux, чтобы хоть как-то привести его в рабочее состояние
  • Судя по форумам, с половиной винтов iS607 не дружит
  • Также, с половиной маршрутизаторов
  • Довольно слаб
  • Имеет еще кучу (порой странных и непонятных) глюков

Плюсы.
  • Симпатяжка
  • Работает


image
* Нагло тырю картинку из того же топика

В этом посте я хочу собрать свой опыт настройки i-Stor iS607. Ибо в интернете информации весьма мало и мне пришлось перечитать вообще все, чтобы чего-то хоть добиться. Чтобы облегчить путь братьям Хабравчанам (хоть я и не сомневаюсь, что большинство из вас успешно завершили бы этот квест самостоятельно и вероятно быстрее меня), публикую инструкцию в одном месте.
Читать дальше →
Total votes 77: ↑70 and ↓7 +63
Views 19K
Comments 63

OAuth: описание протокола простым и понятным языком

Social networks and communities
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами
Total votes 134: ↑124 and ↓10 +114
Views 175K
Comments 34

Ванька (по Чехову)

Reading room
Ванька Жуков, девятнадцатилетний веб-девелопер, устроившийся три месяца тому назад в столичное интернет-агентство, в ночь под выход новой версии Ubuntu не ложился спать. Дождавшись, когда тех. директор и менеджеры ушли на совещание, он достал из-под стола сотовый телефон, USB-кабель, мышку с заедающим шариком и, разложив перед собой обшарпанный ноутбук, стал набирать. Прежде чем нажать первую клавишу, он несколько раз пугливо оглянулся на двери и окна, покосился на портрет Артемия Андреевича, по обе стороны которого тянулись полки с «атмарками», и прерывисто вздохнул. Ноутбук лежал на офисном кресле, а сам он стоял перед креслом на коленях.

Читать дальше →
Total votes 140: ↑128 and ↓12 +116
Views 884
Comments 52

Задачи для собеседования

Lumber room
Я иногда провожу интервью кандидатов на работу. Помимо определения профессиональных навыков кандитата в мои обязанности входит «погонять человека по задачкам».

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

Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 3.7K
Comments 94

5 уроков, которые я извлек из создания своих онлайн сервисов

Website development *
1. Не стоит планировать все с самого начала и до мелочей.
(Если ты не проектируешь баллистическую ракету, конечно). В процессе реализации тебе будут приходить новые интересные идеи и лучшее понимание некоторых вещей. Возможно, что часть функций которые ты так тщательно проектировал вообще не будут востребованы.

Сделал часть фич — залей на сайт, пусть друзья (первые пользователи) потестирует, посмотри что они скажут.

Первые релизы будут пробой пера, ты будешь искать что работает, а что нет, что хорошо, а что не очень. Поэтому уделяй меньше времени красоте кода и стройности базы данных и больше новым фичам, новым возможностям.
Читать дальше →
Total votes 66: ↑62 and ↓4 +58
Views 754
Comments 48

Subversion: чеклист по правильным коммитам

Lumber room
Предполагаем, что читатель: а) работает в коллективе; и б) осознал необходимость правильной работы с системами контроля версий или хотя бы поставлен перед необходимостью использовать таковую.

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

Грубо разделим фазы разработки проекта на три — дебют, миттельшпиль и эндшпиль.

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

В миттельшпиле система в целом стабилизировалась, продукт близится к релизу. Рефакторинг более чёткий, хотя и иногда достаточно обширный. На этом этапе ожидается уже, что система в целом работает — по крайней мере, сломанный репозиторий порицается.

Наконец, в эндшпиль система переходит непосредственно перед релизом и сразу после. Для веб-приложений постоянно добавляются новые относительно небольшие возможности, а крупные изменения сначала тестируются на ветках. Для более традиционных приложений наоборот, создаётся ветка для maintenance релизов, а разработка следующей большой версии продолжается на стволе.

Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Views 4K
Comments 59

Улучшаем новый Gmail

Cloud services *
Translation

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

Они будут работать в Chrome, Firefox с Greasemonkey или Safari с Ninjakit. Пользователи Chrome и Firefox могут установить стили как пользовательские скрипты со страниц стилей или с помощью Stylish для Chrome / Stylish для Firefox, которые предлагают установку в один клик. Те кто использую браузер Opera могут установить их как CSS или JavaScript со страницы стилей.
Читать дальше →
Total votes 70: ↑59 and ↓11 +48
Views 6.5K
Comments 46

Information

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