Search
Write a publication
Pull to refresh
0
@GenGoread⁠-⁠only

User

Send message

Генерация случайных чисел большой разрядности

Reading time5 min
Views42K

imageОднажды я столкнулся с задачей генерации 128-битных случайных чисел для реализации генетического алгоритма. Из-за большой размерности задачи алгоритм гонялся долго, поэтому были повышенные требования к скорости работы. Я решил написать свой генератор специально для поставленной задачи.

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

Если вам в тягость пользоваться ГСЧ из стандартной библиотеки, у вас к нему нестандартные требования или просто охота держать под контролем весь процесс генерации случайных чисел в своем приложении, добро пожаловать под кат.

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

Управляемая акустическая левитация: еще один пример

Reading time1 min
Views45K


В октябре на Хабре публиковался пост об управляемой акустической левитации: «полета» объекта посредством использования энергии звуковых волн. Тогда демонстрировался интересный пример, записанный на видео. Сегодня предлагаю посмотреть еще один вариант, где специалисты добились возможности управления передвижения небольшого объекта по осям, плюс ко всему, объекту можно придавать планированное вращение.

Собственно, вот само видео, где все это наглядно показано.



А вот и научная работа авторов видео, где весьма детально объясняется процесс управляемой акустической левитации. Работа, само собой, на английском языке.

Шпаргалка по типам и стандартам Ethernet 802.3

Reading time3 min
Views364K

Когда я изучал CCNA больше всего меня напрягали стандарты IEEE из-за своего количества, типов и названий. И приходилось каждый раз искать и смотреть какому стандарту соответствует такой-то тип интерфейса. После многих часов работы я смог слепить до кучи таблицы по каждому типу Ethernet интерфейсов, которая включает год выпуска стандарта, тип интерфейса, скорость передачи данных соответствующего типа интерфейса, максимальную длину сегмента и тип используемого кабеля. Рад поделиться с читателями.
Читать дальше →

Как связать Yii Framework и Doctrine 2 ORM?

Reading time10 min
Views21K


Мне очень нравится Yii Framework. Он быстрый, удобный, гибкий. Мне нравится, как реализован в нём паттерн ActiveRecord. Но бывают случаи, когда бизнес-логика, а, если быть точным, доменная логика, очень сложная и постоянно растёт и модифицируется. В таких случаях удобнее пользоваться паттерном DataMapper.

В тоже время мне нравится Doctrine 2 ORM. Это пожалуй самая мощная ORM для PHP, имеющая широчайший функционал. Да, возможно, она «тяжеловата» и замедляет работу приложения. Но начиная разработку, прежде всего стоит думать об архитектуре приложения, так как «преждевременная оптимизация корень всех бед»

Таким образом, однажды мне пришла в голову мысль связать 2 этих интересных мне инструмента. Как это было сделано, описано ниже.
Читать дальше →

Трубчатое жало

Reading time1 min
Views72K
Несколько лет назад я про него писал, а сейчас запилил видюшку с изготовлением и использованием.



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

Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть первая — выбор станка

Reading time5 min
Views292K
Последнее время на хабре все чаще появляются топики, посвященные 3D-печати вообще и домашним 3D-принтерам в частности. И почти в каждом в комментариях вспыхивает холивар между романтиками, в жизни не видевшими 3D отпечатков, и практиками, единожды потрогавшими и разочаровавшимися. При этом вторые почему-то не приводят адекватных альтернативных технологий, комментарии носят либо чисто критический характер, либо предлагают заведомо более дорогие альтернативы. Тем не менее, достойная альтернатива есть — домашний фрезерный станок с ЧПУ.

Звучит удивительно, да? Как-то само слово станок в народе ассоциируется с производством, с отдельными помещениями и специально обученным персоналом. В действительности, существует большой класс ЧПУ-станков, рассчитанных на настольное использование в офисе и на малых производствах, а при желании — и дома. При этом цена маленьких ЧПУ-фрезеров приближается (чтобы не сказать равна) к реальной цене 3D-принтеров.

Жизнь сложилась так, что последний год с гаком я занимаюсь изготовлением литьевых форм для полиуретановых изделий на ЧПУ-фрезере. Поскольку до этого 10 лет оттрубил в IT ритейле, а образование не имеет никакого отношения ни к инжинирингу, ни к ЧПУ, осваивать технологии пришлось с нуля. За прошедший год я подрос с должности оператора-фрезеровщика до инженера-конструктора, а затем и до замдиректора по технологиям, моими стараниями ЧПУ-парк предприятия вырос с одинокого старенького роланда до 5 разнокалиберных станков. В связи с чем еще свеж и актуален опыт выбора, покупки, пусконаладки, тюнинга, эксплуатации и ремонта различных ЧПУ-станков.

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

Machine Learning. Курс от Яндекса для тех, кто хочет провести новогодние каникулы с пользой

Reading time8 min
Views266K
Новогодние каникулы – хорошее время не только для отдыха, но и для самообразования. Можно отвлечься от повседневных задач и посвятить несколько дней тому, чтобы научиться чему-нибудь новому, что будет помогать вам весь год (а может и не один). Поэтому мы решили в эти выходные опубликовать серию постов с лекциями курсов первого семестра Школы анализа данных.

Сегодня — о самом важном. Современный анализ данных без него представить невозможно. В рамках курса рассматриваются основные задачи обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на глубокое понимание математических основ, взаимосвязей, достоинств и ограничений рассматриваемых методов. Отдельные теоремы приводятся с доказательствами.



Читает курс лекций Константин Вячеславович Воронцов, старший научный сотрудник Вычислительного центра РАН. Заместитель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Эксперт компании «Яндекс». Доктор физико-математических наук.
Содержание и видео всех лекций курса

Nvidia анонсировала процессор Tegra K1 (Tegra 5) со 192 ядрами

Reading time1 min
Views49K


На выставке CES 2014, проходящей в Лас-Вегасе, демонстрируется много чего интересного. В частности, компания Nvidia представила очередной «мобильный» процессор, Tegra K1, основанный на архитектуре Kepler. Собственно, этот процессор мог бы называться Tegra 5, но его было решено переименовать из-за значительных отличий от предыдущих моделей.

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

Мини-сервер на основе CubieBoard2. Эстетично, дёшево и практично

Reading time3 min
Views36K
В продолжение статьи «Танцы с бубнами в новогоднюю ночь или вторая жизнь старых машин» хотел бы поделиться своими мнениями и планами по поводу проекта домашнего сервера с эстетичным внешним видом и малыми затратами на обслуживание: электроэнергия, администрирование, шум, занимаемое рабочее пространство.

А поводом к статье стала история создания своего домашнего мини-сервера. Я являюсь счастливым обладателем этого чуда. Чуть более месяца назад успешно был произведен его запуск. У него скромные характеристики. Процессор — Intel Pentium IV 3,06 ГГц, системная шина 533 Гц, ОЗУ 1,5 Гб и так далее… Скромные показатели. Но мне вполне достаточно. Плюсов выделенного сервера не буду называть, все это хорошо понимают. Вот его фото для любителей посмотреть…

image

Но пришлось столкнуться и с рядом проблем. Это домашний компьютер. Где его разместить, так чтобы никому не мешал? Те, кто оставлял на ночь компьютер во включенном состоянии меня поймут. Как бы не бесшумно он работал, всё равно его отчётливо слышно и это начинает раздражать.
Читать дальше →

Заготовка для сайта (Kohana+Bootstrap+HTML5)

Reading time4 min
Views29K
Рассмотрим заготовку для сайтов, обладающую хорошими возможностями для дальнейшего расширения. Будут указаны её основные особенности, и подробно описан процесс установки.
Если представленная заготовка окажется полезной большинству пользователей, о чем они не преминут указать в комментариях, тогда, скорее всего, отдельные её модули и особенности будут рассмотрены в дальнейшем.
Некоторые функции, код и отображение данных используются больше в показательных целях, чем для практического применения в рамках создания рабочего сайта.
В представленном виде заготовку уже можно применять для создания простых сайтов, но с неплохими возможностями для расширения.
Читать дальше →

Избавление Kohana ORM от лишних запросов к БД

Reading time5 min
Views14K
ORM, несомненно, мощная и удобная вещь, но запросы генерируются не только не всегда оптимальные, но еще и лишние. При создании объекта модели ORM должен знать информацию о всех полях соответствующей таблицы БД. Что приводит к нежелательным запросам к БД.
Читать дальше →

Оптимизация вызовов функций из воркеров (web-workers)

Reading time3 min
Views13K
Приветствую уважаемое Хабросообщество, и в качестве взноса в этот банк коллективного разума
— хочу поделиться своим опытом в работе с воркерами.

Воркеры (Web-workers), это технология, позволяющая запускать изолированные участки кода в отдельном потоке. Код из воркера не тормозит работу графического интерфейса, и выполняется быстрее, чем код на странице, что делает использование воркеров очень привлекательным, для ресурсоёмких расчётов, типа рисования графики или криптографии.

Кто ещё не встречался с этой технологией — здесь можно ознакомится с её основами.

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

Несколько интересностей и полезностей для веб-разработчика #10

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

image
Летом 2013 года издательство The Guardian обновило свой сайт, согласно всем современным трендам/нормам/правилам. Но самым главным событием является то, что разработчики выложили весь фронтенд сайта в открытый доступ на GitHub. Свыше 1500 старов, 10 000 коммитов и 100 веток. Там целый джентельменский набор. Для многих это будет кладезь знаний.

imageCenny.js — plug 'n play бэкенд для веб-приложений. Быстрый, защищенный, расширяемый.
var server = new Cenny();
server.set({data: [1,2,3]});
server.get(function(data){ 
   console.log(data); 
});


imageМаленький скрипт от Filament Group (один из первых спонсоров jQuery). Overthrow.js это полифил для отзывчивого дизайна, который стабилизирует работу стандартного скроллинга контента HTML элементов (overflow: auto/scroll) на тач устройствах. Для тех, кто не совсем понял о чем речь, сравните на вашем гаджете работу обычного скроллинга и действие Overthrow.

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

Вышел Ruby 2.1

Reading time2 min
Views11K
Спецификации Ruby обновились до версии 2.1.0. В новой версии языка программирования сделано несколько эволюционных изменений. В неофициальных бенчмарках на Rails версия 2.1 показывает результат примерно на 20% выше, чем 2.0, которая, в свою очередь, на 60-70% быстрее 1.9.3.

Вкратце, самые важные из них:

  • VM (кэширование методов)
  • новый сборщик мусора RGenGC (см. презентацию ko1 на RubyKaigi и на RubyConf 2013)
  • изменения в синтаксисе
    • новая запись дробей с использованием двух слэшей ("//") между числителем и знаменателем, см. #8430
      • 1 // 2 == Rational(1, 2)
      • 1 // 1 == Rational(1, 1)
      • 0 // 1 == Rational(0, 1)
    • новые суффиксы i, r и ri для записи комплексных и рациональных чисел
      • "42r" и "3.14r" расцениваются как рациональное число Rational(42, 1) и 3.14.rationalize, соответственно. Но экспоненциальная форму с суффиксом 'r', такая как "6.022e+23r", не принимается.
      • "42i" и "3.14i" расцениваются как Complex(0, 42) и Complex(0, 3.14), соответственно.
      • "42ri" и "3.14ri" расцениваются как Complex(0, 42r) и Complex(0, 3.14r), соответственно.
  • определение функции def теперь возвращает символ её названия вместо nil, см. #3753
Читать дальше →

Работа с архивами tar и gz средствами PHP

Reading time6 min
Views19K
Как это часто случается, все началось с того, что мне потребовалось нечто, позволяющее обрабатывать архивы «tar.gz» средствами php. Покопавшись в Интернете, я с удивлением обнаружил, что ничего сколько-нибудь приемлемого на эту тему не опубликовано.

Что у нас есть?

1. PEAR расширение для PHP http://pear.php.net/package/Archive_Tar Прекрасно, но в моем случае – неприемлемо, поскольку доступа к настройкам сервера у меня нет. Вынужденно отметаем.
2. Отменная статья Алексея Валеева «Работа с архивами tar.gz в php». То, что нужно, но – увы. Мне требовалось решение лицензионно «прозрачное», не способное вызвать вопросов. По этому, использование библиотеки от Битрикса тоже не годилось.

Собственно, это – все.
Читать дальше →

Оглядка на популярные тенденции веб-дизайна 2013 года

Reading time6 min
Views28K
Этот год принес новые важные концепции пользовательских интерфейсов, open source проекты, новые хаки и трюки для веб-дизайнеров и разработчиков. Те, кого интересует, что делает хороший дизайн таковым, наверное, заметили устойчивые улучшения. Заглянув в прошлое, хотя бы на одно десятилетие, в 2003 год, вы поймете, что интернет и WWW прошли долгий путь.
В этой статье я хочу поразмышлять о 2013 годе со стороны наиболее популярных тенденций веб-дизайна. Некоторые повторяются из года в год, но в этом году я заметил пик дизайнерского интереса к ним и даже усовершенствования этих техник.
Читать дальше →

Sublime Text 2

Reading time12 min
Views306K
Пару месяцев назад я случайно наткнулся на массу положительных отзывов о текстовом редакторе Sublime Text 2. Попробовав его в деле, я не разочаровался. Теперь это мой основной рабочий инструмент.

Sublime Text 2 — это платный текстовый редактор, написанный на C++, который:

  • Работает в Linux, OS X и Windows
  • Обладает приличной скоростью работы
  • Приятным интерфейсом (включая всевозможные анимации)
  • Гибко настраиваем (правда, не в GUI, а в json-конфигах)
  • Имеет множество плагинов, число которых растёт как на дрожжах
  • Поддерживает VIM-режим
  • Использует fuzzy-поиск
Читать дальше →

Практика хорошего кода

Reading time8 min
Views68K
imageЗа годы присутствия на хабре я прочитал немало статей на тему того, как должен выглядеть идеальный код. И поменьше статьей о том, как конкретно достигать этого идеала. Также стоит отметить, что весьма значительная часть всех этих материалов была переводом западных источников, что, вероятно, является следствием более зрелой отрасли IT «за рубежом», со всеми вытекающими вопросами и проблемами.

К сожалению, во многих случаях авторы либо забираются в недосягаемые выси многослойных архитектур, что требуется в лучшем случае для 1% проектов, либо ограничиваются общими фразами вроде «код должен быть понятен» или «используйте ООП и паттерны», не опускаясь до подробных объяснений, в чем например измеряется «понятность» кода.

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

Как оптимизировать процессы Unicorn в Ruby on Rails приложении

Reading time5 min
Views14K

Если вы являетесь rails-разработчиком, то вы наверняка слышали про Unicorn, http-сервер, способный одновременно обрабатывать множество запросов.

Для обеспечения параллельности Unicorn использует создание множества процессов. Т.к. созданные (форкнутые) процессы являются копиями друг друга, это значит, что rails-приложение должно быть потокобезопасным.

Это здорово, т.к. нам тяжело быть уверенными, что наш код является потокобезопасным. Если мы не можем быть уверены в этом, то ни о параллельных веб-серверах, таких как Puma, ни даже об альтернативных реализациях Ruby, реализующих параллелизм, таких как JRuby и Rubinius, не может быть и речи.

Поэтому Unicorn предоставляет нашим rails-приложениям параллельность даже если они не потокобезопасны. Однако, это требует определенной платы. Rails-приложения, запускаемые на Unicorn’е требуют гораздо больше памяти. Не обращая никакого внимания на потребление памяти вашим приложением, вы можете в итоге обнаружить, что ваш облачный сервер перегружен.

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

Information

Rating
Does not participate
Registered
Activity