← All posts tagged программирование

AlexVK

Понадобилось сделать генерацию уникальных ключей вида xxxx-xxxx-xxxx-xxxx
для приходящих через веб пользователей.
В качестве алфавита взял символы "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#"
Нужно именно 64 уникальных символа. 26 латинских букв в верхнем и нижнем регистрах, а также 10 цифр дают только 62. А вот с оставшимися двумя ещё определяюсь.
Uuid я отмёл как слишком большой. Правда есть и сокращённый вариант вроде, но и его тоже отмёл.
В общем, ничего подходящего не нашёл (правда это не исключает того что всё же плохо искал)
И изобрёл свой велосипед.
Сделал что-то вроде счётчика, этакого 96 битного числа. Если каждую последовательность из 6 бит этого числа представить в виде символа алфавита то и получается тот ключ который мне нужен.
Можно просто смещать на 6 бит это число и вытягивать крайние правые биты по маске 111111 (3F в HEX). А полученное число и будет позицией символа в алфавите.
Осталось определится с этим 96-битным числом.
Его сэмулировал 2мя числами: 64 бита, это unix time в миллисекундах.
И 32 бита как нибудь характеризующие клиента.
Решил сделать просто хеш (32 бит) из представления IP и User-agent, вот такой: docs.oracle.com
Получившиеся примеры:
aaab-qVZS-qLD2-0xys
aaab-qVZS-qLDl-JcUO
aaab-qVZS-qLEu-SNGo
aaab-qVZS-qLEL-At9C

AlexVK

habrahabr.ru
Воистину, прекрасно :)
"Дальнейшее расследование выяснило, что предприимчивый Б. принимал заказы у других компаний и «выполнял» их руками китайских аутсорсеров, что приносило ему сотни и тысячи долларов прибыли, а также огромное количество свободного времени, которое он тратил на брожение по форумам и просмотр видеороликов"
И комментарий: "Потеряли отличного менеджера." — 100% попадание в точку :-)

AlexVK

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

AlexVK

Интересно, во сколько может обойтись разработка следующего решения?
Необходим plugin к 2ГИС-у, а также некая софтина для сбора данных.
1) Софтина. По-видимому это демон (linux), либо служба (windows). Задача: слушать определённые порты UDP, принимать определённые данные и складывать их в базу.
2) Плагин работает с этой базой. Грубо говоря показывает информацию об неких объектах — точках на карте 2гис в реальном времени. Переместился объект, пришли данные по udp, обновилась база. Плагин обновил расположение объекта.
Я пишу про windows и linux только потому что 2гис работает и под windows и под (ОС на базе ядра) linux. Но под linux работает через wine, и вполне успешно.
Возможно слово "демон" здесь лишнее, т.к. если работает 2гис через wine то и службу, работающую с 2gis можно запустить там же.
Т.е. (в итоге) нужен мониторинг неких объектов, каких именно — писать не буду :) .
Сам затрудняюсь произвести оценки как стоимости так и времени разработки — т.к. этим сроду не занимался. Точнее, занимался подобным когда то, но это было достаточно давно.
Я предложил то что умею — через web (т.е. нечто работающее на сервере с какими-нибудь картами, тот же google maps как вариант), но получил отказ. Дорого, сложно, тормозит. Т.е. так уже пытались но не получилось... (получилось что-то громоздкое, тормозное, желания связываться с подобным более нет).
Плагины работают через COM (который, что интересно, никто так и не отменял...). Есть примеры на .NET (C# и VB), C++, Delphi. Видимо, ими можно и ограничится. Хотя не так уж и важно на чём, главное чтобы работало шустро.

AlexVK

Which version of oc4j I am using?
1) Check Server header in HTTP headers. 
For example with wget or curl;   
wget -S <url-to-server> 
curl -I <url-to-server>   or with browser, which can show HTTP headers.  There should be a header something like  
Server: Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server  
2) If you have access to the OC4J JAR file, you can do:  
java -jar oc4j.jar -version

AlexVK

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

AlexVK

Исследуем multiple dispatch на HotSpot
habrahabr.ru
Пост из серии «будни перформанс-инженеров». Иногда в проектах возникает необходимость сделать т.н. multiple dispatch: возможность вызвать конкретный метод, основываясь на типах аргументов.

AlexVK

Анонс лекции у ЖЖ-пользователя tonsky.livejournal.com
Легкость вместо простоты (Simple Made Easy).
Читает её Рич Хики (автор языка Кложа). Сам пост: tonsky.livejournal.com
Лекция — видео, длительностью почти час. Тонский её настоятельно рекомендует к просмотру. Ссылка на видео: infoq.com

Понравилось про неё вот это:
"Но чтобы сделать простое решение, его надо сначала придумать, потом отстоять перед начальством, а потом ещё отбиваться от желающих вогнать в него какой-нибудь идиотский костыль. Зато потом идёшь на другую работу с чистой совестью." yakov-sirotkin.livejournal.com

Смотреть или не смотреть — вот в чём вопрос :)

AlexVK

Статья "Hate Java? You’re fighting the wrong battle." thecodemechanic.wordpress.com
И цитата оттуда. О причинах "непопулярности":
1) It’s popular to hate Java.
2) C-like syntax is no longer popular.
3) Hate for Oracle is being leveraged to promote individual interests.
4) People have been exposed to really bad code, that’s been written in Java.
5) … insert next hundred reasons here.