You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
| 2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
| 2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
| 2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
| 2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
| 2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
| 2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
| 2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
| 2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
| 2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
| 2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
| 2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
| 2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
| 2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(3) |
2
(5) |
3
(11) |
4
|
|
5
|
6
(8) |
7
(4) |
8
(4) |
9
(2) |
10
(4) |
11
(1) |
|
12
(3) |
13
(3) |
14
(5) |
15
(11) |
16
(8) |
17
(5) |
18
(3) |
|
19
(1) |
20
(6) |
21
(7) |
22
(5) |
23
(6) |
24
(4) |
25
(5) |
|
26
|
27
(1) |
28
(13) |
29
(4) |
30
(2) |
31
(8) |
|
|
From: Ondřej Č. <ond...@gm...> - 2013-05-03 18:52:29
|
On Fri, May 3, 2013 at 12:41 PM, Ondřej Čertík <ond...@gm...> wrote: > Hi, > > As part of building matplotlib for the one python based distribution [1], I meant to say "for one python distribution", not "the one"... Ondrej |
|
From: Ondřej Č. <ond...@gm...> - 2013-05-03 18:41:22
|
Hi, As part of building matplotlib for the one python based distribution [1], I want to always link against our own version of libpng, even if there is some other systemwide version available. I am on linux (Ubuntu). Currently, here is what I am doing: CFLAGS="-I$PNG/include -I$FREETYPE/include -I$FREETYPE/include/freetype2" LDFLAGS="-L$FREETYPE/lib -L$PNG/lib -Wl,-rpath=$PNG/lib" $PYTHON/bin/python setup.py build $PYTHON/bin/python setup.py install Where $PNG and $FREETYPE points to our own versions. On a computer with no systemwide version of png, this works great. Question: 1) If I don't specify the -rpath option, then libpng.so will fail to be found at runtime. Is there any other recommended way to go around this? I don't want to use LD_LIBRARY_PATH. On a computer with systemwide version available, unfortunately the systemwide version gets picked up instead. I think it's because of this: pkg-config --libs --cflags libpng -I/usr/include/libpng12 -lpng12 so matplotlib simply calls this (right?) and uses the systemwide version. Question: 2) How do I force matplotlib to use my own version instead? I would highly appreciate any input, especially on 2). We have our own issue open for this at [2] if you are interested for the background. The merged mpl PR [3] is a little related, but doesn't answer my questions. Thanks, Ondrej [1] https://github.com/hashdist/python-hpcmp2/ [2] https://github.com/hashdist/python-hpcmp2/issues/53 [3] https://github.com/matplotlib/matplotlib/pull/1884 |
|
From: Felix P. <fe...@ne...> - 2013-05-03 16:05:18
|
H, I'm using sfmath, too. I actually wrote a helper function to switch fonts. The preambles are the result of long-term trial and error. Normally, my preambles include some more custom commands which I left out here because they would be distracting. I always wondered why matplotlib doesn't do this kind of font switching out of the box.
def setfont(font=font_default,unicode=True):
r"""
Set Matplotlibs rcParams to use LaTeX for font rendering.
Revert all changes by calling rcdefault() from matplotlib.
Parameters:
-----------
font: string
"Helvetica"
"Times"
"Computer Modern"
usetex: Boolean
Use unicode. Default: False.
"""
# Use TeX for all figure text!
plt.rc('text', usetex=True)
font = font.lower().replace(" ","")
if font == 'times':
# Times
font = {'family':'serif', 'serif':['Times']}
preamble = r"""
\usepackage{color}
\usepackage{mathptmx}
"""
elif font == 'helvetica':
# Helvetica
# set serif, too. Otherwise setting to times and then
# Helvetica causes an error.
font = {'family':'sans-serif','sans-serif':['Helvetica'],
'serif':['cm10']}
preamble = r"""
\usepackage{color}
\usepackage[tx]{sfmath}
\usepackage{helvet}
"""
else:
# Computer modern serif
font = {'family':'serif', 'serif':['cm10']}
preamble = r"""
\usepackage{color}
"""
if unicode:
# Unicode for Tex
#preamble = r"""\usepackage[utf8]{inputenc}""" + preamble
# inputenc should be set automatically
plt.rcParams['text.latex.unicode']=True
#print font, preamble
plt.rc('font',**font)
plt.rcParams['text.latex.preamble'] = preamble
Am 03.05.2013 um 16:08 schrieb Juergen Hasch <py...@el...>:
>>
>> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding:
>>
>> rc('text.latex', preamble=r'\usepackage{cmbright}')
>>
>> That may require installing the cmbright LaTeX package if you don't already have it.
>
> I am using the sfmath package for this purpose.
>
> There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page:
> http://dtrx.de/od/tex/sfmath.html
>
>
>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
|
|
From: Felix P. <fe...@ne...> - 2013-05-03 15:55:01
|
Some output using the different settings in the functions I just sent. As you can see the only problem are greek letters and some math symbols. It may be possible to improve this situation using xetex (http://matplotlib.org/users/pgf.html), but I did not try this out yet. Am 03.05.2013 um 17:38 schrieb Felix Patzelt <fe...@ne...>: > H, I'm using sfmath, too. I actually wrote a helper function to switch fonts. The preambles are the result of long-term trial and error. Normally, my preambles include some more custom commands which I left out here because they would be distracting. I always wondered why matplotlib doesn't do this kind of font switching out of the box. > > def setfont(font=font_default,unicode=True): > r""" > Set Matplotlibs rcParams to use LaTeX for font rendering. > Revert all changes by calling rcdefault() from matplotlib. > > Parameters: > ----------- > font: string > "Helvetica" > "Times" > "Computer Modern" > > usetex: Boolean > Use unicode. Default: False. > """ > > # Use TeX for all figure text! > plt.rc('text', usetex=True) > > font = font.lower().replace(" ","") > if font == 'times': > # Times > font = {'family':'serif', 'serif':['Times']} > preamble = r""" > \usepackage{color} > \usepackage{mathptmx} > """ > elif font == 'helvetica': > # Helvetica > # set serif, too. Otherwise setting to times and then > # Helvetica causes an error. > font = {'family':'sans-serif','sans-serif':['Helvetica'], > 'serif':['cm10']} > preamble = r""" > \usepackage{color} > \usepackage[tx]{sfmath} > \usepackage{helvet} > """ > else: > # Computer modern serif > font = {'family':'serif', 'serif':['cm10']} > preamble = r""" > \usepackage{color} > """ > > if unicode: > # Unicode for Tex > #preamble = r"""\usepackage[utf8]{inputenc}""" + preamble > # inputenc should be set automatically > plt.rcParams['text.latex.unicode']=True > > #print font, preamble > plt.rc('font',**font) > plt.rcParams['text.latex.preamble'] = preamble > > > Am 03.05.2013 um 16:08 schrieb Juergen Hasch <py...@el...>: > >>> >>> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding: >>> >>> rc('text.latex', preamble=r'\usepackage{cmbright}') >>> >>> That may require installing the cmbright LaTeX package if you don't already have it. >> >> I am using the sfmath package for this purpose. >> >> There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page: >> http://dtrx.de/od/tex/sfmath.html >> >> >> >> ------------------------------------------------------------------------------ >> Get 100% visibility into Java/.NET code with AppDynamics Lite >> It's a free troubleshooting tool designed for production >> Get down to code-level detail for bottlenecks, with <2% overhead. >> Download for free and get started troubleshooting in minutes. >> http://p.sf.net/sfu/appdyn_d2d_ap2 >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
|
From: Paul H. <pmh...@gm...> - 2013-05-03 15:31:06
|
On Fri, May 3, 2013 at 6:17 AM, Michael Droettboom <md...@st...> wrote:
> On 05/02/2013 03:16 PM, Paul Hobson wrote
>
> I now see that this was more of TeX issue than an MPL configuration
> issue. Your help prompted me to find this solution (similar to yours):
> mpl.rcParams['text.latex.preamble'] = [
> r'\usepackage{siunitx}', # i need upright \micro symbols, but you
> need...
> r'\sisetup{detect-all}', # ...this to force siunitx to actually
> use your fonts
> r'\usepackage{helvet}', # set the normal font here
> r'\usepackage{sansmath}', # load up the sansmath so that math ->
> helvet
> r'\sansmath'] # <- tricky! -- gotta actually tell tex to use!
>
>
> Wow. That's some serious TeX voodoo magic! Want to work that into an
> example that we could include in the docs?
>
> Cheers,
> Mike
>
Gladly. I'll try to find time to cook up PR building off of the existing
example over the weekend.
-paul
|
|
From: Juergen H. <py...@el...> - 2013-05-03 14:08:05
|
>
> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding:
>
> rc('text.latex', preamble=r'\usepackage{cmbright}')
>
> That may require installing the cmbright LaTeX package if you don't already have it.
I am using the sfmath package for this purpose.
There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page:
http://dtrx.de/od/tex/sfmath.html
|
|
From: Werner F. B. <wer...@fr...> - 2013-05-03 13:56:39
|
Mike, On 03/05/2013 15:14, Michael Droettboom wrote: > FWIW: Matplotlib uses the older buffer interface because that is what > the older version of wx used (as well as other GUI toolkits). It > would be nice to move to the new memoryview objects, but all of the > GUI frameworks will need to move in tandem... agg.bufferNEW_rgba or something along those lines and then GUI frameworks could move when they want/can, or would that create to big of an overhead on MPL side. Werner |
|
From: Michael D. <md...@st...> - 2013-05-03 13:17:51
|
On 05/02/2013 03:16 PM, Paul Hobson wrote:
>
> On Thu, May 2, 2013 at 11:19 AM, Michael Droettboom <md...@st...
> <mailto:md...@st...>> wrote:
>
> I think the confusion here stems from the fact that you're mixing
> TeX and non-TeX font commands.
>
> This turns on TeX mode, so all of the text is rendered with an
> external TeX installation:
>
> rc('text', usetex=True)
>
> In this line, setting it to sans-serif will get passed along to
> TeX, but a specific ttf font name can not be used by TeX, so the
> second part (involving Helvetica) is ignored. And setting the
> default body text in TeX does not (by default) change the math
> font. This is (unfortunately standard TeX behavior).
>
> rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
>
> This affects the font set used by matplotlib's internal mathtext
> renderer, and has no effect on TeX:
>
> rc('mathtext', fontset='stixsans')
>
> The solution I use when I want all sans-serif out of TeX is to use
> the cmbright package, which can be turned on by adding:
>
> rc('text.latex', preamble=r'\usepackage{cmbright}')
>
> That may require installing the cmbright LaTeX package if you
> don't already have it.
>
> I know all this stuff is confusing, but providing a flat interface
> over both the internal text rendering and the TeX rendering isn't
> really possible -- they have different views of the world -- and
> I'm actually not sure it's desirable. Though I wonder if we
> couldn't make it more obvious (somehow) when the user is mixing
> configuration that applies to the different contexts.
>
> Mike
>
>
> Mike,
>
> Thanks for the guidance. I know this stuff is complicated and the work
> everyone has put into it to make it work is fantastic.
>
> I now see that this was more of TeX issue than an MPL configuration
> issue. Your help prompted me to find this solution (similar to yours):
> mpl.rcParams['text.latex.preamble'] = [
> r'\usepackage{siunitx}', # i need upright \micro symbols, but
> you need...
> r'\sisetup{detect-all}', # ...this to force siunitx to
> actually use your fonts
> r'\usepackage{helvet}', # set the normal font here
> r'\usepackage{sansmath}', # load up the sansmath so that math
> -> helvet
> r'\sansmath'] # <- tricky! -- gotta actually tell tex to use!
Wow. That's some serious TeX voodoo magic! Want to work that into an
example that we could include in the docs?
Cheers,
Mike
|
|
From: Michael D. <md...@st...> - 2013-05-03 13:14:19
|
FWIW: Matplotlib uses the older buffer interface because that is what the older version of wx used (as well as other GUI toolkits). It would be nice to move to the new memoryview objects, but all of the GUI frameworks will need to move in tandem... Mike On 04/27/2013 06:23 PM, Werner F. Bruhin wrote: > Hi Michael, > > On 26/04/2013 14:40, Michael Droettboom wrote: >> On 04/26/2013 02:57 AM, Werner F. Bruhin wrote: >>> Hi, >>> >>> Anyone can provide some info on what "agg.buffer_rgba" returns and >>> maybe >>> even some suggestion on how to resolve this issue in the wxagg backend. >> It returns a Python buffer object on Python 2, though on Python 3 it is >> a memoryview, since buffer was deprecated. Perhaps wx is also doing >> something different depending on the version of Python. > As of Phoenix 2.9.5.81-r73873 matplot works with Phoenix, here is > Robin Dunn's comment to the change he did on Phoenix with regards to > the buffer handling. > > Quote > > The new buffer APIs go as far back as 2.6, IIRC, and the memoryview > and bytearray object types are available in 2.7 in addition to 3.x and > that I what I'm using in Phoenix. I would have expected MPL to do so > also since numpy is an integral part of MPL and the new buffer > interface was basically designed for and by numpy... > > Anyway, while double checking all this I realized that it would not be > hard for me to accept old or new buffer objects for source buffers > (I'll still use memoryviews or bytearrays when on the producer side of > things) so try again after the next snapshot build. My unittests with > array.arrrays started working after the change so I expect that MPL's > rgba buffer should work too. > > EndQuote > > Enclosed is the patch for backend_wx.py and for embedding_in_wx5.py > which I used for testing, in the later I use wxversion.select to force > selection of a particular version - I think the distribution should > still just use ensureMinimal. > > FYI, documentation for wxPython Phoenix are here: > http://wxpython.org/Phoenix/docs/html/index.html > > And snapshots can be found here: > http://wxpython.org/Phoenix/snapshot-builds/ > > I tested only on Python 2.7.2 on Windows 7. > > Werner > > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
|
From: Michael D. <md...@st...> - 2013-05-03 13:13:23
|
Would you mind submitting this as a pull request? Mike On 04/27/2013 06:23 PM, Werner F. Bruhin wrote: > Hi Michael, > > On 26/04/2013 14:40, Michael Droettboom wrote: >> On 04/26/2013 02:57 AM, Werner F. Bruhin wrote: >>> Hi, >>> >>> Anyone can provide some info on what "agg.buffer_rgba" returns and >>> maybe >>> even some suggestion on how to resolve this issue in the wxagg backend. >> It returns a Python buffer object on Python 2, though on Python 3 it is >> a memoryview, since buffer was deprecated. Perhaps wx is also doing >> something different depending on the version of Python. > As of Phoenix 2.9.5.81-r73873 matplot works with Phoenix, here is > Robin Dunn's comment to the change he did on Phoenix with regards to > the buffer handling. > > Quote > > The new buffer APIs go as far back as 2.6, IIRC, and the memoryview > and bytearray object types are available in 2.7 in addition to 3.x and > that I what I'm using in Phoenix. I would have expected MPL to do so > also since numpy is an integral part of MPL and the new buffer > interface was basically designed for and by numpy... > > Anyway, while double checking all this I realized that it would not be > hard for me to accept old or new buffer objects for source buffers > (I'll still use memoryviews or bytearrays when on the producer side of > things) so try again after the next snapshot build. My unittests with > array.arrrays started working after the change so I expect that MPL's > rgba buffer should work too. > > EndQuote > > Enclosed is the patch for backend_wx.py and for embedding_in_wx5.py > which I used for testing, in the later I use wxversion.select to force > selection of a particular version - I think the distribution should > still just use ensureMinimal. > > FYI, documentation for wxPython Phoenix are here: > http://wxpython.org/Phoenix/docs/html/index.html > > And snapshots can be found here: > http://wxpython.org/Phoenix/snapshot-builds/ > > I tested only on Python 2.7.2 on Windows 7. > > Werner > > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
|
From: Yasin S. B. <yas...@gm...> - 2013-05-03 12:03:41
|
Hi.
i am using ListedColormap with ScalarMappable, to map data ranges, without
using a norm. But i dont know if what i am doing is a good thing or not.
Here's the snippet:
----------------------------------------------------------------------
from matplotlib import pyplot as plt
from matplotlib import colors, cm
cl = ["#8080FF", #purple
"#40C0FF", #blue
"#00FFFF", #cyan
"#00FF00", #green
"#FFFF00", #yellow
"#FF8000", #orange
"#FF0000"] #red
cmap = colors.ListedColormap(cl)
data = np.array([np.arange(0, 5, 10, 15, 20, 25, 30, 35, 40, 45)])
sm = cm.ScalarMappable(cmap=cmap)
sm.set_clim(vmin=5, vmax=40) #7 colors, max-min=35
rgba = sm.to_rgba(data, bytes=True)
plt.imshow(rgba, interpolation="nearest")
plt.show()
----------------------------------------------------------------------
this produces output (first letters of color list):
"p, p, b, c, g, y, o, r, r, r"
as i intend.
5<=val<10 --> purple,
10<=val<15 --> blue
15<=val<20 -->cyan
....etc
BUT, when the color list is much longer than here, where each specific
color corresponds to some data range, somehow, sometimes the above doesn't
work as expected.
for example, 15<=val<20 --> should be cyan. but in lists with much more
color numbers, value=15 sometimes produces blue. by trial & error, i saw
only when an epsilon is added to 15, say 15.000001, data color becomes cyan.
i reckon this has something to do with color number. when the number of
colors in ListedColormap is not an integer power of 2 (8, 16, 32, 64..etc)
the normalization in set_clim divides 0-1 into sections, which are not
exactly representable in machine float, if the color number is, say, 12,
17, 20..etc. so this small differences in color-change-limits result this
behaviour. so adding one extra dummy color can solve this, as it completes
color number to 8 (2^3 colors).
is this the case or is my guess is completely wrong ?
secondly, i also would like to know the logic behind how matplotlib
corresponds/maps values in whole range like i use above, with colors in
color list. i digged the source but no success. say 4 colors in list and
set_clim(vmin=2, vmax=4).
this yields for values:
below 2 ->color1
2-(2.5) ->color1
2.5-(3) ->color2
3-(3.5) ->color3
3.5 and above ->color4. but how ?
thanks.
--
Yasin
"Bismillah, her hayrın başıdır."
|