Pull to refresh
46
0
Aleksandr Shpak @shpaker

Бью лапками по клавке

Send message

Что внутри олимпийской медали болельщика 2014?

Reading time2 min
Views191K
Всем зрителям церемоний открытия, закрытия Олимпийских Игр их репетиций были розданы умные светодиодные медали, с дистанционным управлением. Эти аксессуары должны автоматически загораться разными цветами во время церемонии. После завершения шоу, каждый зритель мог забрать медаль с собой на память. С учетом того, что стадион Фишт рассчитан на 40 тысяч зрителей, и необходимости двух репетиций каждой официальной церемонии можно приблизительно оценить количество изготовленных медалей болельщика в 200 000 штук.

image
Фото URA



Интересно, что внутри? Под катом небольшое вскрытие медали.
Трафик 10 мб
Total votes 122: ↑104 and ↓18+86
Comments126

Как использовать секционные элементы HTML5

Reading time5 min
Views200K
Один славный малый Matt West c туманного альбиона, промышляющий фрилансом и предпринимательством, предложил нашему вниманию пост: «Как использовать секционные элементы HTML5».
Ниже приводится его перевод.




HTML5 предлагает набор секционных элементов, используя которые в своей разметке вы добавляете смысловую или семантическую нагрузку своим страницам, тем самым позволяя компьютерным программам лучше понимать их содержание.
Прочитав этот пост, вы научитесь применять секционные элементы на ваших веб-сайтах. Я постараюсь объяснить, в каких случаях лучше использовать тот или иной элемент и когда лучше прибегнуть к старому доброму .
Давайте начнем.
Читать дальше →
Total votes 68: ↑57 and ↓11+46
Comments37

Retro Games Battle 2014

Reading time1 min
Views13K
image Сегодня утром стартовал игровой конкурс Retro Games Battle 2014, в котором состязаются новые игры, написанные под старую платформу ZX Spectrum.

Жанровых ограничений не было, главное требование — это использование стандартного железа ZX Spectrum до 128к.
Итак, 3,5 Мгц, 128 килобайт. Основной язык — assembler z80.

Немного графики из игр:
image

Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments12

Вы до сих пор не любите JavaScript?

Reading time6 min
Views95K
С началом эпохи HTML5, рынку понадобилось большое количество JavaScript программистов. Многие специалисты по другим языкам, начали массово переориентироваться на JavaScript. Я много раз видел, как программисты с большим опытом ругали этот, один из самых гибких и могучих, язык, не понимая его принципов. В этой статье я постараюсь рассказать суть и философию JavaScript. Здесь будет всего 4 строчки кода и много-много того, что не напишут в учебниках. Обещаю, что вы полюбите этот язык, или по крайней мере, станете эффективнее в нём. Итак, поехали!
Читать дальше →
Total votes 220: ↑127 and ↓93+34
Comments241

10 трендов рынка мобильных игр в 2014 году

Reading time5 min
Views26K
Всегда интересно спрогнозировать то, что случится в будущем. 2014 год для находящейся на пике своего развития индустрии мобильных игр однозначно будет богат на события, которые могут внести серьезные изменения в расстановку сил на рынке. Продюсеры из KamaGames Studio решили поделиться своими ожиданиями от наступившего года, подкрепив прогнозы весомыми, на наш взгляд, аргументами.


Даже супергерои рынка не получат права на передышку в 2014 году...

1. Время оригинальных игр


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

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

Что делать: Пересмотрите старые, давно забытые игрушки. Анализируйте механики, которые сейчас очень популярны. Старайтесь придумать из этого игру, которая потенциально будет интересна массовому игроку.
Читать дальше →
Total votes 39: ↑25 and ↓14+11
Comments18

Вебсокеты на PHP. Часть 3. От чата до игры: Battle City

Reading time5 min
Views40K
В предыдущих двух частях (Делаем вебсокеты на PHP с нуля и Межпроцессное взаимодействие) в качестве демонстрации я использовал чаты, но в этой статье на примере онлайн-игры я покажу, что сфера применения вебсокетов может быть гораздо шире.

Как обычно, в конце статьи ссылки на демонстрационную игру и исходный код на гитхабе.

Содержание:
  • Поддержка вебсокетов браузерами
  • Разработка онлайн-игры
  • Благодарности
  • Демка и исходный код

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments23

Чему нужно учить в магистратуре по Computer Science?

Reading time3 min
Views41K
Продолжаем рассказывать о нашем опыте построения «самой лучшей магистратуры по Computer Science» =) и интересоваться мнением IT-сообщества. Напомню, что нашей целью было создать магистратуру с сильной программой, в которой не было бы «лишних» курсов. И благодаря сотрудничеству с Академией Современного Программирования и лабораторией математической логики Санкт-Петербургского отделения математического института им. В.А. Стеклова РАН у нас это успешно получилось сделать.

В прошлый раз мы написали о том, как создавалась кафедра и о том, чего нам удалось добиться за 5 лет.

В этом посте мы обсудим, чему нужно учить в магистратуре по Computer Science.


Читать дальше →
Total votes 69: ↑64 and ↓5+59
Comments97

Сетевое программирование для разработчиков игр. Часть 3: виртуальные соединения поверх UDP

Reading time9 min
Views40K
От переводчика: Это перевод третьей статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/
Вторая статья — http://habrahabr.ru/post/209524/



Виртуальные соединения поверх UDP


Введение

Привет. Меня зовут Гленн Фидлер и я приветствую вас в третьей статье из цикла “Сетевое программирование для разработчиков игр”.

В предыдущей статье мы разобрались, как отправлять и принимать пакеты, используя протокол UDP.

Так как UDP не поддерживает соединения, один UDP сокет может быть использован для обмена пакетами с любым числом удаленных компьютеров. Однако в многопользовательских играх, как правило, мы обмениваемся информацией только с несколькими узлами.


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

Но сначала, нам нужно более плотно разобраться, как работает интернет.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments5

Init.js: Зачем и как разрабатывать с Full-Stack JavaScript

Reading time13 min
Views31K

История


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

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

И наконец, в один прекрасный день вы решили: “Сделаем это!”. И вот вы уже пытаетесь разобраться как реализовать бизнес-логику своего приложения, ту киллер-фичу, которая будет двигать продукт вперед. У вас есть идея как это сделать, и вы знаете, что способны на это. И вот вы говорите: “Готово! Работает!” У вас есть успешный прототип! Осталось только упаковать его в веб приложение.

“Окей, сделаем сайт,” говорите вы.

А только потом вы понимаете, что для этого нужно выбрать язык программирования; нужно выбрать (современную) платформу; нужно выбрать какие-то (современные) фреймворки; нужно настроить (и купить) хранилище, базы данных и хостинг; нужно обеспечить интерфейс для администрирования; нужно обеспечить контроль доступа и систему управления контентом.

Перед вами десятки и десятки архитектурных решений, которые необходимо принять. И вы не хотите ошибиться: требуются технологии, которые позволят вести быструю разработку, поддерживают постоянные итерации, максимальную эффективность, скорость, устойчивость и многое другое. Вы хотите быть бережливым (lean) и гибким (agile). Вы хотите использовать технологии, которые помогут вам быть успешным как в краткосрочной, так и в долгосрочной перспективе. А выбрать их далеко не всегда так просто.

“Я перегружен”, говорите вы и чувствуете себя перегруженным. Энергия уже не та, что была в начале. Вы пытаетесь собраться с мыслями, но работы слишком много. Прототип медленно блекнет и умирает.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments29

Погодная станция с Ethernet и планшетом в качестве устройства отображения

Reading time21 min
Views83K

Введение


Я – пользователь бытовых погодных станций со стажем, и в этом скрыта двойная катастрофа. Во-первых, я уже настолько привык к тому, что погода внутри и вне дома мне известна, что отсутствие этой информации вводит меня в состояние когнитивного диссонанса. Во-вторых, с погодными станциями мне хронически не везет. Две из них сломались и, как в таких случаях говорят про всяческие индикаторные приборы, стали «показывать погоду», только с точностью до наоборот, показывали они что угодно, только не погоду. Из Штатов привез с собой третью, которая прослужила мне верой и правдой целый год, и я начал было потихоньку расслабляться, но тут у случайно забежавших (и давших нам с женой возможность временно возложить на их плечи заботу о сыне и выбежать из дома) родителей случился приступ принужденной заботы, в свою очередь, вызвавший острое желание помыть окна. Результат тщательного натирания окон – не только сверкающие окна, но и прыгнувший вниз датчик погодной станции. Этаж второй, так что датчик разбился бы вряд ли, но, как известно, непосредственно под окнами каждой многоэтажки есть невидимая пространственно-временная сингулярность. Не знаю, можно ли этот феномен описать в рамках Стандартной Модели, но то, что в основе сингулярности лежит принцип «что упало, то пропало», сомнений нет. Так что датчик я не нашел.
Естественно, в полный рост встала нужда менять девайс, но мысль о том, что ни одна из «бывших» не продержалась у меня дома больше года, настораживала. И тогда в голову забрела идея «а не сделать ли самому?».
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments37

Legacy или Inheritance: немного оффтопа про .prototype, каламбур для неофита

