Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

Дата
Показывать просмотренные
16 Мая 2018
67

Немного отличных песен.

Хотелось бы поделиться небольшой подборкой.

White buffalo - Come join the murder.

Jack Savoretti - Soldiers eyes.

Daniel Castro - I'll play the blues for you.

White buffalo - House of the rising son
Самая лучшая на мой взгляд версия этой песни.

Joey Ryan - Honest man.

Возможно кое-что было, но все равно приятного просмотра.

Показать полностью 4
324

Легион

Легион Комментарии, Комментарии на Пикабу

#comment_113326943

165

Икра от Сбербанка

В продолжении поста Сбербанк зажал черную икру

Икра от Сбербанка Сбербанк, Сбербанк Онлайн, Не жулики, Икра
Икра от Сбербанка Сбербанк, Сбербанк Онлайн, Не жулики, Икра

Не то чтобы бочками, но все же ответ всем скептикам. Фотки не мои и икра не у меня. Но это именно та самая икра, которую сбер прислал в ответ на моё заявление.
В предыдущей теме некоторые решили что имеют право судить о незнакомом им человеке и высказались в духе того что я готов идти по головам ради икры и испоганил жизнь бедному прогеру.
Так вот, небольшой срыв покров. Предыдущий пост был полностью моей идеей, но заявителем в обращении был указан другой человек, с которым я лично даже не знаком. Ес-но все делалось с его одобрения. Причины такой конспирации в том что меня очень многое связывает со сбером. Хотя я там не работаю и не являюсь его клиентом. Я уж точно не рассчитывал ни на какую награду и не стремился сорвать аплодисменты. Иначе  разместил бы пост 10 ого ,когда ошибка еще была на сайте. Но сделал я это только после неудовлетворительного, на мой взгляд, ответа.
Что касается искалеченной судьбы программиста, меня неофициально поблагодарил его коллега. Он и я не по наслышке знаем что бывает когда такие ошибки находят жадные до наживы клиенты. Я же просто увидел шутку и ответил на нее шуткой.
После вопроса о том, стоит ли мне требовать свою икру, я поставил скобочку. ")"
Лично для меня это маркер того что сказанное следует воспринимать не серьёзно.

Показать полностью 2
2823

Антирейдер-30. Бытовое рейдерство.

Навеяло вот этой новостью:
Антирейдер-30. Бытовое рейдерство. Антирейдер, Мошенничество, Захват, Бытовуха, Длиннопост
По данному факту на пикабу тоже материал вроде был, если там информация изложена полнее - можете в комментарийку ссылку кинуть.

Так вот, похожая история была в моей практике лет 12-15 назад.Точнее уже не помню.

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

Его клиент купил квартиру. Продавал мужчина. В браке, с нотариальным согласием жены на проведение сделки.

Отдельное письменное обязательство на предмет «выписаться» в течении 2х недель после купли-продажи. На словах пояснили, что это время им надо для покупки дома в селе и регистрации там. Мол, хозяева в курсе и с той сделкой проблем не будет.

Покупку проводили через нотариуса. Тот проверил все документы, убедился в законности данного мероприятия и оформил сделку. Далее регпалата, месяц ожидания и вот оно – синенькое свидетельство о собственности. Затем ремонт, приятные хлопоты и…., иск в суд о проживании - пользовании квартирой старыми собственниками.

Мол муж, получив денег за квартиру у нотариуса, в этот же вечер умудрился их потерять. Впоследствии, оказалось, что слил их в зале игровых автоматов, но не суть – денег все равно нет. А жить где-то надо. Они – в суд. Так мол и так, беда случилась – деньги потерялись чисто случайно, не бомжевать же. Давайте мы в нашей старой квартире поживем. Мы оба работаем, будем новому собственнику денег каких-нибудь платить….

Суд длился два года. Сменилось 5 или 6 судей. Несколько раз менялись исковые требования, от «размотать сделку назад, а деньги мы вернем лет за 700» до «ну пусть пожить хоть в одну комнату пустит, жалко что ли».

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

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

Смотрю на весь этот балет и офигиваю. Причем, не только с профессиональной точки зрения, но и с чисто человеческой. Вот что в головах людей твориться, если они позволяют себе такие вещи? Почему жена с таким мужем еще не развелась, если он игровой и позволяет себе столь идиотские поступки? Почему за их косяки должны платить другие люди? А судьи? Они же видит кто перед ними и чем руководствуется…

Ладно, решил поупражняться в этом сегменте и помочь, и коллеге, и его клиенту.

Для начала убеждаемся, что нет никаких арестов и ограничений по регпалате. Отлично, можно идти дальше.

Вторым шагом вводим клиента в публичную сделку, где данная квартира является обеспечением. Думаете какая-то чернуха? А вот и нет – обычный кредит обычного банка под обычные проценты, кричащий о себе с тысяч билбордов в столице и области.

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

Тянем время полгода. Носим в суд больничные и ходатайства о переносе заседания. Через полгода – час «Х», невыполнение обязательств и иск в другой суд на предмет отъёма квартиры. О чем честно уведомляем текущий суд.

Вопли истцов, что «….аааааа!, это все подстроено!!!! Это они так специально!!! Они мошенники!...» и облегченный, и даже в каком-то смысле благодарный взгляд судьи, которого избавили от приема решения по этому мутному вопросу «…рассмотрение дела приостанавливается до решения того суда, чтобы выносить решение в отношении надлежащего собственника…».

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

После того, как провели надлежащую замену стороны в стартовом споре на нового ответчика, данное судилище закончили за два судебных заседания. Суд решил примерно так «…с текущим собственником квартиры вы, истец, ни в какие сделки не вступали, а посему – хотеть от него ничего не можете. Если же вам каких-то компенсаций надо – подайте соответствующий иск к тому, с кем сделку заключали, но я вас там в зад пошлю, так как все обязательства перед вами были выполнены. Кстати, идите в зад и в данном деле….».

Думаете конец истории? А вот и нет.

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

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

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

Как там что было на месте – поди знай, но законный хозяин квартиры получает порез руки, сантиметров в 20, а вооруженная ножом тётка, резиновую пулю из травмата в башку с расстояния менее метра. От чего и скончалась прямо на месте – перелом основания черепа с разрывом спинного мозга.

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

P.S.: Я тут пару недель в бане был. Не в той, где пар и веники. А там, куда модератор отправляет. И отправил меня туда модератор с формулировкой «за рекламу». С учетом того, что я ничего не рекламировал, не продавал, не покупал и так далее, могу предположить, что оказался там после бабской истерики в комментарийке предыдущего поста одного из …., мммм…., ну пусть будет читателя. Нет в моем словарном запасе слов нормативной лексики для людей такого типа. Сплошь ненормативные. Хотя я всего лишь выразил благодарность камраду @zharikovpro, за существенную помощь, позволившую завершить зависший проект.

Так вот, я попытался выяснить, за какую такую рекламу я оказался в бане. Мои предположения были: сайт налоговой, минфина, росфинмониторинга, яндекса, гугла, рбк, ну и еще парочки новостийных порталов, на которые я давал ссылки в разное время. Соответствующий вопрос я задал админу и суппорту, емейлы которых смог выудить в обратной связи.

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

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

Всем удачи!

P.S.S. Вот как по заказу кино с аналогичной мутной истории подошло:

https://pikabu.ru/story/lyutyiy_ded_rasstrelyal_kollektorov_...

(модератор - это ссылка на само же пикабу! Такое, надеюсь, можно?).

Хоть там весь экшен на Украине и в 2017 году - не суть. Тоже квартирный спор и тоже со стрельбой. И - тоже плохо закончится. (Или уже закончился).

Дед: а) не молодец, как бы это с первого взгляда не казалось; и б) отъедет в места не столь отдаленные. А пока он будет в отъезде, хату тихо отожмут.

Есть тут парни с Украины? Кто в курсе этой истории? Насколько я прав? На все 100 или в деталях ошибся?

Показать полностью 1
6

Лига юристов, пожалуйста помогите!!!

Лига юристов, пожалуйста помогите!!!

Вопрос по ДТП, в котором пострадал мой дедушка. Дело было в январе 2018

http://1pnz.ru/city_online/proishestviya/news/posledstviya_a...

Вина водителя полностью доказана, повреждения - тяжкие, сейчас он пытается откупиться - предлагает 50 тыс руб.

Наш Адвокат рекомендует взять в счет выставленного иска эту сумму.

Я сомневаюсь, ибо виновник может соскочить на рассмотрение в особом порядке. Совершенно понятно что его никто не посадит, и даже условку не дадут. Меня интересует лишение прав. А то получится что за 50 тыс его помилуют и даже прав не лишат.

У кого был опыт подобных дел, сколько реально вытрясти с виновника!

Заранее спасибо!!!

Пикабу поэтический

Пикабу поэтический Поэзия, Комментарии, Длиннопост
Пикабу поэтический Поэзия, Комментарии, Длиннопост

#comment_113268311

Показать полностью 2
154

Так устала, что где работала, там упала

Так устала, что где работала, там упала Кот, Котомафия, Кот на балконе, Очень спящий кот

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

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

Всем бобра и берегите своих пушистиков)

Показать полностью 1
9

Spark — Потрясающий веб-микрофреймворк для Java

Spark — Потрясающий веб-микрофреймворк для Java Java, Программирование, Sparkjava, Длиннопост

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

Небольшое вступление

Spark — это просто чудесный микрофреймворк для создания веб-приложений на джаве без особых усилий. Spark стремится к простоте и обеспечивает только минимальный набор функций. Тем не менее он предоставляет все необходимое для создания веб-приложения, которые поместятся в несколько строк кода. С синтаксисом, вдохновленным Sinatra, код выглядит очень чистым.

Давайте начнем со вездесущого хеллоуворлда. Создаём новый проект и импортируем Spark. Лично я использую maven для управления зависимостями.


Добавляем в pom.xml.

<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.6.0</version>
</dependency>

Теперь приступим непосредственно к «хеллоу ворлду».

import static spark.Spark.*;
public class Main {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello, World!");
}
}

Вот и всё. Всё настолько просто!

Теперь spark прослушивает GET запросы на /hello. Всякий раз, когда мы переходим на localhost:4567/hello, вызывается метод handle(). Внутри него мы возвращаем объект, который должен быть отправлен клиенту (в этом случае «Hello World»).

Лично мое мнение, что данный код настолько лаконичный, что даже не требует пояснений.


Стоп-стоп. Что насчет запуска/остановки сервера?

Остановка — надо всего лишь вызвать метод stop().

Запуск — а вот здесь все интересно. Сервер автоматически запускается, когда вы делаете что-то, что требует запуска сервера (я знаю что звучит действительно странно). Но можно запустить и вручную, вызвав метод init().


Поддержка шаблонизаторов

Хотел бы затронуть такую тему как шаблонизаторы. Спарк имеет большую нативную поддержку оных. А именно:

Velocity

Freemarker

Mustache

Handlebars

Jade

Thymeleaf

Pebble

Water

jTwig

Jinjava

Jetbrick

Для всех них есть «обёртки» от спарка. Для примера давайте рассмотрим мой любимый Freemarker.

Для начала давайте импортируем доп. зависимость.

<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-template-freemarker</artifactId>
<version>2.5.5</version>
</dependency>


Создадим шаблон «hello.ftl» в директории src/main/resources.

<html>
<head>
</head>
<body>
<h1>Hello, ${name}!</h1>
</body>
</html>

Теперь надо сконфигурировать freemarker дабы он искал шаблоны в ресурсах. Это всего лишь 4 строчки кода.

FreeMarkerEngine freeMarkerEngine = new FreeMarkerEngine();
Configuration freeMarkerConfiguration = new Configuration();
freeMarkerConfiguration.setTemplateLoader(new ClassTemplateLoader(Main.class, "/"));
freeMarkerEngine.setConfiguration(freeMarkerConfiguration);

Вот и всё, можно спокойно использовать фримаркер.

get("/", (request, response) -> {
Map<String, Object> model = new HashMap<>();
model.put("name", "Freemarker");
return freeMarkerEngine.render(new ModelAndView(model, "hello.ftl"));
});
Spark — Потрясающий веб-микрофреймворк для Java Java, Программирование, Sparkjava, Длиннопост

Почти полноценный проект

Давайте напишем, какой-то лёгкий, но достаточный что бы показать хотя бы малую часть возможностей спарка? Мне из того что можно реально быстро написать, пришел в голову только сокращатель ссылок. Что ж, начнем?

Надо добавить еще одну зависимость Google Guava. В итоге у нас получается 3 зависимости.

<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-template-freemarker</artifactId>
<version>2.5.5</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
</dependencies>

Нам Guava нужна, потому что в ней реализована хэш-функция Murmur3. Весь плюс в том что она достаточно сильна устойчива к коллизиям. Так же что бы не тратить лишнее время, мы будем все данные хранить только в переменных, без всяких бд и т.д.

Сделаем костяк программы.

staticFileLocation("/static");
get("/shortener", (request, response) -> {
});
get("/:url", (request, response) -> {
});


:url это параметр который можно достать через метод params(). К примеру:

get("/hello/:name", (request, response) -> {
return "Hello: " + request.params(":name");
});


Что-то я отвлекся, продолжим. Создадим коллекцию(Map) для хранения, настроим шаблонизатор(как я говорил freemarker мой любимый, так что будет именно он) и укажем спарку где у нас будут храниться статистические файлы. staticFiles.location("/static") укажет ему что файлы будут лежать в src/main/resources/static. К примеру файл /static/css/style.css будет доступен по адресу http://{host}:{port}/css/style.css. Если же вы хотите хранить файлы предположим в /var/www/public_html, тогда используем метод staticFiles.externalLocation("/var/www/public_html").

ConcurrentHashMap<String, String> urls = new ConcurrentHashMap<String, String>();
FreeMarkerEngine freeMarkerEngine = new FreeMarkerEngine();
Configuration freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setTemplateLoader(new ClassTemplateLoader(Main.class,"/templates/"));
freeMarkerEngine.setConfiguration(freemarkerConfiguration);
staticFileLocation("/static");

Настроим перенаправление.

get("/:url", (request, response) -> {
if(urls.containsKey(request.url()))
response.redirect(urls.get(request.url()));
response.redirect("/");
return null;
});

Теперь когда пользователь переходит по короткой ссылке, если ссылка есть в коллекции, мы перемещаем его на нужный сайт, если нету, то на главную.

Давайте поработаем с фронтендом, а то мы совсем про него забыли. Начнем с главной.

Здесь мы создадим простую минималистическую форму. И еще запихнем шрифтик Proxima Nova. Заигрался конечно… ну да ладно.

<!DOCTYPE html>
<html lang="en" style="height:100%;">
<head>
<meta charset='utf-8'>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="main">
<form action="/shortener" method="GET">
<input type="text" id="input" name="url" autocomplete="off" autofocus size="44" maxlength="512" />
</form>
</div>
</body>
</html>


@font-face {
font-family: Proxima Nova;
src: url(pn.otf);
}
* {
font-family: Proxima Nova;
background: #2a2826;
color: #9C9C9C;
margin: 0;
padding: 0;
}
body, html {
height: 100%;
}
#main {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
font-size: 1.5em;
}
#input {
border: none;
outline:none;
font-size: 1.5em;
}


В итоге все это добро выглядит так.

Spark — Потрясающий веб-микрофреймворк для Java Java, Программирование, Sparkjava, Длиннопост

Теперь страница на которую будет выводится ссылка «shortener.ftl».

<!DOCTYPE html>
<html lang="en" style="height:100%;">
<head>
<meta charset='utf-8'>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="main" style="text-align: center">
${url}
</div>
</body>
</html>

Итоговая структура проекта.

Spark — Потрясающий веб-микрофреймворк для Java Java, Программирование, Sparkjava, Длиннопост

Что ж, дописываем последние строки. В итоге Main класс, выглядит так.

import com.google.common.hash.Hashing;
import freemarker.cache.ClassTemplateLoader;
import freemarker.template.Configuration;
import spark.ModelAndView;
import spark.Request;
import spark.Response;
import spark.template.freemarker.FreeMarkerEngine;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import static spark.Spark.*;

public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, String> urls = new ConcurrentHashMap<String, String>();
FreeMarkerEngine freeMarkerEngine = new FreeMarkerEngine();
Configuration freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setTemplateLoader(new ClassTemplateLoader(Main.class, "/templates/"));
freeMarkerEngine.setConfiguration(freemarkerConfiguration);
staticFileLocation("/static");
get("/shortener", (request, response) -> {
String shortURL = "http://localhost:4567/" +
Hashing.murmur3_32().hashString(request.queryParams("url"),  StandardCharsets.UTF_8).toString();
Map<String, Object> model = new HashMap<>();
if(!urls.containsKey(shortURL)) {
model.put("url", shortURL);
urls.put(shortURL, request.queryParams("url"));
return freeMarkerEngine.render(new ModelAndView(model, "shortener.ftl"));
}
model.put("url", shortURL);
return freeMarkerEngine.render(new ModelAndView(model, "shortener.ftl"));
});
get("/:url", (request, response) -> {
if(urls.containsKey(request.url()))
response.redirect(urls.get(request.url()));
response.redirect("/");
return null;
});
}
}

Вот и всё. 41 строка кода и мы написали простенький сокращатель ссылок.


Заключение

На этом моменте, я закончу эту немного затянувшуюся «Getting started» статью. Мне очень жаль что в рунете этот проект обошли стороной. Если вам понравится, я продолжу писать о Spark`е и раскрою больше его возможностей.

Ссылки

→ Сайт проекта

→ Исходные коды SparkJava

Показать полностью 3
Мои подписки
Подписывайтесь на интересные вам теги, сообщества,
пользователей — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.
Отличная работа, все прочитано! Выберите