Search
Write a publication
Pull to refresh
1
0
bashor @bashor

User

Send message

А вы довольны памятью своей Linux системы?

Reading time3 min
Views13K

Ни для кого не секрет, что в Unix системах вся информация предоставляется в виде файлов.
В Linux есть файл /proc/kcore, который является «алиасом» на физическую память системы.
Мануалы говорят, что полная длина этого файла — это размер физической памяти (RAM) плюс 4KB, но повертев этот файл на разных системах я пришел к выводу, что размер файла равен размеру RAM + SWAP.
Аналогично этому файлу можно использовать устройства /dev/mem или /dev/kmem, но взаимодействие с ними в данном топике я не буду рассматривать.
Читать дальше →

Все знают что "++i + ++i" — плохо, но что-же за ширмой?

Reading time3 min
Views30K
Баг, выглядывающий из-за ширмы на вас о_ОНесомненно, все программисты знают что использование выражений, подобных тому что приведено в заглавии поста, не то что нежелательно, а строго противопоказано. Такие конструкции, поведение компилятора в которых не определено, могут принести множество трудноуловимых ошибок и нежелательных последствий. Но уверен, многим начинающим программистам хотелось бы по глубже понять эту проблему и, заглянув за ширму компилятора, узнать что же именно происходит в таких случаях. Изучению одного из примеров подобного кода я и посвящаю этот пост. Добро пожаловать под кат :)
Читать дальше →

jQuery для начинающих. Часть 2. JavaScript Меню.

Reading time8 min
Views46K


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

Если Вам готовый код наглядней документации, то переходим от слов к делу, т.е. на страницу с примерами.
Читать дальше →

Первый нейрокомпьютерный интерфейс в продаже

Reading time1 min
Views7.2K
Первый в мире коммерчески доступный нейрокомпьютерный интерфейс привезла компания Guger Technologies на выставку CeBIT 2010. Это первый полноценный такой прибор, потому что аналогичный геймерский девайс Emotiv EPOC не позволяет печатать тексты, а только прыгать и бегать в играх.

Устройство Intendix предназначено в первую очередь для парализованных пациентов больниц. Интерфейс готов к использованию через 10 минут настройки. После тренировки можно набирать тексты с экранной клавиатуры на скорости до 1,25 символа в секунду путём концентрации внимания на строках и столбцах, мерцающих поочерёдно (видео под хабракатом). Шапка для электроэнцефалографии при этом снимает сигнал с коры головного мозга. Такая скорость является рекордной для прототипов подобных устройств.

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

Стоимость прибора составляет €9000 (около $12 250).
Читать дальше →

Про время, рабство и помидоры

Reading time7 min
Views14K

Вступление


Я уже довольно давно читаю Хабр, и много раз видел посты про тайм-менеджмент и про то, как «улучшить свою жизнь за 5 минут». Так случилось, что около полутора лет назад я и сам заинтересовался тайм-менеджментом, и с тех пор постоянно испытываю разные методики в надежде скомпилировать нечто своё, полностью удовлетворяющее моим потребностям. Пару месяцев назад я в очередной раз пересмотрел свой подход к управлению временем, и, кажется, нашёл нечто, асимптотически стремящееся к идеалу :). Именно этой методикой я и хочу поделиться с уважаемыми хабраюзерами в надежде на то, что кто-нибудь сможет почерпнуть из неё что-то полезное.

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

Перегрузка функций в JS

Reading time4 min
Views57K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

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

Интерфейс программы Киви для Айфона

Reading time3 min
Views5.3K
Недавно, ползая по аппстору, я наткнулся на программу оплачивалок Киви. Только успел обрадоваться, как оказалось, что программа сделана ужасно. Странно, что такая большая компания позволила себе выпустить такую чушь. Вот я и перерисовал их интерфейс :)


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

Об экстремальных способах подтянуть уровень английского

Reading time2 min
Views13K
Тема изучения иностранных языков не раз уже поднималась на хабре. Смотреть фильмы, читать статьи и книги в оригинале, слушать BBC — эти методы уже обсуждались неоднократно.

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

Собственная подборка новостей для чтения в дороге за пару минут

Reading time2 min
Views1.5K
На прошлой неделе я приобрел себе давно желанный e-book reader Sony PRS-300, обзор которого я могу написать отдельно. Данный ридер меня всем устраивает, но
не хватало возможности чтения rss новостей, так как утро гораздо приятнее проводить с газеткой, попивая кофе на кухне на выходных или
во время трудовых будней в дороге по работу или институт в общественном транспорте. За несколько вечеров я написал небольшое приложение на qt, решившее эту проблему, о нем и напишу далее.
Читать дальше →

