Как стать автором
Обновить
0
0
Владислав Джавадов @Vapaamies

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

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

Решение японских кроссвордов одним запросом SQL

Время на прочтение4 мин
Количество просмотров59K
Привет хабр! Приближается день программиста, и я спешу поделиться своими ненормальными наработками.

Японский кроссворд — NP-полная задача, как и задача коммивояжёра, укладки рюкзака и др. Когда ее решает человек, следует последовательно определять гарантированно заполненные и пустые ячейки. Одну за другой вычеркивать колонки и строки, пока не сложится весь рисунок. Как же возможно запрограммировать решение подобной задачи на языке, который официально даже не является языком программирования, не содержит циклов и переменных? SQL — язык запросов, его главная задача — выбирать строки. Вот мы и будем генерировать множество всех возможных перестановок и, словно скульптор, отсекать все лишнее.

укусить себя за пятку
Всего голосов 172: ↑165 и ↓7+158
Комментарии26

Fluent interface и Delphi

Время на прочтение2 мин
Количество просмотров9.3K
Текучий интерфейс (Fluent interface) — совсем молодая методика, даже скорее паттерн проектирования, получивший популярность и широкое распространение среди кодеров Java, C#, PHP.
В большинстве методик «хорошего кода» лежит разряжение текста кода (висячие строки, пробелы, отступы, etc) и это очень здорово, но иногда это превращается в сущий ад. Пробежка скролом по коду, запоминание цепочки вызова метода, вечная дилемма между длинным методом и читабельностью, etc.
Но решение есть — Текучий интерфейс! Теперь и на Delphi!
Читать дальше →
Всего голосов 19: ↑11 и ↓8+3
Комментарии17

Разработка ПО: факты против мифов

Время на прочтение3 мин
Количество просмотров69K
Мифы – это попытки осмысления картины окружающего мира, присущие первобытной культуре.

Материальное производство (обработка объектов физического мира) насчитывает десятки тысяч лет истории. Оно прошло путь от каменных пещер до современных небоскребов, от сигнальных костров до мобильной связи, от навигации по звездам до навигации по космическим спутникам. На этом пути был накоплен колоссальный объем знаний естественных наук: математики, физики, химии, географии, геологии, биологии и проч.

То, что производят программисты, нематериально – это brainware, результат коллективного мыслительного процесса проектной команды, материализованный на одном из языков программирования. Программной инженерии чуть больше полувека. Если сравнивать с материальным производством, то необходимо констатировать, что разработка ПО пребывает еще в первобытном состоянии.

За короткую историю в отрасли сложилось большое количество мифов, суеверий и религиозных заблуждения. Эти мифы, суеверия и заблуждения, порой очень похожи на правду. Они получили широкое распространение и пагубно влияют на руководителей, которые никогда сами профессионально не разрабатывали ПО. Следствием этого является применение неадекватных методов и подходов в управлении программистами, что гарантированно приводит проект к провалу.

Вот наиболее распространенные мифы и факты, которые их опровергают.
Читать дальше →
Всего голосов 150: ↑135 и ↓15+120
Комментарии124

Эволюция школьной программы по информатике

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

И вот уже в который раз опять наступил сентябрь, и тысячи учащихся с противоречивыми ощущениями отправились в школу – кто-то в первый класс, а кто-то уже в одиннадцатый. Когда-то среди них были и мы; вот почему вид белых бантов и букетов в руках первоклашек вызывает у нас ностальгию по беззаботному детству, любимым учителям и предметам – уверен, что для многих на Хабре таковым определенно была информатика. Воспользуемся моментом и вспомним, что мы на ней изучали – десять, двадцать, а кто-то и больше лет назад.
Читать дальше →
Всего голосов 94: ↑90 и ↓4+86
Комментарии139

Модульного тестирования недостаточно. Нужна статическая типизация!

Время на прочтение4 мин
Количество просмотров18K
Когда я работал над своей магистерской диссертацией, я пообещал себе, что опубликую ее в Интернете под свободной лицензией. Я получил степень, но, к сожалению, натолкнулся на одно из неписаных правил ВУЗов — когда вы тратите на интересующий вопрос много времени, он вам надоедает.
Наконец, спустя год, я все-таки ее публикую.
Для тех, кому лень знакомиться с моим полным трудом (в любом случае, 60 страниц текста это не так много для исследовательской работы, но это все же не мало), я предлагаю краткую версию статьи. Прошу заметить, что краткая версия не учитывает некоторые важные сведения, поэтому я прошу писать отзывы только о полной версии.

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

Суть их рассуждений в следующем:
  1. Статической типизации недостаточно для выявления багов, поэтому необходимы модульные тесты;
  2. Статическая типизация становится лишней, так как у вас есть тесты;
  3. Из-за статической типизации некоторые корректные программы могут выдавать предупреждения на стадии компиляции.

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

Читать дальше →
Всего голосов 83: ↑65 и ↓18+47
Комментарии124

Как перестать таскать дискеты на станок под DOS

Время на прочтение5 мин
Количество просмотров35K
Добрый день! Сегодня я расскажу один случай из практики системного администрирования.
Топик заинтересует тех, кому еще придется столкнуться с настройкой сети под DOS впервые. Надеюсь, изложение будет достаточно полезным для тех, кому предстоит подключать станки к сети, и достаточно интересным для прочтения теми, кто не испытывает трудностей в работе с этой ОС.
UPD: Написал предысторию о создании беспроводных сетей на том же производстве.
Самому мне не довелось быть активным пользователем DOS. Я не так давно начал работать с компьютерами.
При знакомстве с DOS меня удивляло, что он до сих пор используется не смотря на возраст. В частности на производстве, где немало станков из прошлого века. Почему их не заменят на современные?
Во-первых, обычно это требует больших инвестиций. Пока они работают, приносят прибыль предприятию, менять их невыгодно.
Во-вторых, зачастую станки с современными ОС на управляющем компьютере менее стабильны. Это объясняется человеческим фактором: люди привыкшие к пользовательскому интерфейсу Windows легко используют компьютер станка не по назначению. Еще DOS лишен многих проблем с ПО и их обновлением, использует устройства напрямую и прост в настройке.

Что требовалось


На заводе один из станков использует DOS. Операционная система отлично справляется. Станок позволяет выполнять оператору задания как из файла, так и вручную. Эти файлы создает специальная программа, что упрощает, ускоряет работу станочников и снижает количество их ошибок.
Итак, начало 2013 года — файлы в цех носят на дискетах. Такой носитель информации ненадежен и становится все дороже. Часто приходится записывать задания заново, если дискета вышла из строя. Да и дисководы не обеспечивают высокую отказоустойчивость. Но главное — скорость работы определяется скоростью хода человека, который ходит за дискетами.
Если подключить станок к корпоративной сети передачи данных, можно исключить дискеты из бизнес-процесса.

Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии45

Что происходит после покупки стартапа?

Время на прочтение2 мин
Количество просмотров72K
Итак вас покупает большая и известная компания. Для большинства стартапов, это единственный вариант успешного выхода. Стать самостоятельной, прибыльной в долгосрочной перспективе компанией на порядок сложнее.

Итак, что будет дальше?
Читать дальше →
Всего голосов 156: ↑123 и ↓33+90
Комментарии51

Мозг программиста

Время на прочтение6 мин
Количество просмотров61K
Спасибо за статью habrahabr.ru/post/191210! Хорошую тему подняли.

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

В программировании, помимо ЭВМ, методик и софта с разных сторон, есть еще такой ключевой элемент, как программист.

Почему он самый главный? Потому что, как знают многие, большую часть решений можно создать без ЭВМ, без методик и без софта – карандашом на бумаге или вовсе в воображении. А без программиста создать программу нельзя. Потому что он, программист, как раз программу и создает.

О программисте, как о решающем факторе, и о его мозге, как об основном инструменте, мы сейчас поговорим.
Читать дальше →
Всего голосов 68: ↑52 и ↓16+36
Комментарии11

Изменения в структуре знания

Время на прочтение4 мин
Количество просмотров60K
Я пишу эти строки в надежде получить комментарии от участников сообщества – что-то может показаться всем читающим очевидным, однако при ближайшем рассмотрении изменения становятся крайне пугающими, и, не побоюсь этого слова, вызывающими.

Начало


Количество информации в мире постоянно растет. Если верить хотя бы исследованиям Университета Южной Калифорнии, то получается вот что: в 1986 году соотношение цифровой и аналоговой информации было 2,62 к 0,02 в пользу аналога. Где-то после 2001-2002 года цифровая информация сравнялась, ну а к 2007 уже повально лидировала с объемом 276,12 к 18,86.

И я ощутил эту разницу на себе, в гораздо более понятных цифрах. В 2000 году я млел от плеера Samsung Yepp с объемом памяти в 32 мегабайта, треки на который я закидывал при помощи LPT-кабеля. Ты мог либо закинуть несколько треков в хорошем качестве, либо пару альбомов в очень плохом.

А уже в 2009 году я пользовался iPod Classic объемом в 160 Гигабайт. Разница в 5 с лишним тысяч раз за 10 лет.
Читать дальше →
Всего голосов 96: ↑72 и ↓24+48
Комментарии194

Преграда на пути к Большим играм

Время на прочтение6 мин
Количество просмотров40K
В 1997 году с появлением Ultima Online игры стали гораздо крупнее. В 1999 масштаб игр опять существенно увеличился после выхода Everquest. Стало возможным строить сложные социальные отношения в виртуальном пространстве и даже иметь виртуальную работу, дающую больший доход чем «реальная» (Это я, «Lee», в статье 2000 года).

Затем верхняя граница снова взлетела до небес с выходом двух игр в 2003 году: EVE Online от CCP и World of Warcraft от Blizzard Entertainment. Обе эти игры стали эталоном «Большой» игры в нашей индустрии, и они всё продолжали становиться больше. Но потом произошла странная вещь.

Ничего не произошло.

Арена «больших» игр превратилась в настоящую Аллею Проклятых, устланную претендентами, потерпевшими фиаско. Миллионы долларов улетели в трубу в этой битве, и инвесторы запаниковали. Было лишь несколько исключений, которые сумели удержаться на плаву, такие как City of Heroes от Cryptic Studio (NCSoft) и Final Fantasy XI от Square Enix. Претендентов, считающих, что их игра должна быть ещё больше, ещё крупнее, ждала жуткая и страшная смерть на рынке. Я мог бы назвать имена, но не думаю, что несколько страниц, испещрённых перечислением потерянных миллиардов инвестиций, будут здесь уместны.

Я лучше расскажу вам секрет, который я храню уже несколько лет. Дело не в масштабе.

Дело в Капитале.
Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии82

Наука под замком. Вторая часть

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


Продолжение. Первая часть перевода была опубликована вчера.




Некого винить, кроме себя

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

Если университеты финансируют исследования, и их сотрудники как пишут, так и рецензируют статьи, то почему же они все до сих пор не переключились на журналы с открытым доступом? Успешных примеров таких открытых проектов как Public Library of Science пока очень немного. Всё дело в том, что сложившаяся научная культура делает такой переход очень трудным.

История публикаций в престижных журналах — необходимое условие продвижения по научной карьерной лестнице. Каждая статья, опубликованная в молодом и ещё не ставшим авторитетным журнале с открытым доступом, могла бы быть опубликована в таких флагманах рынка, как Science или Nature. И если ещё можно представить себе уже занимающего хорошую должность профессора-идеалиста, который готов пожертвовать частью своего престижа ради науки, то как насчёт его молодых соавторов, для которых статья в авторитетном журнале может значить всё?
Читать дальше →
Всего голосов 81: ↑78 и ↓3+75
Комментарии38

Может пора спускаться с облаков?

Время на прочтение3 мин
Количество просмотров35K
Ну чтож, пост на тему «наболело».
Скажу сразу для тех, кто хочет подчерпнуть что-то из текста: морали нет, выводов нет. Просто мысли о наболевшем.

Последние несколько недель тревожат меня 2 темы в плане Интернета:
1. Слежка органов.
2. Непостоянство сервисов.

Ну, о первом писали ну очень много раз, и нет особого смысла что-либо добавлять.
Если вкратце, то да — мы все это знали, но от официального подтверждения нам вряд ли полегчало.

Ну а о втором мы стали слышать/читать чуть ли не каждый день.
Самое интересное, что воспринимается это все как само собой разумеющееся, т.е. ну да, закрыли тот или иной сервис по той или иной причине.
Я и так этим не пользовался. Ну или пользовался, но не очень. Так что ладно.
Ну или очень даже пользовался и мне дико обидно, но что поделаешь…
Я подпишу какую-нибудь петицию, чтобы его не закрывали и буду надеяться, хотя четко знаю, что он все равно закроется.
Читать дальше →
Всего голосов 99: ↑69 и ↓30+39
Комментарии84

Ваше приложение медленное? Это потому, что наша цивилизация гибнет

Время на прочтение4 мин
Количество просмотров34K
С Вашего позволения, пускай и немного в философской оболочке, я бы хотел продолжить тему «Почему мобильные веб приложения такие медленные?», которая уже засветилась на Хабре через другой пост: «HTML5 в мобильной разработке — что выбрать?».

Перевод поста «Your App Is Slow Because Our World Is Ending».

image
Как обычно, на этой неделе, исследуя Интернет, я наткнулся на взрывающий мозг пост, который возможно станет предвестником роковых событий. Я имею ввиду превосходную статью Дрю Кроуфорда «Почему мобильные веб приложение такие медленные?». Она объемная и очень содержательная, но с ней определенно стоит ознакомиться, если ваш уровень познаний находится на достаточно высоком уровне, чтобы проследить за идеей автора.

Если кратко, то его идея звучит приблизительно так: HTML5 приложения будут значительно уступать родным приложениям не только следующие год или два, но и в течение следующих 5-10 лет, вследствие существенных технических ограничений, присущим мобильным платформам. У меня было пару замечаний к некоторыми из его аргументов, но он убедил меня, что две статьи, которые я написал два года назад, в которых я призываю IOS к сборке мусора и утверждают, что HTML5 будет править всем через несколько лет, возможно, должны быть пересмотрены в свете новых доказательств.
Читать дальше →
Всего голосов 106: ↑75 и ↓31+44
Комментарии75

Умение видеть абстракции

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


Моему сыну, как и многим мальчишкам, нравятся автомобили. Причём чем они больше и необычнее — тем больше нравятся. Когда мы идём по улице, а мимо проезжает эвакуатор или снегоуборочная машина, он неизменно дёргает меня за руку, указывает на заинтересовавший его объект и говорит: «Папа, б-р-р!». Говорит он так потому, что ему один год и вышеуказанные два слова составляют 40% его словарного запаса. Тем ни менее, в общем мысль понятна — обратить внимание на автомобиль. Давайте подумаем, каким образом ребёнок в возрасте 8-10 лет сказал бы своему сверстнику то же самое. Что-то вроде «Ух ты, смотри какая крутая тачка!», да? Мысль та же, но обратите внимание — уже шесть слов вместо двух. И, наконец, представьте, каким образом то же самое скажет человек лет в тридцать: «Эй, смотри, да это же Ferrari California 2008-го года выпуска с двигателем V8 мощностью в 454 лошадиных силы и 7-ми скоростной коробкой-автоматом! Она до сотни разгоняется за 3.9 секунды!». Да, здесь уже больше деталей, но, если вы не автомеханик или фанат Ferrari — они вам скорее всего не нужны и не важны. Основная же мысль — всё та же, что и в «Ух ты, смотри какая крутая тачка!» или «Папа, б-р-р!». Но выражена она уже в 30 слов.

Вы заметили, как абстракция «интересный автомобиль» обросла деталями и нюансами, стала занимать существенно больше места в тексте и времени на понимание, анализ и ответ? То же самое происходит и с программным кодом.
Читать дальше →
Всего голосов 188: ↑170 и ↓18+152
Комментарии95

Особенности русской разработки

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

По роду занятий я часто общаюсь с различными русскими и западными командами. Очень частый вопрос — есть ли какая-нибудь специфика в работе наших и как это влияет на разработку?

Есть очень неплохая книжка о специфике работы русских вообще. Она называется «Русская модель управления». Ее написал А.П.Прохоров (другой, не олигарх). Не буду ее пересказывать. Основная идея в том, что русские по своей природе могут работать только в двух модах. В нестабильном состоянии они могут свернуть горы. В это время мотивация очень высокая. В стабильном расслабленном состоянии — когда никто не пинает — русские вроде как работают плохо и не сильно утруждаются.

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

Еще один дисклеймер: на реальное поведение людей действует сложившаяся культура в а) команде б) организации в) стране. Причем именно в этом порядке. Есть «прозападные» компании, где влияние наших культурных кодов очень небольшое. В чисто российских компаниях оно просто огромно. Но реально заметить разницу можно только увидев, как различные культуры сталкиваются друг с другом.

Я буду приводить влияние разных факторов в порядке их важности и силы влияния. Чем выше — тем сложнее это изменить и тем больший эффект это оказывает.
Читать дальше →
Всего голосов 531: ↑513 и ↓18+495
Комментарии420

Чек-лист разработчика языка программирования

Время на прочтение4 мин
Количество просмотров23K
Итак, Вы собираетесь создать новый [] функциональный, [] императивный, [] объектно-ориентированный, [] процедурный, [] стековый, [] мультипарадигменный, [] быстрый, [] статически-типизированный, [] динамически-типизированный, [] чистый, [] богатый, [] не-искусственный, [] наглядный, [] простой для новичков, [] простой даже для не-программистов, [] абсолютно непостижимый язык программирования.

Не получится. И вот почему.
Читать дальше →
Всего голосов 220: ↑189 и ↓31+158
Комментарии77

Интерфейсы систем общения – увидеть за листьями дерево

Время на прочтение2 мин
Количество просмотров7.1K
Я считаю, что системы общения на данный момент это самое консервативное и несовершенное место в интернет технологиях.
То есть, конечно, для тех, кому нужны короткие переписки с друзьями «Привет, вот прикольная фотка с моей мобилы!» — «Привет, да клево», все обстоит идеально и дальше становится все микробложнее, мобильнее и удобнее. Но…
Читать дальше →
Всего голосов 25: ↑18 и ↓7+11
Комментарии15

Команда математиков за полгода написала 600-страничную книгу, используя GitHub

Время на прочтение4 мин
Количество просмотров61K
Перевод статьи Андрея Бауера — The HoTT book

Книга по HoTT закончена!

Начиная с весны, и даже раньше, я участвовал в командном проекте по написанию книги по гомотопической теории типов (Homotopy Type Theory). Она наконец написана и готова к употреблению. Вы можете скачать книгу бесплатно: homotopytypetheory.org/book. Майк Шульман рассказал о содержании книги, так что я не буду повторять то же самое. Вместо этого я бы хотел прокомментировать некоторые социо-технологические аспекты создания книги и, в частности, рассказать о том, чему нас научило сообщество Open source.
Читать дальше →
Всего голосов 145: ↑142 и ↓3+139
Комментарии35

Система изучения языка в Дании

Время на прочтение8 мин
Количество просмотров138K
В продолжение статьи "Дания: страна здравого смысла" хочу поделиться, как здесь организовано изучение датского языка для иностранцев.

Целью статьи является освещение вопроса организации учебного процесса. Большую часть обучения можно пройти онлайн. Сюда входят аудио-записи слов, главное видео урока (со сквозной сюжетной линией), возможность отправить преподавателю устное и письменное сочинения и получить от него обратную связь в виде скринкаста.

Вначале — небольшая вводная, затем затронем техническую часть.

Зачем учить датский язык


Приезжим даётся 3 года, чтобы начать изучать язык за счёт государства, т.е. безвозмездно. Несмотря на это, я размышлял, стоит ли тратить на это несколько часов в неделю — ведь на нём говорит всего-то 5.7 млн человек.

В итоге я выделил для себя такие плюсы:
  • хотя датчане поголовно владеют английским, они очень ценят, если ты стараешься общаться с ними на родном языке. Также хотелось бы понимать надписи на улице, письма из банка, и т.д.,
  • для получения вида на жительство требуется сдать экзамен на владение языком и знание культуры страны. Оставаться здесь жить я не планирую, но решил не захлопывать это «окно в Европу»,
  • знание датского сильно упрощает понимание остальных языков скандинавской группы,
  • стало просто интересно, что говорят окружающие, когда думают, что ты их не понимаешь,
  • то, о чём я не подумал, пока не начал заниматься — новые знакомые. С иностранцами-одногруппниками подружиться проще, чем с датчанами: на курсах получается сплочённая интернациональная компашка с общим интересом.

Читать дальше →
Всего голосов 105: ↑95 и ↓10+85
Комментарии63

Самая дорогая однобайтовая ошибка

Время на прочтение7 мин
Количество просмотров5.7K
Предлагаю вашему вниманию перевод недавнего поста в электронном журнале Queue авторства Poul-Henning Kamp.

Ошиблись ли Кен, Деннис и Брайан при выборе использовать NUL-завершенные текстовые строки?

ИТ стимулирует и реализует современную западную экономику. Соответственно мы часто видим заголовки про ошеломляюще огромные суммы денег, связанные с ошибками в ИТ. Какое же решение, связанное с ИТ или КН [компьютерными науками], является наиболее дорогим?
Читать дальше →
Всего голосов 141: ↑115 и ↓26+89
Комментарии169

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность