Как стать автором
Обновить
-15
Владислав @xakepmegaread⁠-⁠only

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

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

Кротовые норы в JavaScript

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Wormholes in JavaScript" автора Mathius Buus.



Компьютеры — интересные машины. В теории они представляются нам идеальными механическими математиками работающими с цифрами и хорошо выполняющими операции сложения, умножения и вычитания.


Однако, такая абстракция довольно обманчива. Она уводит нас от понимания того, что компьютер обрабатывает разные математические операции с разной скоростью. Если вы пишете на JavaScript (или на любом другом языке) и заботитесь о производительности написанных вами алгоритмов, очень важно понимать как работают компьютеры под капотом.


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

Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии29

Шина PCIe: только ли физические ограничения влияют на скорость передачи?

Время на прочтение5 мин
Количество просмотров49K
Начну издалека. Прошлой зимой довелось мне делать USB-устройство с ядром, размещаемым в ПЛИС. Само собой, очень мне хотелось проверить реальную пропускную способность этой шины. Ведь в контроллере — там слишком много всего наверчено. Всегда можно сказать, что вот тут внесена задержка, или вон там. В случае же с ПЛИС — я вижу блок, прокачивающий данные, вот он сказал мне, что в нём данные есть. А вот я выставил, что всё обработано, и я готов принимать новую порцию (при этом, он уже принимает данные во второй буфер этой же конечной точки). Отлично, ставим готовность с первого же такта и смотрим, что получается, когда USB может «молотить» без остановки.


Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии82

История создания Chatto

Время на прочтение10 мин
Количество просмотров16K
Наш чат устарел: за несколько лет эволюции он превратился в громоздкий View Controller со странными исправлениями, в которых никто не мог разобраться. Стало трудно добавлять новые типы сообщений, зато с легкостью появлялись новые баги. Поэтому мы решили переписать чат на Swift с чистого листа и выложить его в open source.
Мы начали работу над проектом, поставив перед собой две цели:
  • масштабируемая архитектура: нам нужна была возможность легко добавлять новые типы сообщений без ущерба для написанного ранее кода;
  • хорошая производительность: мы хотели обеспечить плавную загрузку и прокрутку сообщений.

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


Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии10

Социальный логин: cильные стороны

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


Cоциальный логин (логин с использованием аккаунта Google+, Facebook и т.п.) все чаще встречается в мобильных и веб-приложениях. Не удивительно, это удобно. Пользователю не приходится возиться с логином и паролем. Не нужно ничего запоминать, затем вспоминать или восстанавливать. Не приходится разгадывать капчу. На мобильных устройствах ввод пароля крайне не желателен и формирует негативный опыт у пользователя. Владелец приложения получает свои плюсы: простая регистрация — большее количество пользователей, довольные пользователи — выше показатели конверсии. Наличие профиля пользователя уже на этапе регистрации, и как правило, много более достоверного и полного нежели формы запрашиваемые приложением.

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

Решают ли библиотеки все задачи?
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии6

Как быстро раздать wifi с ноутбука — 3 простых команды

Время на прочтение2 мин
Количество просмотров722K
Периодически я сталкиваюсь с ситуациями, когда необходимо быстро настроить раздачу интернета через WiFi со своего ноутбука и под рукой нет специальной программы. Вот и сейчас мой роутер приказал долго жить и оставил дом без интернета. А не так давно телефон друга отказался подключаться к моему роутеру и мы быстро организовали дополнительный wifi-сигнал с моего ноута, что спасло ситуацию.

И помогают мне в этом 3 команды:
netsh wlan set hostednetwork mode=allow
netsh wlan set hostednetwork mode=allow ssid=FastWifi key=12345678 keyUsage=persistent
netsh wlan start hostednetwork

Под катом я детально расскажу как и что нужно делать и покажу на примере настройки Windows 7.

Читать дальше →
Всего голосов 66: ↑39 и ↓27+12
Комментарии21

Бесплатные SSL-сертификаты — теперь на 3 года от WoSign

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


Вчера обнаружил, что WoSign дает бесплатно сертификат, теперь уже на 3 года.
Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии80

Полная кастомизация select без использования JS

Время на прочтение4 мин
Количество просмотров84K
imageСколько я не мучил поисковик, а решения этого вопроса так и не нашлось. Конечно, всегда можно использовать JS и это нормально, но иногда заказчик душа просит изысков.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии90

Одиннадцатиклассница, или тестируем баги вёрстки

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


В современном вебе несправедливо мало внимания уделяется хоть сколько-нибудь автоматизированному тестированию UI. Особенно это касается статической вёрстки. На проекте 2ГИС Онлайн мы попытались частично восполнить этот пробел. Какие полезные практики мы приобрели, и о каких хороших библиотеках мы узнали, расскажем далее.
Получить плюс пять к качеству
Всего голосов 76: ↑66 и ↓10+56
Комментарии88

Проектирование RESTful API с помощью Python и Flask

Время на прочтение15 мин
Количество просмотров284K
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.

