sobota 31. prosince 2016

Sense Hat Raspberry Pi3

Na vyzkoušení Sense Hat stačí vytvořit novou Blank Windows Universal Aplikaci.
pomocí Nugetu dotáhnout knihovnu pro práci se Sense Hat a vyzkoušet si některé demo které si spolu s knihovnou stáhnete z Nugetu.


  • SingleColorScrollText.cs
  • GammaTest.cs
  • DiscoLights.cs
  • SpriteAnimation.cs
  • WriteTemperature.cs
  • Compass.cs
  • GravityBlob.cs
  • MultiColorScrollText.cs
  • JoystickPixel.cs


Nuget
https://www.nuget.org/packages/Emmellsoft.IoT.RPi.SenseHat/

Install-Package Emmellsoft.IoT.RPi.SenseHat


Tip:
http://192.168.0.24:8080/#Device%20Settings

středa 14. prosince 2016

Jak zamezit kopírování textu z HTML stránky

Někdy se hodí aby nebylo možné jednoduše zkopírovat text z vaší HTML stránky.

<html>
<head>
<style type="text/css">
P {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
</style>
</head>
<body>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse 
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat 
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu 
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
culpa qui officia deserunt mollit anim id est laborum.</div>
</body>

</html>
Zdroj: http://stackoverflow.com/questions/9620122/stop-html-text-being-highlighted

úterý 13. prosince 2016

Jmeniny aneb kdy má kdo svátek

Zdroje:
http://www.sklonovani-jmen.cz/kontakt
http://www.nasejmena.cz/nj/svatek.php
https://www.naplanuj-to.cz/kalendar-jmen/
PHP databáze - https://www.banan.cz/serialy/PHP-a-HTML/Vypsani-dnesniho-svatku-v-PHP-MySQL

MySQL databáze - http://www.studuju.cz/latka-1294 (Chyba na řádku (128, '7', '5', 'Stanisla'),)


Zajimavosti:
https://www.stream.cz/fenomen/572074-jmena-a-prijmeni

CjcId
je odkaz do encyklopedie CoJeCo.cz
http://www.cojeco.cz/index.php?detail=1&id_desc={CjcId}
http://www.cojeco.cz/index.php?detail=1&id_desc=388481

Vlastní MS SQL databáze

drop table Svatek;

CREATE TABLE Svatek (
  Id int NOT NULL identity(1,1) primary key,
  Name nvarchar(30) NOT NULL default '',
  [TypeId] smallint NOT NULL default '0', -- 0-Státní svátek, 1-Žena, 2-Muž
  [Day] smallint  NOT NULL default '0',
  [Month] smallint NOT NULL default '0',
  StreemId bigint default NULL,
  CjcId bigint default NULL
) 

SET IDENTITY_INSERT Svatek ON;

--
-- Vypisuji data pro tabulku 'Svatek'
--

INSERT INTO svatek (Id, Name, [TypeId], [Day], [Month], StreemId, CjcId) VALUES
(1, N'Nový rok', 0, 1, 1, NULL, 387964),
(2, N'Karina', 1, 2, 1, NULL, 387719),
(3, N'Radmila', 1, 3, 1, NULL, 387720),
(4, N'Diana', 1, 4, 1, NULL, 387721),
(5, N'Dalimil', 2, 5, 1, NULL, 387722),
(6, N'Tři králové', 0, 6, 1, NULL, 387999),
(7, N'Vilma', 1, 7, 1, NULL, 387723),
(8, N'Čestmír', 2, 8, 1, NULL, 387726),
(9, N'Vladan', 2, 9, 1, NULL, 387727),
(10, N'Břetislav', 2, 10, 1, NULL, 387728),
(11, N'Bohdana', 1, 11, 1, NULL, 387729),
(12, N'Pravoslav', 2, 12, 1, NULL, 387730),
(13, N'Edita', 1, 13, 1, NULL, 387731),
(14, N'Radovan', 2, 14, 1, NULL, 387732),
(15, N'Alice', 1, 15, 1, NULL, 387733),
(16, N'Ctirad', 2, 16, 1, NULL, 387734),
(17, N'Drahoslav', 2, 17, 1, NULL, 387735),
(18, N'Vladislav', 2, 18, 1, NULL, 387739),
(19, N'Doubravka', 1, 19, 1, NULL, 387741),
(20, N'Ilona', 1, 20, 1, NULL, 387742),
(21, N'Běla', 1, 21, 1, NULL, 387744),
(22, N'Slavomír', 2, 22, 1, NULL, 387745),
(23, N'Zdeněk', 2, 23, 1, NULL, 387746),
(24, N'Milena', 1, 24, 1, NULL, 387747),
(25, N'Miloš', 2, 25, 1, NULL, 387756),
(26, N'Zora', 1, 26, 1, NULL, 387757),
(27, N'Ingrid', 1, 27, 1, NULL, 387758),
(28, N'Otýlie', 1, 28, 1, NULL, 387759),
(29, N'Zdislava', 1, 29, 1, NULL, 387760),
(30, N'Robin', 2, 30, 1, NULL, 387761),
(31, N'Marika', 1, 31, 1, NULL, 387763),
(32, N'Hynek', 2, 1, 2, NULL, 387766),
(33, N'Nela', 1, 2, 2, NULL, 387780),
(34, N'Blažej', 2, 3, 2, NULL, 387781),
(35, N'Jarmila', 1, 4, 2, NULL, 387782),
(36, N'Dobromila', 1, 5, 2, NULL, 387783),
(37, N'Vanda', 1, 6, 2, NULL, 387784),
(38, N'Veronika', 1, 7, 2, NULL, 387785),
(39, N'Milada', 1, 8, 2, NULL, 387786),
(40, N'Apolena', 1, 9, 2, NULL, 387787),
(41, N'Mojmír', 2, 10, 2, NULL, 388252),
(42, N'Božena', 1, 11, 2, NULL, 388253),
(43, N'Slavěna', 1, 12, 2, NULL, 388254),
(44, N'Věnceslav', 2, 13, 2, NULL, 388255),
(45, N'Valentýn', 2, 14, 2, NULL, 388256),
(46, N'Jiřina', 1, 15, 2, NULL, 388257),
(47, N'Ljuba', 1, 16, 2, NULL, 388258),
(48, N'Miloslava', 1, 17, 2, NULL, 388259),
(49, N'Gizela', 1, 18, 2, NULL, 388260),
(50, N'Patrik', 2, 19, 2, NULL, 388333),
(51, N'Oldřich', 2, 20, 2, NULL, 388334),
(52, N'Lenka', 1, 21, 2, NULL, 52619),
(53, N'Petr', 2, 22, 2, NULL, 72222),
(54, N'Svatopluk', 2, 23, 2, NULL, 388335),
(55, N'Matěj', 2, 24, 2, NULL, 388336),
(56, N'Liliana', 1, 25, 2, NULL, 388337),
(57, N'Dorota', 1, 26, 2, NULL, 388338),
(58, N'Alexandr', 2, 27, 2, NULL, 388339),
(59, N'Lumír', 2, 28, 2, NULL, 388340),
(60, N'Horymír', 2, 29, 2, NULL, 390124),
(61, N'Bedřich', 2, 1, 3, NULL, 388471),
(62, N'Anežka', 1, 2, 3, NULL, 388472),
(63, N'Kamil', 2, 3, 3, NULL, 388473),
(64, N'Stela', 1, 4, 3, NULL, 388474),
(65, N'Kazimír', 2, 5, 3, NULL, 388478),
(66, N'Miroslav', 2, 6, 3, NULL, 388479),
(67, N'Tomáš', 2, 7, 3, NULL, 98154),
(68, N'Gabriela', 1, 8, 3, NULL, 388480),
(69, N'Františka', 1, 9, 3, NULL, 388481),
(70, N'Viktorie', 1, 10, 3, NULL, 388482),
(71, N'Anděla', 1, 11, 3, NULL, 388483),
(72, N'Řehoř', 2, 12, 3, NULL, 83461),
(73, N'Růžena', 1, 13, 3, NULL, 388484),
(75, N'Ida', 1, 15, 3, NULL, 388488),
(77, N'Vlastimil', 2, 17, 3, NULL, 388554),
(78, N'Eduard', 2, 18, 3, NULL, 388555),
(79, N'Josef', 2, 19, 3, NULL, 41725),
(80, N'Světlana', 1, 20, 3, NULL, 388581),
(81, N'Radek', 2, 21, 3, NULL, 388598),
(82, N'Leona', 1, 22, 3, NULL, 388599),
(83, N'Ivona', 1, 23, 3, NULL, 388600),
(84, N'Gabriel', 2, 24, 3, NULL, 388618),
(85, N'Marián', 2, 25, 3, NULL, 388619),
(86, N'Emanuel', 2, 26, 3, NULL, 388620),
(87, N'Dita', 1, 27, 3, NULL, 388621),
(88, N'Soňa', 1, 28, 3, NULL, 388622),
(89, N'Taťána', 1, 29, 3, NULL, 388624),
(90, N'Arnošt', 2, 30, 3, NULL, 388625),
(91, N'Kvido', 2, 31, 3, NULL, 388626),
(92, N'Hugo', 2, 1, 4, NULL, 388657),
(93, N'Erika', 1, 2, 4, NULL, 388658),
(94, N'Richard', 2, 3, 4, NULL, 388660),
(95, N'Ivana', 1, 4, 4, NULL, 388661),
(96, N'Miroslava', 1, 5, 4, NULL, 388663),
(97, N'Vendula', 1, 6, 4, NULL, 388664),
(99, N'Ema', 1, 8, 4, NULL, 388743),
(100, N'Dušan', 2, 9, 4, NULL, 388670),
(101, N'Darja', 1, 10, 4, NULL, 388671),
(102, N'Izabela', 1, 11, 4, NULL, 388673),
(103, N'Julius', 2, 12, 4, NULL, 388674),
(104, N'Aleš', 2, 13, 4, NULL, 388675),
(105, N'Vincenc', 2, 14, 4, NULL, 388676),
(106, N'Anastázie', 1, 15, 4, NULL, 388678),
(107, N'Irena', 1, 16, 4, NULL, 388744),
(108, N'Rudolf', 2, 17, 4, NULL, 388745),
(109, N'Valérie', 1, 18, 4, NULL, 388746),
(110, N'Rostislav', 2, 19, 4, NULL, 388747),
(111, N'Marcela', 1, 20, 4, NULL, 388748),
(112, N'Alexandra', 1, 21, 4, NULL, 388750),
(113, N'Evžénie', 1, 22, 4, NULL, 388751),
(114, N'Vojtěch', 2, 23, 4, NULL, 388752),
(115, N'Jiří', 2, 24, 4, NULL, 41453),
(116, N'Marek', 2, 25, 4, NULL, 388753),
(117, N'Oto', 2, 26, 4, NULL, 388754),
(118, N'Jaroslav', 2, 27, 4, NULL, 40551),
(119, N'Vlastislav', 2, 28, 4, NULL, 388755),
(120, N'Robert', 2, 29, 4, NULL, 388757),
(121, N'Blahoslav', 2, 30, 4, NULL, 388758),
(122, N'Svátek práce', 0, 1, 5, NULL, NULL),
(123, N'Zikmund', 2, 2, 5, NULL, 388759),
(124, N'Alexej', 2, 3, 5, NULL, 388830),
(125, N'Květoslav', 2, 4, 5, NULL, 388831),
(126, N'Klaudie', 1, 5, 5, NULL, 388832),
(127, N'Radoslav', 2, 6, 5, NULL, 388833),
(128, N'Stanislav', 2, 7, 5, NULL, 388834),
(129, N'Statní svátek', 0, 8, 5, NULL, NULL),
(130, N'Ctibor', 2, 9, 5, NULL, 388835),
(131, N'Blažena', 1, 10, 5, NULL, 388840),
(132, N'Svatava', 1, 11, 5, NULL, 388841),
(133, N'Pankrác', 2, 12, 5, NULL, 388842),
(134, N'Servác', 2, 13, 5, NULL, 388843),
(135, N'Bonifác', 2, 14, 5, NULL, 388844),
(136, N'Žofie', 1, 15, 5, NULL, 388623),
(137, N'Přemysl', 2, 16, 5, NULL, 388845),
(138, N'Aneta', 1, 17, 5, NULL, 388846),
(139, N'Nataša', 1, 18, 5, NULL, 388847),
(140, N'Ivo', 2, 19, 5, NULL, 388848),
(141, N'Zbyšek', 2, 20, 5, NULL, 388849),
(142, N'Monika', 1, 21, 5, NULL, 388850),
(143, N'Emil', 2, 22, 5, NULL, 388851),
(144, N'Vladimír', 2, 23, 5, NULL, 388815),
(145, N'Jana', 1, 24, 5, NULL, 388818),
(146, N'Viola', 1, 25, 5, NULL, 388821),
(147, N'Filip', 2, 26, 5, NULL, 388824),
(148, N'Valdemar', 2, 27, 5, NULL, 388825),
(149, N'Vilém', 2, 28, 5, NULL, 388826),
(151, N'Ferdinand', 2, 30, 5, NULL, 388828),
(152, N'Kamila', 1, 31, 5, NULL, 388829),
(153, N'Laura', 1, 1, 6, NULL, 389026),
(154, N'Jarmil', 2, 2, 6, NULL, 389027),
(155, N'Tamara', 1, 3, 6, NULL, 389028),
(156, N'Dalibor', 2, 4, 6, NULL, 389029),
(157, N'Dobroslav', 2, 5, 6, NULL, 389030),
(158, N'Norbert', 2, 6, 6, NULL, 389031),
(160, N'Medard', 2, 8, 6, NULL, 389034),
(161, N'Stanislava', 1, 9, 6, NULL, 389035),
(162, N'Gita', 1, 10, 6, NULL, 389036),
(163, N'Bruno', 2, 11, 6, NULL, 389037),
(164, N'Antonie', 1, 12, 6, NULL, 389038),
(165, N'Antonín', 2, 13, 6, NULL, 389039),
(166, N'Roland', 2, 14, 6, NULL, 389040),
(167, N'Vít', 2, 15, 6, NULL, 389041),
(168, N'Zbyněk', 2, 16, 6, NULL, 389042),
(169, N'Adolf', 2, 17, 6, NULL, 389043),
(170, N'Milan', 2, 18, 6, NULL, 389044),
(171, N'Leoš', 2, 19, 6, NULL, 389045),
(172, N'Květa', 1, 20, 6, NULL, 389046),
(173, N'Alois', 2, 21, 6, NULL, 389047),
(174, N'Pavla', 1, 22, 6, NULL, 389048),
(175, N'Zdeňka', 1, 23, 6, NULL, 389049),
(176, N'Jan', 2, 24, 6, NULL, 40266),
(177, N'Ivan', 2, 25, 6, NULL, 39702),
(178, N'Adriana', 1, 26, 6, NULL, 389050),
(179, N'Ladislav', 2, 27, 6, NULL, 51272),
(180, N'Lubomír', 2, 28, 6, NULL, 389051),
(182, N'Šárka', 1, 30, 6, NULL, 389052),
(183, N'Jaroslava', 1, 1, 7, NULL, 389053),
(184, N'Patricie', 1, 2, 7, NULL, 389054),
(185, N'Radomír', 2, 3, 7, NULL, 389055),
(186, N'Prokop', 2, 4, 7, NULL, 389056),
(187, N'Státní svátek', 0, 5, 7, NULL, NULL),
(188, N'Státní svátek', 0, 6, 7, NULL, NULL),
(189, N'Bohuslava', 1, 7, 7, NULL, 389059),
(190, N'Nora', 1, 8, 7, NULL, 389060),
(191, N'Drahoslava', 1, 9, 7, NULL, 389061),
(193, N'Olga', 1, 11, 7, NULL, 389097),
(194, N'Bořek', 2, 12, 7, NULL, 389098),
(195, N'Markéta', 1, 13, 7, NULL, 57033),
(196, N'Karolína', 1, 14, 7, NULL, 389099),
(197, N'Jindřich', 2, 15, 7, NULL, 41340),
(198, N'Luboš', 2, 16, 7, NULL, 389100),
(199, N'Martina', 1, 17, 7, NULL, 389101),
(200, N'Drahomíra', 1, 18, 7, NULL, 389155),
(201, N'Čeněk', 2, 19, 7, NULL, 389156),
(202, N'Ilja', 1, 20, 7, NULL, 389157),
(203, N'Vítězslav', 2, 21, 7, NULL, 389158),
(204, N'Magdaléna', 1, 22, 7, NULL, 55652),
(205, N'Libor', 2, 23, 7, NULL, 389160),
(206, N'Kristýna', 1, 24, 7, NULL, 49220),
(207, N'Jakub', 2, 25, 7, NULL, 389161),
(208, N'Anna', 1, 26, 7, NULL, 389162),
(209, N'Věroslav', 2, 27, 7, NULL, 389163),
(210, N'Viktor', 2, 28, 7, NULL, 389164),
(211, N'Marta', 1, 29, 7, NULL, 389165),
(212, N'Bořivoj', 2, 30, 7, NULL, 389166),
(213, N'Ignác', 2, 31, 7, NULL, 389167),
(214, N'Oskar', 2, 1, 8, NULL, 389168),
(215, N'Gustav', 2, 2, 8, NULL, 389169),
(216, N'Miluše', 1, 3, 8, NULL, 389170),
(217, N'Dominik', 2, 4, 8, NULL, 389171),
(218, N'Kristián', 2, 5, 8, NULL, 389172),
(219, N'Oldřiška', 1, 6, 8, NULL, 389173),
(220, N'Lada', 1, 7, 8, NULL, 389174),
(221, N'Soběslav', 2, 8, 8, NULL, 389175),
(222, N'Roman', 2, 9, 8, NULL, 389176),
(223, N'Vavřinec', 2, 10, 8, NULL, 389177),
(224, N'Zuzana', 1, 11, 8, NULL, 391856),
(225, N'Klára', 1, 12, 8, NULL, 389133),
(226, N'Alena', 1, 13, 8, NULL, 389179),
(227, N'Alan', 2, 14, 8, NULL, 389180),
(228, N'Hana', 1, 15, 8, NULL, 32045),
(229, N'Jáchym', 2, 16, 8, NULL, 389181),
(230, N'Petra', 1, 17, 8, NULL, 388490),
(231, N'Helena', 1, 18, 8, NULL, 32771),
(232, N'Ludvík', 2, 19, 8, NULL, 54919),
(233, N'Bernard', 2, 20, 8, NULL, 389183),
(234, N'Johana', 1, 21, 8, NULL, 389184),
(235, N'Bohuslav', 2, 22, 8, NULL, 389185),
(236, N'Sandra', 1, 23, 8, NULL, 389186),
(237, N'Bartoloměj', 2, 24, 8, NULL, 389187),
(238, N'Radim', 2, 25, 8, NULL, 389188),
(239, N'Luděk', 2, 26, 8, NULL, 389189),
(240, N'Otakar', 2, 27, 8, NULL, 389190),
(241, N'Augustýn', 2, 28, 8, NULL, 389191),
(242, N'Evelína', 1, 29, 8, NULL, 389192),
(243, N'Vladěna', 1, 30, 8, NULL, 389193),
(244, N'Pavlína', 1, 31, 8, NULL, NULL),
(246, N'Adéla', 1, 2, 9, NULL, 389196),
(247, N'Bronislav', 2, 3, 9, NULL, 389197),
(248, N'Jindřiška', 1, 4, 9, NULL, 389198),
(249, N'Boris', 2, 5, 9, NULL, 389199),
(250, N'Boleslav', 2, 6, 9, NULL, 389200),
(251, N'Regína', 1, 7, 9, NULL, 389201),
(252, N'Mariana', 1, 8, 9, NULL, 389202),
(253, N'Daniela', 1, 9, 9, NULL, 389203),
(254, N'Irma', 1, 10, 9, NULL, 389204),
(255, N'Denisa', 1, 11, 9, NULL, 389205),
(256, N'Marie', 1, 12, 9, NULL, 56964),
(257, N'Lubor', 2, 13, 9, NULL, 389206),
(258, N'Radka', 1, 14, 9, NULL, 389207),
(259, N'Jolana', 1, 15, 9, NULL, 389208),
(260, N'Ludmila', 1, 16, 9, NULL, 389209),
(261, N'Naděžda', 1, 17, 9, NULL, 389210),
(262, N'Kryštof', 2, 18, 9, NULL, 49693),
(263, N'Zita', 1, 19, 9, NULL, 389211),
(264, N'Oleg', 2, 20, 9, NULL, 389212),
(265, N'Matouš', 2, 21, 9, NULL, 389213),
(266, N'Darina', 1, 22, 9, NULL, 389214),
(267, N'Berta', 1, 23, 9, NULL, 389215),
(268, N'Jaromír', 2, 24, 9, NULL, 388505),
(269, N'Zlata', 1, 25, 9, NULL, 389216),
(270, N'Andrea', 1, 26, 9, NULL, 389217),
(271, N'Jonáš', 2, 27, 9, NULL, 389218),
(272, N'Václav', 2, 28, 9, NULL, 101680),
(273, N'Michal', 2, 29, 9, NULL, 59696),
(274, N'Jeroným', 2, 30, 9, NULL, 389219),
(275, N'Igor', 2, 1, 10, NULL, 389220),
(277, N'Bohumil', 2, 3, 10, NULL, 389223),
(278, N'František', 2, 4, 10, NULL, 27768),
(279, N'Eliška', 1, 5, 10, NULL, 389224),
(280, N'Hanuš', 2, 6, 10, NULL, 388662),
(281, N'Justýna', 1, 7, 10, NULL, 389225),
(282, N'Věra', 1, 8, 10, NULL, 389226),
(284, N'Marina', 1, 10, 10, NULL, 389229),
(285, N'Andrej', 2, 11, 10, NULL, 389230),
(286, N'Marcel', 2, 12, 10, NULL, 388749),
(287, N'Renáta', 1, 13, 10, NULL, 389231),
(288, N'Agáta', 1, 14, 10, NULL, 389232),
(289, N'Tereza', 1, 15, 10, NULL, 389233),
(290, N'Havel', 2, 16, 10, NULL, 389234),
(291, N'Hedvika', 1, 17, 10, NULL, 32642),
(292, N'Lukáš', 2, 18, 10, NULL, 55013),
(293, N'Michaela', 1, 19, 10, NULL, 389235),
(294, N'Vendelín', 2, 20, 10, NULL, 389236),
(295, N'Brigita', 1, 21, 10, NULL, 389237),
(296, N'Sabina', 1, 22, 10, NULL, 389238),
(297, N'Teodor', 2, 23, 10, NULL, 389239),
(298, N'Nina', 1, 24, 10, NULL, 389240),
(299, N'Beáta', 1, 25, 10, NULL, 389241),
(300, N'Erik', 2, 26, 10, NULL, 388659),
(302, N'Státní svátek', 0, 28, 10, NULL, NULL),
(303, N'Silvie', 1, 29, 10, NULL, 389244),
(304, N'Tadeáš', 2, 30, 10, NULL, 389245),
(305, N'Štěpánka', 1, 31, 10, NULL, 389246),
(306, N'Felix', 2, 1, 11, NULL, 387854),
(307, N'Památka zesnulých', 0, 2, 11, NULL, NULL),
(308, N'Hubert', 2, 3, 11, NULL, 387855),
(309, N'Karel', 2, 4, 11, NULL, 387856),
(310, N'Miriam', 1, 5, 11, NULL, 387857),
(311, N'Liběna', 1, 6, 11, NULL, 387858),
(312, N'Saskie', 1, 7, 11, NULL, 387860),
(313, N'Bohumír', 2, 8, 11, NULL, 387861),
(314, N'Bohdan', 2, 9, 11, NULL, 387862),
(315, N'Evžen', 2, 10, 11, NULL, 387863),
(316, N'Martin', 2, 11, 11, NULL, 57200),
(317, N'Benedikt', 2, 12, 11, NULL, 387864),
(318, N'Tibor', 2, 13, 11, NULL, 387865),
(319, N'Sáva', 1, 14, 11, NULL, 387866),
(320, N'Leopold', 2, 15, 11, NULL, 387867),
(321, N'Otmar', 2, 16, 11, NULL, 387868),
(322, N'Mahulena', 1, 17, 11, NULL, 389248),
(323, N'Romana', 1, 18, 11, NULL, 387869),
(324, N'Alžběta', 1, 19, 11, NULL, 387870),
(325, N'Nikola', 1, 20, 11, NULL, 387871),
(326, N'Albert', 2, 21, 11, NULL, 387872),
(327, N'Cecílie', 1, 22, 11, NULL, 387917),
(328, N'Klement', 2, 23, 11, NULL, 387918),
(329, N'Emílie', 1, 24, 11, NULL, 387919),
(330, N'Kateřina', 1, 25, 11, NULL, 387920),
(331, N'Artur', 2, 26, 11, NULL, 387921),
(332, N'Xenie', 1, 27, 11, NULL, 107084),
(333, N'René', 2, 28, 11, NULL, 387692),
(334, N'Zina', 1, 29, 11, NULL, 387693),
(335, N'Ondřej', 2, 30, 11, NULL, 67976),
(336, N'Iva', 1, 1, 12, NULL, 387694),
(337, N'Blanka', 1, 2, 12, NULL, 387695),
(338, N'Svatoslav', 2, 3, 12, NULL, 387696),
(339, N'Barbora', 1, 4, 12, NULL, 387697),
(340, N'Jitka', 1, 5, 12, NULL, 41497),
(341, N'Mikuláš', 1, 6, 12, NULL, 59914),
(343, N'Květoslava', 1, 8, 12, NULL, 387699),
(344, N'Vratislav', 2, 9, 12, NULL, 387700),
(345, N'Julie', 1, 10, 12, NULL, 387701),
(346, N'Dana', 1, 11, 12, NULL, 387702),
(347, N'Simona', 1, 12, 12, NULL, 387703),
(348, N'Lucie', 1, 13, 12, NULL, 54854),
(349, N'Lýdie', 1, 14, 12, NULL, 387704),
(351, N'Albína', 1, 16, 12, NULL, 387706),
(352, N'Daniel', 2, 17, 12, NULL, 387707),
(353, N'Miloslav', 2, 18, 12, NULL, 387708),
(354, N'Ester', 1, 19, 12, NULL, 387709),
(355, N'Dagmar', 1, 20, 12, NULL, 387710),
(356, N'Natálie', 1, 21, 12, NULL, 387711),
(357, N'Šimon', 2, 22, 12, NULL, 387712),
(358, N'Vlasta', 3, 23, 12, NULL, 387713),
(359, N'Vánoce', 0, 24, 12, NULL, 102142),
(360, N'1.svátek vánoční', 0, 25, 12, NULL, NULL),
(361, N'2.svátek vánoční', 0, 26, 12, NULL, NULL),
(362, N'Žaneta', 1, 27, 12, NULL, 387715),
(363, N'Bohumila', 1, 28, 12, NULL, 387716),
(364, N'Judita', 1, 29, 12, NULL, 387717),
(365, N'David', 2, 30, 12, NULL, 18162),
(366, N'Silvestr', 1, 31, 12, NULL, 387718),
(367, N'Adam', 2, 24, 12, NULL, 387714),
(368, N'Eva', 1, 24, 12, NULL, 25213),
(369, N'Radana', 1, 15, 12, NULL, 387705),
(370, N'Radan', 2, 15, 12, NULL, NULL),
(371, N'Ambrož', 2, 7, 12, NULL, 387922),
(372, N'Benjamín', 2, 7, 12, NULL, 387698),
(373, N'Šarlota', 1, 27, 10, NULL, 389242),
(374, N'Zoe', 1, 27, 10, NULL, 389243),
(375, N'Štefan', 2, 9, 10, NULL, 389227),
(376, N'Sára', 1, 9, 10, NULL, 389228),
(377, N'Olívie', 1, 2, 10, NULL, 389221),
(378, N'Oliver', 2, 2, 10, NULL, 389222),
(379, N'Linda', 1, 1, 9, NULL, 389194),
(380, N'Samuel', 2, 1, 9, NULL, 389195),
(381, N'Libuše', 1, 10, 7, NULL, 53237),
(382, N'Amálie', 1, 10, 7, NULL, 389062),
(383, N'Petr', 2, 29, 6, NULL, 72222),
(384, N'Pavel', 2, 29, 6, NULL, 71199),
(385, N'Iveta', 1, 7, 6, NULL, 389032),
(386, N'Slavoj', 2, 7, 6, NULL, 389033),
(387, N'Rút', 1, 14, 3, NULL, 388487),
(388, N'Matylda', 1, 14, 3, NULL, 388486),
(389, N'Elena', 1, 16, 3, NULL, 388551),
(390, N'Herbert', 2, 16, 3, NULL, 388552),
(391, N'Maxmilián', 2, 29, 5, NULL, 389247),
(392, N'Maxim', 2, 29, 5, NULL, 388827),
(393, N'Heřman', 2, 7, 4, NULL, 388666),
(394, N'Hermína', 1, 7, 4, NULL, 388667);

pondělí 12. prosince 2016

Eset - nastavení blokovaných stránek

Při serfování sem tam narazím na weby na které se již nikdy nechci vracet. Proto jsem hledal jak se dá zadat do Esetu seznam zablokovaných domén.

Nastavení je jednoduché
Rozšířené nastavení / ochrana přístupu na web  / [+] Správa URL adres / seznam adres -> Změnit

Seznam blokovaných adres, [Změnit], [Přidat]

Vložíte inkriminovanou adresu jako např. http://delluxe.cz/ a vše uložíte.
Pokud se na tuto adresu zase někdy prokliknete tak se Vám zobrazí informace o zablokování a ne tuna Sra..k na kterou by jste jinak narazili.

Zdroj:
http://support.eset.com/kb2844/?viewlocale=sk_SK
http://support.eset.com/kb2123/?viewlocale=cs_CZ

úterý 29. listopadu 2016

Jak vyvolat dialog tisku pro PDF

<html>
<body>
<h1>Reporting</h1>
<!-- <iframe id="reportView" name="reportView" style="display:none;" ></iframe> -->
<hr/>
<button onclick="javascript:printIframe();">Print</button>
<script type="text/javascript">
function createIframeReportViewer()
{
 var ifm = document.createElement("IFRAME"); 
 ifm.id = 'reportView';
 ifm.style = "display:none;";
 document.body.appendChild(ifm);
}

function printIframe(){
 createIframeReportViewer();
 document.getElementById("reportView").onload = function(){
  alert("PDF was loaded.");
  var frm = document.getElementById("reportView").contentWindow;
         frm.focus();
         frm.print();
 }
 document.getElementById('reportView').src = "data.pdf";

        return false;
}
</script>
</body>
</html>
Do iFrame se načte PDF a jakmile se dokončí jeho stahování tak se vyvolá dialog tisku.

Poznámka:
Je potřeba zkoušet pře server protože při spouštění lokálního HTML souboru se nenastaví origin a je problém s vyvoláním akce tisku nad iFramem.

Zdroje:
http://stackoverflow.com/questions/9616426/javascript-print-iframe-contents-only
http://stackoverflow.com/questions/6000987/dynamically-set-iframe-src
https://en.wikipedia.org/wiki/Same-origin_policy
https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
http://www.w3schools.com/jsref/met_document_createelement.asp

Keboola

Základní postup 
1. Přidat Extraktor na Google Drive
2. Přihlásit se Google účtem
3. Vybrat Google SpretSheet (nezobrazují se Excelovské soubory - musí se konvertovat)
4. V nastavení drive je možnost zaškrtnout že nahrávané soubory se převedou
5. V nastavení extraktoru vybrat spretsheety a jejich listy
6. Nějak hezky pojmenovat načtené tabulky


Chyba po změně počtu sloupců ve Zdrojovém souboru
ExceptionId ex-google-drive-49a5e71ce9f9f11bb453b61c331a2f94
User error: Some columns are missing in csv file. Missing columns: empty. Expected columns: empty,Datum,C_dokladu,Dodavatel,Castka,Mnoz,Zak,Stredisko,Cinnost,Text.' Please check if expected delimiter "," is used in csv file.
Je potřeba smazat vstupní tabulky aby se jejich struktura vytvořila znovu

Tabulka nesmí obsahovat více hlavičkových řádků
Protože potom volné sloupce asi hlásí vícenásobný prázdný sloupec

Pokud nemá sloupec vyplněnou hlavičku tak je automaticky pojmenován empty. Pokud je jich takových více je to problém. Dát si bacha na skryté sloupce nebo sloupce s úzkou šířkou, tak že není skoro vidět - i ty se načtou

Dobrý nápad je napojit se na sandbox externí aplikací například:

DevArt - DbForgeMySqlFree
http://www.devart.com/dbforge/mysql/studio/download.html

čtvrtek 24. listopadu 2016

ChangeScript - Přidání procedury pokud neexistuje

If  exists(SELECT * FROM sys.procedures WHERE name = N'Cpy_Search')
begin
 DROP PROCEDURE [dbo].[Cpy_Search]
end;
BEGIN
 exec('CREATE Procedure Cpy_Search
                 @CompanyId as int,
                 @Term as nvarchar(60)
                AS begin
                 DECLARE @Pattern nvarchar(62)
                 SELECT @Pattern = ''%'' + @Term + ''%'';
                     SELECT
                  Id,
                  Title
                 FROM [Company]
                 WHERE
             AgendaId = @CompanyId
                 AND (
                  Title COLLATE Latin1_general_CI_AI Like @Pattern  COLLATE Latin1_general_CI_AI
                  OR
                  IdentificationNumber LIKE @Pattern
                  OR
                  VatIdentificationNumber LIKE @Pattern
                 )
                END;')
           END;



Zdroj:
http://stackoverflow.com/questions/2072086/how-to-check-if-a-stored-procedure-exists-before-creating-it

středa 9. listopadu 2016

Select Insert Into table


SQL
INSERT INTO dbo.[Company2CompanyTypes] ([CompanyRefId], [CompanyTypesRefId])
SELECT ANU.CompanyId, 2 AS CompanyTypeId FROM AspNetUsers ANU
INNER JOIN Company C ON (ANU.CompanyId = C.Id)
UNION
SELECT ANU.CompanyId, 3 AS CompanyTypeId FROM AspNetUsers ANU
INNER JOIN Company C ON (ANU.CompanyId = C.Id)

Zdroj:
http://www.w3schools.com/sql/sql_insert_into_select.asp

pátek 21. října 2016

Přehlednější struktura MVC projektu


Global asax
void Application_Start()
{
...
// ViewEngines.Engines.Clear();

            ViewEngines.Engines.Add(new CustomRazorViewEngine());
...
}


CustomRazorViewEngine .cs
public class CustomRazorViewEngine : RazorViewEngine
    {
        public CustomRazorViewEngine()
        {
            ViewLocationFormats = new string[]
            {
            "~/{1}/Views/{0}.cshtml",
            };

            PartialViewLocationFormats = new string[]
            {
            "~/Shared/Views/{0}.cshtml"
            };
        }

    }


Zdroj:
http://www.matthewrenze.com/articles/clean-architecture-in-asp-net-mvc-5/

Historie Skypu

Stáhni si aplikaci SQLiteStudio ta umí otevírat databáze SQL Lite.
Pak si už jen připojíš svou databázi s historií Skypu, která leží v:
c:\Users\{WinUser}\AppData\Roaming\Skype\{SkypeLogin}\main.db
Zprávy jsou pak uložené v tabulce Messages

úterý 18. října 2016

Resharper a nefunkční zkratka CTRL+F


Postup:
  1. Přepni klávesnici na ENG
  2. Restartuj klávesové zkratky ve VS na Visual Studio 2005 (Tools>Options>Keyboard)
  3. Aplikuj schema Visual Studio v nastavení Resharperu (Resharper>Options>Keyboard&Menus)
  4. Přepni klávesnici zpět na CES

Zdroj:

čtvrtek 29. září 2016

Registrace vlastního URL protokolu



 C# 
using Microsoft.Win32;

var appPath = "%SystemRoot%\SysWow64\notepad.exe";
var command = Registry.ClassesRoot.CreateSubKey(name);
command.SetValue("", appPath, RegistryValueKind.ExpandString); // výchozí hodnota


Předání parametru
"C:\Program Files (x86)\Skype\Phone\Skype.exe" "/uri:"%l""

Časté chyby:
Pozor na uvozovky v cestě k aplikaci. Obzvlášť pokud předáváte parametr.
Pokud chcete použít relativní cestu jako je %SystemRoot% nebo %windir% musíte ji uložit v hodnotě typu "Rozšiřitelná řetězcová hodnota"

Zdroj:
https://msdn.microsoft.com/cs-cz/library/aa767914(v=vs.85).aspx
https://msdn.microsoft.com/cs-cz/library/windows/desktop/ms724884%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
http://www.petefreitag.com/item/69.cfm

čtvrtek 22. září 2016

SQL - negace příznaku


update CATALOGUE_ITEMS SET IS_Active = ~IS_DELETED from CATALOGUE_ITEMS


nebo druhá varianta

UPDATE CATALOGUE_ITEMS
SET IS_ACTIVE = case when IS_DELETED = 1 then 0 else 1 end;


Zdroj:
http://stackoverflow.com/questions/177762/boolean-not-in-t-sql-not-working-on-bit-datatype

sobota 10. září 2016

Peugeot 207 - Nejde nastartovat

Pokud vám vypadne z ničeho nic po otočení klíčku elektrika zkuste otevřít motor a zkontrolovat kontakty u baterky.
Kontroloval jsem pojistky, ale žádná z nich nebyla vypálená.

čtvrtek 25. srpna 2016

Logoiech K250 a VLC media klávesy

Aby Vám fungovalo ovládání mediálního přehrávače VLC pomocí speciálních kláves na Vaší Logitech K520 klávesnici tak je potřeba v souboru 2000075.xml, který najdete ve složce
c:\ProgramData\Logishrd\SetPointP\Devices\Keyboard\2000075\
zakomentovat všechny tagy <Button> které mají parametr HandlerSet="MM .... (jsou jen tři)
Uložit a restartovat aplikaci

Potom v nastavení VLC Tools / Preference / Hotkeys dvojklikněte ve sloupci Global na
jednu ze tří akcí a nastavte jí příslušné tlačítko.

  • Previous - Media Prev Track
  • Play/Pause - Media Play Pause
  • Next - Media Next Track
Ještě je potřeba upravit soubor players.ini v adresáři c:\Program Files\Logitech\SetPointP\
a na konec sekce [Players]
přidat řádek
VLC=key,vlc.exe,QWidget,VLC media player,xxx, , ,S,P,N,0,1,VLC

Zdroj:
http://superuser.com/questions/338108/how-do-i-get-my-logitech-media-buttons-to-control-spotify
http://www.pctipp.ch/forum/showthread.php?5063-Logitech-Tastatur-und-VLC-Mediaplayer

čtvrtek 11. srpna 2016

SQL Change script

Pokud tabulka 'Product' neobsahuje sloupec 'Amount' tak se provede jeho přidání

IF NOT EXISTS(SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[Product]') AND name = N'Amount')
BEGIN 
ALTER TABLE dbo.Product ADD
Amount decimal(10, 4) NULL;
END

úterý 2. srpna 2016

Nedostupné nastavení Nuget Package Manager

Un-install Nuget Package  ve Visual Studiu (Tools->Extensions and Updates).
Re-install  Nuget Package Manager Visual Studio Extension ( from Online)

sobota 30. července 2016

Windows Service od A do Z

Vytvoření

  1. Vytvoření aplikace WindowsService
  2. Vytvoření instalačních metod
  3. Přidání Log4Net z NuGetu
  4. Windows ServiceInstallProjectSetupService
Service1.Designer
ServiceName = "Service1"; // je potřeba změnit - ukazuje se potom v EventLogu

Po Instalaci

Po instalaci se do EventLogu zapíše zpráva s podrobnostmi instalace služby 
Do systému byla nainstalována služba.
Název služby:  MailService
Název souboru služby:  "D:\MailService\MailService\bin\Debug\MailService.exe"
Typ služby: služba v uživatelském režimu
Typ spouštění služby:  automatické spouštění
Účet služby:  LocalSystem

ServiceInstaller

DisplayName - Zobrazuje se v seznamu služeb
Description - Zobrazuje se v seznamu služeb jako popis
ServiceName - Použije se při spouštění a zastavování služby pomocí Net Start, ...
StartType [Boot, System, Automatic, Manual, Disable]

serviceProcessInstaller1

Nastavuje pod jakým typem uživatelského účtu se služba nainstaluje
Account [User, LocalService, NetworkService, LocalSystem]

Instalaci služby pomocí NET START je dobré spouštět jako administrátor. Ten má totiž právo vytvořit v EventLogu zdroj (Source) záznamů v EventLogu. Jinak instalace neproběhne a skončí chybou:
V průběhu instalační fáze došlo k výjimce.
System.InvalidOperationException: Správce služeb v počítači . nelze otevřít. Tato operace pravděpodobně vyžaduje další oprávnění.
Byla vyvolána vnitřní výjimka System.ComponentModel.Win32Exception. Chybová zpráva: Přístup byl odepřen


Setup ProjectInstall Shield



Testování

spuštění procesu

Nástroje

InstallUtil
Instalace služby bz setupu
https://msdn.microsoft.com/cs-cz/library/sd8zc8ha(v=vs.110).aspx

NetStat
Spuštění a zastavení služby

MSIExec
Instalace MSI balíčku

Zdroje:

MSI
http://stackoverflow.com/questions/8560166/silent-installation-of-a-msi-package

InstallShield - instalace služby
http://blogs.flexerasoftware.com/installtalk/2012/11/using-installshield-to-create-an-installation-that-installs-windows-services.html

čtvrtek 21. července 2016

Vyzkoušejte PHP online

Někdy se stane že potřebujete vyzkoušet co dělá kousek kódu, který někde potkáte. Instalovat kvuli tomu celé prostředí je zbytečná ztráta času. Stačí na stránce http://sandbox.onlinephpfunctions.com/ vložit kód a stisknou [Execute]. Výsledek vypadne během chvilky.

<?php
// ZADÁNÍ
$_GET["ID_protokolu"] ='B650295';
// $_GET["ID_protokolu"] ='A650295';
$pattern = '/([A|B]{1})([0]{0,1})([0-9]{4})/';
$replacement1 = 'A\\3';
$replacement2 = 'B\\3';
$replacement3 = 'A0\\3';
$replacement4 = 'B0\\3';
$ID_Protokolu1=preg_replace($pattern, $replacement1, $_GET["ID_protokolu"]);
$ID_Protokolu2=preg_replace($pattern, $replacement2, $_GET["ID_protokolu"]);
$ID_Protokolu3=preg_replace($pattern, $replacement3, $_GET["ID_protokolu"]);
$ID_Protokolu4=preg_replace($pattern, $replacement4, $_GET["ID_protokolu"]);

// Výstup
echo $ID_Protokolu1;
echo "\r\n";
echo $ID_Protokolu2;
echo "\r\n";
echo $ID_Protokolu3;
echo "\r\n";
echo $ID_Protokolu4;

středa 20. července 2016

Bez Facebooku a YouTube to jde líp

Vyzkoušejte Cold Turkey
https://getcoldturkey.com/
Free verze Vám neumožní podrobné vypínání a zapínání blokace. Můžete nastavit pouze datum a čas kdy se má blokace vypnout.
V PRO verzi za cca 475,- Kč získáte nad sebou bič, který vám nedovolí během pracovního týdne navštěvovat stránky jako Facebook nebo YouTube aby jste se mohli věnovat práci.


Program funguje tak, že zapíše vybrané domény  do souboru %WINDIR%\system32\drivers\etc\hosts
Tím je nasměruje na neexistující adresu v lokální síti. Tudíž se na facebook ani YouTube nepodíváte.

## Cold Turkey Entries Start ##10.20.30.42    facebook.com10.20.30.42    www.facebook.com10.20.30.42    twitter.com10.20.30.42    www.twitter.com10.20.30.42    netflix.com10.20.30.42    www.netflix.com10.20.30.42    collegehumor.com10.20.30.42    www.collegehumor.com10.20.30.42    imgur.com10.20.30.42    www.imgur.com10.20.30.42    youtube.com10.20.30.42    www.youtube.com10.20.30.42    vimeo.com10.20.30.42    www.vimeo.com10.20.30.42    buzzfeed.com10.20.30.42    www.buzzfeed.com10.20.30.42    mashable.com10.20.30.42    www.mashable.com10.20.30.42    ebay.com10.20.30.42    www.ebay.com10.20.30.42    amazon.com10.20.30.42    www.amazon.com10.20.30.42    9gag.com10.20.30.42    www.9gag.com10.20.30.42    4chan.org10.20.30.42    www.4chan.org10.20.30.42    reddit.com10.20.30.42    www.reddit.com10.20.30.42    tumblr.com10.20.30.42    www.tumblr.com10.20.30.42    pinterest.com10.20.30.42    www.pinterest.com10.20.30.42    instagram.com10.20.30.42    www.instagram.com10.20.30.42    flickr.com10.20.30.42    www.flickr.com10.20.30.42    deviantart.com10.20.30.42    www.deviantart.com10.20.30.42    stumbleupon.com10.20.30.42    www.stumbleupon.com10.20.30.42    myspace.com10.20.30.42    www.myspace.com10.20.30.42    tagged.com10.20.30.42    www.tagged.com10.20.30.42    orkut.com10.20.30.42    www.orkut.com10.20.30.42    delicious.com10.20.30.42    www.delicious.com## Cold Turkey Entries End ##


Windows Defender pak vyhodí krásnou hlášku, že se děje něco podezřelého:
Category: Settings Modifier
Description: This program has potentially unwanted behavior.

Recommended action: Review the alert details to see why the software was detected. If you do not like how the software operates or if you do not recognize and trust the publisher, consider blocking or removing the software.

Items:
file:C:\Windows\System32\drivers\etc\hosts


Pokud to chcete vypnout

  1.  je potřeba vypnout službu CTservice (to můžete udělat v příkazové řádce jako administrátor příkazem net stop CTService) Jinak Vám služba bude vracet smazané záznamy v souboru host
  2. odmazat doménu a IP ze souboru host
  3. vyprázdnit DNS Cash pomocí příkazu ipconfig /flushDns 
Služba se ale po minutě sama znovu spustí (ikdyž vypnete v task manageru proces CTService)
Protože má v Task Scheduleru naplánovanou akci "po minutě znovu spouštěj službu CTService"

Pokud v souboru host poškodíte značku ## Cold Turkey Entries Start ##
tak si CT vytvoří nový oddíl a zduplikuje záznamy. To může potom vést k problémům

úterý 5. července 2016

Omezená rychlost mobilního internetu t-mobile

Rychlost mého připojení: Stahování: 0,04 Mbps Nahrávání: 0,67 Mbps Odezva: 74 ms http://rychlost.cz/rs/20162643342.png https://play.google.com/store/apps/details?id=cz.webprovider.rychlost

neděle 5. června 2016

Balsamiq Online

Zkoušel jsem porovnat Balsamiq a Powerpoint. Nakreslit jednu stránku v powerpointu mi většinou zabralo více času (cca o 10min) jak v Balsamiqu, kde zabere zhruba 8-15 min
Navrhnout pak wireframe pro menší web 3-4hod.

Při rozkreslování obrazovek na papíru mě napadlo asi 9 hlavních. Potom když jsem začal stránky propojovat a oddělil privátní a veřejnou část jsem se dostal až na 16 stránek. Což je skoro dvojnásob.
Pokud uděláte takovouto chybu a nepokryjete všechny potřebné stránky tak se Vás odhad může splést až o 100% protože hodinovou náročnost bych odhadoval jako 9*4=36 hod (4,5 dne) ale po doplnění dalších stránek by byla 16*4 = 64 hod (8 dní)
Tady je dobře vidět jak je důležité věnovat čas rozkreslení wireframu, které odhalilo chybu v odhadu a ochránilo Vás před následným navyšováním ceny a termínu.


  1. Začněte vytvořením Sitemapy pro jednotlivé stránky.
  2. Pokračujte vytvořením dvou Master Page s menu pro veřejnou a neveřejnou část.
  3. Potom rozpracujte jednotlivé stránky a při jejich vytváření použijte master page.
  4. Propojení jednotlivých stránek nechte až na konec.


Plugin do Google Drive
5$ (cca 125,- Kč) na měsíc / 50$ (cca 1.250,- Kč) na rok

Master page a symbol Library
https://docs.balsamiq.com/mybalsamiq/symbols/

Tutorial
https://www.youtube.com/watch?v=uq7Xr5jsuQc

úterý 31. května 2016

Chyba při přejmenování projektu

The following errors occurred while attempting to load the app.
- The OwinStartup attribute discovered in assembly 'aa.bbbb.ccc' referencing startup type '
aa.bbbb.ccc.Startup' conflicts with the attribute in assembly 'aa.bbbb.ccc' referencing startup type 'aa.bbbb.ccc.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.

To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

Řešení
Smazat *.dll knihovny v adresáři bin

sobota 28. května 2016

IP Kamera ze starého Android telefonu

IP Webcam

Starý telefon není na vyhození ani do šuplíku. Stačí do něj nainsalovat aplikaci IP Webcam a jednoduše jej proměníte ve WiFi IP kameru

Po spuštění aplikace a spuštění streamování se k zobrazení videa dostanete například na adrese
http://192.168.0.19:8080/video
na adrese http://192.168.0.19:8080/ je potom pár nastavení a možnost nahrávání videa
https://play.google.com/store/apps/details?id=com.pas.webcam&hl=cs

čtvrtek 12. května 2016

Klávesnice nepíše znaky s háčkem např. ň

1. zkuste připojit jinou klávesnici
2. zkuste spustit aplikaci 'klávesnice na obrazovce'
3. zkuste kromě Wordu i jiné textové editory
4. pokud problém ve wordu přetrvává, tak zkuste v

Word//Soubor/možnosti/centrum zabezpečení [Nastavení centra zabezpečení]/Doplňky / [x] zakázat všechny doplňky aplikací

Zboží:
http://www.svethardware.cz/forum/showthread.php/72073-Nejde-napsat-ntdproste-hacek-na-NTB-HP-4740s

úterý 10. května 2016

Nastavení IP Kamery - D-Link DCS-935L


21:30
  • Restartovat kameru
  • Nainstalovat do mobilu aplikaci
  • Vytvořit si nový účet D-Link
  • Přidat nové zařízení oskenováním QR kódu z kamery
  • Připojení se na WiFi síť kamery
  • Vybrání domácí sítě
  • připojení ke kameře

21:50

Zdroj:
http://www.dlink.com/uk/en/support/faq/mydlink-home/monitor/dcs-935l/how_to_setup_the_dcs_935l

úterý 26. dubna 2016

Jak smazat Stored Procedure z Entiti Frameworku


  1. V databázovém schematu klikněte pravým tlačítkem 
  2. Ve stromu zvolte Function Imports
  3. Zvolte proceduru a stiskněte [Delete]
  4. potom ve skupině Complex Types smažte návratový typ

pátek 8. dubna 2016

Selenium WebDriver C#.NET

Nainstalujte si FireFox

Vytvořte UniTestProjekt ve Visual Studiu

Z Nugetu si doinstalujte package Selenium.Support který má referenci na balíček Selenium.WebDriver

Potom je potřeba do Proměnných prostředí přidat cestu k Chrome nebo FireFox driverům
A restartovat Visual Studio aby se změna v PATH projevila.


using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
//using OpenQA.Selenium.Chrome; // Namespace pro Chrome
using OpenQA.Selenium.Firefox; // Namespace pro Firefox

namespace Sparx.WebUITestFramework
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            IWebDriver driver;
                // driver = new ChromeDriver();
                driver = new FirefoxDriver();
                driver.Url = "http://www.google.com";
                driver.Navigate();

                var searchTerm = "Selenium";
                //driver.FindElement(By.Id("lst-ib")).SendKeys(searchTerm);

                driver.FindElement(By.Name("q")).SendKeys(searchTerm); //zapsání vyhledávaného textu
                driver.FindElement(By.Name("q")).Click();
                driver.FindElement(By.Name("btnK")).Click(); // stisknutí tlačítka

                // driver.Close(); // zavře pouze aktuální
                Assert.IsTrue(driver.Title.Contains(searchTerm)); // Ověření  

                driver.Quit(); // zavře všechny okna
                driver.Dispose();
                driver = null;

         }
    }
}

pondělí 28. března 2016

Nastavení rozlyšení MediaCapture

MediaCapture resolution


var mediaCapture = new MediaCapture();
// initialization here
await mediaCapture.InitializeAsync();

// get available resolutions
var resolutions = mediaCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview).ToList();

int i = 0;
foreach (var res in resolutions)
{
   log.Info(string.Format(
      "Resolution [{0}] -  {1}x{2}", 
      i++, 
      (res as VideoEncodingProperties).Width, 
      (res as VideoEncodingProperties).Height)
   );
}

// set used resolution
await mediaCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoPreview, resolutions[7]);



Zdroj:
[1] http://stackoverflow.com/questions/35261485/how-to-change-media-capture-photo-resolution-for-uwp
[2] https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.devices.videodevicecontroller.getavailablemediastreamproperties.aspx
[3] http://stackoverflow.com/questions/15412772/take-photo-with-custom-resolution-from-captureelement-with-mediacapture

úterý 22. března 2016

SNMP pro tiskárnu

Některé tiskárny podporují získávání stavu pomocí protokolu SNMP (Simple Network Management Protocol)
Protokol běží na UDP a má 3 verze. Druhá verze má přihlašování a třetí šifrování.

Obecné hodnoty
.iso.org.dod.internet.mgmt.mib-2.system.sysName.0 = LaserJetM1120n
.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 = 3 hours, 9 minutes, 5 seconds.

[1]
.1.3.6.1.4.1.11.2.3.9.4.2.1.4.1.2.34.0 = 20 [%] procentuelní stav toneru
.1.3.6.1.2.1.43.10.2.1.4.1.1 = počet vytisknutých stránek.1.3.6.1.2.1.43.11.1.1.6.1.1 = Black Cartridge CB436A

HP [2]
HP Toner Cur: 1.3.6.1.2.1.43.11.1.1.9.1.1  (např. 176)
HP Toner Max: 1.3.6.1.2.1.43.11.1.1.8.1.1 (např. 884)
level = (100*176)/884 = 19,90950226244344 % (administrace tiskárny ukazuje 20%)


Zdroje: 
[1] https://exchange.nagios.org/directory/Plugins/Hardware/Printers/SNMP-Printer-Check/reviews2
[2] https://www.sysaid.com/Sysforums/posts/list/8717.page
[3] https://cs.wikipedia.org/wiki/Simple_Network_Management_Protocol
[4] http://www.mibdepot.com/cgi-bin/getmib3.cgi?win=mib_a&r=hp&f=lj3300_snmp.mib&v=v1&t=tree

PHP ukázka kódu
$buff .= '<h2><a href="http://192.168.2.3/">Stav toneru v tiskarne</a></h2>';
snmp_set_quick_print(0);
$level = snmpget("192.168.2.3", "public", ".1.3.6.1.2.1.43.11.1.1.9.1.1");
$max = snmpget("192.168.2.3", "public", ".1.3.6.1.2.1.43.11.1.1.8.1.1");
$buff .= $level .'/'. $max .'&nbsp;-&nbsp;'. (int)($level*100/$max) .'% ' ."<br />\n";

pondělí 21. března 2016

UWP - Ukládání souborů


Zdroj:
http://stackoverflow.com/questions/33199792/how-can-i-handle-custom-app-settings-windows-10-uwp-c-sharp

Tisk obálek ve Wordu

Nastavení velikosti obálky
Rozložení stránky / Velikost / Další velikosti papíru /
Šířka: 16.2 cm
Výška: 11,4 cm

Připojení seznamu příjemců
Vybrat příjemce / Použít existující seznam
Vybrat *.txt (nebo *.CSV) soubor

Vložení pole ze seznamu
Korespondence / Vložit slučovací pole
Vybrat pole se jménem

Rozměry obálek
http://ciselnik.artega.cz/rozmery_obalek_DL_C6_C5_B6_B5.php

pátek 18. března 2016

neděle 13. března 2016

Raspberry Pi 2 B+ - výstup na televizi

3,5 Jack konektor na Raspberry Pi 2 kromě stereo audia obsahuje i video. Jedná se o náhradu žlutého konektrou na předchozí verzi. Barvy ale nemusí ladit. Když jsem připojil žlutý konektor z RPI do žlutého vstupu na televizi tak se nic nezobrazilo. Musel jsem postpně zkusit všechny a s červeným to fungovalo. Pokud zapojíte všechny konektory a video zapojíte do vstupu zvuku, uslyšíte video v reporodukrotu televize (žádná příjemná hudba).

Raspberry Pi 2 - Win 10 IoT Core

Připojení na Webové rozhraní RaspberryPi
http://minwinpc:8080/ nebo http://192.168.0.19:8080/default.htm podle toho jakou adresu dostane RPi přiřazeno od routeru.
Uživatelské jméno: Administrator
Heslo: p@ssw0rd

Sdílení souborů a získání dat z Rpi
Služba pro sdílení souborů je, ve výchozím stavu, po startu systému spuštěna.
(Win + E) spustí průzkumník souborů
192.168.0.19 je IP adresa Rpi a použijese při přihlášní jako doména.
\\192.168.0.19\c$
Uživatelské jméno: 192.168.0.19\Administrator
Heslo: p@ssw0rd

Další způsob je použít jako doménu název RPi
//MinWinPc/c$
Uživatelské jméno: MinWinPc\Administrator
Heslo: p@ssw0rd

Uložené soubory jsou pak třeba ve složce:
\\192.168.0.19\c$\Data\Users\DefaultAccount\Pictures

Deploy
Aplikace se z VisualStudia nahrávají do složky
\\192.168.0.25\c$\Data\Users\DefaultAccount\AppxLayouts\

Zdroj:
https://ms-iot.github.io/content/en-US/win10/samples/SMB.htm

středa 2. března 2016

XML serializace a atributy

Serializace třídy do XML
Zdroj:
https://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.110).aspx

XmlIgnore
[XmlIgnore]
public int PropertyName{get; set;}

XmlRoot
[XmlRoot("korenovy_tag")]
public class XmlRootElement {get; set;}
<korenovy_tag>
...
</korenovy_tag>

XmlText
Zdroj:
http://stackoverflow.com/questions/3638113/using-xml-class-attributes-how-to-represent-an-xml-tag-with-both-inner-text-and
[XmlText()]
public string Text {get; set;}
<tag>text</tag>
Poznámka: Pokud nemá property setter tak se hodnota do XML při serializaci nezapíše.

XmlAttribute
Zdroj:
http://stackoverflow.com/questions/3638113/using-xml-class-attributes-how-to-represent-an-xml-tag-with-both-inner-text-and
[XmlAttribute("skutecny_nazev_tagu")]
public string NazevProperty {get; set;}
<tag skutecny_nazev_tagu="hodnota">

XmlElement
[XmlElement("skutecny_nazev_tagu")]
public int Value {get; set;}
<skutecny_nazev_tagu>1</skutecny_nazev_tagu>

XmlArray a XmlArrayItem
[XmlArray("collection_name")]
[XmlArrayItem("collection_item_name")]
public List<ItemType> Items { get; set; }
<colection_name>
<collection_item_name Id="1" />
<collection_item_name Id="2"/>
....
</colection_name>

Vynechat prázdné hodnoty
Zdroj:
http://stackoverflow.com/questions/5818513/xml-serialization-hide-null-values
Property s názvem ShouldSerialize{PropertyName} kde PropertyName je název property která by se měla nebo neměla serializovat.

public bool ShouldSerializeMyNullableInt() 
{
  return MyNullableInt.HasValue;
}
nebo
{PropertyName}Specified

Serializace bez Namespace
Zdroje:
http://stackoverflow.com/questions/8061106/xml-serialization-remove-namespace

var xns = new XmlSerializerNamespaces();
var serializer = new XmlSerializer(users.GetType());
xns.Add(string.Empty, string.Empty);
//...
serializer.Serialize(stream, users, xns);



neděle 28. února 2016

USB OTG redukce (kabel)

Práce asi na hodinku pokud nevíte co přesně udělat. V návodech se píše spojit 4-tý a 5-tý pin. Co Vás asi překvapí že nemusí ležet hned vedle sebe jako na obrázcích. V kabelu který jsem se rozhodl pitvat já byl nezapojený pin zespodu vedle bílého. Nezapojený pin je potřeba spojit s černým vedením, ne se stíněním.
Potmo všechny vodiče proměřit jestli se vám něco nespojilo aby jste si neodpálili zařízení.
A je hotovo.






Zdroje:
http://forum.xda-developers.com/showthread.php?t=1690882
https://comrang91.wordpress.com/2015/07/29/diy-usb-otg-cable-%E2%80%A2%E2%80%A2%E2%80%A2-che-cap-otg/
http://vyvoj.hw.cz/teorie-a-praxe/dokumentace/co-se-skryva-pod-komunikaci-oznacenou-jako-usb-otg.html


pondělí 22. února 2016

IP kamera Edimax IC-3115W a přeahávač VLC

IP kamera Edimax IC-3115W

Výchozí rozlišení:
 VGA 640x480
Maximální rozlišení: SXVGA 1280x960
Minimální rozlišení: QVGA 320x240
Zpoždění: cca 2s

Nastavení
V počítači s operačním systémem Windows
Ovládací panely\Síť a internet\Síťová připojení
nastavit si IPV4 IP adresu na 192.168.2.100 Maska: 255.255.248.0

Výchozí přihlášení:
IP: http://192.169.2.3/
Uživatel: Admin
Heslo: 1234

Síťový proud ve VLC
http://192.168.2.3/snapshot.cgi



run.bat
Spuštění z příkazové řádky včetně uživatelského jména a hesla. Parametr -f spustí přehrávač v režimu fullscreen

"c:\Program Files (x86)\VideoLAN\VLC\VLC.exe" http://admin:1234@192.168.2.3/snapshot.cgi -f

Kamera má po resetu nastavený DHCP server. Stačí ji zapojit do lokální sítě a na routeru si vyhledat její přidělenou IP adresu.

Potřebný čas pro nastavení: cca 15min

Zdroje:
https://wiki.videolan.org/Documentation:Command_line/#Video_options

pátek 8. ledna 2016

MigraDoc - prakticky

Velikost textu
            para.Format.Font.Size = new Unit(6, UnitType.Point); // zmenšení velikosti textu

Okraje odstavce
            para.Format.Borders.Right = new Border() { Style=BorderStyle.Single, Color = Colors.Black
};


Rámeček tabulky 
table.Borders.Width = "1pt";

Pozicování tabulky
Pokud potřebujete napozicovat polohu tabulky nebo její jedné buňky, je lepší ji zanořit do další tabulky ve které řádku a sloupci nastavíte rozměry tak aby jste vybranou buňku dostali na pozici kam chcete umístit váš obsah.