Pull to refresh
3
0.3
Send message

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

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

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

Скрипты для управления виртуальными хостами на веб-сервере Debian

Reading time3 min
Views10K
Хочу поделиться небольшой наработкой, которая упрощает администрирование веб-севера, работающего под управлением Debian-подобной операционной системы. Сразу оговорюсь, я далеко не гуру в этой области, просто в какой-то момент мне понадобилось поднять vsftpd, nginx, PHP-FPM и PostgreSQL. Ни для кого не секрет, что при добавлении виртуальных хостов, настройке пулов PHP-FPM и создании баз данных, приходится выполнять одни и те же действия. Удаление виртуальных хостов со всем, что с ними связано, а также создание резервных копий тоже весьма однообразны. Поэтому было бы неплохо обзавестись скриптами, которые автоматизируют все эти вещи.
Читать дальше →

Числа Фибоначчи (этюд на C#)

Reading time2 min
Views48K
Наверное многим студентам приходилось изучать рекурсию на примере вычисления чисел Фибоначчи. Задачка это безусловно академическая, и рекурсию она иллюстрирует явно хуже чем вычисление, скажем, факториалов, но она интересна тем, что имеет много решений разной степени извращенности. В этом посте – небольшой этюд на эту тему.

Если интересно...

Папа Карло и инкрементальные компиляторы

Reading time5 min
Views18K


Коллеги,

а помните была такая статья-перевод на Хабре Чек-лист разработчика языка программирования Колина Макмиллена о проблемах новых языков программирования? Статья просто изумительная! Если не читали — обязательно посмотрите.

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

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

HTTP 2.0 будет только по HTTPS

Reading time2 min
Views30K
Рабочая группа, которая работает над новой версией стандарта HTTP/2, обсудила несколько вариантов использования шифрования в HTTP/2. Руководитель рабочей группы Марк Ноттингем (Mark Nottingham) обдумал все предложения и сегодня высказал своё мнение на этот счёт.

По мнению Ноттингема, наилучшим способом защиты коммуникаций будет, если протокол HTTP/2 будет поддерживать только URL типа https:// в «открытом» интернете. Адреса типа http:// продолжат использовать предыдущую версию протокола HTTP/1. Естественно, клиенты HTTP/1 тоже сохранят возможность обмениваться данными с защищёнными узлами.

Это довольно смелое решение. Если его утвердят в стандарте, то оно может привести к тотальному внедрению криптографии по всей Сети.
Читать дальше →

Превращаем статический сайт в мобильное приложение с помощью jQuery Mobile и PhoneGap

Reading time5 min
Views114K

После приобретения телефона на базе Android, возникла задача сделать из сайта brainexer мобильное приложение. Выбор пал на jQuery Mobile и PhoneGap. До этого никаких познаний в обрасти мобильной разработки не было, поэтому пришлось осознать некий пласт новой информации, выжимкой из которого я бы и хотел поделиться. В итоге статья представляет из себя небольшой quick start — как из пачки html файлов получить приложение опубликованное в Google Play.
Читать дальше →

Консервативная логика

Reading time14 min
Views20K
Вооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «Pentium 4» с частотой больше 3 ГГц появился в далеком 2002 году, почти 10 лет назад. За прошедшие годы нормы техпроцессов уменьшились со 180 до 32 нм, но даже это не позволило существенно поднять штатные рабочие частоты. Все упирается в огромное тепловыделение элементов цифровой логики.

В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
Читать дальше →

В лабораториях IBM научились получать 10-сантиметровые листы графена

Reading time2 min
Views29K
Графен — один из самых многообещающих материалов на основе углерода. Так, из графена можно сделать транзистор, способный работать на частоте 427 гигагерц, или фотосенсор, который в 1000 раз чувствительнее обычного. К сожалению, пока что графен умеют получать лишь в виде чешуек размером в доли миллиметра или в виде плёнок хоть и большего размера, но состоящих из нескольких слоёв. При этом стоимость такого графена всё ещё очень велика.

В исследовательском центре IBM имени Томаса Уотсона разработали технологию получения однослойных листов графена размером до 10 сантиметров и нанесения их на кремниевую подложку. Эта технология может стать основой для массового производства графена и появления на рынке электронных устройств на его основе.

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

Пять удивительных математических фактов

Reading time4 min
Views153K
Для начала небольшой спойлер

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

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

Некоторые люди считают математику скучной. Следующие примеры показывают, что она какая угодно, но не такая
Читать дальше →

Пространства с иным числом Пи

Reading time4 min
Views119K
Недавно на Хабре в одной статье упомянули про вопрос «Что было бы с миром, если бы число Пи равнялось 4?» Я решил слегка поразмышлять на эту тему, используя некоторые (пусть и не самые обширные) знания в соответствующих областях математики. Кому интересно – прошу под кат.


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

Переделка роутера D-link DIR-620 в Zyxel Keenetic или делаем из г. конфетку

Reading time4 min
Views603K
Что такое D-link DIR-620 и что такое Zyxel Keenetic, и для чего нужно переделывать одно в другое?
Достаточно почитать тему по DIR-620 на хоботе или на родном сайте D-link, чтобы понять что к чему. Имея неплохую элементную базу (чип Ralink 3052 2T2R на 300Мбит, 32Мб RAM и 8Мб Flash, USB порт), роутер подкачал в программном обеспечении — большинство гневных отзывов относится именно к прошивке. Хотя, чего ещё желать от устройства за 54$, позиционируемого для бюджетного сектора. Однако, Zyxel Keenetic собран на той же элементной базе, но отличается как по цене 105$, так и по программному оснащению. Заявлена поддержка USB накопителей, 3G и 4G модемов, торрент-клиент transmission прямо в роутере, и всё это реально работает. А можно ли из DIR-620 сделать Keenetic? Оказалось, что можно.



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

Дополнение от 25.09.2011
Справедливости ради, стоит отметить, что пользователем deadc0de разработан другой метод перепрошивки в keenetic без перепайки и вскрытия устройства, который заключается в заливке модифицированной прошивки. Поэтому метод, описываемый в этой статье, стал неактуальным. Однако, его можно рассматривать как альтернативный, или аварийный, когда устройство перестало быть доступным по сети.

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

Слайд-дупликатор своими руками

Reading time3 min
Views67K
image

Для пересъемки пленочных негативов и позитивов применяют сканеры и слайд дупликаторы.
Как и у многих рожденных в СССР, у меня есть коробка, в которой лежат старые пленки и слайды. Давно собирался их переснять на цифру, вернее давно собирался сделать дивайс для пересъемки, и в конце концов собрался.
Для начала сделал поиск по инету. Нашлись и самоделки и фабричные варианты. Некоторые неоправданно сложные, некоторые не очень удобные для изготовления и использования…
Собранная информация позволила родить конструкцию своего варианта.
Читать дальше →

«Корел», Эшер, «Фотошоп»…

Reading time6 min
Views21K

Графическое движение: тесселяции своими руками.


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


Автор эпиграфа — нидерландский художник-график, известный концептуальными литографиями, гравюрами на дереве и металле, в которых мастерски исследует пластические аспекты понятий бесконечности и симметрии.
Как ни абсурдно, несколько проведённых от руки линий могут выглядеть, как объёмная фигура. Такова особенность психологического восприятия человеком сложных трёхмерных объектов. Эшер добивался простыми средствами поразительного эффекта. А если бы в его распоряжении были все средства современной компьютерной графики? Как говорил он сам: «Если бы вы только знали, какие видения посещают меня в ночной тьме… Иногда моя неспособность сделать их зримыми буквально сводит меня с ума».
Имея последние версии «Корела», «Пэйнта» или «Фотошопа», можно пойти другим путём. И предстанут перед нами иные метаморфозы…
Читать дальше →

Стоит ли ставить Gentoo ради ускорения?

Reading time6 min
Views78K
Возможно из вас кто-то когда-то слышал: «Планирую поставить себе Gentoo, он будет лучше использовать возможности моего процессора и будет выжимать из него максимум». Чтож, давайте разберёмся…



Какие вообще бывают оптимизации под процессор

В основном под этим подразумевают использование дополнительных наборов инструкций типа: MMX, SSE, AES и AVX при компиляции приложений. Однако, если копнуть глубоко, существуют и другие оптимизации и не только для приложений.
Я выделил следующие группы оптимизаций:
  • Оптимизации кода
    • Оптимизации кода при компиляции под дополнительные наборы инструкций x86: MMX, SSE, AES, ATA, AVX и др.
    • Оптимизации кода при его статическом анализе во время компиляции: разворачивание хвостовых рекурсий, убирание неиспользуемых участков кода, игнорирование бессмысленных условий и др.
    • Оптимизации для лучшего попадания в кеш процессора.
  • Оптимизации кода на уровне ядра: криптографических методы из Cryptographic API.

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

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

Reading time3 min
Views44K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Riot.js — The 1kb client-side MVP framework



Немного статистической правды:
Самый маленький среди похожих популярных фреймворков

Самый емкий код (в примере для Todo MVC приложения)

Самый быстрый из существующих

«Материнский» проект Moot тоже очень крутой и демонстрирует то, каким должен быть форум.

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

Нескучные интегралы

Reading time6 min
Views176K
Некоторые из вас, вероятно, видали на просторах сети эту задачку: какое число продолжает следующий ряд?

Предлагался такой очевидный правильный ответ:

Для тех, кому неочевидно, как он получен, предлагалось объяснение. Пусть (ну и 1 при x = 0, хотя неважно). Тогда каждый член ряда — это значение следующего интеграла в цепочке:

Пока всё идёт хорошо, но тут внезапно:

В принципе, этого достаточно, чтобы повеселить друзей-математиков, но мне захотелось узнать, как вообще считаются такие интегралы и почему получается такой смешной результат. Если кому-то ещё охота тряхнуть стариной и вспомнить матан с функаном, прошу читать дальше.
Читать дальше →

Астрофотография в каждый дом

Reading time6 min
Views126K
Думаю у любого человека, интересующегося космосом — возникала идея купить телескоп, чтобы лично все посмотреть.

Однако суровая реальность вечно портит всю малину: в пределах города – все небо засвечено уличным освещением и турбулентность воздуха высокая. Это означает, что либо придется ограничится самыми крупными и яркими объектами (вроде Луны и Юпитера), либо возить телескоп далеко за город.

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

Пример того, что получилось: галактика Андромеда, M31 на телескопе Т20
Читать дальше →

Пишем single-page web application framework в 60 строках кода

Reading time5 min
Views76K

В качестве предисловия



Веб-дизайнерский народ в последнее время распробовал single page web applications. Что оправдано во многих случаях.
Но явно ошибочно считать что single page web application не сделать без чего-то типа AngularJS, Ember и прочих Knockouts.
Во всяком случае если вам нужно сделать нечто простое типа To-do списка совершенно не обязательно тащить на клиент килобайты мега-фреймворка. На самом деле килобайты трафика это пол беды. Основная цена, скажем AngularJS, в том что он, как любой универсальный data binding механизм, создает значительную run-time нагрузку.

Эта статья про то как в 60 строках кода + jQuery/Zepto сделать простой app framework котрый можно расширять под свои нужды и без лишних сущностей в нагрузку.

Постановка задачи



Наш framework должен ...:

  1. … поддерживать routing, т.е. должна быть возможность сказать в деклартивной модели: «этот вот url hash должен быть показан в этом view».
  2. Должна быть возможность динамической загрузки разных view. Какие-то части нашего приложения могут быть либо тяжелы для начальной загрузки, либо не нужны, например, для незалогиненного пользователя.
  3. Должна быть возможность динамической загрузки скриптов. По причинам изложенным в п. 2
  4. Наше приложение будет поддерживать browsing history — кнопка «назад» в браузере должна показывать предыдущую страницу и т.д.
  5. Ну и все это должно быть компактным и расширяемым как того будет требовать логика нашего приложения.


Пример того что мы хотим получить



Приложение Bootstrap'нутый список контактов — содержит сам список, карточку — детали контакта и некую панель управления (dashboard). Что будет на той панели нам не важно — знаем что что-то будет и ладно.

Personas demo

Поехали

Автоматическое исключение из рассылки нерабочих email адресов

Reading time2 min
Views14K
image
Представьте, что у Вас есть веб-приложение и одной из его функций является массовая рассылка новостей Вашим пользователям.
По некоторым причинам часть email адресов пользователей нерабочие или неверно заполненные. Хорошо бы таких пользователей автоматически отписать от рассылки?
Читать дальше →

Information

Rating
3,850-th
Location
Кызыл, Тува (Тувинская Респ.), Россия
Registered
Activity

Specialization

Software Developer, Application Developer
Senior
From 150,000 ₽
Python
C++
Linux
Docker