Как стать автором
Обновить
365.5

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Стражи ночи

Время на прочтение9 мин
Количество просмотров82K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), эксперт‐подрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →

Билл Гейтс финансирует создание тонких графеновых презервативов

Время на прочтение2 мин
Количество просмотров106K
image
Графен — тонкий, легкий и непроницаемый для всего кроме мельчайших молекул материал (он, например, является отличным водяным фильтром). Презервативы же, хотя и являются отличными барьером для болезней передающихся половым путем — не являются ни тонкими ни легкими, а это уменьшает чувствительность, из-за чего многие их не используют. Фонд Билла и Мелинды Гейтс считает, что мир станет лучше, если людям будет нравиться пользоваться презервативами. Поэтому они решили профинансировать разработку тонких, повышающих удовольствие графеновых кондомов.
Читать дальше →

Крошечный арканоид на JavaScript (30 строк кода)

Время на прочтение3 мин
Количество просмотров70K
Наблюдая за тем, как люди в 30 строк джаваскрипта умещают excel и змейку, я решил не отставать от прогресса, и создать что-нибудь подобное.
Итак, дамы и господа — 30ти строчный арканоид на чистом JS.


Читать дальше →

Может ли быть слишком много автоматизации в самолете?

Время на прочтение7 мин
Количество просмотров50K
В процессе обсуждения моей статьи о нахождении ошибки в программном обеспечении контроллера авиационного двигателя (FADEC) был затронут ряд вопросов, не имеющих прямого отношения к теме той статьи. Видя довольно большой интерес читателей к авиационно-компьютерной тематике, я решил рассказать еще об одной, довольно известной в узких кругах, истории, где ошибка в логике системы доставила экипажу несколько весьма интересных моментов, а производителю – кучу головной боли. На всякий случай, предупреждение – если считаете, что можете подхватить авиафобию (или она у вас уже есть), то лучше не переворачивайте страницу.
Читать дальше →

Крошечный Excel на чистом JavaScript (30 строк кода)

Время на прочтение2 мин
Количество просмотров137K
Особенности:
  • Около 30 строк обычного JavaScript
  • Использованные библиотеки: отсутствуют
  • Синтаксис как в Excel (формулы начинаются с "=")
  • Поддерживаются произвольные выражения(=A1+B2*C3)
  • Обнаруживаются циклические ссылки
  • Автоматическое сохранение в localStorage

image
Читать дальше →

О том, как я доверился своей интуиции и был очень упорным

Время на прочтение5 мин
Количество просмотров63K
Бывало ли у вас ускользающее чувство как будто вы на правильном пути? Возможно, вы что-то делали, подсознательно понимая что двигаетесь в правильном направлении, вы ощущали то неуловимое состояние когда «я понятия не имею что сейчас делаю, но мне кажется я на правильном пути». У меня часто бывает такое состояние. Вашему вниманию предлагается скромная история, произошедшая со мной несколько лет назад. Заранее прошу прощения если я где-то неправильно использую технические термины, поправьте меня в комментариях, спасибо.

Собственно, началось все со звонка моей любимой сестры и описания насущной проблемы, которая встала перед ней. А случилось следующее — организация, в которой она работала, год назад заказала создание сайта с 15 виртуальными турами (это там, где используя встроенный flash-плеер вы можете крутить во все стороны и изучать пространство вокруг себя, например, номер в гостинице). В какой-то определенный момент, как вы уже, наверное, догадались, все виртуальные туры на сайте вместо красочных картинок стали показывать ошибку: «Error 20» на красивом белом фоне. С этим и предстояло мне разобраться.
Читать дальше →

Отладка самолета? Это очень просто!

Время на прочтение13 мин
Количество просмотров119K
Некоторое время назад мне пришлось очень плотно поучаствовать в приемо-сдаточных испытаниях самолета. Эти испытания были основной частью процесса передачи свежеизготовленного, самого (по моему мнению) технически продвинутого на настоящий момент времени бизнес-джета от производителя заказчику. Казалось бы, причем здесь тестирование, разработка, да и вообще тематика Хабра? Желающие узнать это могут перевернуть страницу и прочитать довольно много текста, причем вообще без картинок.
Читать дальше →

IE11: Compatibility List vs. X-UA-Compatible

Время на прочтение2 мин
Количество просмотров84K
Вчера я опубликовал топик, в котором описал некоторые удивительные решения, которые приняла компания Майкрософт при выпуске новых версий своего так сказать браузера Internet Explorer. Если вкратце, это:
  • введение режимов совместимости со всеми ранее выпущенными версиями браузера вплоть до 5.5;
  • решение эмулировать эту совместимость путём тщательного портирирования старых багов;
  • отказ от указания имени браузера в юзер-агенте на фоне заявлений о том, что детектировать IE11 по юзер-агенту не надо;
  • слом обратной совместистимости между последним Developer Preview и RTM релизом;
  • разное поведение, вплоть до падения в некоторых ситуациях, одного и того же браузера под разными версиями операционной системы;
  • поддержание глобального списка совместимости, в который попадают те сайты, которые, по мнению Майкрософт, должны показываться в одном из режимов совместимости IE;
  • формирование этого списка на основе статистики по кликам пользователей preview-версий браузера в кнопку «Compatibility View»;
  • приоритет этого списка над заданной вебмастером метой X-UA-Compatible в RTM-сборке IE11.

Появление этого топика вызвало вал добродушных комментариев, начиная от «автор истеричка» (как будто какой-то из изложенных фактов становится от этого менее весомым) до «Столько бреда, я давно не читал. Смысла даже нет проходиться по всей статье и указывать на ошибки автора». На просьбу таки указать ошибки в изложении было почему-то только отмечено, что последний из приведённых пунктов — а именно, приоритет списка совместимости над X-UA-Compatible — не соответствует действительности (странно, почему же тогда «ошибки» во множественном числе, уважаемый SowingSadness?). Далее в треде от меня потребовали предоставить доказательства этого пункта, заявив, что я либо ошибся, либо просто его придумал.

Хорошо, привожу

Почему Microsoft Internet Explorer 11 — худшее, что могло случиться с нами

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


Я давеча написал комментарий о том, что компании Майкрософт давно пора перестать издеваться над веб-разработчиками и перейти на движок Gecko. Многие, видимо, посчитали это неуместной шуткой; тем не менее, это таки вовсе не шутка, а констатация факта. Те, кто с этим не согласен, видимо не пытались ещё разрабатывать под этот замечательный браузер.

Давайте я расскажу вам, какой это замечательный процесс.

Настало время ошеломительных историй

FileAPI 2.0: Загрузка файлов на сервер год спустя

Время на прочтение11 мин
Количество просмотров70K
FileAPI 2.0Привет Хабр! Примерно год назад я представил вашему вниманию первую версию open-source библиотеки FileAPI, предназначенную для работы с файлами на клиенте и последующей загрузки на сервер.

За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
Читать дальше →

Слово в защиту пиксельных значений media queries

Время на прочтение8 мин
Количество просмотров36K
Я покажу тебе, глубока ли кроличья нора.Читая публикации о верстке для вэба, вы не раз натыкались на рекомендацию не использовать пикселы в media queries. Например, вот цитата из совсем недавней статьи на Хабре:

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

Что, если я скажу вам, что использование пикселов в media queries не только не причиняет никакого вреда верстке, но и имеет преимущества над использованием em'ов?

Читать дальше →

HTML Academy, Хабр и краудфандинг

Время на прочтение3 мин
Количество просмотров90K
HTML Academy — это интерактивные онлайн-курсы по HTML и CSS. Проект существует уже более года, за который мы создали более 15 курсов, большая часть из которых бесплатна. Всё это время работа велась на чистом энтузиазме, однако, сейчас уже нужно выходить на новый уровень, чтобы делать курсы чаще, круче и полезнее. Для этого есть много путей, и один из них — народное финансирование.

Немного об HTML Academy


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

Практическое задание
Читать дальше →

Дело Попова-Бабушкина живет

Время на прочтение4 мин
Количество просмотров110K
Хочу попросить вас не ругать самого школьника — кто из нас в начале пути не писал велосипеды, которые должны были потопить гигантов ИТ-индустрии или хотя бы не мечтал об этом. Не хватало еще отбить у человека тягу к программированию. Лучше отправить лучи поноса тем некомпетентным журналистам, которые снова опрофанились, и тем кто затеял этот поход за мировой известностью.

upd
Я пообщался с Руфатом, насколько это позволил мне мой дурной английский. Он почему-то поблагодарил за этот пост, еще отметил, что интереса к личной жизни других людей он не испытывает, несмотря на то, что это написано в новостях. Хотя признается, что шутил над друзьями используя самописный spyware. К антивирусу это не имеет отношения, его разработку и поддержку он уже прекратил.
Техническую сторону обсудить не получилось из-за языкового барьера, единственное, что он мне сообщил, то что есть сервер (php, ajax, js), на сервере мускуль и есть клиент написанный на дотнете, стадия разработки проекта — альфа. На вопросы как обстоит дело с работой из-за НАТа и про протокол он не ответил. Зато дал ссылку на видео, где можно увидеть работу программы.
vimeo.com/28194023

При помощи добрых людей isden и merlin-vrn, которые помогли мне с вопросами, я более детально пообщался с Руфатом и с его согласия публикую нашу переписку:
Okey. I am using .NET for Windows client. Browser control (server) is PHP, AJAX, JS
We developing this project. And dont add now security methods.
This project not a hacker tool.
This project client software notify connected PC.

Can you reveal some details of your agreement with «Exoventure Associates»?
This contract 1 year for looking my project investor.

How many lines of code, or can you provide any other software quality metrics?
All the code I programmed.

What if server is hidden behind some firewall or NAT? Does it support IPv6?
Now I using Hosting.

Which actions the program allows to execute, and is it possible for users to add custom actions? Is it possible to define complex actions, something like «reboot if CPU load is more than 90%»?
Program limited permission allowed for user. And not time now this question answer

How can I be sure nobody can access my computers? Can I be sure nobody can even see which commands I send to my computers?
Yes. You send to target computer command. And Computer's user see your command

Do you use encryption? Or commands are sent in plain text?
Yes. I will use to security methods. But now am developed back end for project because now not ready project new version

How resilient is the program? Can I have feedback from the remote if my command was successful? What if the computer suddenly disappeared, can it alarm me that my command failed?
Yes. Now there log system

What operating system can be used as a back end?
Server — Linux
Client — Windows

What are benefits of your program? Can you provide some comparison with well-known remote control software, like mobile SSH clients, Teamviewer and others?
My project difference features: remote many computers with one device.
And this project. very easy for end users

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

Журналисты в очередной раз радуют нас удивительными открытиями. Как пишет новостной портал mir24.tv, школьник из Баку по имени Руфат Мамедли создал «уникальную программу, аналогов которой нет в мире». С помощью этой программы можно будет, имея при себе всего лишь телефон, управлять любым компьютером, в любом уголке земного шара.
Читать дальше →

Ближайшие события

Как релизится GitHub

Время на прочтение3 мин
Количество просмотров43K
Yac 2013 посетил Jason Rudolph из GitHub. Я считаю его доклад про API был одним из самых интересных на конференции. Яндекс обещал выложить в сеть записи, так что советую на досуге посмотреть его всем, кто не видел.

Но речь пойдет не о докладе. На картинке график релизов GitHub на продакшн.



Когда я услышал цифру, я не поверил своим ушам. У GitHub'а сотни обновлений в неделю. В команде около сорока разработчиков и ни одного QA.

К счастью Джейсон после доклада еще какое-то время находился рядом со сценой и я смог расспросить его с пристрастием о том как они это делают.
Читать дальше →

Нам не нужен ваш кофе

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


Это открытое письмо CoffeeScript-сообществу.
Вы можете присоединиться к дискуссии на Hacker News.

Эта тирада, возможно, также справедлива для TypeScript и ему подобных. Чёрт, да даже для asm.js. Я знаю, что asm.js впечатляет в теории, но вы сами пытались пройтись по написанному на нём коду? Это мусор, и вам явно не придётся писать такое в ваших обычных каждодневных исходниках.
Не поймите меня неправильно

PostgreSQL 9.3 Что нового?

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

Здравствуйте, хабрачеловеки! Не так уж давно вышел релиз PostgreSQL 9.3 и я хотел бы ознакомить Вас с наиболее важными новшествами, касающимися клиентской части, которые, возможно, пригодятся Вам. В этой статье рассмотрено следующее:
  • материализированные представления
  • обновляемые представления
  • триггеры к событиям
  • рекурсивные представления
  • латеральное присоединение
  • изменяемые внешние таблицы
  • функции и операторы для работы с типом JSON

Подробней

Как находить и устранять утечки памяти на примере Яндекс.Почты

Время на прочтение8 мин
Количество просмотров67K
На первый поверхностный взгляд, слова JavaScript и «утечка памяти» рядом стоять не могут. Настоящих утечек памяти в JS, конечно, не может быть, потому что процесс сборки мусора происходит автоматически и не может контролироваться из нашего кода. Выделить память под объект и забыть освободить невозможно. Но могут быть ситуации, связанные с ошибками в логике работы приложения, которые приводят к утечкам памяти другого рода. Например, забиндили обработчик, в котором что-то делаем с методами общего объекта и забыли его анбиндить. Или же посылаем письмо с большим телом и не очищаем тело даже после отправки.

image

Мы в Яндекс.Почте, сложном и массовом проекте, накопили заметный опыт в поиске и устранении таких утечек, и хотим им поделиться.
Итак, больше подробностей

Генератор случайных котов за 8 шагов

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

Доброго времени, Хабр!
Я всегда очень любил котов, и любил их рисовать, особенно морды кошачьи. Чуть изменишь форму, линию — и совершенно другое выражение, другое настроение. У меня листы А4 были изрисованы под предел. И тут мне недавно стукнуло в голову — а что если сделать генератор морд котов? Чтобы нажал на кнопочку и тебе выкинется случайная морда кота. Как можно более случайная и интересная. Давайте же посмотрим, как же сделать такую штуку.
Прошу под кат, любители котов.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика (выпуск 3)

Время на прочтение3 мин
Количество просмотров60K
Доброго времени суток, уважаемые хабравчане. С прошедшим вас днем программиста. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Cloudconvert




Великолепный онлайн конвертер файлов, который поддерживает в общей сложности 140 форматов следующих типов: archive, audio, cad, document, ebook, image, presentation, spreadsheet, video. Синхронизируется с Dropbox и Google Drive, благодаря чему возможно использование на всех смартфонах. А самое приятное это то, что для данного сервиса существует функциональное и простое API.

Читать дальше →

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Время на прочтение3 мин
Количество просмотров83K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →

Вклад авторов