RSS
poniedziałek, 20 stycznia 2014
PowerBuilder - dostosowanie środowiska - kolory

 

PowerBuilder, jak zresztą większość środowisk programistycznych instalowany jest bardzo jasną paletą kolorów w edytorze (białe tło, ciemne litery). Niektórym to jak najbardziej pasuje, dla mnie wszystko jest nieco za jasne i zmiana konfiguracji PB (kolorystyki edytora) to jedna z pierwszych rzeczy jaką robię na nowym komputerze.

 

Moje środowisko wygląda tak:

 

PowerBuilder - dostosowanie środowiska - kolory

 

Bardzo podobnie skonfigurowane mam VisualStudio, Xcode i TOADa.

 

Po dostosowaniu środowiska do naszych potrzeb, najlepiej jest zarchiwizować plik konfiguracyjny PB, jeśli nie cały to chociaż sekcje odpowiedzialne za ustawienia edytora. Konfiguracja środowiska dla użytkownika zapisywana jest a pliku użytkownika pb.ini (nie pliku pb.ini odpowiedzialnym za konfiguracje ogólną PowerBuilder-a znajdującego się w folderze: c: \Program Files (x86)\Sybase\PowerBuilder 10.5).

 

W systemie Windows 7 i w przypadku PowerBuilder-a 12.5 jest to:

 

C:\Users\\AppData\Local\Sybase\PowerBuilder 12.5\pb.ini

 

W przypadku Windows-a 7 I PowerBuildera 10 jest to:

 

c:\Users\\AppData\Local\VirtualStore\Program Files (x86)\Sybase\PowerBuilder 10.5\pb.ini

 

Moje kolory i czcionka poniżej. Wszystko można skopiować do pliku pb.ini, jednak w momencie zmiany kolorów moje komentarze dodane po prawej zostaną usunięte.

 

EditorFontHeight=8

EditorFontName=Consolas

EditorFontBold=0

EditorFontItalic=0

EditorFontStrikeOut=0

EditorFontUnderline=0

EditorFontFixed=0

EditorColor=15780518 0            --Editor font, text color, text background

EditorColor0=33554432 1073741824  --Coloring, White Space

EditorColor1=65280 1073741824     --Coloring, PowerScript Keyword

EditorColor2=16711935 1073741824  --Coloring, PowerScript Datatype

EditorColor3=65535 1073741824     --Coloring,Integer Literal

EditorColor4=65535 1073741824     --Coloring, Float Literal

EditorColor5=16776960 1073741824  --Coloring, Float Literal

EditorColor6=255 1073741824       --Coloring, Date Literal

EditorColor7=255 1073741824       --Coloring,  Time Literal

EditorColor8=16776960 1073741824  --Coloring, String Literal

EditorColor9=65535 128            --Coloring, Symbol

EditorColor10=33554432 1073741824 --Coloring, Invalid Text

EditorColor11=255 1073741824      --Coloring, Identifier

EditorColor12=12639424 1073741824 --Coloring, Jump Label

EditorColor13=255 1073741824      --Coloring, Comment

EditorColor14=16776960 1073741824 --Coloring, Invalid string

EditorColoring=1                  --Coloring, Enable Syntax Coloring



czwartek, 16 stycznia 2014
Jak ominąć pytanie o powód restartu / wyłączenia serwera Windows?

 

Jeśli z jakiegoś powodu chcemy pozbyć się okienka pojawiającego się przy zamykaniu systemu Windows (mamy z nim do czynienia raczej w instalacjach enterprise) pytającego o powód wyłączenia lub restartu (tzw. Shutdown Event Tracker) to możemy to zrobić na kilka sposobów:

- modyfikując polisy serwera,

- modyfikując rejestr,

- wyłączyć bądź zrestartować komputer z wykorzystując linii komend.

 

1. Modyfikowanie polisy serwera.

 

Należy w tym celu otworzyć konsole zarzadzania polisami systemu i przejść do:

Computer Configuration > Administrative Templates > System

 

i na liście odnaleźć i zablokować opcję: Display Shutdown Event Tracker

 

Niestety nie korzystam z polskojęzycznej wersji systemu Windows i jeśli ktoś mógłby przesłać mi nazewnictwo w/w pozycji w polskiej wersji OS i zrzuty odpowiednich ekranów, byłbym wdzięczny.

 

2. Modyfikując rejestru systemu:

 

Do wyłączenia / pominięcia pytanie możemy wykorzystać odpowiednio przygotowany plik rejestru Disable_Shutdown_Event_Tracker.reg:

 

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]

"ShutdownReasonOn"=dword:00000000

 

 

A do ponowne włączenia możemy wykorzystać plik Enable_Shutdown_Event_Tracker.reg:

 

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]

"ShutdownReasonOn"=dword:00000001

"ShutdownReasonUI"=dword:00000001

 

3. Wywołać wyłączenie / restart systemu z linii komend tak jak pokazuje to poniższy przykład:

 

> shutdown /r /t 0

 

gdzie:

/r - restart (/s - shutdown / wyłączenie)

/t 0 - natychmiast

 

Dokładną składnie polecenia można sprawdzić wydając komendę:

 

> shutdown /?

 

Zmiana odpowiednich ustawień możliwa jest również z wykorzystaniem PowerShell-a, zdecydowałem się jednak na jej pominięcie gdyż może się ona wiązać z koniecznością instalacji dodatkowego oprogramowania.
środa, 11 grudnia 2013
PowerBuilder 15 - Wersja beta dostępna!

 

Wersja 15 beta PowerBuildera została udostępniona. Pobrać ją można (po rejestracji) z poniższego adresu: http://service.sap.com/~sapidb/011000358700001120572013E.

 

Do pobrania potrzebny jest tzw. S-User SAP, jeśli takowym nie dysponujesz możesz sie samodzielnie zarejestgrować na stronie SAP:  http://service.sap.com.

 

wtorek, 03 grudnia 2013
PowerBuilder 15 - najnowsze wiadomości z Niemiec (UPDATE)

 

Update: 4 Grudnia 2013


Powrócili dziś emisarjusze z Niemiec z najnowszymi informacjami na temat nowego PowerBuildera. Najważniejsze z nich poniżej

  • SAP zapowiedziało 8-letnie wsparcie dla PowerBuilder,
  • PowerBuilder 15 powinien być dostępny w ciągu 14 tygodni (okolice Marca 2014),
  • nie powiedziano nic na temat kolejnych wersji 15+ środowiska,
  • SAP nie podjeło jeszcze decyzji co zrobic z PB.NET, najprawdopodobniej zostanie on porzucony jako niewykorzystywany.

 

Ogólnie wrażenia uczestników są raczej mieszanie. Nie wyglądało na to, iż SAP traktuje produkt poważnie i że ma w stosunku do niego jakies istotne plany, a raczej na to, że przez kilka kolejnych lat będzie wspierało tą technologie aby nie "zirytować" obecnych klientów wśród których są dość poważne firmy i instytucje rządowe wielu krajów.

 

Sporo pozytywnych wypowiedzi dotyczyło innych prezentowanych rozwiązań i technologii:

  • rozszerzenie Reporting Definition Language dla PowerBuilder-a oparte o rozwiązania Microsoftu,
  • Visual Expert 7, umożliwiający analizę kodu PB w obecnej wersji nawet współdzielonego między aplikacjami. Wersja ta oferuje również wsparcie dla ciągłej integracji (ang. continuous integration), co może okazać się bardzo przydatne jeśli ktoś chciałby ją wykorzystać przy okazji np. wykonywanych co noc buildów aplikacji. W tym wypadku mozliwe jest również określenie zasad dotyczących kodu i generowanie raportów informujących o niezgodnościach. Na tym etapie wersja 7 nie oferuje analizy kodu PL/SQL.
  • Appeon umożliwiający tworzenie aplikacji mobilnych z wykorzystaniem PowerBuilder-a.

 

 

3 Grudnia 2013



Poniższe kilka informacji na temat “nowej” wersji PowerBuildera które zostały ogłoszone na spotkaniu użytkowników PowerBuildera w Niemczech przez Robyn Chan (Senior Vice President - Head of Mobile Platform) i Michaela Redforda (PMP Business Information Technology, Products and Innovation)

 

Zapowiedziane możliwości PowerBuildera 15:



  • wsparcie dla platform 32 i 64 bitowych,
  • OData,
  • SQL 2012,
  • Oracle 12,
  • Windows 8,
  • .Net 4.5,
  • zapowiedziane już dość dawno dokowalne okna (ang. dockable windows).

 

Nie jest jasne jeszcze, kiedy udostępniona zostanie nowa wersja środowiska.

 

Więcej informacji na temat przyszłej (i następnych) wersji PB można znaleźć na stronie Bruca Armstronga (strona w jezyku angielskim).

czwartek, 28 listopada 2013
PowerBuilder i „drukowanie” do PDF z wykorzystaniem GhostScript-a

 

PowerBuilder od jakiegoś już czasu oferuje „drukowanie” / zapisywanie obiektów dataindow jako PDF:

 

ll_rc = dw_report.saveas(ls_filename, PDF!, false)


Aby powyższa komenda działała poprawnie musisz zainstalować GhostScript w dwóch miejscach:

 

C:\Program Files (x86)\Sybase\gs
C:\Program Files (x86)\Sybase\Shared\PowerBuilder\gs

Tak naprawdę chodzi tu o umieszczenie w wyżej wymienionych folderach plików runtime GhostScript-a, przy czym lokalizacja druga wymagana jest jedynie w przypadku instalacji i wykorzystywania na danej maszynie środowiska programistycznego PowerBuilder-a.

My wykorzystujemy GhostScript w wersji 8.7.1. Nie jest to najnowsza dostępna wersja, ale działa ona bez problemów z PowerBuilder-em 11/12/12.5 na systemach Windows XP oraz Windows 7. Znajdziecie ją w archiwach GhostScript-a: http://downloads.ghostscript.com/public/.


poniedziałek, 25 listopada 2013
PowerBuilder i znaki specjalne

 

Niedawno kolega spytał mnie, co w kodzie PowerBuilder oznaczają znaki ~t. Zaskoczył mnie nieco, ponieważ myślałem, że każdy kto programuje w PowerBuilderze kombinację tą i inne zna.

 

Wszystkie, które znam i z których korzystam poniżej:

~t  - znak tabulacji,
~r - powrót karetki,
~n - znak nowej linii,
~b - znak backspace,
~' - znak apostrofu w ciągu ograniczonym apostrofami,
~" - cudzysłów w ciągu ograniczonym cudzysłowami,
~~ znak tyldy.

Nieco mniej popularne to:

& - umożliwiający rozbicie długiej komendy na kilka linii,

; - umożliwiający umieszczenie kilku komend w jednej linii. Sam nigdy nie zwróciłem na to uwagi, ale koledzy powiedzieli mi, że zdecydowanie go nadużywam. Nie  umieszczam zwykle kilku komend w jednej linii, ale ponieważ programuje w językach, gdzie średnik jest separatorem poleceń, dodaję go na końcu chyba już odruchowo. Kompilator nie protestuje więc nie zwracam na to uwagi :)

PowerBuilder udostępnia jeszcze inne, mniej popularne i nieużywane przeze mnie kombinacje takie jak: ~v, ~f, ~h##, ~o###, ~###. Nie będę tu ich opisywał, zainteresowani mogą zajrzeć do pomocy PB :).




niedziela, 24 listopada 2013
PowerBuilder żyje?

 

Możliwe, iż jest jeszcze nadzieja dla PowerBuilder-a. 3 Grudnia 2013 (żeby nie było żadnych wątpliwości) na spotkaniu użytkowników PB - PowerBuilder User Group Germany - PBUGG przedstawiciele SAP* mają zaprezentować oficjalną mapę drogową PowerBuilder-a (PowerBuilder Roadmap). Jak tylko będę miał szczegółowe informacje z PBUGG opublikuję je.



*Robyn Chan Senior Vice President, Head of Mobile Platform, SAP AG oraz Michael Redford PMP Business Information Technology, Products & Innovation, SAP AG


środa, 13 listopada 2013
PowerBuilder i automatyczne numerowanie / wersjonowanie build-a

 

Zarówno problem jak i zaprezentowane rozwiązanie to nic nowego, znalazłem je gdzieś kiedyś na Google Groups i wielokrotnie wykorzystywałem w przeszłości. Nie udało mi się niestety ponownie znaleźć linka źródłowego.

 

Przedstawione podejście umożliwi nam automatyczne wersjonowanie buildów naszej aplikacji.  Przykład poniższy bazuje i zmienia jedynie numer builda, ale możemy go rozbudować zgodnie z naszymi wymaganiami.

 

Kroki konieczne do implementacji to:

 1.   Utworzenie nowego obiektu NVO „non visual” (klasy), w przykładzie będzie to n_buildno. W zależności od potrzeb obiekt nasz możemy zdefiniować, jako „statyczny” - AutoInstantiate, bądź nie.
 2.   Dodanie do obiektu dwóch zmiennych „instancyjnych” (instance variables):

 

integer II_BUILD_NUMBER = ProfileInt("build.ini", "version_control", "build", 1)
PRIVATE:
integer II_DUMMY = SetProfileString("build.ini", "version_control", "build", &
                                    string(ProfileInt ("build.ini", "version_control", "build", 1)+1) )

 

 3.   Utworzenie, w katalogu projektu, pliku build.ini z wymaganą przez nas początkową wartkością X numeru builda build=X. Wartość zapisywana odczytywana jest z sekcji version_control. Możemy również utworzyć pusty plik. W tej sytuacji aplikacja ustawi numer pierwszego builda na 1.

 

PowerBuilder i automatyczne numerowanie / wersjonowanie build-a



Zamiast pliku INI, do przechowywania informacji o wersji naszej aplikacji, można wykorzystać np. rejestr bądź nawet bazę danych. Mimo, iż każde z tych podejść oparte jest na powyższym rozwiązaniu, implementacja każdego z nich jest nieco bardziej skomplikowana.

Po tych zmianach, po każdej kompilacji obiektu n_buildno wartość zmiennej II_BUILD_NUMBER będzie odpowiednio zwiększana i reprezentowała będzie aktualny numer builda.
Rozwiązanie to działa dzięki temu, iż PowerBuilder ewaluuje wartości przypisywane do zmiennych podczas kompilacji.

 

Przykładowe pokazuje poniższa linijka kodu:


st_buildno.text = "Build #: " + string(gn_buildno.II_BUILD_NUMBER)

 

gdzie gn_build no jest zmienna globalna zadeklarowana następująco:

 

n_buildno gn_buildno
środa, 30 października 2013
Problemy z Visual J# i .NET 4

 

Po restrukturyzacji projektu na mojej maszynie, podczas kompilacji, zacząłem otrzymywać poniższy błąd związany z biblioteka vjsnativ:

Unable to load DLL 'vjsnativ': The specified module could not be found.

Co prawda sam, bezpośrednio z J# nie korzystam, ale StarTeam SDK, kluczowy w moim projekcie, już tak.

Pamiętam, że błąd widziałem już wcześniej, ale nie mogłem skojarzyć, co zrobiłem, aby go rozwiązać. Zacząłem od reinstalacji Visual J#, która pobrałem ze stron Microsoftu (link znajdziecie na końcu postu). Niestety jednak, nie pomogło mi to w niczym. Błąd występował w dalszym ciągu.

Krótkie poszukiwania w Internecie pokazały, że nie jestem jedyna osobą borykającą się z tym problemem. Najwidoczniej Microsoft usunął J# z frameworku.NET 4 i nowszych.

Ciekawy post, opisujący szerzej problem i jedno z jego rozwiązań, znajdziecie tutaj:
http://blogs.windwardreports.com/davidt/2011/02/calling-j-code-from-net-40.html.

Ja postanowiłem zrobić, coś jeszcze prostszego. Do wszystkich projektów wykorzystujących StarTeam SDK dodałem bibliotekę vjsnative.dll i we właściwościach pliku ustawiłem jej kopiowanie do folderu docelowego. Dzięki czemu mamy pewność, że aplikacja będzie działała bez problemów.



Problemy z Visual J# i .NET 4

Biblioteka Microsoft Visual J# może być ciągle pobrana ze stron Microsoftu:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4712.


środa, 23 października 2013
Raspberry Pi – usunięcie serwera Apache2

Cała operacja jest bardzo prosta.

Przed usunięciem serwera, musimy go zatrzymać wykonując z konsoli polecenie stop:

 

$ sudo service apache2 stop

 

Następnie usuwamy sam serwer i wszystkie powiązane z nim moduły:

 

$ sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
$ sudo apt-get autoremove --purge

 

Jeśli modyfikowaliśmy naszą instalację, powinniśmy jeszcze sprawdzić, czy nie musimy usunąć
czegoś ręcznie. Możemy to sprawdzić przeglądając zawartość katalogów pozostałych
po instalacji:

 

$ whereis apache2

 

Pozostałości musimy oczywiście usunąć ręcznie:

 

$ sudo rm -Rf folder1 folder 2 folder3 ...

 

1 , 2 , 3 , 4 , 5 ... 16
Tagi




PowerBuilder Tetris
D - Tetris



Programowanie iOS

C# ToolBox

SQL / TSQL / PLSQL ToolBox

Linux / Unix ToolBox





Zaprzyjaznione Strony

Sprite Bandits

Cake Time