- Lekcje praktyczne - http://visualstudiomagazine.com/articles/list/c.aspx
- Lekcje dla użytkowników MS Office - http://office.microsoft.com/en-us/training/FX100565001033.aspx?ION_CL=5970
- Nauka LINQ - http://www.hookedonlinq.com/LINQtoObjects5MinuteOverview.ashx
- Nauka .NET - http://www.beansoftware.com/Tutorials-Articles-Guides/Default.aspx#WebDomains
- Korzystanie z LINQ - http://www.eggheadcafe.com/tutorials/aspnet/19a71927-439b-46d3-a8b4-7147933643f0/linq-to-xml-and-why-you-n.aspx
- Nauka tworzenia PDF w C# z wykorzystaniem biblioteki iText - http://itextsharp.sourceforge.net/tutorial/ch01.html
- Opis kontorlki ‘webbrowser’ w .NET - http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx
- Rozbiegówka do Visual Studio - http://www.microsoft.com/visualstudio/en-us/technicalresources/default.mspx
- SUBSONIC - Kolejny pożyteczny framework do LINQ - http://subsonicproject.com/
- Przewodnik po .NET z InformIT - http://www.informit.com/guides/guide.aspx?g=dotnet&ns=16179
- FAQ z Forms - http://www.syncfusion.com/faq/windowsforms/default.aspx – super lektura
- Edycja danych w tablicy - http://msdn.microsoft.com/en-us/vcsharp/dd239273.aspx
- Inne - http://msdn.microsoft.com/en-us/vbasic/bb735955.aspx
- How do I in C# - http://msdn.microsoft.com/pl-pl/library/ms186211%28en-us%29.aspx
- GridView - http://msdn.microsoft.com/en-us/magazine/cc163933.aspx
- MSDN – czasopismo - http://msdn.microsoft.com/en-us/magazine/cc163933.aspx
- Szkolenie w WCF - http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11#WCFContracts z portalu
- Tworzenie diagramów UC w UML - http://www.developer.com/design/article.php/2109801/Creating-Use-Case-Diagrams.htm
- Podstawy C - http://www.java2s.com/Code/C/CatalogC.htm
- Podstawy C# - http://www.java2s.com/Code/CSharp/CatalogCSharp.htm
- Java w C# – Ja.Net - http://www.janetdev.org/Part1HelloWorldExample/tabid/115/Default.aspx
- Konkretne How do I - http://msdn.microsoft.com/pl-pl/library/bb820885%28en-us%29.aspx
środa, grudnia 09, 2009
Nauka MS
Monitorowanie wydajności aplikacji webowych
Ten problem znany jest od dawna, jednym z rozwiązań jest wtyczka FireBug do FF i częściowo do IE. Ale ostatnio pokazała się aplikacja monitorująca ruch i obciążenie aplikacji internetowych w środowisku IE8. Jest to dynaTrace - http://ajax.dynatrace.com/confirmmail?userId=marekw%40coig.katowice.pl&code=b57c1ff2-b729-4764-b894-69dbb805f1db. Naprawdę potrafi dużo.
WCF
O tym, że WCF jest skomplikowane wiadomo od dawna, trochę światła na to rzuca MSDN - http://msdn.microsoft.com/en-us/magazine/ee532094.aspx?sdmr=wcf&sdmi=topics. I za to trzeba mu podziękować.
Kryptografia – BOTAN
Dobre procedury kryptograficzne zawsze są w cenie. Ostatnio pojawiła się darmowa biblioteka BOTAN w c++jest naprawdę dobra i przenaszalna na różne platformy. Adres – www.botan.randombit.net
Upadek relacyjnych baz danych
Bazy relacyjne podobnie do imperium rzymskiego chylą się ku upadkowi. Zaczyna się ruch NOSQL w postaci otwartych projektów: mongodb, cassandra, CouchDB. Do tego przyczynia się:
- pojawienie aplikacji w chmurze – gdzie bazy relacyjne są zbyt cieżkie (obciążają serwery centralne)
- pojawienie się nowych graczy na rynku aplikacji jak Google czy Amazon i promocja nowych modeli danych jak MapReduce, Hadoop lub CouchDB (w chmurze i bez) do przetwarzania bardzo dużej ilości różnorodnych danych
- potrzeba dostępu hierarchicznego do danych (XQuery i XML) jak to było kiedyś z IMS oraz modelem CODASYL w Cobolu
- rola składnicy danych przenosi się z wyodrębnionych motorów bazy danych do aplikacji CMS (one mają dostęp do bazy wbudowany jak Django, RoR) dla nich baza to jedynie back-end
- potrzeba zapewnienia wersjonowania danych
- wzrost świadomości modelowania danych (język modelowania nie musi opierać się na relacji)
- odzwierciedlenie skomplikowanego świata (gdzie dane nie mają strucktury a są chaotyczne) w sztywnym relacyjnym modelu jest skomplikowane, dlatego przemyca sie dane w dokumencie lub xml (steganografia)
- Zmiana w architekturze komputerowej i przejście z modelu von Neuman na harwardzki
Nowinki
- Comodo nadal daje bezpłatne narzędzia antywirusowe i anty spamowe - http://www.comodo.com/home/internet-security/free-internet-security.php
- Procesory graficzne coraz wyraźniej stają się ważne w komputerach - “Will the GPU become the new CPU”. Do niedawna jeszcze wydawało się, że rynek tanich kart graficznych spowoduje osłabienie ich znaczenia w ogólnej szybkości przetwarzania danych (dodatek do wspierania wymagających gier). Ale tak nie jest z uwagi na wzrost znaczenia szybkiego przetwarzania grafiki w systemach Vista i Windows 7 (juz nie tylko w grach), pojawiające się sygnały o łamaniu kodów i innych zabezpieczeń przy pomocy super wydajnych procesorów graficznych. Gry (oczywiście, patrz inicjatywa Nvidii – CUDA jako oprogramowanie do realnego wykorzystania niesamowitej mocy zmiennoprzecinkowej kart graficznych) jak i nowe systemy operacyjne (Windows 7) a także przeglądarki internetowe (FF i IE 9 mają wykorzystywać akceleratory Direct 2D i DirectX). Inny trend to wyczerpanie możliwości zwiększenia szybkości komputerów wyłącznie przy pomocy a) zwiększenia częstotliwości zegara CPU b) zwiększenia ilości rdzeni. Te dwa sposoby są mało efektywne jeżeli wykorzystuje się je na wysokim poziomie (np. poprzez system operacyjny). Dlatego dopatruje się nadziei w sprzęgnięciu CPU i GPU tak aby na poziomie mikrokodu pracowały współbieżnie (dostrzegł to Intel w projekcie Larrabee gdzie na jednym chipie będzie GPU+CPU. Wydaje się,że czasy gdy karta graficzne była miernikiem do szybkiego grania są za nami.
- MS uczy się szybko, w artykule “Five security lessons learned form Office 2010” opisano sposoby na wzrost bezpieczeństwa najpopularniejszej aplikacji biurowej MS Office 2010, np. wprowadzono własne biblioteki graficzne do JPEG (w Windows Imagining Component poprzez wtyczki - kodeki), jeżeli dokument zawiera niebezpieczne makro to można go otworzyć ale z zablokowanym makrem itd.
wtorek, grudnia 08, 2009
Ciekawe
- Tapety - http://www.vladstudio.com/wallpapers/?start=72&show=24
- Torrenty aktywne z http://lifehacker.com/5415321/:
1. Torrentzap
2. Fenopy
3. ExtraTorrent
4. KickassTorrents
5. BTjunkie
5. Monova
7. isoHunt
8. yourBitTorrent
9. The Pirate Bay
10. ShareReactor
- Nowa oferta Google – obok openDNS – jest ich DNS - http://code.google.com/intl/pl/speed/public-dns/docs/using.html. Obiecują nie tylko przyspieszenie przeglądania ale również większe bezpieczeństwo - http://code.google.com/intl/pl/speed/public-dns/docs/security.html
- Lekarstwo na zabezpieczone PDF - http://lifehacker.com/5419172/freemypdf-liberates-your-pdf-file-from-printing-and-other-restrictions – czyli FreeMyPDF - http://freemypdf.com/
- Użytki dla podróżników z latopami - http://lifehacker.com/5419603/top-10-downloads-for-a-road-warrior-laptop m.in. Display Fusion do zarządzania wieloma monitorami
- Hash Table-do liczenia skrótu - http://www.binaryfortress.com/hashtools/
- ClipBoardFusion - “czyści” schowek z informacji formatujacej - http://www.binaryfortress.com/clipboardfusion/
czwartek, listopada 26, 2009
Super ciekawe
- Wstęp (rozbiegówka) do CAPICOM od MS - http://msdn.microsoft.com/en-us/library/aa388180(VS.85).aspx. Mowa też o części CAPICOM.Utilities. Jeden problem to jak zapisać “skryptowo” plik binarny jakim jest lista CRL np. z Sigillum.
- Jak dostać się do CERTMGR – jest to dodatek do SDK i jest do ściągnięcia stąd.
- Toshiba – jak dostać aktualizację do Windows 7 - http://aps2.toshiba-tro.de/kb0/TSB9902P60000R01.htm
- Transformacja XML poprzez XSL:
- Bez użycia plików - http://www.codeproject.com/KB/cs/xsltrafo.aspx
- Poprzez pliki - http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63
- WinHTTP – bardzo mocne narzędzie do obsługi Internetu poprzez skrypty JS - http://msdn.microsoft.com/en-us/library/aa384071(VS.85).aspx, można nawet podawać swoje akredytacje.
- Ciekawa sztuczka z zapisywanie pod JS plików binarnych - http://www.codeproject.com/KB/scripting/Exsead7.aspx
- Tworzenie wzorca “observer’ w JS - http://www.codeproject.com/KB/scripting/Observer_Pattern_JS.aspx
- Nauka JS dla początkujacych - http://www.codeproject.com/KB/scripting/jsbeginner.aspx
- Kącik C# - http://www.c-sharpcorner.com/Resources/Downloads.aspx
- Testowanie OCSP - http://ocsp.certum.pl/
czwartek, listopada 12, 2009
C dla dzieci
=========
Kid’s corner - http://msdn.microsoft.com/pl-pl/beginner/bb308754(en-us).aspx
C++ corner - http://msdn.microsoft.com/pl-pl/beginner/cc305129(en-us).aspx
Początek C++ - http://msdn.microsoft.com/pl-pl/visualc/ee340952(en-us).aspx
C++ Beginner’s Guide - C++ Beginner's Guide
Video - Introduction to Visual C++ 2008 video
Instalacja - http://www.microsoft.com/express/vc/#webInstall
Blogi - http://www.microsoft.com/visualstudio/en-us/community/default.mspx
wtorek, listopada 10, 2009
Inter Oper
JNI - Java Native Interface
Wg. wiki - http://en.wikipedia.org/wiki/Java_Native_Interface - pozwala na komunikację między aplikacją w środowisku JVM (m.in. podpisanych appletów) ze środowiskiem uruchomieniowym danej platformy). Łącznikiem jest program w C++ lub rzadziej w C.
- Podobny bardzo jest http://en.wikipedia.org/wiki/Platform_Invocation_Services - P/Invoke w .NET.
- Podstawy JNI - http://www.codeproject.com/java/jnibasics1.asp - uruchomienie z Javy funkcji z DLL. Obiecuje autor cz 2 w której pokaże jak przekazywać parametry.
- Bardziej obiecujacy tutorial - http://jnative.free.fr/SPIP-v1-8-3/
- Pełny przykład - http://www.codetoad.com/java_simpleJNI.asp - z tego przykładu wygląda na to, że w Borland C++ dużo łatwiej się przygotowuje DLL.
-
Najbardziej klasyczny i poprawny politycznie przykład pochodzący od samego SUN-a -http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html
-
A oto odpowiedź rywala SUN-a http://www-128.ibm.com/developerworks/edu/j-dw-javajni-i.html
-
technologia JAWIN - demo -> http://jawinproject.sourceforge.net/jawin.html#gettingStarted_demos (wywołanie PPT, czyli sterowanie COM) oraz łącznik do .NET. Besides the COM and Win32 interoperability, Jawin can also be used for in-process interoperability with the Microsoft .NET platform. This can be accomplished because the .NET development tools makes it possible to export .NET objects as COM-objects. If in-process interoperability is not strictly needed, the recommended (and buzzword compatible) way to communicate between .NET and Java services is probably to use webservices. There should be plenty of resources around the Internet and in books, that explains webservices. One starting resource could be WS-I - the Web Services Interoperability Organization. The Userguide - Interoperability with .NET Classes document contains a walk through the simple prof-of-concept net-hello demo.
-
Piękna sprawa - wołanie C# z Java - http://jawinproject.sourceforge.net/jawinuserguide_net.html
JNI - pozwala na b. elastyczną komunikację między JVM i natywną platformą ale wymaga zabiegów po obu stronach (w javie i w C), zawężeniem funkcjonalności i uproszczeniem jest COM wrapper JCOM naprzykład (tutaj przygotowujemy łącznik do obiektów COM tylko w środowisku JAVA).
Tak swoja drogą przydałby się program do kompilacji JAVA z linii poleceń i GUI ale nie RAD.
- Inne projekty – JAWIN - http://jawinproject.sourceforge.net/jawinuserguide_net.html (ciekawa lista odwołań
- The MSDN .NET Framework Developers Guide section about Advanced COM Interop.
- A couple of additional articles about .NET and COM that helped me when writing this part of the Jawin Userguide: An article from CSharpFriends.com Calling .NET From COM, another from C# Help Using C# Classes as COM Objects and one from the C# Corner .NET COM Interoperability - Part 2: Using .NET Components from COM.)
- Budujemy mosty (Sun JAVA<->Ms COM)
- Płatne
- http://www.jacozoom.com/en_home.shtml
- http://www.nevaobject.com/j2cdetails.asp?kw=java%20com%20bridge
- Ten jest bezpłatny - http://danadler.com/jacob/
- Bezpłatny - http://php-java-bridge.sourceforge.net/pjb/examples.php
- http://sourceforge.net/projects/jcom/
- http://sourceforge.net/projects/jacob-project/
- http://www.alphaworks.ibm.com/tech/dtjcb?open&S_TACT=104AHW61&S_CMP=GR&ca=dgr-jw26awdtjcb
- Płatna - http://j-integra.intrinsyc.com/
- Płatne
niedziela, listopada 08, 2009
Co każdy winien wiedzieć o Javie
Technologia:
- JPA - http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html
- EJB 3 - http://www.javaworld.com/javaworld/jw-04-2009/jw-04-lean-soa-with-javaee6.html
- REST - http://www.javaworld.com/javaworld/jw-10-2008/jw-10-rest-series-1.html
- Socket - http://www.javaworld.com/jw-12-1996/jw-12-sockets.html
- HTTPClient - http://www.innovation.ch/java/HTTPClient/
- BC - http://www.java2s.com/Open-Source/Java-Document/Security/Bouncy-Castle/org/bouncycastle/x509/X509Store.java.htm
- Java reference - http://www.informit.com/guides/guide.aspx?g=java&ns=16164:
Gniazdka
Sprawa gniazdek w środowisku serwera proxy jest nierozwiązana w .NET. Inne firmy wspierają ten sposób:
- Metnatlis - http://www.mentalis.org/soft/class.qpx?id=9 (ma jeszcze dodatkowo biblioteki kryptograficzne + wsparcie dla SC)
- StarkSoft - http://www.starksoft.com/prod_proxy.html (ma jeszcze dodatkowo inne biblioteki np. do PGP)
Dinosaur ale jeszcze żyje
Mimo ogłoszenia formalnie smierci Informixa, rozwija się on nadal. Oto jak wyposażono go w możliwość tworzenia usług WS - http://www.ibm.com/developerworks/data/library/techarticle/dm-0902mottupalli/index.html?S_TACT=105AGX54&S_CMP=C1105, oraz pobierania -http://www.ibm.com/developerworks/data/library/techarticle/dm-0910i4glwebservices/index.html?S_TACT=105AGX54&S_CMP=C1105&ca=dnw-1042&ca=dth-i&open&cm_mmc=6272-_-n-_-vrm_newsletter-_-10731_138227&cmibm_em=dm:0:3545753.
SSL w zagrożeniu?
Opublikowano niedawno dane na temat możliwości obejścia zabezpieczeń SSL:
blog autora - http://extendedsubset.com/?p=8
ocena zagrożenia - http://news.zdnet.co.uk/security/0,1000000189,39860592,00.htm?tag=mncol;txt
czwartek, października 22, 2009
Ciekawe w czwartek
- Coś dla ogólnego rozwoju:
- Mono ma sie dobrze, na platformie Linux doczekało się własnego RAD-a – coś w rodzaju Visual Studio - http://www.eweek.com/c/a/Application-Development/Mono-Develop-20-Rivals-Microsoft-Visual-Studio-314772/
- Jak poprawić sobie jakość testowania stron HTML – oczywiście FireBug ale do tego dorzucić trzeba CodeBurner
- Jak dobrze kodować na stronach web:
- wysyłać nagłówek z podaniem kodu strony -
Content-Type: text/html; charset=utf-8 - lub to samo ale jako meta-znacznik -
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> zaznaczenie na serwerze -AddDefaultCharset UTF-8podobnie w pliku XML -<?xml version="1.0" encoding="utf-8"?>
- wysyłać nagłówek z podaniem kodu strony -
Nauka PHP w serwisie SitePoint. Przykładowy index.htm w PHP (uwaga na trzeci parametr w htmlspecialchars):<?php
if (!isset($_REQUEST['firstname']))
{
include 'form.html.php';
}
else3
{
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
if ($firstname == 'Kevin' and $lastname == 'Yank')
{
$output = 'Welcome, oh glorious leader!';
}
else
{
$output = 'Welcome to our web site, ' .
htmlspecialchars($firstname, ENT_QUOTES, 'UTF-8') . ' ' .
htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') . '!';
}
include 'welcome.html.php';5
}
?>Jak uniknąć “wstrzyknięcia” kodu:if (get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
środa, października 21, 2009
Ciekawe…
VFP:
- http://berezniker.com/content/pages/visual-foxpro/retrieve-html-clipboard
- http://foxpro.ntsl119.com/scr/archives/740
- http://www.alvechurchdata.co.uk/hints-and-tips/foxprotips.html
- VFP forum na MS - http://social.msdn.microsoft.com/Forums/en-US/threads/tags?tags=grid
- http://weblogs.foxite.com/vfpimaging//default.aspx
- http://code.msdn.microsoft.com/wcfrestlabs
- http://social.msdn.microsoft.com/Forums/en-US/visualfoxprogeneral/thread/828d5a59-33c1-4a7f-b4c6-3ba852abe982
- Przykład wywołania WS z ActiveVFP - http://activevfp.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33523
- ActiveVFP - http://www.codeplex.com/activevfp – ważne z uwagi na poboczne tematy np. COM
- VFP z F# - http://www.fox4um.com/topic/1217/vfp9-ve-f/
WCF:
- http://code.msdn.microsoft.com/Project/ProjectDirectory.aspx?TagName=WCF
- http://code.msdn.microsoft.com/wcfrestlabs
.NET framework - http://cfx.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog&referringTitle=Home
wtorek, października 13, 2009
Ach te PDF
Firma NitroPDF znana z wielu korzystnych cenowo produktów wypuściła ostatnio nowy produkt Web-to-PDF, dzięki czemu z poziomu przegladarek (za pomocą bookmarkletów lub wtyczek) przetworzyć bieżąca stronę w format PDF i wysłać go np. pocztą). Oczywiście jest tęż tradycyjna droga – wysłania na wirtualną drukarkę typu PDF i otrzymania zamiast wydruku pliku.
środa, września 23, 2009
Nowości Java
Serwis javaworld - kolejne spotkanie (coroczne) na temat języków uruchamianych w środowisku JVM – JVM language Summit. Tutaj głośno o projekcie nowego języka Noop (twórcami są pracownicy Google – jako owoc wolnego czasu jaki daje Google swym pracownikom). Ciekawa inicjatywa ale na razie zupełnie nieskoordynowana i chaotyczna (bez strategii, jak każda inicjatywa odgórna) – może później jak dojrzeje zostanie zintegrowana z polityką Google?
Programowanie:
- Gniazdka - http://www.javaworld.com/jw-12-1996/jw-12-sockets.html?page=3
- Nauka EJB 3 - http://www.javaworld.com/javaworld/jw-04-2009/jw-04-lean-soa-with-javaee6.html?page=3
- Nauka JPA - http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html?page=2
- Nauka REST - http://www.javaworld.com/javaworld/jw-10-2008/jw-10-rest-series-1.html
wtorek, września 22, 2009
Walka przeglądarek
Serwis BETASNEWS słynie ze swych badań nad szybkością przeglądarek internetowych. Ostatnio z uwagi na inicjatywę MS odnośnie udostępnienia Office online postanowiło zmienić (urealnić) nieco metodykę i gamę testów szybkości przeglądarek. Ogólnie mówią najszybszy jest Chrome, potem Safari, dalej Firefox. Opera jest najszybsza w zakresie renderowania stron. Patrz artykuł “All-new test results: What browser will you use to run Web apps?”.
Rozważania na temat programowania
Można podzielić programistów na dwie grupy:
- introwertyków, usiłujących rozwiązać wszystkie napotkane problemy przy pomocy znanej przez nich grupy narzędzi (najlepiej gdy to jest jedno narzędzie np. język Java)
- extrawertyków, szukających do rozwiązania nowych problemów nowych narzędzi lub łączących znane narzędzia do rozwiązania cząstkowych problemów
Ci pierwsi wykorzystując znane im narzędzie dobudowują do niego biblioteki aby sprostać napotkanym przez nich wymaganiom (tak na przykład Java rozbudowana o stronę tworzenia skryptów JavaScript poprzez rusztowania GWT i inne) – robi się wszystko by uniknąć konieczności nauczenia się czegoś ciekawego spoza tematów i narzędzi które się zna. To jest podejście zachowawcze i skutkuje powstaniem kombajnów robiących prawie wszystko ale nie zawsze optymalnie (w przypadku GWT polegamy na generatorze JS nad którym nie mamy kontroli).
Ci drudzy KOMBINUJĄ tzn. szukają narzędzi odpowiednich dla rozwiązania problemów cząstkowych i łączą je w strumień. Taka idea przeświecała powstaniu Unixa – słynne pojęcie “PIPE” . Dzięki temu problem jest rozbity na części. Każda cześć jest rozwiązana przy pomocy najbardziej optymalnego środka.