STDIO плагины или как совместить несовместимое

Reading time1 min
Views740
Идея проста — подключаем к программе внешний модуль через pipe (STDIO или TCP/IP).
Обмен текстовыми командами в формате командной строки: <команда> [параметр [параметр [...]]]<CR/LF>
В качестве параметров могут быть любые сериализованные данные. Как в протоколах POP3/SMTP.
image
Таким образом, можно подключать к программе, например, проверку синтаксиса или переводчик, который реально находится где-то в интернете. Можно подключать плагины, написанные на любых скриптовых языках (батники, например) и платформах. Можно даже подключить программу саму к себе. =)

Весь нюанс в том, чтобы использовать пайпы как API для плагинов (вместо прямого вызова кода), а не для фильтров. Идея далеко не нова, но почему-то очень редко используется.
Читать дальше →

Неофициальная трансляция ACM ICPC 2010 — как это было

Reading time6 min
Views992
Пост по мотивам прошедшего в пятницу финала ACM ICPC 2010, о том, как в буквальном смысле слова «на коленке» поднять зеркало умирающей под нагрузкой странички, прикрутить к нему чат с ее обсуждением, и не загнуться от нагрузки самому :)

Пост будет интересен скорее веб-программистам, нежели олимпиадникам.

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

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

Hivext Platform — облачная платформа для разработки Интернет приложений. Бета тестирование

Reading time2 min
Views921
image
Полтора года назад на хабре познакомились два увлеченных своим делом, разработчика, которые обсуждали статьи друг друга. Пообщавшись более плотно, осознали что им не хватает продукта, который позволял бы проще, гибче и быстрее разрабатывать веб-приложения. Так зародилась идея разработки платформы для разработчиков. Прошло чуть больше года проектирования и разработки.

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

Реализация ToString() на С++

Reading time9 min
Views20K
Для вывода в лог (да и не только для этого, но это то, с чем я сам столкнулся) нужно конвертировать значение переменной в строку.

В C++ это обычно делается выводом в поток (как вариант — использование boost: lexical_cast<> — что в нашем случае практически одно и тоже).

Для встроенных типов это не проблема, а вот как быть, если нужно вывести скажем std: vector? Увы, но у std: vector нет оператора вывода в поток.

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

Как сделать теговую ФС удобной для пользования

Reading time3 min
Views4K
Вдохновленный этим топиком, я решил разобраться, что же должна уметь теговая файловая система, чтобы ей можно было полноценно пользоваться. Как было замечено в статье, для реализации достаточно создавать ярлыки на один и тот же файл в папках, соответствующих разным тегам. Осталось сделать нормальное юзабилити, чтобы этой функцией можно было пользоваться. Эта статья представляет собой подобие технического задания, освещающего механизм хранения тегов, а также возможности работы с ними из файлового менеджера и из консоли. Возможно, в будущем кто-то возьмется за ее реализацию. Может быть, это сделаю я.

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

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time8 min
Views222K

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


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

Автоматизация Undo/Redo функциональности с помощью .NET Generics

Reading time11 min
Views6K
Перевод статьи Automating Undo/Redo with .NET Generics Сергея Архипенко.

Введение

Эта статья описывает библиотеку, которая предоставляет undo/redo функциональность для каждого действия в вашем приложении. Вы можете использовать сложные структуры данных и сложные алгоритмы не задумываясь о том, как они будут переведены в предыдущее состояния по запросу пользователя или в результате возникновения ошибки.

Предпосылки

Если вы когда-нибудь разрабатывали графический редактор или дизайнер для сложных данных, вы сталкивались с трудоёмкой задачей реализации undo/redo функциональности, которая бы поддерживалась во всём приложении. Реализация парных Do и Undo методов для каждой операции скучный и подверженный ошибкам процесс, когда вы разрабытываете что-либо более серьёзное, чем калькулятор. В результате моих экспериментов я нашёл способ сделать поддержку undo/redo прозрачной для бизнес логики. Чтобы этого добиться, мы будем использовать магию generics.
Этот проект опубликован на CodePlex, чтобы каждый мог его использовать или внести свой вклад.

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

CPrompt — интерпретатор языка си

Reading time3 min
Views7K
С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
интересно?

Приложение для чтения хабра в оффлайне

Reading time2 min
Views875
Добрый день!

Я уже рассказывал на хабре о Data Extracting SDK, который вызвал определенный интерес у пользователей. С тех пор было добавлено много вкусных фич и хотелось бы о них немножко рассказать. В качестве примера было реализовано небольшое приложение — HabraPDFReader, которое предназначено для сохранения хабратопиков в PDF файлах для оффлайн чтения. Попутно расскажу о тонкостях реализации.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity