• Wpisów:445
  • Średnio co: 5 dni
  • Ostatni wpis:1 rok temu, 20:32
  • Licznik odwiedzin:31 035 / 2572 dni
Jesteś niezalogowany. Niektóre wpisy dostępne są tylko dla znajomych.
 
Za każdym razem szukam tego

ziping files/directories examples

Creates the archive data.zip and puts all the files in the current directory in it in compressed form, type:

$ zip data *

Note: No need to add .zip extension or suffix as it is added automatically by zip command.
Use the ls command to verify new zip file:
$ ls

To zip up an entire directory (including all subdirectories), type the following command:

$ zip -r data *

unziping files/directories examples

To use unzip to extract all files of the archive pics.zip into the current directory & subdirectories:

$ unzip pics.zip

You can also test pics.zip, printing only a summary message indicating whether the archive is OK or not:

$ unzip -tq pics.zip

To extract the file called cv.doc from pics.zip:

$ unzip pics.zip cv.doc

To extract all files into the /tmp directory:

$ unzip pics.zip -d /tmp

To list all files from pics.zip:

$ unzip -l pics.zip
 

 
Linux - sprawdzanie powierzchni dyskowej folderów i plików

w folderze : du -sh *
Wszystkie foldery (bez rozbijania na podfoldery)

http://www.arturpyszczuk.pl/commands-du.html
 

 
Nasłuch COM4 (w moim przypadku) musi być wyłączone, aby móc sflashować kartę.
 

 
Druga uwaga.. GPO0, aby było wykrywane przez np lualoader wymaga stanu wysokiego do normalnego działania..
ok czas próbować wgrać własne ini.lua
 

 
Główkowałem się o co chodzi dlaczego nie idzie sflashować przecież GPO0 jest w stanie niskim, ale nodeMCU flasher nie widzi coma.
Co się okazało .. trzeba było Reset dać w stan wysoki.
 

 
Przypominajka:
kiedy sypie się #500, a w konsoli dostałem błąd translatora wówczas
php ../composer.phar update
 

 
Commituj tylko te pliki, które są zmodyfikowane (pomiń untracked)

git add -u
it will only stage the modified files.

git commit -a
to commit only the modifications.

http://stackoverflow.com/questions/7124726/git-add-only-modified-changes-and-ignore-untracked-files
 

 
Jeżeli nie możesz przez np.: phpmyadmina usunąć wpisów w tablicy ponieważ blokuje Cie foregin key (klucz obcy), wówczas skorzystaj z:

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE table1;
SET FOREIGN_KEY_CHECKS = 1;
 

 
git update-index --assume-unchanged [path]
 

 
Ostatnio spotkałem się z problemem w Symfony z Doctrinem.
Po wykonaniu flusha $obiekt->getId() zwracał NULL.
Pomogło utworzenie na nowo mapowania i całego entity.

http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

Pomocnym jest temat na stacku:
http://stackoverflow.com/questions/10371600/generating-a-single-entity-from-existing-database-using-symfony2-and-doctrine
 

 
$finder = new DomXPath($doc);
$elements = $finder->query("//*[contains(@data-pnref, 'all']/div//a[@data-hovercard]";

Query odnosi się do całego dokumentu dlatego :
// - czyli obiekt, gdzieś poniżej
* - dowolny tag
[contains - zawiera
@data-pnref - atrybut

/div - childnode w danym obiekcie (z atrybutem data-pnref)

//a - gdzieś głębiej tag "a" posiadający atrybut @data-hovercard
 

 
FB poza username przestało wspierać pobieranie listy friendsów. Zwraca tylko tych użytkowników, którzy zapisali się do naszej appki.
Stworzyłem wczoraj małe obejście tego. Minusem jest to, że pobiera tylko friendsów tych userów, którzy mają swoje kontakty dostępne publicznie.
 

 
Od 30 kwietnia Facebook przestał wspierać API v1.
Podstawową zmianą jest to, że nie zwraca on już username.
Uwaga ta jest dla wszystkich tych, którzy używali 0.3.6 HwiOauth w swoich projektach.
Wystarczy upgrade przy użyciu composera i znowu jesteśmy w grze
Username jest zastąpione przez ID.
 

 
W poprzednim poście pisałem o VS CODE . Nie ma on wsparcia (póki co) dla protokołu FTP.
Stąd zainstalowałem i przetestowałem ciekawy plugin GIT-FTP.

https://github.com/git-ftp/git-ftp
pomoc przy instalce:
http://anantgarg.com/2013/09/25/git-ftp-for-windows/
 

 
Nowość od Microsoftu:
https://code.visualstudio.com/
lajtowy edytor kodu z podpowiedzią składni

Plusy: sublime podpowiada na podstawie wcześniej użytych słów - ten podpowiada na podstawie odpowiednich metod,funkcji itp.
Atom bodajże nie ma wsparcia dla GIT - ten ma.
 

 
Masz projekt w .net, ale nie masz źródeł?
Zdekompiluj dlla dzięki dotPeek od jetBrains (Ci sami od PHPStorma).

https://www.jetbrains.com/decompiler/
 

 
Fajna sprawa z XPATH. Potrzebowałem wyciągnąć tekst z zaznaczonego OPTION w SELECTcie o nazwie devType.

Jak to zrobić? Ano tak:

$dom = new DOMDocument();
@$dom->loadHTML($html3);
$xpath = new DOMXpath($dom);

$options = $xpath->query("//select[@name='devType']/option" );

foreach($options as $option) {
if($option->getAttribute('selected' )=='selected' )
$dev[$x]['typ']=$option->nodeValue;
}

Link z dodatkowymi info: http://manual.calibre-ebook.com/xpath.html

Niestety re:test nie działał u mnie na serwerze
 

 
Akcja po zdarzeniu jakim jest polubienie mojej strony (Like button click)

FB.Event.subscribe('edge.create',
function (response) {
$.post('{{ path('user_dashboard_like' }}',{liked:1})
.success(function(data){
console.log(data);
});
}
);

To samo tyle, że jak ktoś przestanie nas lubić (unlike click)

FB.Event.subscribe('edge.remove',
function (response) {
$.post('{{ path('user_dashboard_like' }}',{liked})
.success(function(data){
console.log(data);
});
}
);
 

 
Ostatnio miałem małe perturbacje z serwisem. Wyrzucał mi 500 z błedem bundla Sensio oraz błąd autoloadera.

Zrobić php composer update --lock
Następnie wyczyścić cache:clear --env=prod
  • awatar petre: @♥cip-cip ♥: nie, dzięki. Nie zależy mi na obserwacji ludzi, których i tak nie interesuje tematyka moich postów ;)
  • awatar ♥cip-cip ♥: https://m.facebook.com/arturszpilkafanpage czy mozesz polubic? bede cie oserwowac :D
Dodaj komentarz ›/ Pokaż wszystkie (2) ›
 

 
Link: http://www.visualstudio.com/downloads/download-visual-studio-vs#d-2010-express
chociaż wersja Community (jest prawie jak PRO) sądzę jest rozsądniejsza (również darmo).
 

 
Miałem pewien problem z tym bundlem do symfony2. Jeżeli user był zalogowany i ponownie klikał w klawisz Logowania poprzez FB wyświetlona została strona, która miała połączyć konta (nie żeby to konto wcześniejsze było kontem FB).
Ok, wygląd brzydki strony, ale chodziło o to, że była mi ona całkowicie niepotrzebna. W głowie w najgorszym razie miałem eventlistenera, który może przekierować stronę zamiast wyrzucać ta Confirmującą, ewentualnie jakiś kontroler.
Udało mi się jednak tego uniknąć. Co znalzałem?
Ano w configu.yml trzeba było dodać:

hwi_oauth:
connect:
confirmation: false

Sprawa załatwiona ! Boom!
 

 
Lista lifecykl events:
http://doctrine-mongodb-odm.readthedocs.org/en/latest/reference/events.html

w moim przypadku wykorzystałem postUpdate:

w services.yml wrzuciłem
event_postupdate.listener:
class: %event_listener.class%
tags:
- { name: doctrine.event_listener, event: postUpdate }


w folderze Acme/UserBundle/Listener dodałem plik EventUpdater.php
public function postUpdate(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$this->em = $args->getEntityManager();
//
if ($entity instanceof Recommendations) {
$changes = $this->em->getUnitOfWork()->getEntityChangeSet($entity);
$newNumOfCat = count(json_decode($changes['categories'][1]));
$oldNumOfCat = count(json_decode($changes['categories'][0]));

if($newNumOfCat>$oldNumOfCat) {
$this->addEvent($entity->getIdSender(), $entity->getId(), 'recom_give';
// $this->addEvent($entity->getIdReceiver(), $entity->getId(), 'recom_receive';
}

}
}

protected function addEvent(\Acme\UserBundle\Entity\User $user, $itemId, $type)
{
$event = new Events();
$event->setUserId($user);
$event->setItemId($itemId);
$event->setType($type);
// $event->setDate(new \DateTime("now");

$this->em->persist($event);
$this->em->flush();
}


O czym trzeba pamiętać !!
jeżeli jest prePersist (preUpdate) to przy próbie dodania Eventa do bazy jest flush czyli zapętlenie całości.
flush próbuje wszystko co jest Persist popchnąć czyli np rekomendacje u mnie, a te zaś będą próbowały dodać event który ma Flusha i tak w koło Macieja skutek ? przeładowanie CPU!

boom !
 

 
Sprawdzanie listy obecnie działających procesów:
ps -aux
uzyskujemy dostęp do PID
strace -p PID
wywala nam info o procesie
 

 
dzisiaj coś co jest wg. mnie bardzo głupie.

$query = $this->getEntityManager()->createQuery('
SELECT r,u
FROM AcmeUserBundle:Recommendations r
JOIN AcmeUserBundle:User u WITH u.id = r.idSender
WHERE r.idReceiver = :id_receiver AND
r.accepted = 0
ORDER BY r.id DESC
' )
->setParameter('id_receiver', $user_id);

Powyższy kod zwraca naprzemiennie obiekt klasy AcmeUserBundle:Recommendations i obiekt AcmeUserBundle:User czyli array(Recommendation, User, Recommendation, User)

Spróbujcie w pętli w Twigu wyświetlić którąś metodę ;]
 

 
Pamiętać!
findBy zwraca tablicę obiektów
findOneBy zwraca obiekt !
 

 
W nawiązaniu do posta: http://petre.pinger.pl/m/21942568

Wprowadziłem ulepszenie. Lista w poprzednim aktualizowała się dopiero, kiedy ktoś zalogowany dał connecta. Teraz po zalogowaniu się do serwisu lista jest pobierana.

Jak to zrobiłem ?
W services.yml do my_user_provider jako argument nr2 dorzuciłem swojego helpera (my_user_helper).

W FOSUBUserProvider w moim bundlu nadpisałem klasę _construct.
public function __construct(UserManagerInterface $userManager, UserHelper $userHelper, array $properties)
{
$this->userManager = $userManager;
$this->properties = $properties;
$this->userHelper = $userHelper;
}

oczywiście trzeba pamiętać o:
use Acme\UserBundle\Helper\UserHelper;

W loadUserByOAuthUserResponse dorzucamy teraz:
$this->userHelper->updateFriendsList($data, $serviceName, $user);
 

 
Padło połączenie i zawisł screen. Jak odzyskać aktywny screen ?

1234.somescreensession (Attached)
There is no screen to be resumed matching 1234.somescreensession.

Wbijamy:
screen -D -r '1234.somescreensession'

http://magp.ie/2012/02/29/how-to-access-attached-screen-after-connection-dropped/

hop siup.
 

 
Ostatnio miałem przeprawę z autoryzacją poprzez FB . Połączyłem bundle FOSUserBundle z HWI.
Opis procesu tutaj: https://gist.github.com/danvbe/4476697
Przyszedł czas na wyciągnięcie listy friendsów i tutaj lipa ponieważ ową listę chciałem dopisać do bazy.

Wpierw chciałem utworzyć klasę HelperUser i wywołać obiekt tej klasy w Providerze (takim jak został opisany wyżej).

Niestety nie miałem dostępu do Doctrine z poziomu HelperUser. Myślałem, że stworzenie DependencyInj. załatwi sprawę, ale niestety Provider nie miał dostępu do Kontenera Serviców.

Co zrobiłem ?

Nadpisałem HWI\Bundle\OAuthBundle\Controller\ConnectController
a dokładnie metodę:
connectServiceAction . Jako, że kontroler ma dostęp do service, mogłem odnieść się do mojego helpera:
if ($currentToken instanceof OAuthToken) {
// Update user token with new details
$this->authenticateUser($request, $currentUser, $service, $currentToken->getRawToken(), false);
$this->container->get('my_user_helper'->updateFriendsList($userInformation->getResponse(), $service, $currentUser);
}

Co ważne. W routing podmieniłem źródła i wyglądały one następująco:
hwi_oauth_security:
resource: "@AcmeUserBundle/Resources/config/routing/login.yml"
prefix: /login

hwi_oauth_connect:
resource: "@AcmeUserBundle/Resources/config/routing/connect.yml"
prefix: /login

hwi_oauth_redirect:
resource: "@AcmeUserBundle/Resources/config/routing/redirect.yml"
prefix: /login

Nie można również zapomnieć o zmianie w firewallu dla resource ownera scope na "email,user_friends".

Od tego momentu możemy w Helperze działać na bazie
 

 
Doctrin w relacji np. OneToMany może wymagać obiektu typu User jako IdOdbiorcy (w moim przypadku) zamiast prostego Integera.
Rozwiązaniem u mnie było :

$sender = $em->getRepository('AcmeRecommendBundle:Users'->findOneById(1);
$message->setIdSender($sender);

Drugą rzeczą był błąd formatu dla daty. Doctrine chciało obiekt, a nie string powstały w wyniku wywołania funkcji: date(Y-m-d).

Rozwiązanie:
$message->setDateSend(date_create(date('Y-m-d H:i'));
 

 
Pobrałem SDK Android.
Utworzenie projektu to pestka z poziomu konsoli, ale dalej może ktoś natrafić na problem.

Po stworzeniu i uruchomieniu emulatora należy:
( http://developer.android.com/training/basics/firstapp/running-app.html )
Change directories to the root of your Android project and execute:
*ant debug*

Ok, ale ANT nie jest rozpoznawane. WTF?
Należy pobrać Ant Apache ze strony:
http://ant.apache.org/
a następnie w zmiennej PATH dodać np:
c:/ant/bin (pamiętać o katalogu BIN !!).
 

 
Pamiętajcie przy aplikacji nie stosować w ścieżce do obrazka nic związanego z AD, ADS etc.
AdBlock załatwi was na cacy ; ) straciłem parę dobrych chwil nim wpadłem na to, że to ten mały konfident wyłączył mi je ; )
 

 
Pierwsze #Porno na #Google #Glass
 

 
API do rozpoznawania twarzy. Dość sporo ciekawych zastosowań. Może być zabawnie
Jakieś pomysły na aplikację?

http://glass.rekognition.com/sdk/
 

 
Ostatnio robiłem skrypt do zliczania ilości cookies na danej stronie.
Wszystko ładnie działało jeżeli stosowałem hosting >5.3
Trafiłem jednak na serwer, gdzie zainstalowana była wersja 5.2.*

#CURL wyrzucał błąd dla followlocation:
*CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in.*

Jeżeli nie ma opcji wyłączenia basedir oraz safe_mode można skorzystać z rozwiązania:

*curl_redirect_exec*

Całość znajdziecie we wpisie:

http://antczak.org/2009/12/curl-rozwiazanie-problemu-z-curlopt_followlocation/
 

 
Ostatnio postanowiłem zaktualizować framework, na którym pracuję #Slimframework do wersji 2.2 i jednocześnie wprowadzić nowszą wersję Twig.

Oczywiście nic nie jest takie proste jak się wydaje. Podłączenie TWIGa skutkowało wyświetlaniem blank page.
Dzisiaj ( po około 2 , może 3 dniach dłubania) udało mi się go uruchomić.

Oto co trzeba było zrobić:

require './lib/Slim/Slim.php';
Slim\Slim::registerAutoloader();
use Slim\Slim as Slim;

// Twig
require './lib/Slim/Extras/Views/Twig.php';
require "Twig/lib/Twig/Autoloader.php";
Twig_Autoloader::register();
use Slim\Extras\Views\Twig as Twig;

$app = new Slim(array(
'log.enabled' => true,
'log.writer' => new \Slim\Extras\Log\DateTimeFileWriter(array(
'path' => './logs',
'name_format' => 'Y-m-d',
'message_format' => '%label% - %date% - %message%'
)),
'view' => new Twig
));

Tadam ! : )

Czego się dzisiaj w jakimś stopniu nauczyłem ? #Namespace. Wstyd się przyznać, że dopiero teraz zaczynam powoli czytać cokolwiek na ten temat, ale lepiej późno niż wcale : )

Ok. Zobaczymy jak pójdzie mi z Idiormem i Parisem : )