473,803 Members | 3,424 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Advanced concurrancy

Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build.

I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)

p
Jul 28 '05 #1
15 1908
Twisted [1] includes lots of support for asyncronous concurrency,
using deferreds. There is also the possiblity of PEP 342's [2]
concurrency through enhanced generators, and being able to pass data
to the generator every iteration. There are ways to simulate this, as
well. I've written a recipe [3] for it over at ASPN.

Personally, I like the generator approach better, because it gives a
feel of threads, but with direct control of the timeslicing, a better
sense of understanding, and doesn't rely on things happening in the
background, like deferreds often do.

On 7/28/05, Peter Tillotson <no**@no.chance > wrote:
Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build..

I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)

p
--
http://mail.python.org/mailman/listinfo/python-list

Jul 28 '05 #2
Asynchrony is not concurrency. If you have to turn your code "inside
out," (that is, if you have to write your code such that the library
calls your code, rather than vice versa) it's very much *not*
concurrency: it's just asynchrony.

While Twisted makes asynchronous code relatively easy to write and
maintain, it's just not concurrency. I can't simply drop my
single-threaded code into it and have it work, like I can with a truly
concurrent system.

Jeremy

Jul 28 '05 #3
Peter Tillotson wrote:
Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build.

I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)

And deferredGenerat or in twisted.interne t.defer is the robust way for that.
It blows up python readability in contrast,but once you got them and
made your library I think they are also usable.
I do believe, without deferreds in the core ,python will have bad times
surviving the net, but that's really an opinion.

Have fun, Paolino

Jul 28 '05 #4
Cheers Guys,

I have come across twisted and used in async code. What i'm really
looking for is something that provides concurrency based on CSP or pi
calculus. Or something that looks much more like Java's JSR 166 which is
now integrated in Tiger.

Peter Tillotson wrote:
Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build.

I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)

p

Jul 29 '05 #5
Peter Tillotson <no**@no.chance > writes:
I have come across twisted and used in async code. What i'm really
looking for is something that provides concurrency based on CSP or pi
calculus. Or something that looks much more like Java's JSR 166 which
is now integrated in Tiger.


Python doesn't have anything that fancy. You could look at:
pyro.sf.net - Python remote objects using sockets
poshmodule.sf.n et - objects shared between processes using shared memory
Queue module - synchronized queues for interthread communications
in one process

It would be nice if there were something like Queue that used MPI.
Underneath there could be either sockets, shared memory, some special
multiprocessor interconnect, or whatever.
Jul 29 '05 #6
Peter Tillotson wrote:
Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build.
Please take a look at Kamaelia* - it /probably/ has what you're after by the
sounds of things. Currently the unit for sequential process can be either
generators or threads, and is single CPU, single process, however we do
expect to make the system multi-process and multi-system.
* http://kamaelia.sourceforge.net/

Currently it runs on Linux, Mac OS X, Windows and a subset works nicely on
Series 60 mobiles. (That has separate packaging) It works with standard
Python versions 2.2 and upwards.

The basic idea in Kamaelia is you have a class that represents a concurrent
unit that communicates with local interfaces only which are essentially
queues. The specific metaphor we use is that of an office worker with
inboxes and outboxes with deliveries made between outboxes to inboxes.
There also exists a simple environmental/service lookup facility which acts
like an assistant in the above metaphor, and has natural similarities to a
Linda type system.

(The actual rationale for the assistant facility though is based on
biological systems. We have communicating linked concurrent components -
which is much like many biological systems. However in addition to that
most biological systems also have a hormonal system - which is part of the
thinking behind the assistant system)

Generators (when embedded in a class) lend themselves very nicely to this
sort of model in our experience /because/ they are limited to a single
level (with regard to yield).

It's probably suitable for your students because we've tested the system on
pre-university trainees, and vacation trainees, and found they're able to
pick up the system, learn the basic ideas within a week or so (I have some
exercises on how to build a mini- version if that helps), and build
interesting systems.

For example we had a pre-university trainee start with us at the beginning
of the year, learn python, Kamaelia, and build a simple streaming system
taking a video file, taking snapshots and sending those to mobile phones
and PC's - this was over a period of 3 months. He'd only done a little bit
of access in the past, and a little bit of VB. Well that as well as a
simple learning system simulating a digital TV decode chain, but taking a
script instead of a transport stream.

We recently made a 0.2.0 release of the system (not announced on c.l.p yet)
that includes (basic) support for a wide range of multimedia/networked apps
which might help people getting started. Some interesting new additions in
the release are an IPython integration - allowing you to build Kamaelia
systems on the fly using a shell, much like you can build unix pipelines,
as well as a visual introspection tool (and network graph visualiser) which
allows you to see inside systems as they are running. (This has turned out
to be extremely useful - as you can expect with any CSP-type system)

The specific use cases you mention are also very closed aligned with our
aims for the project.

We're essentially working on making concurrency easy and natural to use,
(starting from the domain of networked multimedia). You can do incremental
development and transformation in exactly the way it sounds like you want,
and build interesting systems. We're also working on the assumption that if
you do that you can get performance later by specific optimisations (eg
more CPUs).
* Example of incremental component development here:
http://tinyurl.com/dp8n7

By the time we reach a 1.0 release (of Kamaelia) we're also aiming to be
able to integrate cleanly with Twisted (on Twisted's grounds), but it is
highly usable already - especially in your area. (In CVS we have tools for
building game type systems easily & Tk integration as well. Tk based CSP
systems are particularly fun to work with (as in fun, not "fun" :). One
project we are seriously looking at is a visual editor for these CSP-type
systems, since that appears now to be low hanging fruit.

We've got a white paper about Kamaelia here:
* http://www.bbc.co.uk/rd/pubs/whp/whp113.shtml

This is "textualisation " of a presentation I gave at ACCU earlier in the
year and is an overview of the core areas of the system - hopefully enough
to let you know whether to look further!

I also gave an updated talk at Europython - the presentation for which can
be downloaded from here:
* http://www.python-in-business.org/ep...2589&track=692

Last week I also gave a more pragmatic, shorter talk at Open Tech which is
an introduction to Kamaelia, it's goals, and several examples of CSP type
systems ranging from simple audio clients/servers through to presentation
tools. That presentation can be downloaded from here:
* http://kamaelia.sourceforge.net/Kamaelia_OT2005.tgz

Both the Europython & Open tech bundles actually include the core
concurrency systems (called Axon), and the component modules (Kamaelia) in
the bundle, in addition to the slides and install docs. The presentation
tools included in the bundles are written in python using Kamaelia.

The project website is here: http://kamaelia.sourceforge.net/
I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)


It's getting there - the recent PEP regarding the ability to cause a
generator to have an exception thrown inside it provides very similar to
Unix signals as provided via "kill", which will be nice when 2.5 is
released.

Hopefully you find the system useful,

Best Regards,
Michael.
--
Michael Sparks, Senior R&D Engineer, Digital Media Group
Mi************@ rd.bbc.co.uk, http://kamaelia.sourceforge.net/
British Broadcasting Corporation, Research and Development
Kingswood Warren, Surrey KT20 6NP

This e-mail may contain personal views which are not the views of the BBC.

Jul 29 '05 #7
I've not yet had a chance to try some examples, but i've looked through
the documentation. It feels quite familiar, but i'd say that it is
closer to Jade, the fipa (federation of intelligent physical agents)
compliant agent framework than CSP or pi calculus. I like the behaviour
(component microthread) model, but the advantage of CSP / pi calculus is
that the resulting distributed system remains open to mathematical analysis.

For concurency its is the best framework i've seen :-) Have you come
across the pylinda tuplespace implementation. It might be well worth a
look. I might be barking up the wrong tree - but it seems to me that
there could be considerable overlap between tuplespaces and mailboxes,
though you did mention that you were moving towards twisted as the
underlying platform for the future.

I'm quite interested in the mini version and also using the modules as
mobile code rather than installing it formally. I'll probably zip the
Axion directory and distribute the zip with the code, adding the zip to
the python path dynamically.

cheers

p

Michael Sparks wrote:
Peter Tillotson wrote:

Hi,

I'm looking for an advanced concurrency module for python and don't seem
to be able to find anything suitable. Does anyone know where I might
find one? I know that there is CSP like functionality built into
Stackless but i'd like students to be able to use a standard python build.

Please take a look at Kamaelia* - it /probably/ has what you're after by the
sounds of things. Currently the unit for sequential process can be either
generators or threads, and is single CPU, single process, however we do
expect to make the system multi-process and multi-system.
* http://kamaelia.sourceforge.net/

Currently it runs on Linux, Mac OS X, Windows and a subset works nicely on
Series 60 mobiles. (That has separate packaging) It works with standard
Python versions 2.2 and upwards.

The basic idea in Kamaelia is you have a class that represents a concurrent
unit that communicates with local interfaces only which are essentially
queues. The specific metaphor we use is that of an office worker with
inboxes and outboxes with deliveries made between outboxes to inboxes.
There also exists a simple environmental/service lookup facility which acts
like an assistant in the above metaphor, and has natural similarities to a
Linda type system.

(The actual rationale for the assistant facility though is based on
biological systems. We have communicating linked concurrent components -
which is much like many biological systems. However in addition to that
most biological systems also have a hormonal system - which is part of the
thinking behind the assistant system)

Generators (when embedded in a class) lend themselves very nicely to this
sort of model in our experience /because/ they are limited to a single
level (with regard to yield).

It's probably suitable for your students because we've tested the system on
pre-university trainees, and vacation trainees, and found they're able to
pick up the system, learn the basic ideas within a week or so (I have some
exercises on how to build a mini- version if that helps), and build
interesting systems.

For example we had a pre-university trainee start with us at the beginning
of the year, learn python, Kamaelia, and build a simple streaming system
taking a video file, taking snapshots and sending those to mobile phones
and PC's - this was over a period of 3 months. He'd only done a little bit
of access in the past, and a little bit of VB. Well that as well as a
simple learning system simulating a digital TV decode chain, but taking a
script instead of a transport stream.

We recently made a 0.2.0 release of the system (not announced on c.l.p yet)
that includes (basic) support for a wide range of multimedia/networked apps
which might help people getting started. Some interesting new additions in
the release are an IPython integration - allowing you to build Kamaelia
systems on the fly using a shell, much like you can build unix pipelines,
as well as a visual introspection tool (and network graph visualiser) which
allows you to see inside systems as they are running. (This has turned out
to be extremely useful - as you can expect with any CSP-type system)

The specific use cases you mention are also very closed aligned with our
aims for the project.

We're essentially working on making concurrency easy and natural to use,
(starting from the domain of networked multimedia). You can do incremental
development and transformation in exactly the way it sounds like you want,
and build interesting systems. We're also working on the assumption that if
you do that you can get performance later by specific optimisations (eg
more CPUs).
* Example of incremental component development here:
http://tinyurl.com/dp8n7

By the time we reach a 1.0 release (of Kamaelia) we're also aiming to be
able to integrate cleanly with Twisted (on Twisted's grounds), but it is
highly usable already - especially in your area. (In CVS we have tools for
building game type systems easily & Tk integration as well. Tk based CSP
systems are particularly fun to work with (as in fun, not "fun" :). One
project we are seriously looking at is a visual editor for these CSP-type
systems, since that appears now to be low hanging fruit.

We've got a white paper about Kamaelia here:
* http://www.bbc.co.uk/rd/pubs/whp/whp113.shtml

This is "textualisation " of a presentation I gave at ACCU earlier in the
year and is an overview of the core areas of the system - hopefully enough
to let you know whether to look further!

I also gave an updated talk at Europython - the presentation for which can
be downloaded from here:
* http://www.python-in-business.org/ep...2589&track=692

Last week I also gave a more pragmatic, shorter talk at Open Tech which is
an introduction to Kamaelia, it's goals, and several examples of CSP type
systems ranging from simple audio clients/servers through to presentation
tools. That presentation can be downloaded from here:
* http://kamaelia.sourceforge.net/Kamaelia_OT2005.tgz

Both the Europython & Open tech bundles actually include the core
concurrency systems (called Axon), and the component modules (Kamaelia) in
the bundle, in addition to the slides and install docs. The presentation
tools included in the bundles are written in python using Kamaelia.

The project website is here: http://kamaelia.sourceforge.net/

I'm trying to develop distributed / Grid computing modules based on
python. The aim is to be able to use barriers for synchronisation and
channels for communication between processes running on a single box.
Then the jump to multiple processes on multiple boxes and eventually to
MPI implementations . Hopefully, each jump should not be that big a leap.

Of course it would be nice if there was a robust way of managing
concurrency in python aswell ;-)

It's getting there - the recent PEP regarding the ability to cause a
generator to have an exception thrown inside it provides very similar to
Unix signals as provided via "kill", which will be nice when 2.5 is
released.

Hopefully you find the system useful,

Best Regards,
Michael.
--
Michael Sparks, Senior R&D Engineer, Digital Media Group
Mi************@ rd.bbc.co.uk, http://kamaelia.sourceforge.net/
British Broadcasting Corporation, Research and Development
Kingswood Warren, Surrey KT20 6NP

This e-mail may contain personal views which are not the views of the BBC.

Aug 1 '05 #8
On 28 Jul 2005 10:41:54 -0700, je******@gmail. com <je******@gmail .com> wrote:
Asynchrony is not concurrency. If you have to turn your code "inside
out," (that is, if you have to write your code such that the library
calls your code, rather than vice versa) it's very much *not*
concurrency: it's just asynchrony.

While Twisted makes asynchronous code relatively easy to write and
maintain, it's just not concurrency. I can't simply drop my
single-threaded code into it and have it work, like I can with a truly
concurrent system.

Jeremy


When you can ever just "simply drop" any single-threaded code into an
enviroment where it is sharing the resources and data with other
executing code simulataniously , it just "have it work", that will be
the day. Unfortunately, in practice, this simply is not how things
work. For code to operate peacefully together, it must be designed to
do so. Even when code is running in seperate processes, they must work
together to share some resources, and that is simply the way of
things. Concurrency can not (and perhaps should not) be an automatic
fix-all pill.
Aug 1 '05 #9
Peter Tillotson wrote:
I've not yet had a chance to try some examples, but i've looked through
the documentation. It feels quite familiar,
It hopefully should. The approach is based essentially on an asynchronous
hardware approach, on the recognition that the fundamental reason that
hangs together is because it can be reasoned about in a similar manner to
CSP. (That naturally leads to similarities of course with Occam)
but i'd say that it is closer to Jade, the fipa (federation of intelligent
physical agents) compliant agent framework
Thanks - I've not come across those - I'll have to take a look at that in
detail. (With a cursory look, they sounds similar to an application area a
colleague is interested in investigating)
than CSP or pi calculus. I like the behaviour
(component microthread) model, but the advantage of CSP / pi calculus is
that the resulting distributed system remains open to mathematical
analysis.
Indeed. However, by trying to have the same basic limitations in the system,
Kamaelia should be amenable to the sort of approaches taken by hardware
verification systems. It's possibly worth mentioning that there is one
person at BBC R&D who is extremely interested in applying CSP style
analysis techniques to Kamaelia systems whom I sure would be interested in
chatting to you. (Indeed the similarities between Kamaelia and CSP is
biggest reason for his interest :-)

The idea of a verification system for software that is actually in use for
real world systems would be extremely nice/useful to have (though not
simple to achieve).

FWIW, I am interested in hearing suggestions on changing the system to make
it more amenable to mathematical analysis. (Largely because I'm a fan of
formal methods where possible, but pragmatically view TDD as the current
most practical way of getting towards the levels of reliabiliy aimed for by
formal methods)
For concurency its is the best framework i've seen :-)
Thanks!
Have you come across the pylinda tuplespace implementation. It might be
well worth a look.
I have, and I liked what I saw :)
I might be barking up the wrong tree - but it seems to me that
there could be considerable overlap between tuplespaces and mailboxes,
Probably the closer match is the co-ordinating assistant tracker (I can
see what you mean though). That provides a basic global key/value
store/retrieve service, which in a concurrent system is probably most
akin to a Linda tuplespace. In a biological system it's more akin to the
hormonal system which is more of the model I like to think of as to /when/
to use that part of the system. (Evolution having more 'experience' than
me on how to build a massively concurrent system after all !!)

It's generally only used at present for one of two purposes:
* Finding services that already exist (so that we don't try to open two
displays for example)
* Stats collection.

Using a Linda tuplespace there would be an interesting next move, however
we generally only extend the system based on specific need rather than
exploring architecture (Which I'm sure you understand!).
though you did mention that you were moving towards twisted as the
underlying platform for the future.
Perhaps not underlying, but definitely interoperating with (It seems rather
wasteful to reinvent wheels).
I'm quite interested in the mini version and also using the modules as
mobile code rather than installing it formally.
I'll document it slightly better and post up on the website in the next 48
hours or so. In the meantime, the optimisation test which includes a
slightly modified mini-axon can be found here:

http://cvs.sourceforge.net/viewcvs.p...imisationTest/

Specifically the file "simplegame.py" . This includes a cutdown version of
Axon that's about 100 lines long (lines 41 - 144 specifically), with the
important classes being:

class microprocess(ob ject):
class newComponent(ob ject):
class scheduler(micro process):
class component(micro process):
class send_one_compon ent(component):
def linkage(source, sink):
I'll probably zip the Axon directory and distribute the zip with the code,
adding the zip to the python path dynamically.


Sounds interesting. If you go ahead with this we'd be interested in hearing
how you get on.

Best Regards,
Michael.

Aug 3 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
2797
by: Millissa | last post by:
If someone can help me with examples of or info on how to create an advanced tables for the layout on my site, I would be very grateful! Thanks, M
10
2739
by: John Wells | last post by:
Are there any books out there that are fairly current, but go into the more advanced aspects of Postgresql, such as internals and advanced programming? I'd rather avoid the whole intro to SQL with a few extra chapters on Postgresql if I could help it. Thanks, John
2
2491
by: Mike Sweetman | last post by:
I have a form Form1 which when the Advanced Filter/Sort is used creates a form(maybe) with a title 'Form1Filter1 : Filter'. When I apply the filter to Form1 it is applied, but the value of Form1.Filter is ''. How do I obtain the Advanced Filter/Sort criteria as a string ? I cannot reference the object 'Form1Filter1 : Filter' by using Form1Filter1.
4
5140
by: Nhmiller | last post by:
This is directly from Access' Help: "About designing a query When you open a query in Design view, or open a form, report, or datasheet and show the Advanced Filter/Sort window (Advanced Filter/Sort window: A window in which you can create a filter from scratch. You enter criteria expressions in the filter design grid to restrict the records in the open form or datasheet to a subset of records that meet the criteria.), you see the design...
9
2972
by: John Robert | last post by:
Hi! Anyone has recommendations for advanced ASP.NET books? By advanced, I mean complicated stuff... not just authentification and datagrid binding I'm mainly interrested in learning more about letting my customers customize a web forms (from a database... on the fly control creation and persisting data), and other advanced topics.
11
1686
by: vdrab | last post by:
Hi all, Is there some sort of coherent source (dead tree format, maybe?) on some of the more advanced features of python (decorators, metaclasses, etc)? I'm sort of looking for a python book that actually gets to the good stuff at some point, without first spending 6 chapters on how to append ints to a list. I can't seem to find any. I get the impression people just get by with scraps and code snippets
4
1968
by: mike_li | last post by:
Passed DB2 UDB 701 test, how can I prepare for 704 test (Advanced DBA)? There is not as many info. on this test as on others. Thanks. Mike
10
2343
by: jklimek | last post by:
I'm currently a Delphi developer (my day job) but at my company we only write custom web application/database stuff, so we never really get into anything advanced. However, I know enough about pointers, objects, etc, to consider myself an "intermediate" level programmer. Well, I'm looking to write a game involving physics and multiplayer capability, and that pretty much means I need C++ if I want to use any existing engines (eg. HGE,...
0
1860
by: Andrew Meador - ASCPA, MCSE, MCP+I, Network+, A+ | last post by:
I am running Access 2007. I have a report that I want to filter. I can go into Advanced...Advanced Filter/Sort... and setup a filter that works fine on the report when I apply it. When in this query creation area, I can right click and Save Query. I have saved a query fine. However, now if I go back later (after closing Access or the report) when I open it it back up (the report), I go back to Advanced...Advanced Filter/Sort.. right click...
0
9703
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10317
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10069
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9127
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7607
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5503
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5636
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3802
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2974
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.