В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.

Что такое REST?


Характеристика системы REST определяется шестью правилами дизайна:

  • Клиент-Сервер: Должно быть разделение между сервером, который предлагает сервис и клиентом, который использует ее.
  • Stateless: Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для выполнения запроса. Другими словами, сервер не обязан сохранять информацию о состоянии клиента.
  • Кэширование: В каждом запросе клиента должно явно содержаться указание о возможности кэширования ответа и получения ответа из существующего кэша.
  • Уровневая система: Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. При этом клиент может не знать о существовании промежуточных узлов, за исключением случаев передачи конфиденциальной информации.
  • Унификация: Унифицированный программный интерфейс сервера.
  • Код по запросу: Сервера могут поставлять исполняемый код или скрипты для выполнения их на стороне клиентов.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии32

Система Личной Эффективности «Важное событие дня»

Время на прочтение3 мин
Количество просмотров12K
Приветствую сообщество. Я хотел бы рассказать про систему личной эффективности «важное событие дня».
Про эту систему я узнал на одном из бизнес тренингов. Оригинала техники не знаю (не смог найти), поэтому описываю так, как услышал и использую сам.

Сразу перейду к сути.

Описание


Каждый день необходимо записывать самое важное событие, которое произошло с тобой в течение дня. Событие может быть из любой сферы жизни. Например: прибрался в комнате, закрыл проект Х, секс, посмотрел фильм, и т.д.

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

За месяц необходимо выбрать лучшее из недель. И так далее для квартала и года.



Первое время было не просто пользоваться техникой: забывал фиксировать данные, приходилось вспоминать события аж за всю неделю. Но со временем привычка дошла до автоматизма и стало намного проще.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии10

Максимально аутентичную реконструкцию «Звёздных войн» можно посмотреть в HD

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


История, расказанная в «Звёздных войнах» — это классика. Каждые несколько сотен лет её пересказывают снова, поскольку у нас есть склонность повторять сделанное. Власть развращает, и когда находишься у руля, начинаешь делать то, что считаешь правильным, хотя на самом деле это неверно.

Джордж Лукас, интервью изданию Wired

В то время как студия Disney готовится ещё раз осквернить уже трижды изнасилованный труп оригинальной трилогии «Звёздных войн» и всерьёз думает над стереоскопическим переизданием, стоит вспомнить то, как её создатель относится к своему детищу. Первые три фильма — и речь идёт не о трёх эпизодах, снятых уже значительно позже (спасибо, Лукас, за эту необходимость в пояснениях) — в переиздании на Blu-ray получили множество вопиюще ненужных изменений.

Списки в «Википедии» можно воспринимать как некую констатацию определённого факта или характеристику объекта. Так, список списков списков наглядно демонстрирует обширность и упорядоченность интернет-энциклопедии, а список наград Брежнева лучше любой статьи показывает порок покойного генсека. 60 килобайт лишь только частичного текстового описания изменений в переизданиях фильмов «Звёздных войн» прекрасно иллюстрируют количество переделок, накопившихся после 1981, 1997, 2004 и 2011 годов.

Конечно, часть изменений связана с примитивностью технологии спецэффектов эпохи оригинальной трилогии, но множество поклонников не согласятся, к примеру, с тем, что вырезанную из первого эпизода сцену с Джаббой Хаттом стоило возвращать. Сам Лукас заявляет, что оригинальные версии были лишь 25—30 процентами от того, что он намеревался сделать. Но стоит ли винить зрителей за то, что они не могут смириться с растущим от издания к изданию количеством новых непривычных изменений?

Группа преданных фанатов работает над проектом Star Wars Despecialized Edition. Это — торжество техники видеомонтажа и реставрации, выполненных непрофессионалами. Никто специально не предоставлял мастер-копии, все использованные в проекте материалы были доступны широкой публике.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии27

ReadyScript – наш взгляд на CMS для интернет-магазинов

Время на прочтение8 мин
Количество просмотров32K
image
Недавно рынок e-commerce CMS пополнился новым продуктом от ReadyScript lab. Система обладает рядом уникальных особенностей, о которых мы расскажем в этом посте.
Читать дальше →
Всего голосов 49: ↑37 и ↓12+25
Комментарии84

Новые исследования: как ещё связано SEO и социальные сигналы?

Время на прочтение4 мин
Количество просмотров35K
Компания SearchMetrics, разрабатывающая аналитические программы для SEO, ежегодно исследует тысячи сайтов на первых страницах SERP по разным запросам, чтобы выявить закономерности попадания различных ресурсов в выдачи поисковых систем. А далее – определить важность тех или иных факторов при ранжировании этих площадок в Google. В 2013 году сайты, выпадающие на топовых страницах SERP, объединяют сильные социальные сигналы. Среди приблизительно 50 анализируемых факторов на первом месте по важности оказалось число +1 на Google+. Далее в списке идут: количество шеров на Facebook, количество и качество обратных ссылок (заметьте, только третье место), число друзей, лайков, комментариев на Facebook, активность на Pinterest и Twitter и т. д.

image

Читать дальше →
Всего голосов 61: ↑45 и ↓16+29
Комментарии31

250 строк кода, распознающих дату на русском языке

Время на прочтение2 мин
Количество просмотров47K
Около года назад мне понадобилось распознавать даты в тексте, который вводят пользователи. Пришлось немного разобраться в регулярных выражениях и написать функцию, на вход которой поступает текстовая строка, а в результате получается распознанная дата.



Пример и код в jsFiddle.
Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии77

Интерактивный глобус — SVG versus Canvas

Время на прочтение6 мин
Количество просмотров51K
Доброго времени суток, уважаемый читатель! В прошлый раз мы изучали процесс создания интерактивной карты-хороплета, теперь предлагаю немного усложнить задачу и перейти к трёхмерной модели Земли, именуемой в народе глобусом. Глобус делать будем двух видов: SVG версия и Canvas версия. В обоих случаях будем использовать JavaScript библиотеку d3.js. У каждого варианта свои преимущества. В моём исполнении Голубая планета выглядит следующим образом:

Планета Земля

А как создать свой собственный Мир с материками и океанами можно узнать под катом.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии20

Создаём игру, используя canvas и спрайты

Время на прочтение15 мин
Количество просмотров163K
Веб сейчас везде, и предлагает очень мощную среду для создания и распространения приложений. Вместо цикла: написание кода → компиляция → запуск, просто обновите приложение или даже напиши код «на живую» в браузере. Кроме того, это относительно безболезненно позволяет распространять своё приложение на огромном количестве платформ. Интересно, что в последние несколько лет, разработка игр, используя HTML5, стала реальностью.
Элемент canvas был введен вместе с HTML5 и предоставляет API для работы с ним. API — прост, но если Вы никогда не работали с графикой, Вам потребуется время чтобы привыкнуть. Canvas поддерживается большим количество браузеров, что делает веб — хорошей площадкой для создания игр.
Читать дальше →
Всего голосов 95: ↑91 и ↓4+87
Комментарии23

Tronsmart MK908 — новое поколение мини-компьютеров на 4-х ядерном чипе Rockchip RK3188

Время на прочтение11 мин
Количество просмотров214K
image
После мини-компьютеров с чипом RK3066 на рынок выходит новое поколение на 4-х ядерном чипе Rockchip RK3188. Чип выполнен по 28нм техпроцессу и состоит из 4-х ядерного процессора архитектуры Cortex-A9 с частотой работы до 1.8 ГГц и видеоускорителем Mali 400MP. Видеоускоритель остался прежним от RK3066, но разогнан до частоты 600МГц. Объём оперативной памяти по сравнению с прошлым поколением увеличился вдвое и составляет 2ГБ DDR3 памяти (хотя надо заметить, что на RK3066 тоже есть одно устройство с 2Гб RAM — это CX-803-II).
Сегодня мы рассмотрим одно из первых устройств на обновлённой платформе — Tronsmart MK908. А также узнаем насколько удобно пользоваться беспроводной мышью-клавиатурой iPazzport для управления системой Android.
Читать дальше →
Всего голосов 86: ↑79 и ↓7+72
Комментарии72

Как сделать самую лучшую посадочную страницу: чеклист из 50 пунктов

Время на прочтение5 мин
Количество просмотров98K
Мы в Alconost предоставляем услуги создания и ведения контекстной рекламы и, по долгу службы, иногда занимаемся разработкой посадочных страниц (landing pages). Мы были очень рады найти и перевести статью, в которой автор изложил все требования, которым такая страница должна соответствовать. Но есть в этой статье и большой минус. Пунктов аж 50, каждый можно отметить в чеклисте, но после доступен лишь результат в баллах, которым можно разве что похвастаться перед друзьями.

Мы против таких способов анализа информации. Потому каждый желающий может скачать подготовленную нами гуглотаблицу, ответить на вопросы “Да” или ”Нет”, отфильтровать ответы и получить результат и план действий.

Те, кому в гуглотаблицу не хочется, просим под кат. Там перевод.



Читать дальше →
Всего голосов 84: ↑68 и ↓16+52
Комментарии30

19 команд ffmpeg для любых нужд

Время на прочтение3 мин
Количество просмотров572K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →
Всего голосов 222: ↑214 и ↓8+206
Комментарии107

В интернете оказалась ранняя альфа-версия игры Half-Life 1997-го года

Время на прочтение1 мин
Количество просмотров91K
Jackaljayzer, с Reddit, разместил в сети превью-диск, адресованный журналистам. Диск содержит скриншоты, трейлеры и демо-билд Half-Life 1997 alpha. Получил он его от знакомых, живущих в Белвью, Вашингтон. Именно там располагается штаб-квартира Valve.
Ниже несколько скриншотов, видео и ссылки.
Читать дальше →
Всего голосов 99: ↑97 и ↓2+95
Комментарии59
1

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность