Как стать автором
Обновить
-1
0
Дмитрий @Dimfield

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

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

Выразительный JavaScript: Поиск и обработка ошибок

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

Содержание




Отладка изначально вдвое сложнее написания кода. Поэтому, если вы пишете код настолько заумный, насколько можете, то по определению вы не способны отлаживать его.
Брайан Керниган и П.Ж.Плауэр, «Основы программного стиля»


Юан-Ма написал небольшую программу, использующую много глобальных переменных и ужасных хаков. Ученик, читая программу, спросил его: «Вы предупреждали нас о подобных техниках, но при этом я нахожу их в вашей же программе. Как это возможно?» Мастер ответил: «Не нужно бежать за поливальным шлангом, если дом не горит».

Мастер Юан-Ма, «Книга программирования».


Программа – это кристаллизованная мысль. Иногда мысли путаются. Иногда при превращении мыслей в программу в код вкрадываются ошибки. В обоих случаях получается повреждённая программа.

Недостатки в программах обычно называют ошибками. Это могут быть ошибки программиста или проблемы в системах, с которыми программа взаимодействует. Некоторые ошибки очевидны, другие – трудноуловимы, и могут скрываться в системах годами.

Часто проблема возникает в тех ситуациях, возникновение которых программист изначально не предвидел. Иногда этих ситуаций нельзя избежать. Когда пользователя просят ввести его возраст, а он вводит «апельсин», это ставит программу в непростую ситуацию. Эти ситуации необходимо предвидеть и как-то обрабатывать.
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии8

Набор в кружки 239

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

Скоро стартует набор в кружки знаменитой школы 239 (Санкт-Петербург). Для детей Питера и ЛО, с 6 по 11 класса. Все занятия бесплатные и проводятся ведущими преподавателями в своей области.

Уверен, хабровчанам будут интересны следующие направленности:
Математический центр
Робототехнический центр
It направление
Нанотехнологии (да, в 239 есть своя нанолаборатория)

Читать дальше →
Всего голосов 52: ↑38 и ↓14+24
Комментарии10

Как устроиться на работу в Google

Время на прочтение4 мин
Количество просмотров845K
Работать где-то мечтают не все. Работать в компании Google мечтают многие, кто решил связать свою жизнь с IT.

Google — компания-гигант, одна из крупнейших IT-корпораций. Сотрудники такой компании нужны постоянно (новые области, текучка кадров).

Всё, что написано ниже, основано на личном опыте, а так же опыте тех людей, которым я могу доверять.

Шаг 1 — резюме.

В компании Google к резюме особое отношение. Получая миллионы заявок в год, компания выбирает несколько сотен сотрудников. Именно поэтому отличное резюме — первый шаг к работе мечты.
Что писать в резюме нужно обязательно:

  • e-mail, телефон для связи
  • все места учёбы (ВУЗы), дополнительное образование
  • Опыт работы*
  • Личные качества (придумайте что-то оригинальнее отзывчивости, стрессоустойчивости, коммуникабельности)
  • Хобби
  • Reference — люди, которые могут дать вам рекомендации
  • Знание языков

*Опыт работы в резюме для Google (и вообще для западных компаний) — это не только должность, компания, но и те успехи и достижения, которых вы добились на позиции. Если вы продажник — покажите цифры. Если программист — то как именно ваша работа улучшила работу компании. Работу рекомендуется указывать всю, а не только по профилю (если работали в МакДоналдсе, то даже такое стоит указать).

Что не нужно писать в своём резюме:
  • Дату рождения, личные данные
  • Есть ли водительские права
  • Семейное положение
  • Прочую «шелуху», которая только отвлечёт рекрутера

Читать дальше →
Всего голосов 128: ↑89 и ↓39+50
Комментарии114

Самый лучший способ обучения английскому для холостых мужчин

Время на прочтение2 мин
Количество просмотров141K
imageКогда я неожиданно стал фрилансером, жизнь меня поставила перед фактом, что все мои заказчики англоговорящие и с ними придется переписываться, а то общаться в скайпе голосом. За всю свою жизнь я перепробовал наверно все возможные методы изучения английского.
1) Изучал его в школе и универе (на самом деле досталось куча неправильных вещей не имеющих реального отношения к текущему английскому, от которых сложно отучиться).
2) Изучал по курсам Ешко.
3) Читал всевозможные учебники.
4) Читал и зубрил слова со словаря.
5) Тренировался с разговорниками.
6) Пытался общаться с носителями языка в аськах, скайпах и прочем.
7) Ходил в протестантскую церковь в которых были бесплатные уроки с носителями языка, а потом проповедь.
8) Мучался с lingvaleo и аналогами.
9) Зубрил слова с карточками.
10) Пробовал читать книги на английском.
11) Наверно какие то ещё методы о которых я не помню, кто их знает пишите в комментах.
Читать дальше →
Всего голосов 352: ↑258 и ↓94+164
Комментарии265

Идеальный ученик, или о чем умалчивают в машинном обучении

Время на прочтение12 мин
Количество просмотров23K
Ранее habrahabr.ru/post/145309 мы сделали обзор подхода к универсальному искусственному интеллекту (ИИ). Но что такое универсальный ИИ? Чего именно недостает современным практическим системам ИИ, чтобы называться универсальными? Для большей конкретности обсуждения этого вопроса давайте рассмотрим его на примере машинного обучения, являющегося необходимым компонентом ИИ.
Читать дальше →
Всего голосов 50: ↑49 и ↓1+48
Комментарии68

Odroid-X — мощная альтернатива Raspberry Pi

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


Сейчас уже никто не подвергает сомнению успех мини-компьютера Raspberry Pi. Почти сразу же после выхода этого мини ПК в свет, стали появляться новые модели мини-компьютеров, получившие свою долю покупателей. Нечто похожее случилось несколько лет назад и с нетбуками, которых сейчас великое множество. И что интересно, в случае с нетбуками, идея получить небольшое (и главное — недорогое) устройство для работы в Сети и с офисными программами как-то подзабылась. Очень скоро стали появляться нетбуки, стоимость которых превышала стоимость некоторых мощных ноутбуков. Видимо, подобная судьба ждет и мини-компьютеры.

Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии35

Прогулка по Стенфордскому университету

Время на прочтение2 мин
Количество просмотров8.4K
Знаю, что Хабра — это не тревел-блог. Но тема кремниевой долины постоянно мусолится на хабре. Так же часто упоминается Стенфордский университет.
Я поискал поиском — но не нашел ни одного полноценного фото-отчета с кампуса Стенфода.

Надеюсь, эта информация будет полезна хабровчанам, которые планируют поездку в Калифорнию.



К сожалению, найти студента, который бы рассказал нам об университете «изнутри» мы не смогли. Поэтому мой рассказ исключительно о «внешней» оболочке…

P.S. Добавил в блог «офисы ИТ компаний» — так как Стенфорд был офисом многих IT стартапов.

Читать дальше →
Всего голосов 112: ↑105 и ↓7+98
Комментарии106

Механические клавиатуры

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

А раз уж сталкиваешься с вещью регулярно, постепенно возникает вопрос — можно ли найти для работы какие-то более удобные варианты обычных клавиатур?

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

Механические клавиатуры. Путеводитель.

Читать дальше →
Всего голосов 323: ↑313 и ↓10+303
Комментарии331

Haskell — Дизайн

Время на прочтение14 мин
Количество просмотров6.5K
Говорят, каждый программист должен в своей жизни написать хотя бы один компилятор или придумать какой-нибудь язык программирования. Дизайн нового языка — дело непростое, ведь нужно продумать десятки параметров, которые, как кубики Lego, должны хорошо между собой сочетаться. Одно неудачное решение может перечеркнуть судьбу языка, когда он еще даже не вышел в свет. Сотни языков прозябают в забвении, подвинутые с подиума старшими братьями, но мир с упорством, достойным лучшего применения, рождает ежегодно два-три новых. Попадут ли они хотя бы в «группу альтернативного мировоззрения», или даже станут мэйнстримными, покажет время. К счастью, моему языку это не нужно, поскольку на нем нельзя программировать, — им можно только любоваться. Ибо это язык визуализации Haskell-кода, о дизайне которого пойдет речь в статье.



Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии30

Голосование по проектам для микрокомпьютера VoCore (wi-fi, openwrt)

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


В первой нашей публикации про микрокомпьютер размером с монетку, с Wi-Fi и Linux — VoCore, мы объявили конкурс на бесплатное получение микрокомпьютера для развития своего проекта/идеи. Было получено свыше 40 заявок (всем участникам большое спасибо!), из них мы постарались выбрать 15 — для голосования.

Кстати, а что на фото?
На фото — вариант исполнения Dock VoCore — микрокомпьютер совместно с Ethernet, USB и micro-usb для питания. Напомню, что мы продолжаем сбор желающих приобрести себе VoCore, подробности — в конце статьи.

