Pull to refresh
0
0
Олег Климчук @stix

User

Send message

О микроконтроллерах

Reading time4 min
Views29K
Около 55% проданных в мире процессоров приходится на 8ми битные микроконтроллеры. Более 4 млрд. 8ми битных микроконтроллеров продано в 2006. Они установлены в микроволновках, стиральных машинах, музыкальных центрах… При этом они являются однокристальными компьютерами, со своим процессором, памятью, портами ввода-вывода. В статье я постараюсь кратко объяснить что это за звери и как их приручают.
Читать дальше →
Total votes 91: ↑86 and ↓5+81
Comments101

Google PageRank: Что мы знаем о нем?

Reading time7 min
Views11K
UPD. Статья уже переведена уважаемым Jenek и находится по адресу: designformasters.info/posts/google-page-rank

По просьбам здесь начал переводить статью "Google PageRank: What Do We Know About It?". Пока только то, что успел за вчерашний вечер. Если это кому-нибудь нужно продолжение — напишите, я переведу и выложу все остальное. Вычитка и замеченые ошибки приветствуются, т.к. специально переводить мне еще не приходилось. :)

Google PageRank: Что мы знаем о нем?


Его использует каждый, но почти никто не знает, как он в действительности работает. Google PageRank – это наверно один из важнейших алгоритмов, когда либо разрабатывавшихся в сети. Миллиарды существующих страниц и миллионы страниц появляющихся каждый день – поисковая выдача намного сложнее, чем вы себе представляете. PageRank – один из сотен факторов, которые учитывает Google, чтобы определить наилучший поисковый запрос, помогающий делать поиск простым и эффективным. Но как он на самом деле сделан? Как работает Google PageRank, какие факторы на него воздействуют, а какие нет? И что мы действительно знаем про PageRank?
В этой статье будут только голые факты.
Несколько недель мы производили интенсивные исследования и выбрали массу фактов и предположений о PageRank, которые похожи на действительность. Кроме того, мы собрали научные статьи, относящиеся к поисковой выдаче – таких, как предложения для лучших результатов поиска (например, PageRank, чувствительный к теме). Вы прочитаете про математическую составляющую PageRank, также как и про 16 полезных инструментов для работы с PageRank, которые вы можете использовать для анализа и слежения за вашими веб-проектами.

Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments32

Создание API: в рамку и на стену

Reading time5 min
Views57K
Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

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

Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
Читать дальше →
Total votes 154: ↑143 and ↓11+132
Comments97

Видео курс практической робототехники на Lego NXT

Reading time2 min
Views13K
Длительный и кропотливый труд по подготовке курса видео лекций «Практическая робототехника» близится к концу, и я хочу поделиться первыми результатами своей работы. На него уже можно записаться и приступить к изучению.
Конечно найдутся замечания по формату и содержанию курса, но мне кажется получилось неплохо. Вот, к примеру, третья часть четвертой лекции.

Краткое содержание курса можно найти в статьях «Математическая модель двигателя Lego NXT» и «Математическая модель Lego Segway».
Курс ознакомит вас с основами механики Лагранжа, матричного представления систем, основными приемами теории автоматического управления. Я постарался не обращаться к сложным математическим приемам, поэтому для прохождения курса должно хватить школьных знаний.
Содержание курса
Total votes 27: ↑26 and ↓1+25
Comments7

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

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



Прием и передача пакетов данных


Введение

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


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

А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.

BSD сокеты

В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).

Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.

Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments20

Что должен знать каждый участник крупного MMO-проекта

Reading time5 min
Views66K

Рядовые программисты обычно всё это прекрасно знают. А вот менеджерский состав нередко считает, что совершенно не обязательно разбираться в игровой экономике, клиент-серверной архитектуре и психологии игрового комьюнити. Ведь есть же крутая команда спецов, которые обо всём позаботятся.
Итог очевиден: трудно вспомнить хотя бы один крупный MMO-проект, выпущенный за последние два года, который избежал бы стандартного набора граблей. Такое ощущение, что MMO-индустрия не способна учиться на своих ошибках.
Итак, список вопросов, ответы на которые должен знать каждый, от топ-менеджера до работника техподдержки крупного MMO-проекта.
Читать дальше →
Total votes 102: ↑81 and ↓21+60
Comments114

HTML по стандартам

Reading time10 min
Views124K
Привет Хабр!

image Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.

В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
Читать дальше →
Total votes 190: ↑167 and ↓23+144
Comments49

Сети для самых маленьких. Часть третья. Статическая маршрутизация

Reading time28 min
Views562K
Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать”. Папа отправил его к маме.
Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
И бегал так мальчик, пока в один момент не упал.
Что случилось с мальчиком? TTL кончился.




Итак, поворотный момент в истории компании “Лифт ми Ап”. Руководство понимает, что компания, производящая лифты, едущие только вверх, не выдержит борьбы на высококонкурентном рынке. Необходимо расширять бизнес. Принято решение о покупке двух заводов: в Санкт-Петербурге и Кемерово.
Нужно срочно организовывать связь до новых офисов, а у вас ещё даже локалка не заработала.
Сегодня:
1. Настраиваем маршрутизацию между вланами в нашей сети (InterVlan routing)
2. Пытаемся разобраться с процессами, происходящими в сети, и что творится с данными.
3. Планируем расширение сети (IP-адреса, вланы, таблицы коммутации)
4. Настраиваем статическую маршрутизацию и разбираемся, как она работает.
5. Используем L3-коммутатор в качестве шлюза

Читать дальше →
Total votes 108: ↑104 and ↓4+100
Comments49

jQuery File Upload

Reading time2 min
Views182K
Ура! Еще один, свеженький… чем он лучше других?



а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

blueimp.github.com/jQuery-File-Upload

Поддержка браузеров:

github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

Читать дальше →
Total votes 215: ↑206 and ↓9+197
Comments118

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

Читать дальше →
Total votes 340: ↑333 and ↓7+326
Comments183

Selectik — стильные селекты

Reading time2 min
Views13K
Веб-дизайнеры любят стилизировать стандартные элементы форм. Потом эти элементы приходиться реализовывать нам — верстальщикам.

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

Естественно, после всего этого я решил изобрести свой велосипед.

Пример разработан без дополнительных картинок с помощью CSS3. Демо-страница с песочницей здесь.
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments74

Простая минималистская реализация сложных JavaScript приложений

Reading time12 min
Views8.6K
Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments42

Шифрование (K)Ubuntu для домашнего и бизнес применения

Reading time2 min
Views3.3K
Данные в компьютерах обычно хранятся в открытом виде, как в Windows, так и в Linux, что дает доступ к любой информации практически любому, на нее покушающемуся (!) или так «случайному прохожему» или даже неслучайному. Если вы хотите что-то скрыть от посторонних глаз, то эта статья для вас — умеренных параноиков и пользователей (K)Ubuntu. Особенно это касается владельцев ноутбуков (про массовые кражи все читали).
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments17

Information

Rating
Does not participate
Location
Краснодарский край, Россия
Date of birth
Registered
Activity