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

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

Send message

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

Reading time 16 min
Views 14K
image

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

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

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

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

Чем плох GNU make?

Reading time 16 min
Views 26K
GNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.

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

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

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

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

Reading time 6 min
Views 51K
Под катом — перевод статьи опытного разработчика о его опыте практического применения Go. Важно — мнение переводчика может не совпадать с мнением автора статьи.



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

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

Reading time 10 min
Views 37K
В интернете можно найти множество статей касающихся преимущественно программистов и их опыта переезда в Германию, но практически нет таковых про системных администраторов. При этом работа системного администратора (и поиск её) обладают своей спецификой, к тому же я за последние полгода смог наступить на целый ряд граблей, о которых тоже полезно было бы знать заранее. Собственно, об этом я и хотел бы рассказать в данной статье.

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

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

Reading time 6 min
Views 154K
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

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

Вступление


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


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

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

Reading time 33 min
Views 351K

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

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

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

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

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

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

Reading time 1 min
Views 3.7K
Не так давно увидел свет еще один документальный фильм о демосцене под названием «The Art Of The Algorithms».



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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

Коротко.


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

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

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


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

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

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

Reading time 16 min
Views 189K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

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


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

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

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

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

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

Reading time 3 min
Views 4.3K
Я иногда провожу интервью кандидатов на работу. Помимо определения профессиональных навыков кандитата в мои обязанности входит «погонять человека по задачкам».

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

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

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

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

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

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

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

Reading time 5 min
Views 4.1K
Предполагаем, что читатель: а) работает в коллективе; и б) осознал необходимость правильной работы с системами контроля версий или хотя бы поставлен перед необходимостью использовать таковую.

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

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

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

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

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

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

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

Reading time 3 min
Views 6.5K

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

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

Мой минимальный набор приложений для Android

Reading time 3 min
Views 18K
Ехала я как-то с работы на прошлой неделе, сидела в инете со своего мобильного телефончика, и поняла, что хватит — пора бы коммуникатор приобрести. Особо ими никогда не интересовалась и не увлекалась. Вообщем, ничего особо и не знала. Зашла в первый попавшийся магазин и купила HTC Hero. Меня многие потом конечно ругали, что зачем Hero взяла, надо было Legend или Desire уже брать, ну и так далее, но так как это был мой первый коммуникатор, то мне и с Героем было с чем поразбираться и поиграться.
Вот хочу опубликовать мой набор программок, которые сейчас стоят у меня на HTC. Перепробовала много разных, и вот те которые мне понравились из представленных в разных категориях.
1. Так как я много сижу в интернете через gprs, то 3G Watchdog. Программа для контроля интернет-трафика, есть возможность установить лимит по трафику на определенный промежуток времени, при приближении к которому, программа выдаст предупреждение. Существуют виджеты.
Читать дальше →
Total votes 156: ↑99 and ↓57 +42
Comments 164

Information

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