Ну что ж, устраивайтесь поудобнее, и выбирайте — какой проект применения VoCore вам будет самым интересным (представьте, что у вас 3 шт. VoCore — и кому бы вы их раздали — голосование после статьи).

Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии26

PcDuino3 Nano, серьезный конкурент Raspberry Pi B+, за $ 39

Время на прочтение2 мин
Количество просмотров60K
Raspberry Pi, от существующих на рынке отладочных плат отличается очень низкой ценой и большим функционалом. Но остальные игроки не дремлют, и постепенно наращивают функциональность, и снижают стоимость.
Так еще в конце сентября, Linksprite анонсировала PcDuino3 Nano, отладочную плату построенную на двухядерном AllWinner A20 SoC, с Arduino-совместимой площадкой. Это позволяет подключать Arduino платы расширения к PcDuino3 Nano, как будто это Arduino UNO. Дополнительно есть SATA разъем для подключения HDD или SSD.
PcDuino3 Nano, это менее габаритная и более дешевая версия PcDuino3, без Wi-Fi модуля, LVDS, и I2C интерфейса. Плата не поддерживает подключение Li-Po аккумуляторных батарей, но добавлен еще один USB порт по сравнению со старшей моделью.
PcDuino3 Nano
PcDuino3 Nano
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии21

Вышел Python Tools 2.1 для Visual Studio

Время на прочтение3 мин
Количество просмотров31K
Окончательная версия Python Tools 2.1 для Visual Studio (PTVS) доступна для загрузки! PTVS работает с Visual Studio 2010, 2012 и 2013. Помимо перечисленных ниже новых возможностей, в PTVS 2.1 также добавлена поддержка бесплатных версий Visual Studio Express for Web и Express for Windows Desktop. Разумеется, по-прежнему поддерживаются все полные версии Visual Studio, от Professional и выше.

Веб-разработка на Python в Visual Studio


Веб-разработка является основной темой данного релиза. Теперь в PTVS можно удобно создавать сайты на Django, Bottle и Flask, как с нуля, так и с использованием стартовых шаблонов проектов. Все созданные таким образом сайты можно в один клик опубликовать на веб-сайт Azure.


Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии24

Как вращается камера в 3D играх или что такое матрица поворота

Время на прочтение11 мин
Количество просмотров122K
В этой статье я кратко расскажу, как именно преобразуются координаты точек при повороте камеры в 3D играх, css-преобразованиях и вообще везде, где есть какие-то вращения камеры или предметов в пространстве. По совместительству это будет кратким введением в линейную алгебру: читатель узнает, что такое (на самом деле) вектор, скалярное произведение и, наконец, матрица поворота.
Читать дальше →
Всего голосов 113: ↑105 и ↓8+97
Комментарии44

К глобальной куче без пробок. Исследуем менеджеры памяти

Время на прочтение3 мин
Количество просмотров15K
Как-то, анализируя дефект в разрабатываемом продукте, я наткнулся на архитектурную особенность менеджера памяти, который мы использовали. Дефект приводил к увеличению времени создания некоторых объектов. Особенность архитектуры заключалась в использовании паттерна Singleton при работе с менеджером памяти (далее X allocator). Схематично это выглядит так:

image
Рисунок 1 – Структурная схема работы X allocator

Из схемы видно, что доступ к глобальной куче защищен мьютексом. Такая архитектура, при интенсивном создании однотипных объектов из нескольких потоков, может привести к тому, что потоки будут вставать в очередь на этом мьютексе. А ведь одна из главных особенностей продукта – это возможность его масштабирования за счет увеличения количества потоков обработки (потоков выполняющих одинаковые действия). Поэтому такой подход потенциально может стать узким местом.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

Месяц до конференции мобильных разработчиков #MBLTDev

Время на прочтение2 мин
Количество просмотров3.6K
Через месяц 28 октября в Москве пройдет конференция для мобильных разработчиков #MBLTDev, организаторами которой являются e-Legion и РАЭК.



Программа постепенно заполняется и мы рады представить вашему вниманию список докладов и спикеров, которые уже подтвердили свое участие:

  • Тим Мессершмидт (PayPal) «Виды современной аутентификации»
  • Эш Фюрроу (Artsy) «Разработка на Swift»
  • Джей Пи Симард (Realm) «Уроки, которые мы выучили, создавая Realm»
  • Андрей Беленко (viaForensics) «Безопасность iOS-устройств»
  • Юрий Буянов (Одноклассники) «Опыт использования MVVM в реальных проектах»
  • Руслан Шевчук (Aviasales) «Core Data: особенности использования и синхронизация в iCloud»
  • Алексей Коровянский (Mb-Lock) «Функциональное тестирование Android приложений»
  • Александр Черный (Indie-разработчик) «Трилатерация с помощью iBeacon»
  • Джаспер Блюз (Typhoon) «Dependency Injection»
  • Дмитрий Тарасов (Tinkoff Credit Systems) «Практический пример переиспользования кода. Как повысить качество и ускорить разработку»
  • Энди Карвелл (Soundcloud) «Разработка Skippy: высопроизводительной низкоуровневой библиотеки воспроизведения потокового аудио для SoundCloud»

Билеты можно купить на официальном сайте конференции. Стоимость одного билета — 5000 рублей, при покупке 2-х и более — скидка 30%. А под катом вы найдете специальное предложение на покупку билетов для пользователей Хабра.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии0

В поиске бесплатных билетов, исследование игры Аэрофлота

Время на прочтение2 мин
Количество просмотров90K
Началось все с того, что я получил ссылку на промо-сайт компании Аэрофлот. Акция заключается в прохождении небольшой flash игры и получении бонусных миль. Главный приз в 150 000 миль получает игрок, занявший первую строчку в рейтинге. Собственно, принцип формирования рейтинга и вызвал мой интерес к этой акции.



Как всем хорошо известно, код flash приложений выполняется на стороне клиента, поэтому защита от нечестной игры представляет весьма сложную задачу. По сути, единственным верным решением является перенос всей игровой механики на сторону сервера, а flash приложение выполняет роль клиента к API.

Посмотрим, как с этой задачей справляются в Аэрофлот.
Читать дальше →
Всего голосов 179: ↑173 и ↓6+167
Комментарии71

Патчим процессы в Linux на лету при помощи GDB

Время на прочтение11 мин
Количество просмотров15K
Техники перехвата функций в Linux хорошо известны и описаны в интернете. Наиболее простой метод заключается в написании динамической библиотеки с «функциями-клонами» и использовании механизма LD_PRELOAD для переопределения таблицы импорта на этапе загрузки процесса.

Недостаток LD_PRELOAD в том что необходимо контролировать запуск процесса. Для перехвата функций в уже работающем процессе или функций отсутствующих в таблице импорта можно использовать «сплайсинг» — запись команды перехода на перехватчик в начало перехватываемой функции.

Также известно, что в Python имеется модуль ctypes позволяющий взаимодействовать с данными и функциями языка Си (т.е. большим числом динамических библиотек имеющих Си интерфейс). Таким образом ничто не мешает перехватить функцию процесса и направить её в Python метод обёрнутый в С-callback с помощью ctypes.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии6

Расширяемые отображения любых типов значений без использования макросов

Время на прочтение5 мин
Количество просмотров6.8K
Часто приходится сталкиваться в такими моментами, как отображение перечисления в строку и обратно, либо в фиксированное значения для дальнейшей сериализации. Здесь приводиться способ однозначного статического отображения значения типа A в значение типа B и обратно. Я попытался наделить метод небольшой гибкостью, позволяющей легко расширять варианты отображений.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии22

Приходите на КРИ 2014

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


В календаре всех российских разработчиков игр красным маркером обведены дни со 2 по 4 октября 2014 года. В это время в Крокус Экспо будет проходить одно их важнейших ежегодных событий в российской игровой индустрии — конференция КРИ 2014. Свою историю КРИ ведёт аж с 2003 года, а поэтому носит гордое звание старейшего в России ежегодного мероприятия для профессионалов игровой индустрии. Здесь для обмена опытом собираются специалисты всевозможных профессий: программисты, дизайнеры, аниматоры, художники, сценаристы и многие другие.

Кстати, начиная с этого года КРИ проходит одновременно с ещё одним событием-локомотивом, выставкой ИгроМир. Это мероприятие предназначено в первую очередь для самих игроков, здесь можно увидеть практически все компьютерные, консольные и мобильные игровые новинки. Большое и шумное шоу. Так что с точки зрения профессионалов игровой индустрии совместное проведение КРИ и ИгроМира очень удобно, можно и себя показать, и людей посмотреть, и опытом поделиться.

Конечно же, наш игровой департамент примет участие в этой конференции. Мы подготовили целый десант докладчиков, можно сказать, цвет наших игр. Они не прячут свой богатый профессиональный опыт и горят желанием поделиться им с сообществом разработчиков. Чтобы вам было легче ориентироваться, мы подготовили краткие анонсы для каждого выступления.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии5
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность