Search
Write a publication
Pull to refresh
0
0
Тарас Кушнир @Latobco

User

Send message

Postgres. Выборка N случайных записей

Reading time6 min
Views38K
При работе над одним проектом возникла необходимость написать некое подобие тестовой системы. Задача формулировалась примерно так:

  • из N записей в базе необходимо выбрать m (3-5) случайных строк в серии из k выборок (преимущественно k=2).

А теперь то же самое человеческим языком: из таблицы нужно два раза выбрать по 3-5 случайных записей. При этом не должно быть дубликатов и выборка должна происходить случайным образом.

Первое, что приходит в голову:

 SELECT *
  FROM data_set
  WHERE id NOT IN (1,2,3,4, 5)
  ORDER BY random()
  LIMIT 5;

И это даже будет работать. Вот только цена такого решения…
Читать дальше →

Как я физическую головоломку на Libgdx писал

Reading time12 min
Views23K
Здравствуйте!

Скриншот для затравки:

Кто-то еще читает подсказки к картинкам?

Как-то бесцельно сидя в интернете я наткнулся на игру «Цепи, шары и зомби». Не знаю почему, но она меня сильно зацепила. Простой и в то же время интересный геймплей и некоторая нелинейность — уровни можно пройти несколькими способами. Чем-то она напомнила мне небезызвестную Crazy Machines, которой я тоже когда-то болел.

Поубивав зомби, я загорелся идеей написать свою игру — с поэтессами и преферансом шарами и зомби, только лучше (можно грабить корованы). Сказано — сделано. По итогу пары недель игра была сделана, и выложена в Google Play. Если вам интересно узнать детальней — прошу под кат.
Читать дальше →

Quotient filter

Reading time5 min
Views16K
Quotient filter — это вероятностная структура данных, позволяющая проверить принадлежность элемента множеству. Она описана в 2011 г. как замена фильтру Блума. Ответ может быть:
— элемент точно не принадлежит множеству;
— элемент возможно принадлежит множеству.

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

Уменьшаем потребление CPU Skype под Linux и Mac OS

Reading time1 min
Views71K
image Skype. Как мы его любим и одновременно ненавидим. Долгое время, Skype был единственной программой, которую я старался закрывать при работе лаптопа от батареи: потреблял около 4% CPU, будил процессор 250-300 раз в секунду, ничего при этом не делая, оставляя процессору меньше времени на нахождение в более энергосберегающем состоянии.

Увидел я однажды комментарий пользователя Vayun:
Возможно проблема проявляется не у всех, проверить легко: запускаем скайп, запускаем top (на ноутбуке работающем от батареи наглядней будет powertop) и смотрим сколько он отъедает cpu.

Я долго не возился, придавил только poll, увеличив timeout. Это даёт наибольший выигрыш (уменьшая %CPU скайпа раз в 5), но наверное можно лучше.

Собственно, вот: Skype-poll-fix. Увеличивает таймаут у вызовов poll (Linux) и kevent (Mac OS), снижая потребление процессора в 4-5 раз.
Читать дальше →

Как джависты сделали .NET-конференцию

Reading time6 min
Views22K
В .NET-мире есть беда с пониманием рантайма. Ведущие разработчики крупных .NET-компаний, безусловно, понимают общие принципы работы GC, JIT-компилятора, аллокатора и других компонент. Но даже они признают, что не знают деталей. Книги Рихтера помогают узнать какие-то базовые вещи, но не более того. Отсутствие внятных технических докладов о CLR (и зарубежных и русскоязычных) от инженеров Microsoft порождает ненужное брожение в умах девелоперов. Закрытость информации порождает нежелание лезть вглубь. Всё равно фиг узнаешь, что там майкрософтовцы понаписали.

Осознав эту проблему, в апреле этого года мы вместе с компанией JetBrains провели конференцию .NEXT 2014 Piter, посвященную техническим аспектам программирования на .NET. Послушав некоторые доклады и вволю наобщавшись с людьми в кулуарах, я и сделал вывод, о котором написал выше. Под катом я расскажу о деталях прошедшей конфы и о том, на какие мысли они меня навели.


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

Почему свет движется со скоростью света?

Reading time5 min
Views86K
(Прим. пер. ― см. прим. пер. в конце поста)

Почему свет движется со скоростью света? Почему он просто не стоит на месте? Что приводит его в движение (тем более, такое быстрое)?

image

Всё и везде, просто по факту своего существования, «движется» со скоростью света (которая на самом деле не имеет ничего общего со светом). Да, это касается и вас тоже. Вот прямо сейчас.

Люди в основном воспринимают «вселенную» как «пространство», нечто отдельное от «времени», и честно говоря, они неправы. Пространство и время — не отдельные штуковины. Вселенная сделана из «пространствовремени», прямо так, без пробела. Вы, наверное привыкли к тому, что «год» — это единица времени, а «световой год» — единица расстояния, то есть это разные вещи; но с точки зрения физика это ровным счетом одно и то же (ну, конечно, смотря каким видом физики вы занимаетесь).

В нашей будничной жизни мы исходим из того, что движение — это некое расстояние (пространство), преодоленное за некое время. Однако, если мы решили, что это одно и то же, наше определение движение внезапно становится полной ерундой. «Я прохожу километр за каждый километр, который я прохожу» — кошмар какой-то!

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

Джентльменский набор для Amazon Kindle Paperwhite

Reading time3 min
Views100K

Чтобы настроить и установить все необходимое на любимую читалку Amazon Kindle Paperwhite требуется потратить достаточно много времени. С целью экономии Вашего времени, а также упрощения процесса настройки читалки, я и пишу данную статью. Также добавлены вкусные плюшки помимо стандартных вещей, которые можно сделать с Вашей любимой читалкой, порывшись в интернете… Я включил дополнительные настройки и немного подредактировал программный код. В итоге в мою сборку вошли модифицированные: приложения, игры, ланчер и меню. Кроме ярлыка ланчера, предназначенного для запуска альтернативного меню, на основном экране ничего постороннего нет.

Что входит в сборку:
Jailbreak читалки Kindle Paperwhite;
— русификация клавиатуры;
KUAL — ланчер киндл.
— альтернативное меню;
— словари для перевода текста в книгах с английского и на английский;
— читалки: KOReader и Cool Reader;
— браузеры: SkipStone и Midori;
— другие приложения: блокнот, доска для заметок, напоминалка, просмоторщик картинок, рисовалка, калькулятор, менеджер файлов;
— игры: шашки, шахматы, судоку, сокобан, реверси, гомоку, такузу;
— менеджер задач;
— быстрый вызов: вкл/выкл WiFi, вкл/выкл подсветки экрана, вкл/выкл ночного скринсейвера, вкл/выкл отображения аккумулятора в %, календарь, информация об устройстве.

Все действия со своей читалкой Вы делаете на свой страх и риск. Я никакой ответственности не несу за последствия данных действий. Не испугал Вас? Тогда приступим...
Читать дальше →

Обзор нетбука MSI S12

Reading time19 min
Views107K
AMD A4-5000 / 11.6" / 1366x768 / глянец / 4Gb / 500Gb / Wi-Fi / Bluetooth / DOS / ~ 11-14 т.р.
MSI S12
Решил написать этот обзор, так как был заворожен этим нетбуком сразу, как только нашел его.

Набор моих обязательных требований к портативным компьютерам, как оказалось, был очень взыскателен:

  1. Матрица 11.6" – даже 13.3" мне уже многовато.
  2. Минимум 16Gb DDR3-3L 1600 (12800).
  3. Вес вместе с блоком питания до 1.5 кг. — это просто Must Have, так как это очень комфортно.
  4. 4 Core CPU, желательно AMD Kabini\Kaveri.
    Не то, чтобы я «не люблю» Intel Core i5-i7.
    Но для работы мне столько не нужно.
    Хотя, впрочем, да — я фанат AMD уже лет 15.
    Мне нравится Intel как инноватор.
    Но конкуренция должна быть свободной.
  5. Наличие Legacy режима работы BIOS.
    Не то, чтобы я «не люблю» Microsoft.
    Хотя, впрочем, да — у меня Linux, уже лет 10.
    Поэтому присутствие UEFI Secure Boot или других ограничений меня бы очень сильно расстроило.
    Мне всё таки работать нужно, а не разбираться почему оно тормозит\упало\ограничено и тому подобное.
  6. Нормальная графическая подсистема, так как на работе я подключаюсь к Full HD монитору. Соответственно и желание посмотреть что-нибудь в High Res тоже иногда возникает. Да и дома на телевизоре есть HDMI, которому иногда что-нибудь нужно показать.
  7. Полноценная клавиатура. Я давно не смотрю на клавиши. Но тот человек, который придумал в моём старом Acer избавить меня от полноценных стрелочек и клавиш Home, End, PgDn и PgUp — он явно желал сделать мне плохо. Больше НИКОГДА! Потому, что привыкнуть к этому убожеству за два года я так и не смог.


Мои ожидания от MSI S12 полностью оправдались, поэтому захотелось обязательно поделиться, вдруг кому-нибудь тоже пригодится. Под катом, конечно же, будут какие-то фотки, ролики YouTube, агитация, провокации и другие сведения о том, каким я вижу «правильный нетбук» и почему данный экземпляр — это именно «оно».

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

Биржа убийств — правильное использование Bitcoin

Reading time2 min
Views397K
image
Честно говоря, я давно ждал этого события. На днях оно случилось.
Открыт общественный краудфандинг-биржа, где принимаются ставки на убийство общественных деятелей.
Схема простая: кто-то вносит имя в блэк-лист, остальные люди, которым тоже не нравится сей деятель и которые желают от него быстрее избавиться, вносят пожертвования через биткоины. В один прекрасный момент, собранная сумма становится привлекательной для киллера-маньяка, он пишет авторам сайта сообщение (делает ставку), мол, тогда-то и тогда-то умрет такой-то человечек из вашего списочка. Если человек действительно умирает, убийца срывает банк и забирает все деньги. Все счастливы (почти все).
Конечно, к сервису два главных вопроса.
Читать дальше →

Разработчики и Microsoft: взгляды на будущее

Reading time12 min
Views105K
Довольно очевидно, что Windows используется большим количеством людей, и что всем им система нужна для выполнения различных задач: от создания корпоративного сервера и установки на POS-терминалы до использования её на домашнем компьютере, и не только для этого. Многие понимают, что когда Microsoft обновляет Windows, ей приходится принимать множество компромиссных решений для обеспечения корректной работы своей операционной системы. Существует, однако, ещё один тип компромиссов, о существовании которого многие люди, пусть даже они и называют себя продвинутыми пользователями или администраторами, даже не догадываются. Это конфликт между разработчиками/программистами и самой Microsoft.
Читать дальше →

Брюс Шнайер: Иллюзия безопасности

Reading time12 min
Views45K
image
Брюс Шнайер не нуждается в представлениях. На Хабрахабре можно найти много статей, касающихся деятельности этого «гуру криптографии». Под катом — текстовая расшифровка видеолекции Брюса Шнайера «The security mirage» («Иллюзия безопасности»).
Эта лекция доступна на YouTube, на Amara её можно посмотреть с субтитрами на 28-ми языках (включая русский). Что же заставило меня отнимать твоё время, хабрачитатель?
Ну и что же там?

Домашний сервер. WiFi роутер

Reading time6 min
Views35K
Домашний сервер это просто… компьютер, работающий 24 часа, 7 дней в неделю, 365 дней в году. Что он делает?
«Раздает» интернет по проводу и по воздуху.
Является складом с круглосуточном доступом для всех ваших коллекций фильмов, музыки, игр, программ, backup'ов важной информации, сюда же можно добавить, что это ваше файловое хранилище доступное внутри сети, а если постараться, то и из любого уголка мира можно попасть в него. Понравилось? Хотите «завести» подобное у себя дома?
Тут вспоминается фраза из анекдота — «Главное, мужики, не бояться!».
Читать дальше →

Что делать, если к вам попал Android со сломанным сенсорным дисплеем

Reading time4 min
Views292K
image

В один прекрасный день ко мне в руки попал Nexus 4. В наших краях это редкость, поэтому хотелось бы использовать его как основной телефон. К сожалению, тач у него разбит. Одна из болячек всех современных смартфонов. Ну, решено было восстанавливать. Купил тач на ebay. Теперь ждать слоупочту россии месяцок-другой. Захотелось узнать о девайсе побольше, поработать с ним, пока посылка едет. Заодно проверить, всё ли работает. А то, может, камера или динамики тоже покрошились. В данной статье рассмотрим захват управления девайсом, если сломан тач.
Читать дальше →

Готовим пользовательское соглашение своими руками

Reading time8 min
Views75K
Пользовательское соглашение или как его еще принято называть Соглашение об использовании сервиса, является ключевым документом, на котором строится юридическая защита интернет-сервиса.

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

Особую актуальность вопросы защиты интернет-сервиса приобретают в связи с принятием так называемого «антипиратского закона», которым возлагается ответственность на информационного посредника за размещение или предоставление доступа к материалам, нарушающим интеллектуальные права третьих лиц. Закон вступает в силу с 01 августа 2013 г., в связи с чем пользовательские соглашения и схему взаимодействия с пользователем необходимо привести в соответствие с ужесточившимися требованиями.
Читать дальше →

Как я победил в олимпиаде по программированию, не умея программировать

Reading time5 min
Views15K
Не совсем победил, а занял второе место, хотя и имел все шансы и на первое, и не совсем не не умел, но об этом со всеми подробностями дальше.

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

image

Итак, на дворе осень 97 года, я ученик 10 (предпоследнего) физ-мат класса общеобразовательной школы. Я в этом классе и в этой школе новичок, и наверное единственный кто добирается в школу каждый день на автобусе, т.к. живу не в этом микрорайоне.

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

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

Lifeboat Foundation: Как Стивен Вольфрам готовится к сингулярности

Reading time3 min
Views91K


Легенда математики и компьютинга — Стивен Вольфрам — всерьез обеспокоен проблемами куда более серьезными, чем изменение климата или перенаселение. Недавно он присоединился к Lifeboat Foundation — мозговому центру, призванному искать пути защиты человечества от смертоносного нано-оружия и взбесившегося искусственного интеллекта.
Читать дальше →

Взгляд изнутри: мир вокруг нас – 2

Reading time9 min
Views145K

Неожиданно в закромах Родины обнаружилась хорошая подборка ещё неопубликованного на Хабре материала. К сожалению, всё в один пост не уместилось – надо же рамки приличия соблюдать?! Поэтому предлагаю вниманию уважаемых Хабра-пользователей заключительную пару статей из цикла «Взгляд изнутри».

Микромир обыденных вещей под катом

RE: Возможны ли путешествия во времени?

Reading time9 min
Views66K
Вчера на Хабре появился потрясающий по своей безграмотности пост "Возможны ли путешествия во времени". В ответ на моё замечание о незнакомстве с базовыми научными представлениями о пространстве и времени автор припечатал меня вот так:
Если для Вас википедия — главный оплот истины и знаний, а физические законы непоколебимы — Вам пора на работу в инквизицию. Еще столько людей, опровергающих теоретические выдумки физиков 18 века, не сожжено!

Такого уровня воинствующего невежества я давно не видал, и уж на Хабре-то его видеть вдвойне странно.

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

Время



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






Здесь (x, y, z, t) — координаты в старой системе, (x', y', z', t') — координаты в новой системе. Здесь и далее предполагается (для упрощения формул), что одна система движется относительно другой параллельно оси x со скоростью v.

Это т.н. преобразования Галилея — что происходит с координатами при смене системы отсчета. В галилеевом смысле «поток времени» один на всю Вселенную, и временные координаты у всех объектов одинаковы. При этом классическая механика никак не трактует уникальность стрелы времени; более того, само понятие движения времени в ньютоновы формулы не входит никак.

В классической механике мы сами вводим движение от прошлого к будущему. Допустим, у нас задан набор материальных точек (координаты и скорости) и действующих сил. Далее мы задаёмся каким-то интервалом dt и смотрим, как система будет эволюционировать во времени. Никто не мешает нам двигаться в обратном направлении и следить, что происходило с системой в прошлом.

Однако «путешествие во времени» — т.е. перемещение одного конкретного объекта по шкале t в прошлое — ньютоновой механикой запрещено (см. выше — временной поток один на всю Вселенную).

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

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

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Reading time7 min
Views183K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

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

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →

Покупаем на taobao.com

Reading time6 min
Views81K
Я оставил в России много настольных игр, везти их с собой во Вьетнам смысла не видел. Надеялся, что можно будет что-то купить на месте. Облом-с, тут про настольные игры мало чего слышали, никаких магазинчиков специализированных нет. Выход был найден — рядом Китай, с огромным ассортиментом и относительно небольшими ценами. Сейчас я вам расскажу, на примере закупки настольных игр, как можно покупать что-то в Китае.

taobao.com — это китайский ebay, или что-то на него похожее. Большое количество разных магазинов, предоставляющих разного вида товары. Если я все правильно понял — сам taobao это как аггрегатор таких магазинов. Можно найти огромное количество разных товаров: игрушки, техника, одежда, и т.д. и т.п. Разброс цен большой, как всегда для Китая, от очень и очень низких, до обычных европейских. Качество соответственное.

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

Information

Rating
Does not participate
Location
Львов, Львовская обл., Украина
Date of birth
Registered
Activity