Programarea in .NET – partea a 17-a Rapoarte in ASP.NET –Windows Forms

Haideti sa repetam ceea ce am facut in
ASP.NET pentru WindowsForms

Deschideti Book.sln, adaugati o noua forma
in proiect(frmPublisherPrint.cs) si trageti ReportViewer in forma.(Daca nu il
gasiti, click dreapta in Toolbox, alegeti “choose items” , cautati ReportViewer
din namespace-ul Microsoft.Reporting.WinForms si selectati-l

 

 

 

Adaugam raportul existent prin click
dreapta pe BookWin

 

Va duceti in BookWeb, alegeti din casuta
“Files of type” ultima selectie “All files” si selectati rptPublisher.rdlc.

Acum click pe el si in fereastra de
proprietati alegeti la “Copy to output directory “ “Copy always”

 

 

 

 

Bun – acum au ramas 3 lucruri de facut :
vizualizarea formei ca actiune, legarea controlului de raportul existent si
codul de incarcare a datelor in raport.

 

Pentru vizualizarea formei ca actiune
adaugati un buton btnPrint in frmPublisherList iar pe eveniment scrieti
urmatorul cod:

private void
btnPrint_Click(object sender, EventArgs e)

{

frmPublisherPrint
p = new frmPublisherPrint();

p.ShowDialog(this);


}

 

Pentru legarea controlului vom seta la
proprietati calea catre raport(presupunem ca se va afla in acelasi folder) si
processing mode la local

 

Ultimul lucru de facut – incarcarea
colectiei pe evenimentul de load :

rivate void
frmPublisherPrint_Load(object sender, EventArgs e)

{

BookObjects.ColPublisher
publishers = new BookObjects.ColPublisher();

publishers.Load();

MessageBox.Show(“”+publishers.Count);

ReportDataSource
rds = new ReportDataSource(“DataSet1_Publisher”, publishers);

rptPublisher.ProcessingMode = ProcessingMode.Local;


rptPublisher.LocalReport.DataSources.Clear();


rptPublisher.LocalReport.DataSources.Add(rds);

rptPublisher.LocalReport.Refresh();

rptPublisher.RefreshReport();


}

( exact acelasi cod ca la Web, in afara
liniei :

 

Ea previne cazul( des intilnit) in care
editorul IDE adauga , cu de la sine putere, un
ReportDataSource .

Ceea ce se va infatisa va fi:

 

 

 

 

 

Ce mai e de facut

1)frmPublisherPrint sa nu mai afiseze ce
vrea ea – ci sa primeasca un argument(in constructor, de exemplu) care sa spun
ce lista de publisher-i are de afisat

2) Avind in vedere ca rapoartele sunt
aceleasi pentru Windows si Web , ar fi interesant de facut un dll care sa
intoarca raport – ul cerut

 

From Journeyman to master – 90% din ceea ce trebuie sa stie un programator

Am fost impresionat de
The Pragmatic Programmer – From Journeyman to Master
.

Nu este o carte de programare .NET – dar este o carte EXCEPTIONALA de programare

Iata cum incepe :

Programming is a craft. At its simplest, it comes down to getting a computer to do what you want it to do (or what
your user wants it to do). As a programmer, you are part listener, part advisor, part interpreter, and part dictator.
You try to capture elusive requirements and find a way of expressing them so that a mere machine can do them
justice. You try to document your work so that others can understand it, and you try to engineer your work so that
others can build on it. What’s more, you try to do all this against the relentless ticking of the project clock. You work
small miracles every day.

Daca nu ati citit-o, cumparati-o sau cereti cunoscutilor o copie. E o carte de referinta.

Din partea mea avind in vedere ca “The limits of language are the limits of one’s world.(Ludwig Von Wittgenstein) “(citat din aceeasi carte)
o sa scriu citeva tehnici din carte, alaturi de modalitati de a le realiza prin .NET

The Cat Ate My Source Code

Citat : “If the disk crashes—taking all of your source code with it—and you don’t have a backup, it’s your fault. Telling your
boss “the cat ate my source code” just won’t cut it.”

Comentarii : orice solutie de Source safe, backupuri

Software Entropy

Citat :”Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it
is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the
offending code, or display a “Not Implemented” message, or substitute dummy data instead. Take some action to
prevent further damage and to show that you’re on top of the situation.”

 Comentarii : puteti face asa ceva si cu atribute pe cod sursa http://en.csharp-online.net/Attributes

Orthogonality

Citat :”Two or more things are orthogonal
if changes in one do not affect any of the others. In a well-designed system, the database code will be orthogonal to
the user interface: you can change the interface without affecting the database, and swap databases without changing
the interface.”

Comentarii  :
Strongly Typed Dataset
(http://msdn.microsoft.com/msdnmag/issues/04/12/DataPoints/),
3-tier development

Reversibility

Citat :
“But you said we’d use database XYZ! We are 85% done coding the project, we can’t change now!” the
programmer protested. “Sorry, but our company decided to standardize on database PDQ instead—for all
projects. It’s out of my hands. We’ll just have to recode. All of you will be working weekends until further
notice.”

Comentarii :
Pentru cazul de mai sus puteti folosi
NHibernate
, de ex. sau orice alt
ORM
(http://weblogs.asp.net/yreynhout/archive/2003/10/07/30798.aspx
)

The Power of Plain Text

E normal ca unele date de test sa fie in text – iar avind in vedere usurinta cu care .NET
(de)serializeaza
(http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)
in XML – e usor de facut.

Shell Games

Aici avem
power shell
(http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx)

Power Editing


Nu mai zic nimic despre
IDE de VS Express
– e free si destul de puternic.

Source Code Control

E normal de folosit pentru backup si revizuire de istoric aici standardul pina acum e SourceSafe … dar CVS si Subversion vin din urma puternic

Debugging


VS Ide
face o treaba buna – fie in ASP.NET, fie in Windows Forms

Text Manipulation

Avem expresii regulate
pentru aceasta – pentru mine au fost de ajuns.

Code Generators

Sunt atitia ca mi-e greu sa decid. CodeSmith
desigur, apoi cautati pe Google http://www.google.com/search?q=code+generator+.net&start=0

Pe de alta parte, pentru compilare de cod in Runtime plecind de la fisiere avem compilatoare gata pregatite , vezi, de exemplu ,
csharpcodeprovider
(http://msdn2.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx)
si pentru generarea rapida avem
DynamicMethod
Class (http://msdn2.microsoft.com/en-us/library/system.reflection.emit.dynamicmethod(vs.80).aspx)

Design by Contract

Intr-o privinta , avem interfetele.Dar in ce priveste preconditiile si postconditiile, stam cam prost.Exista
Eiffel
http://www.eiffel.com/products/eifaspnet/index.html care implementeaza WebService prin DBC … dar cam atit.

Dead Programs Tell No Lies


E usor in teorie – cu throw si definirea de
Exceptii
(http://msdn2.microsoft.com/en-us/library/aa309092(VS.71).aspx)
Mai greu este de facut.

Assertive Programming


Avem debug.Assert pentru aceasta.

How to Balance Resources

Sfaturi generale referitoare la cine e raspunzator de ce resurse- mai ales de cele
care nu se “elibereaza” singure -handlere de fisiere, etc .

Va trebui sa cititi intreg articolul de
aici
(http://www.bluebytesoftware.com/blog/PermaLink.aspx?guid=88e62cdf-5919-4ac7-bc33-20c06ae539ae)despre IDisposable
sau macar articolul pe scurt de
aici
http://www.atalasoft.com/cs/blogs/stevehawley/archive/2006/09/21/10887.aspx

Metaprogramming


Puteti folosi
atribute
pentru acest lucru (http://www.codeproject.com/csharp/dotnetattributes.asp) sau sa generati automat clase si sa le compilati la runtime( vezi mai sus CodeGenerators)

Workflow – vine in curind Windows Workflow Foundation (WF) http://wf.netfx3.com/

It’s Just a View


Despre evenimente in .NET s-au scris mult.

Gasiti rapid
aici
o referinta usoara de utilizat http://msdn2.microsoft.com/en-us/library/system.eventhandler(VS.71).aspx

Blackboards 
ramine de facut …se incumeta cineva?

Code That’s Easy to Test

folositi NUnit sau
Testele
din VSTS

Inca o data , faceti rost de ea si cititi-o!

cotidianul, paleologu si enervari

Iau in fiecare miercuri Cotidianul-pentru cartea pe care o da. E singura carte non tehnica care reusesc sa o mai citesc.
Dar, odata cu ea , vine si Cotidianul cu Job-uri -iar articolul care m-a provocat se gaseste online aici : http://www.cotidianul.ro/index.php?id=6961&art=336&cHash=f0c7e55825

Zice Theodor Paleologu:
“Parerea mea este ca arta diplomatiei consta in atentia la detalii, care
pot aparea triviale la prima vedere, dar care, prin acumulare, inseamna
foarte mult. Eu sint foarte atent la aceste detalii, de exemplu cum
este fata de masa sau cum sint tacimurile, pentru ca toata aceasta
logistica a reprezentarii asaza o tara acolo unde i se cuvine.
Diplomatia este ca un roman tolstoian: o acumulare de detalii.”
Sunt de acord cu ultima fraza,mai ales ca orice meserie, facuta bine , este o acumulare de detalii. Dar – NU de tipul tacim pentru un ambasador. Ducind la extrem ceea ce zice , imi vine sa il intreb: Dar sub masa v-ati uitat? Dar la toaleta e pusa hirtia igienica?
Ideea ar fi ca de aceste detalii ar trebui sa se ocupe altcineva – un altcineva ales bine – raminind ca ambasadorul sa se ocupe de oameni si de relatii

Si mai zice el:
“Eu am avut norocul de a ma naste intr-o familie de diplomati si am
invatat de la tata si mai trebuie sa spun ca invatatura de baza intr-o
asemenea meserie este cea de acasa. Sint multe situatii in care acest
esential „savoir faire“ social conteaza mai mult decit orice
“
Oh da. Sunt convins ca cei 7 ani de acasa sunt esentiali -si ca nu poti fi adevarat diplomat fara asta
Dar parerea mea este ca asta e strictul necesar. Draga dnule Paleologu – daca afirmatia dvoastra e adevarata (ca “invatatura de baza intr-o
asemenea meserie este cea de acasa” )- ar trebui sa facem un sistem de casta in Romania- nu poti deveni ambasador daca tatal tau nu a fost. Si mai pun o intrebare: Dar pe primul ambasador cine l-a educat ?

dilema veche si Gilceava la Romani

Andrei Plesu despre Uzul parlamentar al limbii ca de obicei, la obiect:
“ţara a fost condusă, în mai toţi anii fragedei noastre democraţii, de o
maşină de vot fără chip, activă, între două aţipeli, pe fundalul
lătrător întreţinut de cîţiva demagogi.”
Da-  vezi legea noua pe care incearca sa o strecoare PSD-ul .Ma face sa ma duc la vot!

Cristian Ghinea scrie un articol memorabil,Preşedintele jucător a fost trimis la vestiare
“Practic, preşedinţii României nu mai au acum nici un cuvînt de spus în
modul în care arată guvernele. Curtea Constituţională i-a acordat
preşedintelui dreptul de a face gălăgie la Cotroceni, dar nimic mai
mult de atît.”
Macar atit sa fie …Geoana m-am enervat cu declaratia ca v-a repeta suspendarea daca Basescu nu se potoleste …Dar, in ipotezele lui, faptul ca populatia il vrea nu inseamna nimic???Si daca se organizeaza 5 suspendari/referendumuri  nu inseamna nimic pentru PSD?

Sever Voinescu , Note despre puterea Americii
“Mai mult, mulţumesc lui Dumnezeu că trăiesc într-o lume în care, dacă
tot trebuie să existe o singură mare putere, aceea e SUA. O lume
dominată de Germania lui Hitler, de URSS ori de China ar fi un coşmar
pe care nu vreau să îl trăiesc.”
Si eu la fel…

Vitila Mihailescu este savuros in Ţăranul de stînga şi brînza de dreapta
[prietenul] “Ca vechi funcţionar european, îmi zîmbeşte diplomatic: „Ei, toată
psihoza asta cu brînza voastră a fost şi puţin întreţinută… a picat
tare bine pentru nişte mari companii de lactate… De fapt, nu e chiar
aşa, este şi o mare doză de lipsă de informare… poate de
dezinformare…“. Şi zîmbeşte din nou.”
Asta cu zimbitul … deci stie, dar nu vrea sa faca nimic. De ce ar face ? Nu il priveste – deocamdata….Dar va mai ramine cineva?

Si iar:

“– Bine, dar ăştia despre care zici tu că ar trebui să dispară sînt cam
jumate din populaţia ţării! încep eu să devin avocatul celor oropsiţi.

– Asta e! mai repetă colegul, cu un fatalism neomioritic, pe care el îl numeşte, nu ştiu de ce, neo-liberal.
“

Cezar Badescu in Fotografie cu monstru are  2 citate pe care nu le stiam:
“„Totul este permis pentru a-ţi mări profiturile“ – spune fondatoarea
The Body Shop. Milton Friedman este de părere că e o prostie să ai
pretenţia ca o corporaţie să fie responsabilă social. Iar psihologul
Robert Hare, analizînd totuşi corporaţia ca o persoană, ajunge la
concluzia că aceasta „prezintă toate caracteristicile unui psihopat“. “

Daca aveti timp si rabdare, cititi si Danel Daianu ,Politica strîmbă loveşte societatea
( de ce toti oamenii destepti au fost securisti ? Raspuns posibil : pentru ca , dupa marea exterminare a intelectualilor din 47-55(parca asta era intervalul), la comanda au ajuns doar securisti – si care tineau cu dintii de posturi – si ca sa ajungi undeva , trebuia sa devii securist . )

Robert Turcescu este dragut in dezamagirile lui referitoare la O lume mică
“Spania şi, lîngă ea, toate celelalte locuri despre care, cîndva,
desenam semne de întrebare devin deodată halte comune pentru
personajele vieţii cotidiene. Cînd ai de ales între a merge în Spania
sau la Rîmnicu Vîlcea, cu plecare din acelaşi loc, înţelegi, mai bine
ca oricînd, că lumea a devenit, într-adevăr, mică.”

Intrebare de cunostinte IIS…

Am vrut sa pun o suita de fisiere intr-un director pentru a fi downloadate. Fisierele erau Word(.doc) si Outlook(.msg). Am facut o pagina in care citea ce fisiere sunt in directorul curent si le lista cu marime si data( stiu, se putea face si prin setarea de DirectoryBrowsing …)
Pun la mine fisierele, verific ca pagina afiseaza lista de fisiere si ca merge download-ul.Totul OK
Pun fisierele pe site- verific ca pagina afiseaza lista de fisiere , dar download la .doc merge, la .msg da eroarea 404.
Nu e vorba de permisiuni- fisierele au aceleasi permisiuni.
Care e problema?Cum puteti identifica?
Raspunsul- vedeti primul comentariu. Dar mai intii, ginditi-va un pic…

PROGRAMAREA IN .NET – PARTEA A 16-A RAPOARTE IN ASP.NET

Orice aplicatie trebuie sa aiba posibilitatea de a tipari
datele. Pentru aceasta in VS2005 Express se poate folosi componenta Report
Viewer care e free si se poate downloada de la http://www.gotreportviewer.com.

Dupa ce o instalati, o sa aveti in toolbox
urmatoarea componenta:

 

 

Acum adaugam un raport care sa fie afisat
de catre aplicatie – deschidem aplicatia Web si adaugam un nou item de tipul
Report si il numim rptPublisher.rdlc :

 

 

Acum adaugam un nou datasource apasand pe
Add New DataSource

 

 

In ecranul urmator apasam pe NewConnection
si selectam baza noastra de date:

 

Putem salva conexiunea in Web.Config(desi o
mai avem) si apasam Next. Pe urmatorul ecran lasam selectat “Use SQL
Statements” si iarasi Next. Acum scriem codul pentru SQL:

 

SELECT IDPublisher, NamePublisher,
SitePublisher

FROM Publisher

 

si iarasi Next pina se termina ( sau direct
Finish).

 

Acum in WebSite DataSource ne-a aparut
dataset-ul care contine Publisher

 

 

Ne ducem pe Toolbox si tragem pe rptPublisher.rdlc
un Table

Ne intoarcem pe WebSite DataSources si
tragem Name Publisher pe detaliu:

 

 

Acum sa verificam

Cream o noua pagina aspx, frmPublisherReport.aspx
si scriem urmatorul cod(sau tragem controlul de ReportViewer si ii spunem care
e raportul)

<%@ Page Language=”C#” MasterPageFile=”~/Book.master” AutoEventWireup=”true” CodeFile=”frmPublisherReport.aspx.cs” Inherits=”frmPublisherReport”
Title=”Report
Publisher”
%>

 

<%@ Register Assembly=”Microsoft.ReportViewer.WebForms, Version=8.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

Namespace=”Microsoft.Reporting.WebForms” TagPrefix=”rsweb”
%>

<asp:Content ID=”Content1″
ContentPlaceHolderID=”ContentPlaceHolder1″
Runat=”Server”>

<rsweb:ReportViewer ID=”rptPublisher” runat=”server”>

<LocalReport ReportPath=”rptPublisher.rdlc”>

</LocalReport>

</rsweb:ReportViewer>

</asp:Content>

 

In codul C# punem urmatoarele linii :

using System;

using
System.Data;

using
System.Configuration;

using
System.Collections;

using
System.Web;

using
System.Web.Security;

using
System.Web.UI;

using
System.Web.UI.WebControls;

using
System.Web.UI.WebControls.WebParts;

using
System.Web.UI.HtmlControls;

using
Microsoft.Reporting.WebForms;

 

public partial class frmPublisherReport : System.Web.UI.Page

{

protected
void Page_Load(object
sender, EventArgs e)

{

BookObjects.ColPublisher publishers = new
BookObjects.ColPublisher();

publishers.Load();

ReportDataSource
rds = new ReportDataSource(“DataSet1_Publisher”,publishers);

rptPublisher.ProcessingMode
= ProcessingMode.Local;


rptPublisher.LocalReport.DataSources.Add(rds);


rptPublisher.LocalReport.Refresh();

 

}

 

}

 

Si modificam fisierul rdlc deschizindu-l cu
notepad-ul si scriind urmatoarele:

<?xml version=”1.0″
encoding=”utf-8″?>

<Report xmlns=”http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition”
xmlns:rd=”http://schemas.microsoft.com/SQLServer/reporting/reportdesigner”>

<DataSources>

<DataSource
Name=”BookConnectionString”>

<ConnectionProperties>

<ConnectString />


<DataProvider>SQL</DataProvider>

</ConnectionProperties>


<rd:DataSourceID>c649d533-64c3-42b6-9805-19adbfccd468</rd:DataSourceID>

</DataSource>

</DataSources>


<BottomMargin>1in</BottomMargin>

<RightMargin>1in</RightMargin>


<rd:DrawGrid>true</rd:DrawGrid>


<InteractiveWidth>8.5in</InteractiveWidth>


<rd:SnapToGrid>true</rd:SnapToGrid>

<Body>

<ReportItems>

<Table Name=”table1″>

<Footer>

<TableRows>

<TableRow>

<TableCells>

<TableCell>

<ReportItems>

<Textbox
Name=”textbox7″>


<rd:DefaultName>textbox7</rd:DefaultName>


<ZIndex>1</ZIndex>

<Style>


<PaddingLeft>2pt</PaddingLeft>


<PaddingBottom>2pt</PaddingBottom>


<PaddingRight>2pt</PaddingRight>


<PaddingTop>2pt</PaddingTop>

</Style>


<CanGrow>true</CanGrow>

<Value />

</Textbox>

</ReportItems>

</TableCell>

</TableCells>


<Height>0.45833in</Height>

</TableRow>

</TableRows>

</Footer>

<Left>0.5in</Left>


<DataSetName>DataSet1_Publisher</DataSetName>

<Top>0.25in</Top>

<Width>6.5in</Width>

<Details>

<TableRows>

<TableRow>

<TableCells>

<TableCell>

<ReportItems>

<Textbox
Name=”txtName”>


<rd:DefaultName>Name</rd:DefaultName>

<Style>

<PaddingLeft>2pt</PaddingLeft>


<PaddingBottom>2pt</PaddingBottom>


<PaddingRight>2pt</PaddingRight>


<PaddingTop>2pt</PaddingTop>

</Style>

<CanGrow>true</CanGrow>


<Value>=Fields!Name.Value</Value>

</Textbox>

</ReportItems>

</TableCell>

</TableCells>


<Height>0.45833in</Height>

</TableRow>

</TableRows>

</Details>

<Header>

<TableRows>

<TableRow>

<TableCells>

<TableCell>

<ReportItems>

<Textbox
Name=”textbox1″>

<rd:DefaultName>textbox1</rd:DefaultName>


<ZIndex>2</ZIndex>

<Style>


<PaddingLeft>2pt</PaddingLeft>


<PaddingBottom>2pt</PaddingBottom>

<PaddingRight>2pt</PaddingRight>


<PaddingTop>2pt</PaddingTop>

</Style>


<CanGrow>true</CanGrow>


<Value>Name</Value>

</Textbox>

</ReportItems>

</TableCell>

</TableCells>


<Height>0.45833in</Height>

</TableRow>

</TableRows>

</Header>

<TableColumns>

<TableColumn>


<Width>6.5in</Width>

</TableColumn>

</TableColumns>


<Height>1.375in</Height>

</Table>

</ReportItems>

<Height>2in</Height>

</Body>


<rd:ReportID>9f0247a8-15fe-4ef9-962e-c4c670524163</rd:ReportID>

<LeftMargin>1in</LeftMargin>

<DataSets>

<DataSet
Name=”DataSet1_Publisher”>

<rd:DataSetInfo>


<rd:ObjectDataSourceType>Publisher</rd:ObjectDataSourceType>


<rd:TableName>Publisher</rd:TableName>

</rd:DataSetInfo>

<Query>

<rd:UseGenericDesigner>true</rd:UseGenericDesigner>

<CommandText />


<DataSourceName>BookConnectionString</DataSourceName>

</Query>

<Fields>

<Field
Name=”IDPublisher”>


<rd:TypeName>System.Int32</rd:TypeName>

<DataField>IDPublisher</DataField>

</Field>

<Field Name=”Name”>


<rd:TypeName>System.String</rd:TypeName>


<DataField>Name</DataField>

</Field>

<Field Name=”Site”>


<rd:TypeName>System.String</rd:TypeName>

<DataField>Site</DataField>

</Field>

</Fields>

</DataSet>

</DataSets>

<Width>9.75in</Width>


<InteractiveHeight>11in</InteractiveHeight>

<Language>en-US</Language>

<TopMargin>1in</TopMargin>

</Report>

 

 

Acum , rulind pagina, observam ca se poate
exporta raportul in Excel si PDF – mai mult decit sufficient:

 

Data viitoare vom vedea acelasi raport in WindowsForms…

 

Linkuri utile:

http://www.gotreportviewer.com/ – in partea dreapta aveti exemple de aplicatii care fac diverse –
genereaza automat fisierele rdlc, scot automat fisierele Excel si multe altele

SQL Server Reporting Services – pentru
utilizarea avansata a rapoartelor.

Cel mai timpit spam intilnit vreodata

Cel mai timpit spam intilnit vreodata a venit de la office@PentruNuntaMea.ro cu subiectul “re Un Nou Portal de Nunti!”
Subiectul:

HRISTOS A INVIAT!

 

MII DE SCUZE PENTRU DERANJ!

 

 

Din cauza numarului mare de cereri de inregistrare pe
siteul http://www.PentruNuntaMea.ro  si a unor probleme tehnice o buna parte din
inregistrari au fost sterse irecuperabil!

 

Daca te afli printre cei care ai trimis cerere de
inregistrare pe situl, si pana la aceasta data nu te regasesti la nici una din
sectiunile pentru care ai optat, te rugam refa inscrierea, cu toate datele,
apoi ai putintica rabdare, ca operatorii nostri sa poata opera inscrierea!

Te asiguram ca de aceasta data, ne vom lua toate masurile
de prevedere necesare si vei fi inscris!

 

Inca odata scuzzzzeeee!

 

 

 Iti multumesc
pentru intelegere si astept cat mai curand raspunsul tau!

 

Cu prietenie,

Echipa “Totul Pentru Nunta Mea”

office@PentruNuntaMea.ro

www.PentruNuntaMea.ro


3 observatii :
1. Sunt casatorit de 15 ani – si nu am de gind sa ma recasatoresc(mai ales avind 2 copii)- deci faptul  ca m-as fi inscris la ei iese din discutie

2. “Inca odata scuzzzzeeee!” pare a fi scris de un tip de 15, max 20 de ani

3. Imi pare rau ca nu au pierdut si baza de date de spam….

Softisti din Romania, uniti-va!

Referitor la angajatori in IT – frustrare revarsata inca o intimplare adevarata…

Ma contacteaza un tip(nu dau numele) pe yahoo : Poti, te rog, sa imi dai un script care in Outlook 2003 sa  trimita automat reply inapoi ?
OK- zic eu- si in 1/2 h il fac, ii dau instructiuni cum sa il instaleze…Ma rog, nu e rau sa faci din cind in cind o fapta buna.

Dar revine: as vrea si urmatoarele reguli – dar repede!

1. daca la subiect nu apare !!RE si nici !!!RE si mailul nu contine
attach sau poza sa adauge la inceputul subiectului !!RE + la body reply1

2.
daca la subiect nu apare apare !!RE si nici !!!RE si mailul contine
poza sau attach sa adauge la inceputul subiectului !!RE + la body reply2

3. daca la subiect apare !!RE (indiferent daca contine/nu contine poza sau attach) sa adauge la subiect “!!!RE” + la body reply3

4. daca la subiect apare !!!RE sa nu trimita reply, sa il ignore

OK- a inceput in momentul ala sa imi sara tandara

1. Nu sunt la dispozitia nimanui ( OK , sunt la dispozitia angajatorului 8 ore – dar ala ma plateste…)
2. Nu imi plac cei carora, daca le iei un deget, vor sa iti ia toata mina
3. Ma enerveaza oamenii ce sunt de parere ca scopul celorlalti e sa-i serveasca…

Asa ca i-am spus ca vreau bani sau ce face cu scriptul – la care tipul imi spune( textual!):
Pai, saptamana viitoare ma mut pe un mail de server pe care pot sa lucrez cu outlookul si si as avea nevoie de scriptul ala sa citesc mailuri ?!

Tare de tot.
Dragi softisti : daca va roaga cineva sa faceti un scriptulet si daca aveti timp si chef, ajuta-ti-l.
Daca incepe sa vrea marea cu sarea – si nu va plateste REFUZATI-L SCURT!
E plina lumea de smecheri care ii iau pe ceilalti de prosti – nu ii incurajati!

reclame google

Dupa ce s-a facut atita tevatura (inclusiv in Cotidianul) ca Google a pus reclama in romana ( desi vazusem de mult ca erau in romana-cam de 2 luni), am hotarit sa imi pun AdSense cam peste tot…
Mai ales ca am primit un optimization tip de la ei, in care spuneau:

April 2007 Optimization Report

Dear Publisher,

Here
is your optimization report for the month of April. After an automatic
review of your sites, we think you might be able to improve your
monetization using the following tips:

Placing more than one ad unit on a page often generates more revenue.
Many of your sites only contain one ad unit.

Asa ca sa nu va speriati daca vedeti reclame cam peste tot.
Din 20 oct. 2004 pina acum am cistigat fix 25 de dolari( o medie de 0.03 USD pe zi)
Ei, sa vedem daca ,punind peste tot reclame, o sa ma imbogatesc cumva 😉
Va tin la curent -desi primul semn ca voi fi milionar este ca voi blog-a din Hawai