Reading time3 min
Views3.9K
Постараюсь быть неимоверно кратким.

Написано для тех, кто только начинает!

Статей про наследование в JS не счесть:


Считаю важным добавить, что есть терминологическая разница на уровне языка носителей, т.е. — английского. И это принципиально важно, когда Вы работаете с прототипами в JS.

У меня в google по запросу "what is the difference between inheritance and legacy" первая ссылка ведёт сюда: ссылка.

Само собой, что статей там не одна.

Там есть такая строчка, дописка: Also, as pointed out in some comments, «inheritance» is generally from the viewpoint of the receiver, while «legacy» is from the viewpoint of the giver: My inheritance was my father's legacy.

Краткая суть, которая не отражает всей глубины, которую я себе уяснил, в том, что:
  • legacy — это взгляд со стороны родителя, широкий
  • inheritance — это взгляд со стороны потомка, узкий


Поэтому я считаю, что в обычных ООП языках программирования типа Java, C#, С++ и т.п. используется термин inheritance — наследование.

А у нас в JavaScript используется почти то же самое, но немного шире: legacy — наследство.

А т.к. в Русском Языке разницы между этими понятиями почти нет, то отсюда и масса FuckUp'ов с пониманием зачем это нужно.

И, в том числе потому, что от Legacy code мы никуда не денемся.

UPD 2: Выжимка из статьи про legacy code >> Modern interpretations.

… source code inherited from someone else and source code inherited from an older version of the software…

UPD 3: Под катом идёт речь о том, что Inheritance неминуемо влечёт за собой Legacy. Точней наоборот, согласно терминологии носителей языка Legacy — это больше чем Inheritance.

UPD 1: В комментариях подсказывают, что может быть частично речь идёт о Гипотезе Сепира-Уорфа. Спасибо k12th. Так же спасибо lair за конструктивную критику.
Читать дальше →
Total votes 14: ↑7 and ↓70
Comments26

Простоквашино на Хабре или письмо Дяди Федора

Reading time3 min
Views13K
Практически все дети (бывшие и нет) знают про деревню Простоквашино и помнят письмо Дяди Федора.

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

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

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

Идея реализации коллективного поста

Автор поста придумывает название: “Тема письма и адрес послания”, при желании пишет краткую вступительную часть, ставит Habracut
Читать дальше →
Total votes 35: ↑20 and ↓15+5
Comments23

«Теоретический минимум» Леонарда Сасскинда издан на русском

Reading time4 min
Views67K
Рады сообщить, что в издательстве «Питер» вышел перевод новой книги Леонарда Сасскинда и Джорджа Грабовски — «Теоретический минимум» (ориг: The Theoretical Minimum: What You Need to Know to Start Doing Physics).

В Америке эта книга, несмотря на свой формат лекций по физике и классической механике, неожиданно стала настоящим бестселлером, а The Wall Street Journal вообще признал ее «Книгой 2013 года». В России книга вышла в издательстве «Питер» при поддержке гуманитарного фонда «Династия», цель которого — содействовать изданию лучших современных научно-популярных книг в области естественных и гуманитарных наук.

image

Мы уже издавали одну книгу Сасскинда на русском — «Битву при черной дыре» (пост о ней был на Хабре) — но «Теоретический минимум» по формату и содержанию кардинально от нее отличается.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments75

Broadway — рендеринг интерфейса GTK3 в браузере (HTML5)

Reading time8 min
Views16K
Иногда необходимо предоставить доступ к приложениям которые не всегда есть возможность установить локально, да и не всегда это нужно. Наверное, лучшим выходом тут был бы web интерфейс на JS/PHP и иже с ними. Но возможно есть другие, более простые в некоторых случаях пути? Особенно если приложение должно оставаться портативным, а ещё лучше не делать почти ничего дополнительно в коде для реализации такого функционала.
Такую возможность предоставляет Broadway — уже давно не новый, но остающийся в тени backend для GTK3, позволяющий привнести новые возможности туда, где казалось бы уже все давно протоптано.


Подробности
Total votes 16: ↑16 and ↓0+16
Comments6

JavaScript: цикличные таймеры с автокоррекцией

Reading time3 min
Views29K


В посте в повествовательной и не очень манере рассказывается о различных реализациях «точных» таймеров на JS. Материал рассчитан на новичков… Добро пожаловать под кат.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments32

LocalForage: кроссбраузерное локальное хранилище от Mozilla

Reading time5 min
Views18K
Уже довольно давно у веб-приложений появилась возможность хранить часть данных или файлов локально. Можно даже кешировать MP3-файлы. Браузеры научились хранить немалые объёмы данных. Тем не менее, пока что технологии локального хранения сильно фрагментированы.

localStorage предоставляет лишь самые базовые функции, это хранилище довольно медленно и не умеет хранить блобы. IndexedDB и WebSQL асинхронны, быстры и поддерживают большие объемы данных, но их API довольно запутан. Кроме того, ни IndexedDB, ни WebSQL не поддерживаются всеми основными браузерами, и, похоже, в ближайшем будущем эта ситуация не изменится.

Если вам нужно писать веб-приложение с оффлайн-режимом, и вы не знаете, с чего начать, то эта статься для вас. Если вы уже пытались работать с локальными хранилищами, и у вас от этого голова пошла кругом — статья и для вас тоже. Мы в Mozilla написали библиотеку localForage, которая значительно облегчает задачу хранения локальных данных в любом браузере.

Почувствовать на своей шкуре все сложности работы с локальным хранилищем мне помогла разработка around — HTML5-клиента для Foursquare. Хотя в этой статье я рассказываю, как использовать localForage, возможно кто-то предпочтёт изучить реальные примеры работы с ней.

localForage — очень простая библиотека JavaScript, которая использует API, похожий на API localStorage, с теми же самыми базовыми методами get, set, remove, clear и length, но имеет ещё несколько важных улучшений:

  • асинхронный API с колбэками;
  • драйвера IndexedDB, WebSQL и localStorage (самый подходящий драйвер выбирается автоматически в зависимости от возможностей браузера);
  • поддержка блобов и произвольных форматов данных, так что можно хранить изображения, файлы и так далее;
  • поддержка обещаний ECMAScript 6.

Использование IndexedDB и WebSQL позволяет хранить намного больше данных, чем localStorage. Неблокирующий асинхронный API делает приложение более быстрым и отзывчивым, так как основной поток приложения не подвисает во время выполнения вызовов get/set. Поддержка обещаний позволяет писать чистый код без спагетти из колбэков. Конечно, если вы любите колбэки, можно использовать и их.
Хватит болтовни, покажите, как это работает!
Total votes 43: ↑43 and ↓0+43
Comments12

Как я стал преподавать Arduino

Reading time5 min
Views110K
Я не провожу тренинги мастер-классы и семинары. Я внедрил изучение Arduino в образовательную программу колледжа. То есть студенты приходят ко мне, чтобы писать код на языке Processing Wiring и смотреть как он исполняется на плате.
Достаточно давно я подрабатываю в Уральском радиотехническом колледже. Вел разные предметы: электронику, радиотехнику, P-CAD, передатчики и т.д., а с недавних пор стал учить студентов работе с Arduino. Я негативно отношусь к этой платформе, но вижу много плюсов в ее изучении в стенах образовательного учреждения.
Читать дальше →
Total votes 127: ↑124 and ↓3+121
Comments126

Операционную систему Plan 9 опубликовали под GPLv2

Reading time2 min
Views40K
Разработчики уникальной операционной системы Plan 9, с разрешения руководства компании Alcatel-Lucent, изменили условия лицензирования. Теперь весь код ОС, который распространяется под Lucent Public License, будет одновременно распространяться под лицензией GPLv2.

Таким образом, пользователи могут распространять код системы и/или модифицировать его по своему желанию, в соответствии с условиями соглашения GPLv2, опубликованными Фондом свободного программного обеспечения.

Одновременно открыт и репозиторий на Github.
Читать дальше →
Total votes 101: ↑82 and ↓19+63
Comments47

Fish on Wheels: самоходный аквариум с золотой рыбкой на основе Arduino + Beagleboard

Reading time1 min
Views20K


На днях компания Studio Diip представила свой проект, который должен понравиться как любителям техники, так и любителям животных. Особенно золотых рыбок.

Дело в том, что эта компания создала самоходный аквариум, который управляется самой рыбкой. Правда, вряд ли рыбка осознанно двигает свое транспортное средство, но суть дела не меняется — аквариумом управляет его хвостатая владелица.

Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments26

Про сообщества программистов

Reading time7 min
Views35K
Этот пост назревал долгое время, но последняя запись в блоге Йэна Бикинга Saying Goodbye to Python заставила-таки меня сесть и написать его. Он скорее личный, и наверное не очень интересный, но для меня важно, что бы он где-то сохранился.

Довольно просто забыть про всех тех людей, которые сделали вас тем, кем вы сейчас являетесь, зачастую даже не подозревая об этом. Через несколько дней я и Python будем вместе уже 10 лет. Я не помню конкретно день, когда я впервые скачал интерпретатор Python’a, но благодаря моей активной интернет-жизни можно составить некий список прошлых заслуг начиная с определенной точки.
Читать дальше →
Total votes 86: ↑65 and ↓21+44
Comments16

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity