В последнем обновлении SQLite планировщик запросов претерпел серьезные изменения и отныне зовется Планировщик Запросов Следующего Поколения. Мы решили сделать небольшой обзор нового планировщика и некоторых других значительных обновлений SQLite в текущем году. Новый функционал может оказаться полезным разработчикам.
Дмитрий @SHadDim
Пользователь
Первый компьютерный баг найден 66 лет назад
1 min
27K66 лет назад, на 9 сентября (да, на день опоздал) 1947 года операторы компьютера Mark II, который тестировался в Гарварде, нашли между точками на реле № 70, панель F, кое-что любопытное. Моль.

Была сделана, заметка, в которой это называется фактически «первым найденным багом».
История гласит, что легендарная Грэйс Хоппер, известная как “Amazing Grace” и “Grandma COBOL”, была человеком, который нашел моль, таким образом, помогла популяризировать идею “отладки компьютеров”.
Журнал с записью в настоящее время проживает в Национальном музее американской истории. Но на всеобщее обозрение по неизвестным причинам не выставлен.

Была сделана, заметка, в которой это называется фактически «первым найденным багом».

Журнал с записью в настоящее время проживает в Национальном музее американской истории. Но на всеобщее обозрение по неизвестным причинам не выставлен.
+29
Хранение деревьев в базе данных. Часть первая, теоретическая
4 min
131KTutorial
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.
Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
- Adjacency List («список смежности»)
- Materialized Path («материализованный путь»)
- Nested Sets («вложенные множества»)
- Closure Table («таблица связей»)
+35
Метод измерения действующего значения напряжения с применением МК
5 min
107K В данном посте речь пойдет об одном из вариантов измерения действующего значения напряжения и частоты сети на 8-ми битном микроконтроллере PIC18. При желании, можно метод перенести на любой другой МК, вплоть до всеми любимых ARDUINO (если они поддерживают реализацию прерываний по таймеру с частотой 5-10 кГц).
Также, рассматриваемый метод позволяет измерять частоту сетевого напряжения без использования внешних дополнительных средств, таких как компараторы. Но, при этом приходится жертвовать либо временными ресурсами МК, либо точностью измерения частоты.
Также, рассматриваемый метод позволяет измерять частоту сетевого напряжения без использования внешних дополнительных средств, таких как компараторы. Но, при этом приходится жертвовать либо временными ресурсами МК, либо точностью измерения частоты.
+15
Тест роботов-пылесосов: iRobot Roomba 780, Moneual MR7700, iClebo Arte и Neato XV-11
13 min
114KВ своем большинстве люди не очень-то любят работать во всех смыслах этого слова. Другими словами мы с вами достаточно ленивы. Зачастую новые технологии появляются и развиваются именно из-за лени. Робот-пылесос — очередное изобретение, призванное сократить нашу с вами тяжелую ношу. Мы занимаемся продажей бытовых роботов уже более трех лет. Многие потребители до сих пор не знают, что помимо компании iRobot на рынке есть и другие представители, которые порой имеют лучшие характеристики. Другое дело, что iRobot первый зашел на российский рынок и вложил большие деньги в рекламу, поэтому узнаваемость бренда очень высокая.
Мы считаем, что в продаже имеются только несколько конкурентных роботов-пылесосов, а именно: iRobot Roomba, Yujin Robot iClebo и Neato. Все остальные пылесосы хуже по многим параметрам, включая качество уборки и изготовления, а также отсутствие нормального сервиса. Так как в Сети нет хорошего прямого сравнения этих брендов, мы решили восполнить данный пробел. У нас вовремя под рукой оказался еще один интересный бренд Moneual со своей моделью MR7700 (в России по ошибке известен как Rydis R750), его мы тоже не поленились добавить в сравнительный обзор.
Итак, сегодня будут соревноваться в качестве уборки, преодолении порожков, удобстве эксплуатации и другим параметрам следующие модели роботов-пылесосов: iRobot Roomba 780, Moneual MR7700, Yujin Robot iClebo Arte, Neato Robotics XV-11.
За более подробными деталями, а также некоторыми вещами, о которых мы не упомянули в видео-обзоре, обращаемся к тексту под катом.
Мы считаем, что в продаже имеются только несколько конкурентных роботов-пылесосов, а именно: iRobot Roomba, Yujin Robot iClebo и Neato. Все остальные пылесосы хуже по многим параметрам, включая качество уборки и изготовления, а также отсутствие нормального сервиса. Так как в Сети нет хорошего прямого сравнения этих брендов, мы решили восполнить данный пробел. У нас вовремя под рукой оказался еще один интересный бренд Moneual со своей моделью MR7700 (в России по ошибке известен как Rydis R750), его мы тоже не поленились добавить в сравнительный обзор.
Итак, сегодня будут соревноваться в качестве уборки, преодолении порожков, удобстве эксплуатации и другим параметрам следующие модели роботов-пылесосов: iRobot Roomba 780, Moneual MR7700, Yujin Robot iClebo Arte, Neato Robotics XV-11.
За более подробными деталями, а также некоторыми вещами, о которых мы не упомянули в видео-обзоре, обращаемся к тексту под катом.
+28
Не кладите все свои яйца в чужую корзину (из книги «Passionate Programmer» by Chad Fowler)
3 min
29KTranslation

Продолжаю перевод глав из книги «Passionate Programmer», которые публикуются в блоге автора. Автор книги неординарный Чад Фаулер — известный спикер Ruby- и IT-конференций, бывший джазовый саксофонист, ныне CTO 6Wunderkinder.
Во время работы менеджером группы разработки, я как-то спросил одного из своих подчинённых: «Чего ты хочешь добиться в своей карьере? Кем ты хочешь стать?». Я был ужасно разочарован его ответом: «Я хочу быть архитектором J2EE-приложений». Я его спросил, почему тогда не «дизайнером Microsoft Word» или «инсталлятором RealPlayer»?
Этот парень хотел построить свою карьеру вокруг определённой технологии, созданной определённой компанией, в которой он не работал. Что будет если эта компания выйдет из бизнеса. Что будет если его «новенькая и сексуальная» технология станет устаревшей? Почему вы хотите доверить какому-то поставщику ПО свою карьеру?
+32
Темное программирование
7 min
140K
Прошу под кат
+149
.NET и паттерны проектирования
8 min
164KШаблон проектирования или паттерн — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Кажется, это определение мы слышали тысячу раз… Помимо знания терминов и паттернов интересно знать, как они применяются в реальных проектах.
В статье я рассмотрю несколько наиболее популярных паттернов используемых в .NET. Некоторые из них глубоко интегрированы в инфраструктуру .NET, в то время как другие просто применяются при проектировании базовых классов в BCL.
Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
Кажется, это определение мы слышали тысячу раз… Помимо знания терминов и паттернов интересно знать, как они применяются в реальных проектах.
В статье я рассмотрю несколько наиболее популярных паттернов используемых в .NET. Некоторые из них глубоко интегрированы в инфраструктуру .NET, в то время как другие просто применяются при проектировании базовых классов в BCL.
Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
+21
foreach or for that is the question
5 min
56K
Когда я начинал изучать .NET, один человек сказал мне, что foreach работает в 2 раза медленнее for-а, без каких-либо на то обоснований, и я принял это как должное. Теперь, когда чьих-то слов мне мало, я решил написать эту статью.
В этой статье я исследую производительность циклов, а так же уточню некоторые нюансы.
Итак, поехали!
+35
Посты-рекордсмены. Продолжение
5 min
30KСудя по реакции на предыдущий пост, тема парсинга Хабра и альтернативных топов интересна не только мне, поэтому продолжу.
Спасибо всем, кто голосовал и комментировал и отдельно тем, кто присылал идеи новых рейтингов и исследований.
В предыдущем посте (Посты-рекордсмены / Хабрахабр), я пробовал различные варианты сортировки постов Хабра, отличные от обычного рейтинга. В этом я буду сортировать по рейтингу, но не все посты, а отобранные по определённым критериям.
Спасибо всем, кто голосовал и комментировал и отдельно тем, кто присылал идеи новых рейтингов и исследований.
В предыдущем посте (Посты-рекордсмены / Хабрахабр), я пробовал различные варианты сортировки постов Хабра, отличные от обычного рейтинга. В этом я буду сортировать по рейтингу, но не все посты, а отобранные по определённым критериям.
+69
Unit тесты на практике
12 min
147KВ последнее время появилось и продолжает появляться достаточно много публикаций на тему разработки через тестирование. Тема достаточно интересная и стоит того, чтобы посвятить её исследованию какую-то часть своего времени. В нашей команде мы используем модульное тестирование уже на протяжении года. В этой статье я хочу рассказать о том, что получилось и какой опыт в итоге мы приобрели.
Сразу оговорюсь, что примеры приводятся применительно к языку C# и платформе .NET. Соответственно, в других языках/платформах подходы и реализации могут отличаться.
Итак…
Сразу оговорюсь, что примеры приводятся применительно к языку C# и платформе .NET. Соответственно, в других языках/платформах подходы и реализации могут отличаться.
Итак…
+28
Заовнил, вонзился, запилил: словарь IT-шника
5 min
100KКак часто друзья и родственники, не связанные с IT, просили вас рассказать, что нового на работе, а вы, увлекаясь, начинали говорить вроде на русском, но совершенно непонятном для них языке? Мы создали наш словарь терминов, в который вошли как внутренний сленг отдельных проектов, так и достояние широкой общественности. Надеемся, эта компиляция поможет айтишникам при необходимости выразить свои мысли на языке маглов, а неайтишникам – понять, что айтишники несут. Ну и просто повеселит всех. Ведь пятница!

Код добра – программный код, очевидно содержащий непоправимые улучшения.
Котятоемкий код — очень некрасивое техническое решение. Выражение обязано своим происхождением предположению, что каждый раз, когда программист пишет строчку некрасивого кода, бог убивает котенка.
Непоправимо улучшить – запилить годное, но не до конца проверенное изменение функционала. Синоним — необратимо улучшить.
Мясной коммит (ковровый коммит) – правка, судя по количеству и характеру изменений, наверняка содержащая непоправимые улучшения.
Тупач – очень срочная задача, результаты работ по которой должны попасть в бранч для выкатываемой версии. Образовано от to patch.
Минорный тупач – задача горит – сильнее некуда, но уж очень мелкая.
Глубокий ToDo Later — (отправить задачу в глубокий тудулейтер) статус задачи в таск-трекере отложена на неопределенный срок.
Подпереть костылями – реализовать функциональность за счет непредусмотренного временного решения.
Шрапнельные правки – огромное количество мелких правок по всему проекту, которые очень сложно оттестировать.
Скриптюня — очень классный скрипт, экономит кучу времени, практически лучший друг оператора.
Про код и изменения

Код добра – программный код, очевидно содержащий непоправимые улучшения.
Котятоемкий код — очень некрасивое техническое решение. Выражение обязано своим происхождением предположению, что каждый раз, когда программист пишет строчку некрасивого кода, бог убивает котенка.
Непоправимо улучшить – запилить годное, но не до конца проверенное изменение функционала. Синоним — необратимо улучшить.
Мясной коммит (ковровый коммит) – правка, судя по количеству и характеру изменений, наверняка содержащая непоправимые улучшения.
Тупач – очень срочная задача, результаты работ по которой должны попасть в бранч для выкатываемой версии. Образовано от to patch.
Минорный тупач – задача горит – сильнее некуда, но уж очень мелкая.
Глубокий ToDo Later — (отправить задачу в глубокий тудулейтер) статус задачи в таск-трекере отложена на неопределенный срок.
Подпереть костылями – реализовать функциональность за счет непредусмотренного временного решения.
Шрапнельные правки – огромное количество мелких правок по всему проекту, которые очень сложно оттестировать.
Скриптюня — очень классный скрипт, экономит кучу времени, практически лучший друг оператора.
+66
Самые смешные комментарии в исходном коде
1 min
160KTranslation
На StackOverflow был отличный пост точно на эту тему, но какой-то сверхусердный модератор, который должен остаться неназванным, удалил его (судя по всему, сейчас восстановлено — прим. пер.).
К счастью, у меня сохранилась возможность просмотреть все удаленные комментарии. Вот некоторые из моих любимых.
К счастью, у меня сохранилась возможность просмотреть все удаленные комментарии. Вот некоторые из моих любимых.
//
// Дорогой мейнтейнер:
//
// Когда ты закончишь «оптимизировать» эту подпрограмму
// и поймешь, насколько большой ошибкой было делать это,
// пожалуйста, увеличь счетчик внизу как предупреждение
// для следующего парня:
//
// total_hours_wasted_here = 42
//
+112
Различные методы загрузки ассоциаций в Ruby on Rails
3 min
42KRails предоставляют нам 4 различных способа загрузки ассоциаций: preload, eager_load, includes и joins. Рассмотрим каждый из них:
Этот метод загружает ассоциации в отдельном запросе:
Т.к. preload всегда создает два отдельных запроса, то мы не можем использовать таблицу posts в условии выборки:
А таблицу users – можем:
Preload
Этот метод загружает ассоциации в отдельном запросе:
User.preload(:posts).to_a
# =>
SELECT "users".* FROM "users"
SELECT "posts".* FROM "posts" WHERE "posts"."user_id" IN (1)
Т.к. preload всегда создает два отдельных запроса, то мы не можем использовать таблицу posts в условии выборки:
User.preload(:posts).where("posts.desc='ruby is awesome'")
# =>
SQLite3::SQLException: no such column: posts.desc:
SELECT "users".* FROM "users" WHERE (posts.desc='ruby is awesome')
А таблицу users – можем:
User.preload(:posts).where("users.name='Neeraj'")
# =>
SELECT "users".* FROM "users" WHERE (users.name='Neeraj')
SELECT "posts".* FROM "posts" WHERE "posts"."user_id" IN (3)
+34
Набор в Школу разработчиков 3D решений: бесплатные места
5 min
22K
Кадр с финальной стадии монтажа 3D-куба для визуализации инженерных решений
Сейчас в России 3D-моделирование используется в нефтяной сфере, атомной энергетике, машиностроении, кораблестроении, авиастроении. Компании этих сегментов приобретают для работы специальные 3D-системы высокого разрешения. Проектирование в 3D даёт возможность удобнее и легче представить в пространстве работу сложных систем и их устройство.
В России очень нужны соответствующие специалисты, поэтому мы открываем Школу 3D. Самое важное: стоимость обучения — $12.000. При этом есть 15 бесплатных мест. Обучение будет проходить на английском языке. Студенты школы 3D станут одними из первых в России по внедрению 3D-решений и получат доступ в экспертную среду и практику в ведущей IT компании. Детали ниже.
+18
Windows Azure для стартапов: ресурсы на 150$ каждый месяц
3 min
21KЕсли вы стартап и разрабатываете мобильное приложение или сервис, то практически всегда сталкиваетесь с вопросом: где разместить бэкенд для приложения, где найти или арендовать сервера для продакшен запуска или для разработки и тестирования. Идеально было бы еще, чтобы это были не просто VPS или сервера, а облачные мощности, а кроме того, чтобы первоначальные вложения были минимальны или стремились к нулю
И если вы стартап, которому меньше 5 лет, то по программе BizSaprk (международная программа Microsoft поддержки технологических стартапов) вы как раз можете получить ресурсы облака Windows Azure «безд-возд-мезд-но, то есть даром» (как говорила Сова из Винни-Пуха). Каждый участник стартапа может получить собственную подписку Windows Azure, включающую ежемесячные кредиты на сумму 150$ (5 000 руб.).

И если вы стартап, которому меньше 5 лет, то по программе BizSaprk (международная программа Microsoft поддержки технологических стартапов) вы как раз можете получить ресурсы облака Windows Azure «безд-возд-мезд-но, то есть даром» (как говорила Сова из Винни-Пуха). Каждый участник стартапа может получить собственную подписку Windows Azure, включающую ежемесячные кредиты на сумму 150$ (5 000 руб.).

+20
Борьба за свои права или как я создал профсоюз программистов
5 min
34KМесяц назад работодатель заявил о закрытии фирмы. Неприятно, конечно, после того, как на протяжении нескольких месяцев мы все вместе «в одной лодке» претерпевали финансовые трудности. Но владелец фирмы на то и владелец, что имеет право. Не беда, подумал я, на рынке на программистов повышенный спрос, найду более стабильную компанию. По-настоящему неприятный сюрприз ждал позже, когда работодатель отказался производить причитающиеся мне выплаты, связанные с увольнением. Вот тут и пришла в голову мысль: с какой стати кто-то будет оптимизировать издержки за мой счёт и что с этим можно сделать?


+120
Правила личной эффективности от ЭД
21 min
66KЗаранее предупреждаю и извиняюсь, но оно того стоит: букаф многа.
В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.
В конце седьмого класса у меня встал выбор — идти в ПТУ или учиться дальше в школе. Все учителя, настаивали на том, что мне бесполезно учиться не то что в институте, но и в старших классах, в виду моей бездарности. Естественно, это мне не очень понравилось, и я решил стать лучшим в школе.
Попытка понять программу восьмого класса провалилась в виду отсутствия элементарных знаний предыдущих классов (начиная с второго-третьего), что не оставляло передо мной выбора, кроме как начать изучать все предметы по новой, самостоятельно.
Я взял учебники по всем предметам с младших классов и начал их читать и конспектировать. Тут же я понял, что с текущей скоростью чтения, с неразвитой памятью, с низкой скоростью конспектирования, неспособностью сконцентрировать внимание, с многочисленными друзьями со двора, одноклассниками и со спортивной секции, я вряд ли смогу изучить весь школьный материал и за пять лет.
Введение
В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.
В конце седьмого класса у меня встал выбор — идти в ПТУ или учиться дальше в школе. Все учителя, настаивали на том, что мне бесполезно учиться не то что в институте, но и в старших классах, в виду моей бездарности. Естественно, это мне не очень понравилось, и я решил стать лучшим в школе.
Попытка понять программу восьмого класса провалилась в виду отсутствия элементарных знаний предыдущих классов (начиная с второго-третьего), что не оставляло передо мной выбора, кроме как начать изучать все предметы по новой, самостоятельно.
Я взял учебники по всем предметам с младших классов и начал их читать и конспектировать. Тут же я понял, что с текущей скоростью чтения, с неразвитой памятью, с низкой скоростью конспектирования, неспособностью сконцентрировать внимание, с многочисленными друзьями со двора, одноклассниками и со спортивной секции, я вряд ли смогу изучить весь школьный материал и за пять лет.
+113
Офис мечты: какой он?
5 min
57KНа Хабре было очень много статей про эффективность (личную и командную). И этот вопрос никуда не исчезает, т.к. задач, которые приходится решать современному человеку, всё больше и больше, а времени на их решение всё меньше и меньше (про то, куда уходит наше время, тоже было много постов). Одной из составляющих, влияющих на эффективность труда, несомненно, является рабочее пространство.
На рабочем месте в офисе многие из нас проводят около трети своей жизни — 8-9 часов в день. Отдельные «счастливчики» дотягивают до 10-12 часов. И очень немногие из специалистов могут, не покривив душой, назвать своё рабочее место идеальным. Конечно, требования людей к рабочему месту определяются не только личными вкусами, но и особенностями профессии. И сегодня мы хотели бы затронуть тему идеального рабочего места с точки зрения IT-специалистов.
В конце июля Mail.Ru Group и HeadHunter провели небольшое исследование. Мы опросили 691 IT-специалиста и выяснили, что для них важнее всего в офисном пространстве.

На рабочем месте в офисе многие из нас проводят около трети своей жизни — 8-9 часов в день. Отдельные «счастливчики» дотягивают до 10-12 часов. И очень немногие из специалистов могут, не покривив душой, назвать своё рабочее место идеальным. Конечно, требования людей к рабочему месту определяются не только личными вкусами, но и особенностями профессии. И сегодня мы хотели бы затронуть тему идеального рабочего места с точки зрения IT-специалистов.
В конце июля Mail.Ru Group и HeadHunter провели небольшое исследование. Мы опросили 691 IT-специалиста и выяснили, что для них важнее всего в офисном пространстве.

+59
О системе диалогов Deus Ex и реальных механиках в настольных играх
Easy
3 min
54KDeus Ex Human Revolution — произведение искусства в лучших традициях киберпанка, своего рода IT-RPG. Игра отличная и стильная с крутым сюжетом и массой проработанных деталей. Но самое, на мой взгляд, крутое в ней – это система диалогов как механика.
Сейчас объясню в чём дело. Посмотрите на вот эти два скриншота: первый из Fallout II, второй из нового Deus Ex.

Старая добрая диалоговая система

Диалог в Deus Ex с установленным в голову социальным модулем
Сейчас объясню в чём дело. Посмотрите на вот эти два скриншота: первый из Fallout II, второй из нового Deus Ex.

Старая добрая диалоговая система

Диалог в Deus Ex с установленным в голову социальным модулем
+41
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity