Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: singles, dodany: 23.03.2015 08:30, tagi: internet

Całkiem niedawno puściłem takiego oto tweeta:

Jedna z odpowiedzi sugerowała, że żartuję i robię sobie przysłowiowe jaja. Haczyk w tym, że wcale nie. Pokażę Wam w jaki sposób mam zorganizowane zarządzanie pocztą – a co za tym idzie – jak system TODO oparty na mailu idealnie się w to wpasowuje.

Dla tych z Was, którzy czytali „Getting Things Done” Allena metody te nie będą pewnie nowością. Mi ta książka nie podeszła, ale podświadomych inspiracji nie wykluczam :).

Zasada #1: Rzeczy w skrzynce odbiorczej czekają na akcję.

W pewnym momencie zdałem sobie sprawę, że spora większość maili które otrzymuję wymaga jakiejś akcji:

  • faktura – płacę + drukuję/archiwizuję/wysyłam księgowej
  • pytanie o wykonanie usługi – odpowiadam/przygotowuję ofertę
  • komentarz na GitHubie – odpowiadam (pytania bez odpowiedzi to zło)
  • mail do kumpla z nowym popularnym video – odpowiadam, najczęściej jest to „widziałem” (chyba za dużo czasu spędzam na YT)
  • zaproszenie na Li/FB – akceptuję (znajomi) lub odrzucam (ludzie których nie znam/rekruterzy którzy nawet nie przeczytali profilu)
  • newsletter z pointer.io – dorzucam ciekawe artykuły do Pocketa
  • potwierdzenie nadania przesyłki – zostawiam do czasu aż do mnie dotrze (czasami zamawiam sporo rzeczy i czasami można przypomnieć sobie o jednej po miesiącu)
  • etc.

Nieistotne jest kiedy zajmiecie się danym mailem. Możecie korzystać z zasady „jeśli coś zajmuje mniej niż 5 minut, to zrób to od razu”, możecie zostawiać na potem. Ważny jest fakt, żeby leżał w skrzynce dopóki się nim nie zajmiecie.

Zasada #2: Jeśli coś nie wymaga akcji, wylatuje ze skrzynki odbiorczej.

Oraz jej rozwinięcie: mail na którego odpowiedziałeś i/lub nie wymaga od Ciebie akcji jest od razu archiwizowany/usuwany.

Ja usuwam – kosz najczęściej opróżniany jest po 30 dniach, tak więc jeśli dyskusja będzie się ciągnąć, to i tak będę miał dostęp do tego maila. Jeśli nie, to zakładam że nadawca przy następnym mailu dołączy kontekst.

Zasada #3: Do skrzynki odbiorczej trafiają także maile wychodzące.

Wyobraźcie sobie sytuację, że reklamujecie jakiś produkt wysyłając maila do sprzedawcy. Czasami można zapomnieć o tym, że sprzedawca miał nam odpisać. Jest na to prosty sposób – podczas pisania maila dodajcie siebie do BCC – tym sposobem mail trafi do skrzynki odbiorczej i nie zapomnicie. A dodatkowo dzięki temu, że przy każdym mailu widnieje data wysłania będziecie widzieć jak długo zajęła mu odpowiedź.

Jeśli długo nie dostajecie odpowiedzi, to już Wasza decyzja co zrobić z tym mailem dalej – jeśli odpuszczacie sprawę, to maila kasujecie albo nadajecie mu specjalną etykietę – patrz zasada nr #4.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Pyton, dodany: 20.03.2015 08:05, tagi: php

Witajcie

Dziś na potrzeby pewnego serwisu musiałem zbudować mechanizm generujący slug. Ponieważ nie znalazłem nic co by mi odpowiadało to postanowiłem napisać własną klasę.

Instalacja

Instalacja odbywa się przy użyciu Composera. Jeśli ktoś nie ma to odsyłam do źródła.

Wystarczy dodać do pliku composer.json:

"require": {
        "pyton/easyslug" : "~1.0"
    }

lub bezpośrednio w konsoli: composer require pyton/easyslug ~1.0

Przykłady użycia

Zakładam że macie już dołączony autoloader z Composera. Jeśli nie to znowu odsyłam do źródła

Tworzymy slug:

<?php
use EasySlug\EasySlug;

include 'vendor/autoload.php';

$easySlug = new EasySlug();

$slug = $easySlug->create('Base Slug string.');

// Wyświetla prosty slug
echo $slug->plain() . PHP_EOL;
// Base-Slug-string

// Możliwość formatowania za pomocą wyrażeń sprintf
echo $slug->format('%s.html') . PHP_EOL;
// Base-Slug-string.html

// Zmiana separatora
$easySlug->setReplacement('_');
$slug = $easySlug->create('To jest nasz String z polskimi znakami np: 󟯌ćł');
echo $slug->plain() . PHP_EOL;
// To_jest_nasz_String_z_polskimi_znakami_np_ozZScl

echo $slug->format('%s.html') . PHP_EOL;
// To_jest_nasz_String_z_polskimi_znakami_np_ozZScl.html

Opis

Za pomocą metody create('string') tworzymy slug wewątrz obiektu.

Do wyświetlania slug służą metody: – plain() – Wyświetla wygenerowany slug – format('pattern', array('arg1', 'arg')) – wyświetla string formatowany przy użyciu sprintf. pattern oraz array('arg1', 'arg') jest opcjonalna. Przykłady:


$slug->format('%s');
$slug->format('%s-%d.html', array(12));
$slug->format('%s_%s_%s.html', array('prefix', 'postfix'));

Podsumowanie

EasySlug to prosta paczka która wygeneruje nam podstawowy slug, z możliwością sformatowania go w dowolny sposób.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Piotr Pasich, dodany: 19.03.2015 07:50, tagi: php

ant-man

Contributing the open source is a topic raised time and again on blogs, during conferences, meetups and barcamps. This happens because of several reasons – many programmers want to be involved in extraordinary projects, create useful solutions or leave their marks on a masterpiece of software. I have always wanted to be a part of […]

The post Ant, composer and code quality tools appeared first on Piotr Pasich.

Autor wpisu: zleek, dodany: 18.03.2015 10:50, tagi: php

Most of the current mail clients can display html emails without any problems. But still there are cases when html e-mail is not supported. Therefore I would suggest to send emails which contain both – html and plain text as

Autor wpisu: Pyton, dodany: 11.03.2015 16:45, tagi: php

Hej.

Dziś na własne potrzeby musiałem stworzyć funkcję w PHP która z wielowymiarowej tablicy wyciągnie mi wszystkie tablice z wartościami i przeniesie je na zerowy poziom. Brzmi dziwnie ale przykład może wyjaśni. Zapraszam

Funkcja

Najpierw sama funkcja

function array_flatten($array, &$values)
{
    if(empty($values))
        $values = [];

    $nonArrayValues = array();
    foreach ($array as $key => $value)
    {
        if(!is_array($value))
        {
            $nonArrayValues[$key] = $value;
        }
        else
        {
            $values[$key] = array_flatten($value, $values);
        }
    }
    return $nonArrayValues;
}

Przykład użycia

$arrayValues = [
    'val3.1' => 'valsss',
    'val3.2',
    'val3' => [
        'val3.1' => 'valsss',
        'val3.2',
        'val3.3' => [
            'val4.1',
            'val4' => ['vall'],
        ]
    ],
];

$free = array_flatten($arrayValues, $newArrayValues);
echo '<pre>'; print_r($newArrayValues); print_r($free); echo'</pre>';


/*
Array
(
    [val4] => Array
    (
        [0] => vall
    )
    [val3.3] => Array
    (
        [0] => val4.1
    )
    [val3] => Array
    (
        [val3.1] => valsss
        [0] => val3.2
    )
)
Array
(
    [val3.1] => valsss
    [0] => val3.2
)
*\

Wyjaśnienie

Funkcja korzysta z rekurencji do wyciągania tablic z wartościami i umieszcza je w innej tablicy. array_flatten($arrayValues, $newArrayValues) przyjmuje 2 parametry: – Tablica z wartościami – Tablica wynikowa

Dodatkowo sama funkcja zwraca tablicę wartości które mogły się znaleźć bezpośrednio w tablicy danych.

Autor wpisu: zleek, dodany: 10.03.2015 10:48, tagi: sql

In many cases we store some additional data in tables, which are helpful for some management tasks. But sometimes those data are problematic, especially if we would lie to have unique data. Lets think about following case. We have table (user_log_table) in our database where we store all login and logout actions of our users. […]

Autor wpisu: Śpiechu, dodany: 09.03.2015 12:06, tagi: php

Topic is not 0 day news. First commits adding new version constraints were added on december 2014. I’ll only mention what’s new:

  • when defining logical AND you can use space just like you use comma, so >1.0 <=1.5 is the same as >1.0,<=1.5
  • when defining logical OR you should (must?) use double pipe || instead of single pipe |
  • I’m sure you know tilde operator ~1.5 (which means you’re interested in versions >=1.5,<2), new caret operator ^ was introduced, ^1.2.3 definition means >=1.2.3,<2, so the change is you can more precisely define starting version; if you would like to define the same constraint without caret operator you would need to write ~1.2,>=1.2.3, so new operator is more concise
  • the last one, hyphen operator - is inclusive set of versions, it’s a kind of mysterious to me, 1.0 - 2.0 is equivalent to >=1.0.0 <2.1 and 1.0.0 - 2.1.0 is equivalent to >=1.0.0 <=2.1.0 (take a look at composer doc and then matcher source code)
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.